Função glGetTexImage

A função glGetTexImage retorna uma imagem de textura.

Sintaxe

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

Parâmetros

destino

Especifica qual textura deve ser obtida. GL_TEXTURE_1D e GL_TEXTURE_2D são aceitos.

level

O número de nível de detalhes da imagem desejada. O nível 0 é o nível de imagem base. Nível n é a nimagem de redução de mipmap.

format

Um formato de pixel para os dados retornados. Os formatos com suporte são GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_RGBA, GL_LUMINANCE, GL_BGR_EXT, GL_BGRA_EXT e GL_LUMINANCE_ALPHA.

tipo

Um tipo de pixel para os dados retornados. Os tipos com suporte são GL_UNSIGNED_BYTE, GL_BYTE, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT e GL_FLOAT.

Pixels

Retorna a imagem de textura. Deve ser um ponteiro para uma matriz do tipo especificado por tipo.

Retornar valor

Essa função não retorna um valor.

Códigos de erro

Os códigos de erro a seguir podem ser recuperados pela função glGetError .

Nome Significado
GL_INVALID_ENUM
target, format ou type não era um valor aceito.
GL_INVALID_VALUE
level é menor que zero ou maior que o log2 (máximo), em que max é o valor retornado de GL_MAX_TEXTURE_SIZE.
GL_INVALID_OPERATION
A função foi chamada entre uma chamada para glBegin e a chamada correspondente para glEnd .

Comentários

A função glGetTexImage retorna uma imagem de textura em pixels. O parâmetro de destino especifica se a imagem de textura desejada é especificada por glTexImage1D(GL_TEXTURE_1D) ou por glTexImage2D(GL_TEXTURE_2D). O parâmetro level especifica o número de nível de detalhes da imagem desejada. Os parâmetros de formato e tipo especificam o formato e o tipo da matriz de imagem desejada. Para obter uma descrição dos valores aceitáveis para os parâmetros de formato e tipo , respectivamente, consulte glTexImage1D e glDrawPixels.

A operação de glGetTexImage é melhor compreendida considerando a imagem de textura interna de quatro componentes selecionada como um buffer de cor RGBA do tamanho da imagem. A semântica de glGetTexImage é então idêntica às de glReadPixels chamadas com o mesmo formato e tipo, com x e y definidos como zero, largura definida como a largura da imagem de textura (incluindo borda se uma foi especificada) e altura definida como uma para imagens 1D, ou até a altura da imagem de textura (incluindo borda, se um tiver sido especificado) para imagens 2D.

Como a imagem de textura interna é uma imagem RGBA, os formatos de pixel GL_COLOR_INDEX, GL_STENCIL_INDEX e GL_DEPTH_COMPONENT não são aceitos e o tipo de pixel GL_BITMAP não é aceito.

Se a imagem de textura selecionada não contiver quatro componentes, os mapeamentos a seguir serão aplicados. As texturas de componente único são tratadas como buffers RGBA com vermelho definido como o valor de componente único e verde, azul e alfa definidos como zero.

Texturas de dois componentes são tratadas como buffers RGBA, com vermelho definido como o valor do componente zero, alfa definido como o valor do componente um e verde e azul definido como zero. Por fim, as texturas de três componentes são tratadas como buffers RGBA com vermelho definido como componente zero, conjunto verde como componente um, conjunto azul como componente dois e conjunto alfa como zero.

Para determinar o tamanho necessário de pixels, use glGetTexLevelParameter para determinar as dimensões da imagem de textura interna e, em seguida, dimensione o número necessário de pixels pelo armazenamento necessário para cada pixel, com base no formato e no tipo. Lembre-se de levar em conta os parâmetros de armazenamento de pixels, especialmente GL_PACK_ALIGNMENT.

Se um erro for gerado, nenhuma alteração será feita no conteúdo dos pixels.

As seguintes funções recuperam informações relacionadas a glGetTexImage:

glGet com GL_PACK_ALIGNMENT de argumento e outros

glGetTexLevelParameter com GL_TEXTURE_WIDTH de argumento

glGetTexLevelParameter com argumento GL_TEXTURE_HEIGHT

glGetTexLevelParameter com GL_TEXTURE_BORDER de argumento

glGetTexLevelParameter com GL_TEXTURE_COMPONENTS de argumento

Requisitos

Requisito Valor
Cliente mínimo com suporte
Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte
Windows 2000 Server [somente aplicativos da área de trabalho]
Cabeçalho
Gl.h
Biblioteca
Opengl32.lib
DLL
Opengl32.dll

Confira também

glBegin

glDrawPixels

glEnd

glGetTexLevelParameter

glReadPixels

glTexImage1D

glTexImage2D