Função glColorTableEXT
A função glColorTableEXT especifica o formato e o tamanho de uma paleta para texturas paletadas de destino.
Sintaxe
void WINAPI glColorTableEXT(
GLenum target,
GLenum internalFormat,
GLsizei width,
GLenum format,
GLenum type,
const GLvoid *data
);
Parâmetros
-
destino
-
A textura de destino que deve ter sua paleta alterada. Deve ser TEXTURE_1D, TEXTURE_2D, PROXY_TEXTURE_1D ou PROXY_TEXTURE_2D.
-
internalFormat
-
O formato interno e a resolução da paleta. Esse parâmetro pode assumir um dos seguintes valores simbólicos.
Constante Formato base R Bits G Bits B Bits Um 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
-
O tamanho da paleta. Deve ser 2n = 1 para algum inteiro n.
-
format
-
O formato dos dados de pixel. As seguintes constantes simbólicas são aceitas.
Valor Significado - GL_RGBA
Cada pixel é um grupo de quatro componentes nesta ordem: vermelho, verde, azul, alfa. O formato RGBA é determinado dessa forma: - A função glColorTableEXT converte valores de ponto flutuante diretamente em um formato interno com precisão não especificada. Os valores inteiros com sinal são mapeados linearmente para o formato interno, de modo que o valor inteiro representável mais positivo mapeia para 1,0 e o valor inteiro representável mais negativo é mapeado para -1,0. Os dados inteiros sem sinal são mapeados da mesma forma: o maior valor inteiro é mapeado para 1,0 e zero é mapeado para 0,0.
- A função glColorTableEXT multiplica os valores de cor resultantes por GL_c_SCALE e os adiciona a GL_c_BIAS, em que c é VERMELHO, VERDE, AZUL e ALFA para os respectivos componentes de cor. Os resultados são fixados no intervalo [0,1].
- Se GL_MAP_COLOR for TRUE, glColorTableEXT dimensiona cada componente de cor pelo tamanho da tabela de pesquisa GL_PIXEL_MAP_c_TO_c, em seguida, substitui o componente pelo valor referenciado nessa tabela; c é R, G, B ou A, respectivamente.
- A função glColorTableEXT converte as cores RGBA resultantes em fragmentos anexando as coordenadas z e textura da posição do varredura atual a cada pixel e atribuindo coordenadas de janela x e y ao nºfragmento, de modo quex?
=
xr + nlargura mod
Y? = yr +n / width
em que (xr , yr ) é a posição de varredura atual. - Esses fragmentos de pixel são tratados da mesma forma que os fragmentos gerados por pontos, linhas ou polígonos de rasterização. A função glColorTableEXT aplica mapeamento de textura, neblina e todas as operações de fragmento antes de gravar os fragmentos no framebuffer.
- GL_RED
Cada pixel é um único componente vermelho.
A função glColorTableEXT converte esse componente no formato interno da mesma forma que o componente vermelho de um pixel RGBA e, em seguida, converte-o em um pixel RGBA com verde e azul definido como 0,0 e alfa definido como 1,0. Após essa conversão, o pixel é tratado como se tivesse sido lido como um pixel RGBA.- GL_GREEN
Cada pixel é um único componente verde.
A função glColorTableEXT converte esse componente no formato interno da mesma forma que o componente verde de um pixel RGBA e o converte em um pixel RGBA com vermelho e azul definido como 0,0 e alfa definido como 1,0. Após essa conversão, o pixel é tratado como se tivesse sido lido como um pixel RGBA.- GL_BLUE
Cada pixel é um único componente azul.
A função glColorTableEXT converte esse componente no formato interno da mesma forma que o componente azul de um pixel RGBA e o converte em um pixel RGBA com vermelho e verde definido como 0,0 e alfa definido como 1,0. Após essa conversão, o pixel é tratado como se tivesse sido lido como um pixel RGBA.- GL_ALPHA
Cada pixel é um único componente alfa.
A função glColorTableEXT converte esse componente no formato interno da mesma forma que o componente alfa de um pixel RGBA e o converte em um pixel RGBA com vermelho, verde e azul definido como 0,0. Após essa conversão, o pixel é tratado como se tivesse sido lido como um pixel RGBA.- GL_RGB
Cada pixel é um grupo de três componentes nesta ordem: vermelho, verde, azul.
A função glColorTableEXT converte cada componente no formato interno da mesma forma que os componentes vermelho, verde e azul de um pixel RGBA. A cor tripla é convertida em um pixel RGBA com alfa definido como 1,0. Após essa conversão, o pixel é tratado como se tivesse sido lido como um pixel RGBA.- GL_BGR_EXT
Cada pixel é um grupo de três componentes nesta ordem: azul, verde, vermelho.
GL_BGR_EXT fornece um formato que corresponde ao layout de memória de DIBs (bitmaps independentes de dispositivo) do Windows. Assim, seus aplicativos podem usar os mesmos dados com chamadas de função do Windows e chamadas de função de pixel OpenGL.- GL_BGRA_EXT
Cada pixel é um grupo de quatro componentes nesta ordem: azul, verde, vermelho, alfa.
GL_BGRA_EXT fornece um formato que corresponde ao layout de memória de DIBs (bitmaps independentes de dispositivo) do Windows. Assim, seus aplicativos podem usar os mesmos dados com chamadas de função do Windows e chamadas de função de pixel OpenGL. -
tipo
-
O tipo de dados para dados. As seguintes constantes simbólicas são aceitas: GL_UNSIGNED_BYTE, GL_BYTE, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT e GL_FLOAT.
A tabela a seguir resume o significado das constantes válidas para o parâmetro de tipo .
Valor Significado - GL_UNSIGNED_BYTE
Inteiro de 8 bits sem sinal - GL_BYTE
Inteiro de 8 bits com sinal - GL_UNSIGNED_SHORT
Inteiro de 16 bits sem sinal - GL_SHORT
Inteiro de 16 bits com sinal - GL_UNSIGNED_INT
Inteiro de 32 bits sem sinal - GL_INT
Inteiro de 32 bits - GL_FLOAT
Valor do ponto flutuante de precisão simples -
data
-
Um ponteiro para os dados de textura paletados. Os dados são tratados como pixels únicos de uma entrada de paleta de textura 1D para uma entrada de paleta.
Retornar valor
Essa função não retorna um valor.
Códigos de erro
Os códigos de erro a seguir podem ser recuperados pela função glGetError .
Nome | Significado |
---|---|
|
width era um inteiro inválido. |
|
target, internalFormat, format ou type não era um valor aceito. |
|
A função foi chamada entre uma chamada para glBegin e a chamada correspondente para glEnd. |
Comentários
As texturas paletadas são definidas com uma paleta de cores e um conjunto de dados de imagem composto de índices para colorir entradas de uma paleta (uma tabela de cores).
A função glColorTableEXT especifica a paleta de texturas de uma textura de destino. Ele usa os dados da memória e converte os dados como se cada entrada de paleta fosse um único pixel de uma textura 1D. A função glColorTableEXT descompacta e converte os dados e os converte em um formato interno que corresponde ao formato especificado o mais próximo possível.
Se a largura de uma paleta for maior que o intervalo dos índices de cores nos dados de textura, algumas das entradas da paleta não serão utilizadas. Se a largura de uma paleta for menor que o intervalo dos índices de cores nos dados de textura, os bits mais significativos dos dados de textura serão ignorados e apenas o número apropriado de bits no índice será usado ao acessar a paleta. Quando você especifica um destino de proxy usando PROXY_TEXTURE_1D ou PROXY_TEXTURE_2D, a paleta da textura do proxy é redimensionada e seus parâmetros são definidos, mas nenhum dado é transferido ou acessado.
Quando o parâmetro de destino é GL_PROXY_TEXTURE_1D ou GL_PROXY_TEXTURE_2D, e a implementação não dá suporte aos valores especificados para formato ou largura, glColorTableEXT pode falhar ao criar a tabela de cores solicitada. Nesse caso, a tabela de cores está vazia e todos os parâmetros recuperados serão zero. Você pode determinar se o OpenGL dá suporte a um formato e tamanho de tabela de cores específicos chamando glColorTableEXT com um destino proxy e, em seguida, chamando glGetColorTableParameterivEXT ou glGetColorTableParameterfvEXT para determinar se o parâmetro de largura corresponde ao definido por glColorTableEXT. Se a largura recuperada for zero, a solicitação de tabela de cores por glColorTable falhará. Se a largura recuperada não for zero, você poderá chamar glColorTable com o destino real com TEXTURE_1D ou TEXTURE_2D para definir a tabela de cores.
Observação
A função glColorTableEXT é uma função de extensão que não faz parte da biblioteca OpenGL padrão, mas faz parte da extensão GL_EXT_paletted_texture. Para marcar se a implementação do OpenGL dá suporte a glColorTableEXT, chame glGetString(GL_EXTENSIONS). Se retornar GL_EXT_paletted_texture, há suporte para glColorTableEXT . Para obter o endereço de função de uma função de extensão, chame wglGetProcAddress.
Para recuperar os dados reais da tabela de cores especificados pela função glColorTableEXT , chame glGetColorTableEXT. Para recuperar os parâmetros, como largura e formato, da tabela de cores especificada pela função glColorTableEXT , chame a função glGetColorTableParameterivEXT ou glGetColorTableParameterfvEXT .
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte |
Windows 2000 Professional [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte |
Windows 2000 Server [somente aplicativos da área de trabalho] |
Cabeçalho |
|