Freigeben über


glGetColorTableEXT-Funktion

Die glGetColorTableEXT-Funktion ruft die Farbtabellendaten der aktuellen Zieltexturpalette ab.

Syntax

void WINAPI glGetColorTableEXT(
         GLenum target,
         GLenum format,
         GLenum type,
   const GLvoid *data
);

Parameter

Ziel

Die Zieltextur, deren Palette geändert werden soll. Muss TEXTURE_1D oder TEXTURE_2D 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 der folgenden Reihenfolge: rot, grün, blau, alpha. Das RGBA-Format wird auf folgende Weise bestimmt:
  1. Die glGetColorTableEXT-Funktion konvertiert Gleitkommawerte direkt in ein internes Format mit nicht angegebener Genauigkeit. Ganzzahlwerte 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. Ganzzahldaten ohne Vorzeichen werden ähnlich zugeordnet: Der größte ganzzahlige Wert wird 1,0 und null 0,0 zugeordnet.
  2. Die glGetColorTableEXT-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 auf den Bereich [0,1] geklemmt.
  3. Wenn GL_MAP_COLOR TRUE ist, skaliert glGetColorTableEXT jede Farbkomponente nach der Größe der Nachschlagetabelle GL_PIXEL_MAP_c_TO_c und ersetzt die Komponente durch den Wert, auf den sie in dieser Tabelle verweist. c ist R, G, B oder A.
  4. Die glGetColorTableEXT-Funktion konvertiert die resultierenden RGBA-Farben in Fragmente, indem die aktuelle Rasterposition Z-Koordinaten und Texturkoordinaten an jedes Pixel angefügt und dann dem n-ten Fragment x- und y-Fensterkoordinaten zugewiesen werden, sodass x? = xr + n mod width
    y? = yr + n/width
    Wobei (xr , yr ) die aktuelle Rasterposition ist.
  5. Diese Pixelfragmente werden dann genau wie die Fragmente behandelt, die durch das Rastern von Punkten, Linien oder Polygonen generiert werden. Die glGetColorTableEXT-Funktion wendet Texturzuordnung, Nebel und alle Fragmentvorgänge an, bevor die Fragmente in den Framebuffer geschrieben werden.
GL_RED
Jedes Pixel ist eine einzelne rote Komponente.
Die glGetColorTableEXT-Funktion konvertiert diese Komponente auf die gleiche Weise in das interne Format wie die rote Komponente eines RGBA-Pixels, konvertiert sie dann in ein RGBA-Pixel, dessen Grün und Blau auf 0,0 und Alpha auf 1,0 festgelegt ist. Nach dieser Konvertierung wird das Pixel so behandelt, als wäre es als RGBA-Pixel gelesen worden.
GL_GREEN
Jedes Pixel ist eine einzelne grüne Komponente.
Die glGetColorTableEXT-Funktion konvertiert diese Komponente auf die gleiche Weise in das interne Format wie die grüne Komponente eines RGBA-Pixels und konvertiert sie dann in ein RGBA-Pixel, dessen Rot und Blau auf 0,0 und Alpha auf 1,0 festgelegt ist. Nach dieser Konvertierung wird das Pixel so behandelt, als wäre es als RGBA-Pixel gelesen worden.
GL_BLUE
Jedes Pixel ist eine einzelne blaue Komponente.
Die glGetColorTableEXT-Funktion konvertiert diese Komponente auf die gleiche Weise in das interne Format wie die blaue Komponente eines RGBA-Pixels und konvertiert sie dann in ein RGBA-Pixel, dessen Rot und Grün auf 0,0 und Alpha auf 1,0 festgelegt ist. Nach dieser Konvertierung wird das Pixel so behandelt, als wäre es als RGBA-Pixel gelesen worden.
GL_ALPHA
Jedes Pixel ist eine einzelne Alphakomponente.
Die glGetColorTableEXT-Funktion konvertiert diese Komponente auf die gleiche Weise in das interne Format wie die Alphakomponente eines RGBA-Pixels und konvertiert sie dann in ein RGBA-Pixel, dessen Rot, Grün und Blau auf 0,0 festgelegt ist. Nach dieser Konvertierung wird das Pixel so behandelt, als wäre es als RGBA-Pixel gelesen worden.
GL_RGB
Jedes Pixel ist eine Gruppe von drei Komponenten in dieser Reihenfolge: rot, grün, blau.
Die glGetColorTableEXT-Funktion konvertiert jede Komponente auf die gleiche Weise in das interne Format wie die roten, grünen und blauen Komponenten eines RGBA-Pixels. Das Farbdreifach wird in ein RGBA-Pixel konvertiert, bei dem das Alpha auf 1,0 festgelegt ist. Nach dieser Konvertierung wird das Pixel so behandelt, als wäre es als RGBA-Pixel gelesen worden.
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 mit dem Speicherlayout von geräteunabhängigen Bitmaps (DEVICE-Independent Bitmaps, DIBs) von Microsoft Windows übereinstimmt. Daher können Ihre Anwendungen dieselben 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 geräteunabhängigen Bitmaps (Device-Independent Bitmaps, DIBs) von Windows entspricht. Daher können Ihre Anwendungen dieselben Daten mit Windows-Funktionsaufrufen und OpenGL-Pixelfunktionsaufrufen verwenden.

type

Der Datentyp für Daten. Im Folgenden werden die akzeptierten symbolischen Konstanten und ihre Bedeutungen aufgeführt.

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

Verweist auf den Speicherort, an dem zurückgegebene Farbtabelleninformationen gespeichert werden sollen. Jeder Farbtabelleneintrag wird so gespeichert, als ob es sich um ein einzelnes Pixel einer 1D-Textur handelt. Da alle Texturen über eine Standardpalette verfügen, gibt glGetColorTableEXT immer Paletteninformationen zurück, auch wenn die Texturdaten nicht in einem Palettenformat vorliegen.

Rückgabewert

Diese Funktion gibt keinen Wert zurück.

Fehlercodes

Die folgenden Fehlercodes können von der glGetError-Funktion abgerufen werden.

Name Bedeutung
GL_INVALID_ENUM
target, format oder type war kein akzeptierter Wert.
GL_INVALID_OPERATION
Die Funktion wurde zwischen einem Aufruf von glBegin und dem entsprechenden Aufruf von glEnd aufgerufen.

Bemerkungen

Die glGetColorTableEXT-Funktion ruft die tatsächlichen Farbtabellendaten ab, die von glColorTableEXT und glColorSubTableEXT angegeben werden.

Die glGetColorTableEXT-Funktion ist eine Erweiterungsfunktion, die nicht Teil der OpenGL-Standardbibliothek, sondern Teil der GL_EXT_paletted_texture-Erweiterung ist. Rufen Sie glGetString(GL_EXTENSIONS) auf, um zu überprüfen, ob Ihre Implementierung von OpenGL glGetColorTableEXT unterstützt. Wenn GL_EXT_paletted_texture zurückgegeben wird, wird glGetColorTableEXT unterstützt. Rufen Sie wglGetProcAddress auf, um die Funktionsadresse einer Erweiterungsfunktion abzurufen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server)
Windows 2000 Server [nur Desktop-Apps]
Header
Gl.h

Siehe auch

glColorSubTableEXT

glColorTableEXT

glGetColorTableParameterfvEXT

glGetColorTableParameterivEXT

wglGetProcAddress