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 |
---|---|
|
target no era GL_TEXTURE_1D. |
|
format no era una constante aceptada. |
|
type no era una constante aceptada. |
|
type era GL_BITMAP y format no era GL_COLOR_INDEX. |
|
level era menor que cero o mayor que log2 max, donde max era el valor devuelto de GL_MAX_TEXTURE_SIZE. |
|
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. |
|
width era menor que b, donde b es el ancho de borde de la matriz de texturas. |
|
border no era cero ni 1. |
|
La matriz de texturas no se definió mediante una operación glTexImage1D anterior. |
|
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:
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 |
|