Share via


funzione glColorTableEXT

La funzione glColorTableEXT specifica il formato e le dimensioni di una tavolozza per trame tavolozzate mirate.

Sintassi

void WINAPI glColorTableEXT(
         GLenum  target,
         GLenum  internalFormat,
         GLsizei width,
         GLenum  format,
         GLenum  type,
   const GLvoid  *data
);

Parametri

target

Trama di destinazione che deve essere modificata. Deve essere TEXTURE_1D, TEXTURE_2D, PROXY_TEXTURE_1D o PROXY_TEXTURE_2D.

internalFormat

Formato interno e risoluzione della tavolozza. Questo parametro può assumere uno dei valori simbolici seguenti.

Costante Formato di base Bit R Bit G Bit B Bit
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

Dimensione della tavolozza. Deve essere 2n = 1 per un numero intero n.

format

Formato dei dati pixel. Vengono accettate le costanti simboliche seguenti.

Valore Significato
GL_RGBA
Ogni pixel è un gruppo di quattro componenti in questo ordine: rosso, verde, blu, alfa. Il formato RGBA viene determinato in questo modo:
  1. La funzione glColorTableEXT converte i valori a virgola mobile direttamente in un formato interno con precisione non specificata. I valori integer con segno vengono mappati in modo lineare al formato interno in modo che il valore integer rappresentabile più positivo sia mappato a 1,0 e che il valore intero rappresentabile più negativo sia mappato a -1,0. I dati integer senza segno vengono mappati in modo analogo: il valore intero più grande è mappato a 1,0 e zero esegue il mapping a 0,0.
  2. La funzione glColorTableEXT moltiplica i valori di colore risultanti per GL_c_SCALE e li aggiunge a GL_c_BIAS, dove c è RED, GREEN, BLUE e ALPHA per i rispettivi componenti di colore. I risultati sono bloccati all'intervallo [0,1].
  3. Se GL_MAP_COLOR è TRUE, glColorTableEXT ridimensiona ogni componente di colore in base alle dimensioni della tabella di ricerca GL_PIXEL_MAP_c_TO_c, sostituisce il componente in base al valore a cui fa riferimento nella tabella; c è rispettivamente R, G, B o A.
  4. La funzione glColorTableEXT converte i colori RGBA risultanti in frammenti collegando le coordinate della posizione raster corrente z e delle trame in ogni pixel, quindi assegnando coordinate x e y al frammento nin modo chex? = Larghezzaxr + n mod
    Y? = yr +n/larghezza
    dove (xr , yr ) è la posizione raster corrente.
  5. Questi frammenti di pixel vengono quindi trattati come i frammenti generati dalla rasterizzazione di punti, linee o poligoni. La funzione glColorTableEXT applica il mapping delle trame, la nebbia e tutte le operazioni di frammento prima di scrivere i frammenti nel framebuffer.
GL_RED
Ogni pixel è un singolo componente rosso.
La funzione glColorTableEXT converte questo componente nel formato interno nello stesso modo in cui il componente rosso di un pixel RGBA è, quindi lo converte in un pixel RGBA con verde e blu impostato su 0,0 e alfa impostato su 1,0. Dopo questa conversione, il pixel viene considerato come se fosse stato letto come pixel RGBA.
GL_GREEN
Ogni pixel è un singolo componente verde.
La funzione glColorTableEXT converte questo componente nel formato interno nello stesso modo in cui il componente verde di un pixel RGBA è e lo converte in un pixel RGBA con rosso e blu impostato su 0,0 e alfa impostato su 1,0. Dopo questa conversione, il pixel viene considerato come se fosse stato letto come pixel RGBA.
GL_BLUE
Ogni pixel è un singolo componente blu.
La funzione glColorTableEXT converte questo componente nel formato interno nello stesso modo in cui il componente blu di un pixel RGBA è e lo converte in un pixel RGBA con rosso e verde impostato su 0,0 e alfa impostato su 1,0. Dopo questa conversione, il pixel viene considerato come se fosse stato letto come pixel RGBA.
GL_ALPHA
Ogni pixel è un singolo componente alfa.
La funzione glColorTableEXT converte questo componente nel formato interno nello stesso modo in cui il componente alfa di un pixel RGBA è e lo converte in un pixel RGBA con rosso, verde e blu impostato su 0,0. Dopo questa conversione, il pixel viene considerato come se fosse stato letto come pixel RGBA.
GL_RGB
Ogni pixel è un gruppo di tre componenti in questo ordine: rosso, verde, blu.
La funzione glColorTableEXT converte ogni componente nel formato interno nello stesso modo in cui i componenti rosso, verde e blu di un pixel RGBA sono. Il colore triplo viene convertito in un pixel RGBA con alfa impostato su 1,0. Dopo questa conversione, il pixel viene considerato come se fosse stato letto come pixel RGBA.
GL_BGR_EXT
Ogni pixel è un gruppo di tre componenti in questo ordine: blu, verde, rosso.
GL_BGR_EXT fornisce un formato che corrisponde al layout di memoria delle bitmap indipendenti dal dispositivo Windows( DIB). Le applicazioni possono quindi usare gli stessi dati con le chiamate di funzione di Windows e le chiamate di funzione openGL pixel.
GL_BGRA_EXT
Ogni pixel è un gruppo di quattro componenti in questo ordine: blu, verde, rosso, alfa.
GL_BGRA_EXT fornisce un formato che corrisponde al layout di memoria delle bitmap indipendenti dal dispositivo Windows( DIB). Le applicazioni possono quindi usare gli stessi dati con le chiamate di funzione di Windows e le chiamate di funzione openGL pixel.

