Función glTexSubImage1D

La función glTexSubImage1D especifica una parte de una imagen de textura unidimensional existente. No se puede definir una nueva textura con glTexSubImage1D.

Sintaxis

void WINAPI glTexSubImage1D(
         GLenum  target,
         GLint   level,
         GLint   xoffset,
         GLsizei width,
         GLenum  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 la imagen base. El nivel n es la n. ª imagen de reducción de mapa mip.

xoffset

Desplazamiento de textura en la dirección x en la matriz de texturas.

width

Ancho de la subimagen de textura.

format

Formato de los datos de píxeles. Este parámetro puede asumir uno de los siguientes valores simbólicos.

Valor Significado
GL_COLOR_INDEX
Cada elemento es un valor único, un índice de color. Se convierte en formato de 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 mediante 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 formato de punto flotante y se ensambla en un elemento RGBA adjuntando 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 formato de punto flotante y se ensambla en un elemento RGBA adjuntando 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 formato de punto flotante y se ensambla en un elemento RGBA adjuntando 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 alfa. Se convierte en formato de punto flotante y se ensambla en un elemento RGBA adjuntando 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 triple RGB. Se convierte en punto flotante y se ensambla en un elemento RGBA adjuntando 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 formato de 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_LUMINANCE
Cada elemento es un único valor de luminancia. Se convierte en formato de punto flotante y, a continuación, se ensambla en un elemento RGBA replicando el valor de luminancia tres veces para rojo, verde y azul, y adjuntando 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 formato de punto flotante y, a continuación, 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 datos 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_1D.
GL_INVALID_ENUM
format no era una constante aceptada.
GL_INVALID_ENUM
type no era una constante aceptada.
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 log2 max, donde max era el valor devuelto de GL_MAX_TEXTURE_SIZE.
GL_INVALID_VALUE
xoffset era menor que b, o offset + width era mayor que wb, donde w es GL_TEXTURE_WIDTH, y b es el ancho de GL_TEXTURE_BORDER de la imagen de textura que se va a modificar.
Tenga en cuenta que w incluye dos veces el ancho del borde.
GL_INVALID_VALUE
width era menor que b, donde b es el ancho de borde de la matriz de texturas.
GL_INVALID_VALUE
border no era cero ni 1.
GL_INVALID_OPERATION
La matriz de texturas no se definió mediante una operación glTexImage1D anterior.
GL_INVALID_OPERATION
Se llamó a la función entre una llamada a glBegin y la llamada correspondiente a glEnd.

Comentarios

La texturización unidimensional para primitivos se habilita mediante glEnable y glDisable con el argumento GL_TEXTURE_1D. Durante la texturización, parte de una imagen de textura especificada se asigna a cada primitivo habilitado. La función glTexSubImage1D se usa para especificar una sub-imagen contigua de una imagen de textura unidimensional existente para la texturización.

Los elementos de textura a los que se hace referencia mediante pixels reemplazan una región de la matriz de texturas existente por x índices de xoffset y xoffset + (width 1) incluidos. Esta región no puede incluir ningún elemento de textura fuera del intervalo de la matriz de texturas especificada originalmente.

Especificar una subimagen con un valor de width de cero no tiene ningún efecto y no genera ningún error.

La texturización no tiene ningún efecto en el modo de índice de color.

En general, las imágenes 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 ni GL_DEPTH_COMPONENT. Los modos glPixelStore y glPixelTransfer afectan a las imágenes de textura de la misma manera en que afectan a glDrawPixels.

Las funciones siguientes recuperan información relacionada con glTexSubImage1D:

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

glCopyTexImage1D

glCopyTexImage2D

glCopyTexSubImage1D

glCopyTexSubImage2D

glDrawPixels

glEnable

glFog

glGetTexImage

glIsEnabled

glPixelStore

glPixelTransfer

glTexEnv

glTexGen

glTexImage1D

glTexImage2D

glTexParameter

glTexSubImage2D