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
GL_INVALID_ENUM
target no era GL_TEXTURE.
GL_INVALID_ENUM
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.
GL_INVALID_ENUM
type no era una constante de tipo.
GL_INVALID_ENUM
type era GL_BITMAP y format no era GL_COLOR_INDEX.
GL_INVALID_VALUE
level era menor que cero o mayor que log2max, donde max era el valor devuelto de GL_MAX_TEXTURE_SIZE.
GL_INVALID_VALUE
internalformat no era 1, 2, 3 ni 4.
GL_INVALID_VALUE
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.
GL_INVALID_VALUE
border no era 0 ni 1.
GL_INVALID_OPERATION
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:

glGetTexImage

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
Gl.h
Biblioteca
Opengl32.lib
Archivo DLL
Opengl32.dll

Consulte también

glBegin

glCopyPixels

glCopyTexImage1D

glCopyTexImage2D

glCopyTexSubImage1D

glCopyTexSubImage2D

glDrawPixels

glEnd

glFog

glGetTexImage

glIsEnabled

glPixelStore

glPixelTransfer

glTexEnv

glTexGen

glTexImage2D

glTexSubImage1D

glTexSubImage2D

glTexParameter