type

Tipo di dati per i dati. Vengono accettate le costanti simboliche seguenti: GL_UNSIGNED_BYTE, GL_BYTE, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT e GL_FLOAT.

Nella tabella seguente viene riepilogato il significato delle costanti valide per il parametro di tipo .

Valore Significato
GL_UNSIGNED_BYTE
Intero senza segno a 8 bit
GL_BYTE
Valore intero con segno a 8 bit
GL_UNSIGNED_SHORT
Intero senza segno a 16 bit
GL_SHORT
Valore intero a 16 bit con segno
GL_UNSIGNED_INT
Intero senza segno a 32 bit
GL_INT
Intero a 32 bit
GL_FLOAT
Valore a virgola mobile e precisione singola

data

Puntatore ai dati della trama con tavolozza. I dati vengono considerati come singoli pixel di una voce della tavolozza delle trame 1D per una voce di tavolozza.

Valore restituito

Questa funzione non restituisce un valore.

Codici di errore

I codici di errore seguenti possono essere recuperati dalla funzione glGetError .

Nome Significato
GL_INVALID_VALUE
width è un numero intero non valido.
GL_INVALID_ENUM
target, internalFormat, format o type non è un valore accettato.
GL_INVALID_OPERATION
La funzione è stata chiamata tra una chiamata a glBegin e la chiamata corrispondente a glEnd.

Commenti

Le trame tavolozzate sono definite con una tavolozza di colori e un set di dati immagine costituiti da indici per le voci di colore di una tavolozza (una tabella colori).

La funzione glColorTableEXT specifica la tavolozza delle trame di una trama di destinazione. Accetta i dati dalla memoria e converte i dati come se ogni voce della tavolozza fosse un singolo pixel di una trama 1D. La funzione glColorTableEXT decomprime e converte i dati e li converte in un formato interno che corrisponde al formato specificato il più possibile.

Se la larghezza di una tavolozza è maggiore dell'intervallo degli indici di colore nei dati della trama, alcune voci della tavolozza non vengono usate. Se la larghezza di una tavolozza è inferiore all'intervallo degli indici di colore nei dati delle trame, i bit più significativi dei dati della trama vengono ignorati e viene usato solo il numero appropriato di bit nell'indice quando si accede alla tavolozza. Quando si specifica una destinazione proxy usando PROXY_TEXTURE_1D o PROXY_TEXTURE_2D, la tavolozza della trama del proxy viene ridimensionata e i relativi parametri vengono impostati, ma non viene trasferito o accessibile alcun dato.

Quando il parametro di destinazione è GL_PROXY_TEXTURE_1D o GL_PROXY_TEXTURE_2D e l'implementazione non supporta i valori specificati per il formato o la larghezza, glColorTableEXT non può creare la tabella dei colori richiesta. In questo caso, la tabella dei colori è vuota e tutti i parametri recuperati saranno zero. È possibile determinare se OpenGL supporta un particolare formato e dimensioni di tabella dei colori chiamando glColorTableEXT con una destinazione proxy e quindi chiamando glGetColorTableParameterivEXT o glGetColorTableParameterfvEXT per determinare se il parametro width corrisponde a quello impostato da glColorTableEXT. Se la larghezza recuperata è zero, la richiesta di tabella dei colori da glColorTable non è riuscita. Se la larghezza recuperata non è zero, è possibile chiamare glColorTable con la destinazione reale con TEXTURE_1D o TEXTURE_2D per impostare la tabella dei colori.

Nota

La funzione glColorTableEXT è una funzione di estensione che non fa parte della libreria OpenGL standard, ma fa parte dell'estensione GL_EXT_paletted_texture. Per verificare se l'implementazione di OpenGL supporta glColorTableEXT, chiamare glGetString(GL_EXTENSIONS). Se restituisce GL_EXT_paletted_texture, glColorTableEXT è supportato. Per ottenere l'indirizzo della funzione di una funzione di estensione, chiamare wglGetProcAddress.

Per recuperare i dati effettivi della tabella dei colori specificati dalla funzione glColorTableEXT, chiamare glGetColorTableEXT. Per recuperare i parametri, ad esempio larghezza e formato, della tabella dei colori specificata dalla funzione glColorTableEXT, chiamare la funzione glGetColorTableParameterivEXT o glGetColorTableParameterfvEXT.

Requisiti

Requisito Valore
Client minimo supportato
Windows 2000 Professional [solo app desktop]
Server minimo supportato
Windows 2000 Server [solo app desktop]
Intestazione
Gl.h

Vedi anche

glBegin

glColorSubTableEXT

glEnd

glGetColorTableEXT

glGetColorTableParameterfvEXT

glGetColorTableParameterivEXT

wglGetProcAddress