glPixelMap
Inhaltsverzeichnis
glPixelMap
Name
glPixelMap - stellt eine Pixeltransferkarte (pixel transfer map) ein.
Delphi-Spezifikation
procedure glPixelMapfv(map: TGLenum; mapsize: TGLsizei; const values: PGLfloat); procedure glPixelMapuiv(map: TGLenum; mapsize: TGLsizei; const values: PGLuint); procedure glPixelMapusv(map: TGLenum; mapsize: TGLsizei;
Parameter
map | Bestimmt den symbolischen Kartennamen. Muss einer der folgenden sein: GL_PIXEL_MAP_I_TO_I, GL_PIXEL_MAP_S_TO_S, GL_PIXEL_MAP_I_TO_R, GL_PIXEL_MAP_I_TO_G, GL_PIXEL_MAP_I_TO_B, GL_PIXEL_MAP_I_TO_A, GL_PIXEL_MAP_R_TO_R, GL_PIXEL_MAP_G_TO_G, GL_PIXEL_MAP_B_TO_B, oder GL_PIXEL_MAP_A_TO_A |
mapsize | Bestimmt die Größe der ausgewählten Karte. |
values | Ist ein Feld mit mapsize Werten. |
Beschreibung
glPixelMap erstellt Übersetzungstabellen oder Karten die von glDrawPixels, glReadPixels, glCopyPixels, glTexImage1D, und glTexImage2D benutzt werden. Die Nutzung dieser Karten wird ausführlich im Artikel glTexImage2D besprochen. In Auszügen finden Sie auch in den Artikeln zu den Pixel und Textur Befehlen weitere Informationen. In diesem Artikel wird nur die Erstellung der Karten besprochen.
map ist ein symbolischer Kartenname der eine der 10 Karten für die Bearbeitung auswählt. mapsize bestimmt die Anzahl der Einträge in die Karte. values ist ein Zeiger auf ein Feld mit mapsize Kartenwerten.
Die folgenden 10 Karten existieren.
MAPS
Beispiele für die Übertragungen.
GL_PIXEL_MAP_I_TO_I
- Überträgt Farbindices auf Farbindices.
GL_PIXEL_MAP_S_TO_S
- Überträgt Schablonenindices auf Schablonenindices.
GL_PIXEL_MAP_I_TO_R
- Überträgt Farbindices auf Rotkomponenten.
GL_PIXEL_MAP_I_TO_G
- Überträgt Farbindices auf Grünkomponenten.
GL_PIXEL_MAP_I_TO_B
- Überträgt Farbindices auf Blaukomponenten.
GL_PIXEL_MAP_I_TO_A
- Überträgt Farbindices auf Alphakomponenten.
GL_PIXEL_MAP_R_TO_R
- Überträgt Rotkomponenten auf Rotkomponenten.
GL_PIXEL_MAP_G_TO_G
- Überträgt Grünkomponenten auf Grünkomponenten.
GL_PIXEL_MAP_B_TO_B
- Überträgt Blaukomponenten auf Blaukomponenten.
GL_PIXEL_MAP_A_TO_A
- Überträgt Alphakomponenten auf Alphakomponenten.
Die Einträge einer Map können als einfach genaue Floats (Delphi: single), unsigned short ints (Delphi: Byte) oder unsigned long ints (Delphi: Cardinal) festgelegt werden. Maps die Farbkomponentenwerte speichern (alle außer GL_PIXEL_MAP_I_TO_I und GL_PIXEL_MAP_S_TO_S), bewahren ihre Werte im Fließkommaformat, mit nicht definierter Mantissen- und Exponentengröße. Von glPixelMapfv festgelegte Fließkommawerte werden direkt in das interne Fließkommaformat dieser Maps konvertiert und dann auf den Intervall [0..1] begrenzt. Unsigned Int-Werte die von glPixelMapusv oder glPixelMapuiv festgelegt wurden, werden linear konvertiert so dass die größte abbildbare Integer auf 1.0 gemappt wird und 0 auf 0.0.
Maps die Indices speichern, GL_PIXEL_MAP_I_TO_I and GL_PIXEL_MAP_S_TO_S, halten ihre Werte im Festkommaformat mit einer unbestimmten Anzahl von Bits rechts vom binären Punkt (d.h. die Stellen vor dem Komma sind immer definiert, hinter dem Komma kann die Anzahl der Ziffern aber unterschiedlich sein). Fließkommawerte, die von glPixelMapusv und glPixelMapuiv gesetzt wurden, bestimmen ganze Integerwerte (alle Ziffern rechts vom binären Punkt sind 0).
Die nachfolgenden Tabellen zeigen die Initialisierungszustände der einzelnen Karten. Karten die über Farb- oder Schablonenindices indiziert werden, müssen mapsize=2^n (für beliebige n) sein. Ansonsten sind die Ergebnisse undefiniert. Die maximale erlaubte Größe für die einzelnen Karten ist implementationsabhängig und kann mit glGet und dem Argument GL_MAX_PIXEL_MAP_TABLE bestimmt werden.
Das einzelne Maximum wird auf alle Maps angewendet und beträgt mindestens 32.
GL_PIXEL_MAP_I_TO_I
Lookup Index | Farbindex |
---|---|
Lookup Value | Farbindex |
Initialisierungsgröße | 1 |
Initialisierungswert | 0.0 |
GL_PIXEL_MAP_S_TO_S
Lookup Index | Schablonenindex |
---|---|
Lookup Value | Schablonenindex |
Initialisierungsgröße | 1 |
Initialisierungswert | 0.0 |
GL_PIXEL_MAP_I_TO_R
Lookup Index | Farbindex |
---|---|
Lookup Value | R |
Initialisierungsgröße | 1 |
Initialisierungswert | 0.0 |
GL_PIXEL_MAP_I_TO_G
Lookup Index | Farbindex |
---|---|
Lookup Value | G |
Initialisierungsgröße | 1 |
Initialisierungswert | 0.0 |
GL_PIXEL_MAP_I_TO_B
Lookup Index | Farbindex |
---|---|
Lookup Value | B |
Initialisierungsgröße | 1 |
Initialisierungswert | 0.0 |
GL_PIXEL_MAP_I_TO_A
Lookup Index | Farbindex |
---|---|
Lookup Value | A |
Initialisierungsgröße | 1 |
Initialisierungswert | 0.0 |
GL_PIXEL_MAP_R_TO_R
Lookup Index | R |
---|---|
Lookup Value | R |
Initialisierungsgröße | 1 |
Initialisierungswert | 0.0 |
GL_PIXEL_MAP_G_TO_G
Lookup Index | G |
---|---|
Lookup Value | G |
Initialisierungsgröße | 1 |
Initialisierungswert | 0.0 |
GL_PIXEL_MAP_B_TO_B
Lookup Index | B |
---|---|
Lookup Value | B |
Initialisierungsgröße | 1 |
Initialisierungswert | 0.0 |
GL_PIXEL_MAP_A_TO_A
Lookup Index | A |
---|---|
Lookup Value | A |
Initialisierungsgröße | 1 |
Initialisierungswert | 0.0 |
Fehlermeldungen
GL_INVALID_ENUM wird generiert wenn map ein ungültiger Wert übergeben wird.
GL_INVALID_VALUE wird generiert wenn mapsize negativ oder größer als GL_MAX_PIXEL_MAP_TABLE ist.
GL_INVALID_VALUE wird generiert wenn map gleich einem der Werte
- GL_PIXEL_MAP_I_TO_I, GL_PIXEL_MAP_S_TO_S, GL_PIXEL_MAP_I_TO_R, GL_PIXEL_MAP_I_TO_G, GL_PIXEL_MAP_I_TO_B, oder GL_PIXEL_MAP_I_TO_A, ist und mapsize keine Power of two größe hat. (mapsize muss = 2^n sein.)
GL_INVALID_OPERATION wird generiert wenn glPixelMap innerhalb eines glBegin-glEnd Blocks aufgerufen wird.
Zugehörige Wertrückgaben
glGet mit Token GL_PIXEL_MAP_I_TO_I_SIZE
glGet mit Token GL_PIXEL_MAP_S_TO_S_SIZE
glGet mit Token GL_PIXEL_MAP_I_TO_R_SIZE
glGet mit Token GL_PIXEL_MAP_I_TO_G_SIZE
glGet mit Token GL_PIXEL_MAP_I_TO_B_SIZE
glGet mit Token GL_PIXEL_MAP_I_TO_A_SIZE
glGet mit Token GL_PIXEL_MAP_R_TO_R_SIZE
glGet mit Token GL_PIXEL_MAP_G_TO_G_SIZE
glGet mit Token GL_PIXEL_MAP_B_TO_B_SIZE
glGet mit Token GL_PIXEL_MAP_A_TO_A_SIZE
glGet mit Token GL_MAX_PIXEL_MAP_TABLE
Siehe auch
glCopyPixels, glDrawPixels, glPixelStore, glPixelTransfer, glReadPixels, glTexImage1D, glTexImage2D