gl.PixelMap(map, mapsize, valuesArray)
gl.PixelMap()
richtet Transfertabellen oder Karten ein, die verwendet
werden von gl.CopyPixels(), gl.CopyTexImage(),
gl.CopyTexSubImage(), gl.DrawPixels(),
gl.ReadPixels(), gl.TexImage()
und auch gl.TexImage1D(), gl.TexImage2D(),
gl.TexSubImage(), gl.TexSubImage1D()
und gl.TexSubImage2D(). Die Verwendung dieser Karten
ist auf der Referenzseite gl.PixelTransfer() vollständig
beschrieben und teilweise in den Referenzseiten für die Befehle Pixel und
Texturbild. Nur das Angeben der Karten ist auf dieser Referenzseite
beschrieben.
map
ist ein symbolischer Kartenname, der eine von zehn zu erstellenden Karten
angibt. valuesArray
ist eine Tabelle, die ein Feld von Werten für den angegebenen
Kartennamen enthält. Die zehn Karten sind wie folgt:
#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
#GL_PIXEL_MAP_A_TO_A
Die Einträge in einer Karte werden als Gleitkommazahlen angegeben. Karten, die
Farbkomponentenwerte speichern (alle mit Ausnahme von #GL_PIXEL_MAP_I_TO_I
und #GL_PIXEL_MAP_S_TO_S
), behalten ihre Werte im Gleitkommaformat, mit nicht
angegebener Fangvorrichtung und Exponentengrößen. Die durch gl.PixelMap()
angegebenen Gleitkommawerte werden direkt in das interne Gleitkommaformat
dieser Karten konvertiert und dann in den Bereich [0,1] festgelegt.
Karten, die Indizes speichern, #GL_PIXEL_MAP_I_TO_I
und #GL_PIXEL_MAP_S_TO_S
,
behalten ihre Werte im Festkommaformat, mit einer unbestimmten Anzahl von
Bits rechts neben dem Binärpunkt. Gleitkommawerte, die durch gl.PixelMap()
angegeben werden, werden direkt in das interne Festkommaformat dieser
Karten umgewandelt.
Die folgende Tabelle zeigt die anfänglichen Größen und Werte für jede der
Karten. Karten, die entweder durch Farb- oder Schablonenindizes gekennzeichnet
sind, müssen für einige mapsize = 2^n haben oder die Ergebnisse sind
undefiniert. Die maximal zulässige Größe für jede Map hängt von der
Implementierung ab und kann durch Aufruf von gl.Get() mit dem Argument
#GL_MAX_PIXEL_MAP_TABLE
bestimmt werden. Das einzelne Maximum gilt
für alle Karten; es beträgt mindestens 32.
Karte Lookup-Index Lookup-Wert Def Grösse Def Wert -------------------------------------------------------------------- #GL_PIXEL_MAP_I_TO_I Farbindex Farbindex 1 0 #GL_PIXEL_MAP_S_TO_S Schablonenindex Schablonenindex 1 0 #GL_PIXEL_MAP_I_TO_R Farbindex R 1 0 #GL_PIXEL_MAP_I_TO_G Farbindex G 1 0 #GL_PIXEL_MAP_I_TO_B Farbindex B 1 0 #GL_PIXEL_MAP_I_TO_A Farbindex A 1 0 #GL_PIXEL_MAP_R_TO_R R R 1 0 #GL_PIXEL_MAP_G_TO_G G G 1 0 #GL_PIXEL_MAP_B_TO_B B B 1 0 #GL_PIXEL_MAP_A_TO_A A A 1 0 |
Weitere Informationen finden Sie in einem OpenGL-Referenzhandbuch.
#GL_INVALID_ENUM
wird erzeugt, wenn map
kein akzeptierter Wert ist.
#GL_INVALID_VALUE
wird erzeugt, wenn mapsize kleiner als eins oder größer
als #GL_MAX_PIXEL_MAP_TABLE
ist.
#GL_INVALID_VALUE
wird erzeugt, wenn map
#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
und die Kartengröße
keine Zweierpotenz ist.
#GL_INVALID_OPERATION
wird erzeugt, wenn gl.PixelMap()
zwischen
gl.Begin() und gl.End() ausgeführt wird.
gl.Get() mit dem Argument #GL_PIXEL_MAP_I_TO_I_SIZE
gl.Get() mit dem Argument #GL_PIXEL_MAP_S_TO_S_SIZE
gl.Get() mit dem Argument #GL_PIXEL_MAP_I_TO_R_SIZE
gl.Get() mit dem Argument #GL_PIXEL_MAP_I_TO_G_SIZE
gl.Get() mit dem Argument #GL_PIXEL_MAP_I_TO_B_SIZE
gl.Get() mit dem Argument #GL_PIXEL_MAP_I_TO_A_SIZE
gl.Get() mit dem Argument #GL_PIXEL_MAP_R_TO_R_SIZE
gl.Get() mit dem Argument #GL_PIXEL_MAP_G_TO_G_SIZE
gl.Get() mit dem Argument #GL_PIXEL_MAP_B_TO_B_SIZE
gl.Get() mit dem Argument #GL_PIXEL_MAP_A_TO_A_SIZE
gl.Get() mit dem Argument #GL_MAX_PIXEL_MAP_TABLE