Compartir a través de


Función glColorTableEXT

La función glColorTableEXT especifica el formato y el tamaño de una paleta para las texturas paletas de destino.

Sintaxis

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

Parámetros

Destino

La textura de destino que va a cambiar su paleta. Debe ser TEXTURE_1D, TEXTURE_2D, PROXY_TEXTURE_1D o PROXY_TEXTURE_2D.

internalFormat

Formato interno y resolución de la paleta. Este parámetro puede suponer uno de los siguientes valores simbólicos.

Constante Formato base 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

Tamaño de la paleta. Debe ser 2n = 1 para algunos enteros n.

format

Formato de los datos de píxeles. Se aceptan las siguientes constantes simbólicas.

Value Significado
GL_RGBA
Cada píxel es un grupo de cuatro componentes en este orden: rojo, verde, azul, alfa. El formato RGBA se determina de esta manera:
  1. La función glColorTableEXT convierte los valores de punto flotante directamente en un formato interno con precisión no especificada. Los valores enteros con signo se asignan linealmente al formato interno, de forma que el valor entero representable más positivo se asigna a 1,0 y el valor entero más negativo representable se asigna a -1,0. Los datos enteros sin signo se asignan de forma similar: el valor entero más grande se asigna a 1,0 y cero se asigna a 0,0.
  2. La función glColorTableEXT multiplica los valores de color resultantes por GL_c_SCALE y los agrega a GL_c_BIAS, donde c es RED, GREEN, BLUE y ALPHA para los componentes de color respectivos. Los resultados se fijan en el intervalo [0,1].
  3. Si GL_MAP_COLOR es TRUE, glColorTableEXT escala cada componente de color por el tamaño de la tabla de búsqueda GL_PIXEL_MAP_c_TO_c, reemplaza el componente por el valor al que hace referencia en esa tabla; c es R, G, B o A, respectivamente.
  4. La función glColorTableEXT convierte los colores RGBA resultantes en fragmentos mediante la asociación de las coordenadas z y de textura de posición del ráster actual a cada píxel y, a continuación, asignando coordenadas de ventana x e y al fragmento de forma quex? = xr + n mod width
    y? = yr +n/width
    donde (xr , yr ) es la posición ráster actual.
  5. A continuación, estos fragmentos de píxeles se tratan igual que los fragmentos generados por puntos rasterizadores, líneas o polígonos. La función glColorTableEXT aplica la asignación de texturas, la niebla y todas las operaciones de fragmento antes de escribir los fragmentos en el framebuffer.
GL_RED
Cada píxel es un único componente rojo.
La función glColorTableEXT convierte este componente en el formato interno de la misma manera que el componente rojo de un píxel RGBA y, a continuación, lo convierte en un píxel RGBA con verde y azul establecido en 0,0 y alfa establecido en 1,0. Después de esta conversión, el píxel se trata igual que si se hubiera leído como un píxel RGBA.
GL_GREEN
Cada píxel es un único componente verde.
La función glColorTableEXT convierte este componente en el formato interno de la misma manera que el componente verde de un píxel RGBA y, a continuación, lo convierte en un píxel RGBA con rojo y azul establecido en 0,0 y alfa establecido en 1,0. Después de esta conversión, el píxel se trata igual que si se hubiera leído como un píxel RGBA.
GL_BLUE
Cada píxel es un único componente azul.
La función glColorTableEXT convierte este componente en el formato interno de la misma manera que el componente azul de un píxel RGBA y, a continuación, lo convierte en un píxel RGBA con rojo y verde establecido en 0,0 y alfa establecido en 1,0. Después de esta conversión, el píxel se trata igual que si se hubiera leído como un píxel RGBA.
GL_ALPHA
Cada píxel es un único componente alfa.
La función glColorTableEXT convierte este componente en el formato interno de la misma manera que el componente alfa de un píxel RGBA y, a continuación, lo convierte en un píxel RGBA con rojo, verde y azul establecido en 0,0. Después de esta conversión, el píxel se trata igual que si se hubiera leído como un píxel RGBA.
GL_RGB
Cada píxel es un grupo de tres componentes en este orden: rojo, verde y azul.
La función glColorTableEXT convierte cada componente en el formato interno de la misma manera que los componentes rojo, verde y azul de un píxel RGBA. El triple de color se convierte en un píxel RGBA con alfa establecido en 1,0. Después de esta conversión, el píxel se trata igual que si se hubiera leído como un píxel RGBA.
GL_BGR_EXT
Cada píxel es un grupo de tres componentes en este orden: azul, verde y rojo.
GL_BGR_EXT proporciona un formato que coincide con el diseño de memoria de los mapas de bits independientes del dispositivo Windows (DIB). Por lo tanto, las aplicaciones pueden usar los mismos datos con llamadas a funciones de Windows y llamadas a funciones de píxeles openGL.
GL_BGRA_EXT
Cada píxel es un grupo de cuatro componentes en este orden: azul, verde, rojo, alfa.
GL_BGRA_EXT proporciona un formato que coincide con el diseño de memoria de los mapas de bits independientes del dispositivo Windows (DIB). Por lo tanto, las aplicaciones pueden usar los mismos datos con llamadas a funciones de Windows y llamadas a funciones de píxeles openGL.

