glPixelMap
(Mehr Informationen/weitere Artikel) {{{1}}} |
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.
The entries in a map can be specified as single-precision floating-point numbers, unsigned short integers, or unsigned long integers. Maps that store color component values (all but GL_PIXEL_MAP_I_TO_I and GL_PIXEL_MAP_S_TO_S) retain their values in floating-point format, with unspecified mantissa and exponent sizes. Floating-point values specified by glPixelMapfv are converted directly to the internal floating-point format of these maps, then clamped to the range [0,1]. Unsigned integer values specified by glPixelMapusv and glPixelMapuiv are converted linearly such that the largest representable integer maps to 1.0, and zero maps to 0.0.
Die Einträge einer Map können als einfach genaue Floats(Delphi: single), unsigned short ints(Delphi:ShortInt) oder unsigned long integers(Delphi: Integer) destgelegt werden. Maps die Farbkomponentenwerte speichern(alle ausser GL_PIXEL_MAP_I_TO_I und GL_PIXEL_MAP_S_TO_S), bewahren ihre Werte im Float-Format, mit nicht definierter Mantissen- und Exponentengröße. Von glPixelMapfv festgelegte Floatwerte werden direkt in das interne Floatformat dieser Maps konvertiert und dann auf den Intervall [0..1] begrenzt. Unsigned Int-Werte festgelegt von glPixelMapusv und glPixelMapuiv werden linear konvertiert so dass die größte abbildbare Integer auf 1.0 gemappt wird und 0 auf 0.0.
Maps that store indices, GL_PIXEL_MAP_I_TO_I and GL_PIXEL_MAP_S_TO_S, retain their values in fixed-point format, with an unspecified number of bits to the right of the binary point. Floating-point values specified by glPixelMapfv are converted directly to the internal fixed-point format of these maps. Unsigned integer values specified by glPixelMapusv and glPixelMapuiv specify integer values, with all zeros to the right of the binary point.
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. The single maximum applies to all maps, and it is at least 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