glColorTableEXT-Funktion
Die glColorTableEXT-Funktion gibt das Format und die Größe einer Palette für zielorientierte Palettentexturen an.
Syntax
void WINAPI glColorTableEXT(
GLenum target,
GLenum internalFormat,
GLsizei width,
GLenum format,
GLenum type,
const GLvoid *data
);
Parameter
-
Ziel
-
Die Zieltextur, deren Palette geändert werden soll. Muss TEXTURE _ 1D, TEXTURE _ 2D, PROXY _ TEXTURE _ 1D oder PROXY _ TEXTURE _ 2D sein.
-
internalFormat
-
Das interne Format und die Auflösung der Palette. Dieser Parameter kann einen der folgenden symbolischen Werte annehmen.
Konstante Basisformat R-Bits G Bits B-Bits A Bits GL _ R3 _ G3 _ B2 GL _ RGB 3 3 2 GL _ RGB4 GL _ RGB 4 4 4 GL _ RGB5 GL _ RGB 5 5 5 GL _ RGB8 GL _ RGB 8 8 8 GL _ RGB10 GL _ RGB 10 10 10 GL _ RGB12 GL _ RGB 12 12 12 GL _ RGB16 GL _ RGB 16 16 16 GL _ RGBA2 GL _ RGBA 2 2 2 2 GL _ RGBA4 GL _ RGBA 4 4 4 4 GL _ RGB5 _ A1 GL _ RGBA 5 5 5 1 GL _ RGBA8 GL _ RGBA 8 8 8 8 GL _ RG10 _ A2 GL _ RGBA 10 10 10 2 GL _ RGB12 GL _ RGBA 12 12 12 12 GL _ RGBA16 GL _ RGBA 16 16 16 16 -
width
-
Die Größe der Palette. Muss 2n = 1 für eine ganze Zahl n sein.
-
format
-
Das Format der Pixeldaten. Die folgenden symbolischen Konstanten werden akzeptiert.
Wert Bedeutung - GL_RGBA
Jedes Pixel ist eine Gruppe von vier Komponenten in dieser Reihenfolge: Rot, Grün, Blau, Alpha. Das RGBA-Format wird auf diese Weise bestimmt: - Die glColorTableEXT-Funktion konvertiert Gleitkommawerte direkt in ein internes Format mit nicht angegebener Genauigkeit. Ganzzahlige Werte mit Vorzeichen werden linear dem internen Format zugeordnet, sodass der positivste darstellbare ganzzahlige Wert 1,0 und der negativste darstellbare ganzzahlige Wert -1,0 zugeordnet wird. Ganzzahlige Daten ohne Vorzeichen werden ähnlich zugeordnet: Der größte ganzzahlige Wert wird 1,0 und 0,0 0 zugeordnet.
- Die glColorTableEXT-Funktion multipliziert die resultierenden Farbwerte mit GL_c_SCALE und fügt sie GL_c_BIAS hinzu, wobei c für die jeweiligen Farbkomponenten ROT, GRÜN, BLAU und ALPHA ist. Die Ergebnisse werden an den Bereich [0,1] klammern.
- Wenn GL_MAP_COLOR TRUEist, skaliert glColorTableEXT jede Farbkomponente nach der Größe der Nachschlagetabelle GL_PIXEL_MAP_c_TO_c und ersetzt dann die Komponente durch den Wert, auf den sie in dieser Tabelle verweist. c ist R, G, B bzw. A.
- Die glColorTableEXT-Funktion konvertiert die resultierenden RGBA-Farben in Fragmente, indem sie die aktuelle Rasterposition z-coordinate und Texturkoordinaten an jedes Pixel anfügt und dann dem n-tenFragment x- und y-Fensterkoordinaten zuweist, sodassx? = xr + n mod width
Y? = yr + n/width
wobei (xr , yr ) die aktuelle Rasterposition ist. - Diese Pixelfragmente werden dann genau wie die Fragmente behandelt, die durch Rastern von Punkten, Linien oder Polygonen generiert werden. Die glColorTableEXT-Funktion wendet Texturzuordnung, Oberfläche und alle Fragmentvorgänge an, bevor die Fragmente in den Framepuffer geschrieben werden.
- GL_RED
Jedes Pixel ist eine einzelne rote Komponente.
Die glColorTableEXT-Funktion konvertiert diese Komponente in das interne Format auf die gleiche Weise wie die rote Komponente eines RGBA-Pixels. Anschließend wird sie in ein RGBA-Pixel konvertiert, wobei grün und blau auf 0,0 und alpha auf 1,0 festgelegt ist. Nach dieser Konvertierung wird das Pixel so behandelt, als ob es als RGBA-Pixel gelesen worden wäre.- GL_GREEN
Jedes Pixel ist eine einzelne grüne Komponente.
Die glColorTableEXT-Funktion konvertiert diese Komponente in das interne Format auf die gleiche Weise wie die grüne Komponente eines RGBA-Pixels und konvertiert sie dann in ein RGBA-Pixel, wobei rot und blau auf 0,0 und alpha auf 1,0 festgelegt ist. Nach dieser Konvertierung wird das Pixel so behandelt, als ob es als RGBA-Pixel gelesen worden wäre.- GL_BLUE
Jedes Pixel ist eine einzelne blaue Komponente.
Die glColorTableEXT-Funktion konvertiert diese Komponente in das interne Format auf die gleiche Weise wie die blaue Komponente eines RGBA-Pixels und konvertiert sie dann in ein RGBA-Pixel, wobei rot und grün auf 0,0 und alpha auf 1,0 festgelegt ist. Nach dieser Konvertierung wird das Pixel so behandelt, als ob es als RGBA-Pixel gelesen worden wäre.- GL_ALPHA
Jedes Pixel ist eine einzelne Alphakomponente.
Die glColorTableEXT-Funktion konvertiert diese Komponente in das interne Format auf die gleiche Weise wie die Alphakomponente eines RGBA-Pixels und konvertiert sie dann in ein RGBA-Pixel, wobei rot, grün und blau auf 0,0 festgelegt ist. Nach dieser Konvertierung wird das Pixel so behandelt, als ob es als RGBA-Pixel gelesen worden wäre.- GL_RGB
Jedes Pixel ist eine Gruppe von drei Komponenten in dieser Reihenfolge: rot, grün, blau.
Die glColorTableEXT-Funktion konvertiert jede Komponente in das interne Format auf die gleiche Weise wie die roten, grünen und blauen Komponenten eines RGBA-Pixels. Die Farbe Triple wird in ein RGBA-Pixel konvertiert, wobei alpha auf 1,0 festgelegt ist. Nach dieser Konvertierung wird das Pixel so behandelt, als ob es als RGBA-Pixel gelesen worden wäre.- GL_BGR_EXT
Jedes Pixel ist eine Gruppe von drei Komponenten in dieser Reihenfolge: blau, grün, rot.
GL_BGR_EXT stellt ein Format bereit, das dem Speicherlayout von Windows geräteunabhängigen Bitmaps (DIBs) entspricht. Daher können Ihre Anwendungen die gleichen Daten mit Windows Funktionsaufrufen und OpenGL-Pixelfunktionsaufrufen verwenden.- GL_BGRA_EXT
Jedes Pixel ist eine Gruppe von vier Komponenten in dieser Reihenfolge: blau, grün, rot, alpha.
GL_BGRA_EXT stellt ein Format bereit, das dem Speicherlayout von Windows geräteunabhängigen Bitmaps (DIBs) entspricht. Daher können Ihre Anwendungen die gleichen Daten mit Windows Funktionsaufrufen und OpenGL-Pixelfunktionsaufrufen verwenden. -
type
-
Der Datentyp für die Daten. Die folgenden symbolischen Konstanten werden akzeptiert: GL _ UNSIGNED _ BYTE, GL _ BYTE, GL _ UNSIGNED _ SHORT, GL _ SHORT, GL _ UNSIGNED _ INT, GL _ INT und GL _ FLOAT.
In der folgenden Tabelle wird die Bedeutung der gültigen Konstanten für den Typparameter zusammengefasst.
Wert Bedeutung - GL _ UNSIGNED _ BYTE
8-Bit-Ganzzahl ohne Vorzeichen - GL _ BYTE
Ganze 8-Bit-Zahl mit Vorzeichen - GL _ UNSIGNED _ SHORT
16-Bit-Ganzzahl ohne Vorzeichen - GL _ SHORT
Ganze 16-Bit-Zahl mit Vorzeichen - GL _ UNSIGNED _ INT
32-Bit Ganzzahl ohne Vorzeichen - GL _ INT
32-bit integer - GL _ FLOAT
Gleitkommawert mit einfacher Genauigkeit -
data
-
Ein Zeiger auf die Palettentexturdaten. Die Daten werden als einzelne Pixel eines 1D-Texturpaletteneintrags für einen Paletteneintrag behandelt.
Rückgabewert
Diese Funktion gibt keinen Wert zurück.
Fehlercodes
Die folgenden Fehlercodes können von der glGetError-Funktion abgerufen werden.
| Name | Bedeutung |
|---|---|
|
width war eine ungültige ganze Zahl. |
|
Target, internalFormat, format oder type war kein akzeptierter Wert. |
|
Die Funktion wurde zwischen einem Aufruf von glBegin und dem entsprechenden Aufruf von glEndaufgerufen. |
Bemerkungen
Palettentexturen werden mit einer Palette von Farben und einem Satz von Bilddaten definiert, die aus Indizes für Farbeinträge einer Palette (einer Farbtabelle) bestehen.
Die glColorTableEXT-Funktion gibt die Texturpalette einer Zieltextur an. Sie übernimmt die Daten aus dem Arbeitsspeicher und konvertiert die Daten so, als ob jeder Paletteneintrag ein einzelnes Pixel einer 1D-Textur wäre. Die glColorTableEXT-Funktion entpackt und konvertiert die Daten und übersetzt sie in ein internes Format, das dem angegebenen Format so genau wie möglich entspricht.
Wenn die Breite einer Palette größer als der Bereich der Farbindizes in den Texturdaten ist, werden einige der Paletteneinträge nicht verwendet. Wenn die Breite einer Palette kleiner als der Bereich der Farbindizes in den Texturdaten ist, werden die wichtigsten Bits der Texturdaten ignoriert, und beim Zugriff auf die Palette wird nur die entsprechende Anzahl von Bits im Index verwendet. Wenn Sie ein Proxyziel mit PROXY _ TEXTURE _ 1D oder PROXY _ TEXTURE _ 2D angeben, wird die Größe der Palette der Proxytextur geändert, und ihre Parameter werden festgelegt, aber es werden keine Daten übertragen oder darauf zugegriffen.
Wenn der Zielparameter GL _ PROXY TEXTURE _ _ 1D oder GL _ PROXY TEXTURE 2D ist und die Implementierung die für _ format oder _ width angegebenen Werte nicht unterstützt, kann glColorTableEXT die angeforderte Farbtabelle nicht erstellen. In diesem Fall ist die Farbtabelle leer, und alle abgerufenen Parameter sind 0 (null). Sie können bestimmen, ob OpenGL ein bestimmtes Farbtabellenformat und eine bestimmte Größe unterstützt, indem Sie glColorTableEXT mit einem Proxyziel aufrufen und dann glGetColorTableParameterivEXT oder glGetColorTableParameterfvEXT aufrufen, um zu bestimmen, ob der Width-Parameter mit dem von glColorTableEXT festgelegten übereinstimmt. Wenn die abgerufene Breite 0 (null) ist, ist die Farbtabellenanforderung von glColorTable fehlgeschlagen. Wenn die abgerufene Breite nicht 0 (null) ist, können Sie glColorTable mit dem echten Ziel mit TEXTURE _ 1D oder TEXTURE _ 2D aufrufen, um die Farbtabelle festzulegen.
Hinweis
Die glColorTableEXT-Funktion ist eine Erweiterungsfunktion, die nicht Teil der OpenGL-Standardbibliothek ist, sondern Teil der Texturerweiterung der GL _ _ EXT-Palette _ ist. Um zu überprüfen, ob Ihre Implementierung von OpenGL glColorTableEXT unterstützt, rufen Sie glGetString(GL _ EXTENSIONS) auf. Wenn eine GL _ _ EXT-Palettentextur zurückgegeben _ wird, wird glColorTableEXT unterstützt. Um die Funktionsadresse einer Erweiterungsfunktion zu erhalten, rufen Sie wglGetProcAddress auf.
Rufen Sie glGetColorTableEXTauf, um die tatsächlichen Farbtabellendaten abzurufen, die von der glColorTableEXT-Funktion angegeben werden. Rufen Sie die glGetColorTableParameterivEXT- oder glGetColorTableParameterfvEXT-Funktion auf, um die Parameter wie Breite und Format der von der glColorTableEXT-Funktion angegebenen Farbtabelle abzurufen.
Requirements (Anforderungen)
| Anforderung | Wert |
|---|---|
| Unterstützte Mindestversion (Client) |
Windows 2000 Professional [nur Desktop-Apps] |
| Unterstützte Mindestversion (Server) |
Windows 2000 Server [nur Desktop-Apps] |
| Header |
|