type

Tipo de datos para los datos. Se aceptan las siguientes constantes simbólicas: GL_UNSIGNED_BYTE, GL_BYTE, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT y GL_FLOAT.

En la tabla siguiente se resume el significado de las constantes válidas para el parámetro de tipo .

Value Significado
GL_UNSIGNED_BYTE
Entero de 8 bits sin signo
GL_BYTE
Entero de 8 bits con signo
GL_UNSIGNED_SHORT
Entero de 16 bits sin signo
GL_SHORT
Entero de 16 bits con signo
GL_UNSIGNED_INT
Entero de 32 bits sin signo
GL_INT
Entero de 32 bits
GL_FLOAT
Valor de punto flotante de precisión sencilla

data

Puntero a los datos de texturas paletas. Los datos se tratan como píxeles únicos de una entrada de paleta de texturas 1D para una entrada de paleta.

Valor devuelto

Esta función no devuelve ningún valor.

Códigos de error

La función glGetError puede recuperar los siguientes códigos de error.

Nombre Significado
GL_INVALID_VALUE
width era un entero no válido.
GL_INVALID_ENUM
target, internalFormat, format o type no era un valor aceptado.
GL_INVALID_OPERATION
Se llamó a la función entre una llamada a glBegin y la llamada correspondiente a glEnd.

Comentarios

Las texturas paletas se definen con una paleta de colores y un conjunto de datos de imagen que se componen de índices para las entradas de color de una paleta (una tabla de colores).

La función glColorTableEXT especifica la paleta de texturas de una textura de destino. Toma los datos de la memoria y convierte los datos como si cada entrada de paleta sea un solo píxel de una textura 1D. La función glColorTableEXT desempaqueta y convierte los datos y los traduce en un formato interno que coincida con el formato especificado lo más cerca posible.

Si el ancho de una paleta es mayor que el intervalo de los índices de color de los datos de textura, algunas de las entradas de la paleta no se usan. Si el ancho de una paleta es menor que el intervalo de los índices de color de los datos de textura, se omiten los bits más significativos de los datos de textura y solo se usa el número adecuado de bits en el índice al acceder a la paleta. Cuando se especifica un destino de proxy mediante PROXY_TEXTURE_1D o PROXY_TEXTURE_2D, se cambia el tamaño de la paleta de la textura del proxy y se establecen sus parámetros, pero no se transfiere ni se accede a ningún dato.

Cuando el parámetro de destino se GL_PROXY_TEXTURE_1D o GL_PROXY_TEXTURE_2D, y la implementación no admite los valores especificados para el formato o el ancho, glColorTableEXT no puede crear la tabla de colores solicitada. En este caso, la tabla de colores está vacía y todos los parámetros recuperados serán cero. Puede determinar si OpenGL admite un tamaño y formato de tabla de colores concretos llamando a glColorTableEXT con un destino de proxy y, a continuación, llamando a glGetColorTableParameterivEXT o glGetColorTableParameterfvEXT para determinar si el parámetro width coincide con el establecido por glColorTableEXT. Si el ancho recuperado es cero, se produjo un error en la solicitud de tabla de colores por glColorTable . Si el ancho recuperado no es cero, puede llamar a glColorTable con el destino real con TEXTURE_1D o TEXTURE_2D para establecer la tabla de colores.

Nota

La función glColorTableEXT es una función de extensión que no forma parte de la biblioteca OpenGL estándar, pero que forma parte de la extensión GL_EXT_paletted_texture. Para comprobar si la implementación de OpenGL admite glColorTableEXT, llame a glGetString(GL_EXTENSIONS). Si devuelve GL_EXT_paletted_texture, se admite glColorTableEXT . Para obtener la dirección de función de una función de extensión, llame a wglGetProcAddress.

Para recuperar los datos reales de la tabla de colores especificados por la función glColorTableEXT , llame a glGetColorTableEXT. Para recuperar los parámetros, como el ancho y el formato, de la tabla de colores especificada por la función glColorTableEXT , llame a la función glGetColorTableParameterivEXT o glGetColorTableParameterfvEXT .

Requisitos

Requisito Value
Cliente mínimo compatible
Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible
Windows 2000 Server [solo aplicaciones de escritorio]
Encabezado
Gl.h

Consulte también

glBegin

glColorSubTableEXT

glEnd

glGetColorTableEXT

glGetColorTableParameterfvEXT

glGetColorTableParameterivEXT

wglGetProcAddress