glTexImage1D (función)
La función glTexImage1D especifica una imagen de textura unidimensional.
Sintaxis
void WINAPI glTexImage1D(
GLenum target,
GLint level,
GLint internalformat,
GLsizei width,
GLint border,
GLint format,
GLenum type,
const GLvoid *pixels
);
Parámetros
-
Destino
-
Textura de destino. Debe ser GL_TEXTURE_1D.
-
level
-
Número de nivel de detalle. El nivel 0 es el nivel de la imagen base. El nivel n es la imagen con la enésima reducción de mapa MIP.
-
internalformat
-
Especifica el número de componentes de color de la textura. Debe ser 1, 2, 3 o 4, o una de las siguientes constantes simbólicas: GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_RGB, GL_R3_G3_B2, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12 o GL_RGBA16.
-
width
-
Ancho de la imagen de textura. Debe ser 2n + 2(border) para algunos enteros n. El alto de la imagen de textura es 1.
-
border
-
Ancho del borde. Debe ser 0 o 1.
-
format
-
Formato de los datos de píxeles. Puede suponer uno de nueve valores simbólicos.
Valor Significado - GL_COLOR_INDEX
Cada elemento es un valor único, un índice de color. Se convierte en un punto fijo (con un número no especificado de 0 bits a la derecha del punto binario), desplazado a la izquierda o derecha según el valor y el signo de GL_INDEX_SHIFT, y se agrega a GL_INDEX_OFFSET (vea glPixelTransfer). El índice resultante se convierte en un conjunto de componentes de color con las tablas GL_PIXEL_MAP_I_TO_R, GL_PIXEL_MAP_I_TO_G, GL_PIXEL_MAP_I_TO_B y GL_PIXEL_MAP_I_TO_A, y se fija al intervalo [0,1]. - GL_RED
Cada elemento es un único componente rojo. Se convierte en punto flotante y se ensambla en un elemento RGBA agregando 0,0 para verde y azul, y 1,0 para alfa. A continuación, cada componente se multiplica por el factor de escala con signo GL_c_SCALE, se agrega al GL_c_BIAS de sesgo con signo y se fija al intervalo [0,1] (vea glPixelTransfer). - GL_GREEN
Cada elemento es un único componente verde. Se convierte en punto flotante y se ensambla en un elemento RGBA agregando 0,0 para rojo y azul, y 1,0 para alfa. A continuación, cada componente se multiplica por el factor de escala con signo GL_c_SCALE, se agrega al GL_c_BIAS de sesgo con signo y se fija al intervalo [0,1] (vea glPixelTransfer). - GL_BLUE
Cada elemento es un único componente azul. Se convierte en punto flotante y se ensambla en un elemento RGBA agregando 0,0 para rojo y verde, y 1,0 para alfa. A continuación, cada componente se multiplica por el factor de escala con signo GL_c_SCALE, se agrega al GL_c_BIAS de sesgo con signo y se fija al intervalo [0,1] (vea glPixelTransfer). - GL_ALPHA
Cada elemento es un único componente rojo. Se convierte en punto flotante y se ensambla en un elemento RGBA agregando 0,0 para rojo, verde, y azul. A continuación, cada componente se multiplica por el factor de escala con signo GL_c_SCALE, se agrega al GL_c_BIAS de sesgo con signo y se fija al intervalo [0,1] (vea glPixelTransfer). - GL_RGB
Cada elemento es un triplo RGB. Se convierte en punto flotante y se ensambla en un elemento RGBA agregando 1,0 para alfa. A continuación, cada componente se multiplica por el factor de escala con signo GL_c_SCALE, se agrega al GL_c_BIAS de sesgo con signo y se fija al intervalo [0,1] (vea glPixelTransfer). - GL_RGBA
Cada elemento es un elemento RGBA completo. Se convierte en punto flotante. A continuación, cada componente se multiplica por el factor de escala con signo GL_c_SCALE, se agrega al GL_c_BIAS de sesgo con signo y se fija al intervalo [0,1] (vea glPixelTransfer). - GL_BGR_EXT
Cada píxel es un grupo de tres componentes en este orden: azul, verde, rojo.
GL_BGR_EXT proporciona un formato que coincide con el diseño de memoria de mapas de bits independientes del dispositivo (DIB) Windows. Por tanto, las aplicaciones pueden utilizar los mismos datos con las llamadas a funciones de Windows y las llamadas a funciones de píxeles de OpenGL.- GL_BGRA_EXT
Cada píxel es un grupo de cuadro componentes en este orden: azul, verde, rojo y alfa.
GL_BGRA_EXT proporciona un formato que coincide con el diseño de memoria de mapas de bits independientes del dispositivo (DIB) Windows. Por tanto, las aplicaciones pueden utilizar los mismos datos con las llamadas a funciones de Windows y las llamadas a funciones de píxeles de OpenGL.- GL_LUMINANCE
Cada elemento es un único valor de luminancia. Se convierte en un punto flotante y se ensambla en un elemento RGBA replicando el valor de luminancia tres veces para rojo, verde y azul, y agregando 1.0 para alfa. A continuación, cada componente se multiplica por el factor de escala con signo GL_c_SCALE, se agrega al GL_c_BIAS de sesgo con signo y se fija al intervalo [0,1] (vea glPixelTransfer). - GL_LUMINANCE_ALPHA
Cada elemento es un par luminancia/alfa. Se convierte en un punto flotante y se ensambla en un elemento RGBA replicando el valor de luminancia tres veces para rojo, verde y azul. A continuación, cada componente se multiplica por el factor de escala con signo GL_c_SCALE, se agrega al GL_c_BIAS de sesgo con signo y se fija al intervalo [0,1] (vea glPixelTransfer). -
type
-
Tipo de los datos de píxeles. Se aceptan los siguientes valores simbólicos: GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT y GL_FLOAT.
-
pixels
-
Puntero a los datos de la imagen en memoria.
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 |
---|---|
|
target no era GL_TEXTURE. |
|
format no era una constante de formato acepada. Solo se aceptan constantes de formato distintas de GL_STENCIL_INDEX y GL_DEPTH_COMPONENT. Consulte la descripción del parámetro format para obtener una lista de los valores posibles. |
|
type no era una constante de tipo. |
|
type era GL_BITMAP y format no era GL_COLOR_INDEX. |
|
level era menor que cero o mayor que log2max, donde max era el valor devuelto de GL_MAX_TEXTURE_SIZE. |
|
internalformat no era 1, 2, 3 ni 4. |
|
width era menor que cero o mayor que 2 + GL_MAX_TEXTURE_SIZE, o no se pudo representar como 2n + 2(border) para algún valor entero de n. |
|
border no era 0 ni 1. |
|
Se ha llamado a la función entre una llamada a glBegin y la correspondiente llamada a glEnd. |
Comentarios
La función glTexImage1D especifica una imagen de textura unidimensional. La texturización asigna una parte de una imagen de textura especificada a cada primitiva gráfica para la que se habilita la texturización. La texturización unidimensional se habilita y deshabilita usando glEnable y glDisable con el argumento GL_TEXTURE_1D.
Las imágenes de textura se definen con glTexImage1D. Los argumentos describen los parámetros de la imagen de textura, como el ancho, el ancho del borde, el nivel de detalle (vea glTexParameter) y el número de componentes de color proporcionados. Los tres últimos argumentos describen la forma en que la imagen se representa en la memoria. Estos argumentos son idénticos a los formatos de píxel usados para glDrawPixels.
Los datos se leen de pixels como una secuencia de bytes con signo o sin signo, cortos o largos, o valores de punto flotante de precisión sencilla, dependiendo de type. Estos valores se agrupan en conjuntos de uno, dos, tres o cuatro valores, según format, para formar elementos. Si type es GL_BITMAP, los datos se consideran una cadena de bytes sin signo (y format debe ser GL_COLOR_INDEX). Cada byte de datos se trata como ocho elementos de 1 bit, con un orden de bits determinado por GL_UNPACK_LSB_FIRST (vea glPixelStore).
Una imagen de textura puede tener hasta cuatro componentes por elemento de textura, en función de components. Una imagen de textura de un componente usa solo el componente rojo del color RGBA extraído de pixels. Una imagen de dos componentes usa los valores R y A. Una imagen de tres componentes usa los valores R, G y B. Una imagen de cuatro componentes usa todos los componentes RGBA.
La texturización no tiene ningún efecto en el modo de índice de color.
La imagen de textura se puede representar con los mismos formatos de datos que los píxeles en un comando glDrawPixels, con la excepción de que no se pueden usar GL_STENCIL_INDEX y GL_DEPTH_COMPONENT. Los modos glPixelStore y glPixelTransfer afectan a las imágenes de textura exactamente de la misma manera que afectan a glDrawPixels.
Una imagen de textura con ancho cero indica una textura nula. Si se especifica una textura nula para el nivel de detalle 0, es como si se deshabilitara la texturización.
Las siguientes funciones recuperan información relacionada con glTexImageID:
glIsEnabled con el argumento GL_TEXTURE_1D
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo compatible |
Windows 2000 Professional [solo aplicaciones de escritorio] |
Servidor mínimo compatible |
Windows 2000 Server [solo aplicaciones de escritorio] |
Encabezado |
|
Biblioteca |
|
Archivo DLL |
|