Función glGetTexImage

La función glGetTexImage devuelve una imagen de textura.

Sintaxis

void WINAPI glGetTexImage(
   GLenum target,
   GLint  level,
   GLenum format,
   GLenum type,
   GLvoid *pixels
);

Parámetros

Destino

Especifica qué textura se va a obtener. GL_TEXTURE_1D y GL_TEXTURE_2D se aceptan.

level

Número de nivel de detalle de la imagen deseada. El nivel 0 es el nivel de imagen base. El nivel n es la imagen de reducción de mapa mip.

format

Formato de píxel para los datos devueltos. Los formatos admitidos son GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_RGBA, GL_LUMINANCE, GL_BGR_EXT, GL_BGRA_EXT y GL_LUMINANCE_ALPHA.

type

Tipo de píxel para los datos devueltos. Los tipos admitidos son GL_UNSIGNED_BYTE, GL_BYTE, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT y GL_FLOAT.

Píxeles

Devuelve la imagen de textura. Debe ser un puntero a una matriz del tipo especificado por tipo.

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, format o type no era un valor aceptado.
GL_INVALID_VALUE
level es menor que cero o mayor que log2 (max), donde max es el valor devuelto de GL_MAX_TEXTURE_SIZE.
GL_INVALID_OPERATION
Se llamó a la función entre una llamada a glBegin y la llamada correspondiente a glEnd .

Comentarios

La función glGetTexImage devuelve una imagen de textura en píxeles. El parámetro de destino especifica si la imagen de textura deseada es una especificada por glTexImage1D(GL_TEXTURE_1D) o por glTexImage2D(GL_TEXTURE_2D)). El parámetro level especifica el número de nivel de detalle de la imagen deseada. Los parámetros de formato y tipo especifican el formato y el tipo de la matriz de imágenes deseada. Para obtener una descripción de los valores aceptables para los parámetros de formato y tipo , respectivamente, vea glTexImage1D y glDrawPixels.

El funcionamiento de glGetTexImage se entiende mejor considerando que la imagen de textura interna de cuatro componentes seleccionada sea un búfer de color RGBA el tamaño de la imagen. La semántica de glGetTexImage es idéntica a la de glReadPixels llamada con el mismo formato y tipo, con x e y establecido en cero, ancho establecido en el ancho de la imagen de textura (incluido el borde si se especificó), y alto establecido en uno para imágenes 1D, o en el alto de la imagen de textura (incluido el borde, si se especificó uno) para las imágenes 2D.

Dado que la imagen de textura interna es una imagen RGBA, no se aceptan los formatos de píxeles GL_COLOR_INDEX, GL_STENCIL_INDEX y GL_DEPTH_COMPONENT, y no se acepta el tipo de píxel GL_BITMAP.

Si la imagen de textura seleccionada no contiene cuatro componentes, se aplican las asignaciones siguientes. Las texturas de un solo componente se tratan como búferes RGBA con el valor rojo establecido en el valor de un solo componente, y verde, azul y alfa establecido en cero.

Las texturas de dos componentes se tratan como búferes RGBA, con rojo establecido en el valor del componente cero, alfa establecido en el valor del componente uno y verde y azul establecido en cero. Por último, las texturas de tres componentes se tratan como búferes RGBA con rojo establecido en cero, verde establecido en el componente uno, azul establecido en el componente dos y alfa establecido en cero.

Para determinar el tamaño necesario de píxeles, use glGetTexLevelParameter para determinar las dimensiones de la imagen de textura interna y, a continuación, escale el número necesario de píxeles por el almacenamiento necesario para cada píxel, en función del formato y el tipo. Asegúrese de tener en cuenta los parámetros de almacenamiento de píxeles, especialmente GL_PACK_ALIGNMENT.

Si se genera un error, no se realiza ningún cambio en el contenido de píxeles.

Las siguientes funciones recuperan información relacionada con glGetTexImage:

glGet con GL_PACK_ALIGNMENT de argumentos y otros

glGetTexLevelParameter con el argumento GL_TEXTURE_WIDTH

glGetTexLevelParameter con el argumento GL_TEXTURE_HEIGHT

glGetTexLevelParameter con el argumento GL_TEXTURE_BORDER

glGetTexLevelParameter con el argumento GL_TEXTURE_COMPONENTS

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

Consulte también

glBegin

glDrawPixels

glEnd

glGetTexLevelParameter

glReadPixels

glTexImage1D

glTexImage2D