glPixelMap: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
(Siehe auch)
K (Ausser -> Außer)
 
Zeile 79: Zeile 79:
 
: Überträgt Alphakomponenten auf Alphakomponenten.
 
: Ü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 ausser '''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.
+
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).
 
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).

Aktuelle Version vom 21. März 2012, 15:58 Uhr

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