Função glCopyTexImage2D

A função glCopyTexImage2D copia pixels do framebuffer em uma imagem de textura bidimensional.

Sintaxe

void WINAPI glCopyTexImage2D(
   GLenum  target,
   GLint   level,
   GLenum  internalFormat,
   GLint   x,
   GLint   y,
   GLsizei width,
   GLsizei height,
   GLint   border
);

Parâmetros

destino

O destino para o qual os dados da imagem serão alterados. Deve ter o valor GL_TEXTURE_2D.

level

O número de nível de detalhes. O nível 0 é a imagem base. O nível n é a nª imagem de redução de mipmap.

internalFormat

O formato interno e a resolução dos dados de textura. Os valores 1, 2, 3 e 4 não são aceitos para internalFormat. O parâmetro pode assumir um dos seguintes valores simbólicos.

Constante R Bits G Bits B Bits A Bits L Bits I Bits
GL_ALPHA
GL_ALPHA4 4
GL_ALPHA8 8
GL_ALPHA12 12
GL_ALPHA16 16
GL_LUMINANCE
GL_LUMINANCE4 4
GL_LUMINANCE8 8
GL_LUMINANCE12 12
GL_LUMINANCE16 16
GL_LUMINANCE_ALPHA
GL_LUMINANCE4_ALPHA4 4 4
GL_LUMINANCE6_ALPHA2 2 6
GL_LUMINANCE8_ALPHA8 8 8
GL_LUMINANCE12_ALPHA4 4 12
GL_LUMINANCE12_ALPHA12 12 12
GL_LUMINANCE16_ALPHA16 16 16
GL_INTENSITY
GL_INTENSITY4 4
GL_INTENSITY8 8
GL_INTENSITY12 12
GL_INTENSITY16 16
GL_RGB
GL_R3_G3_B2 3 3 2
GL_RGB4 4 4 4
GL_RGB5 5 5 5
GL_RGB8 8 8 8
GL_RGB10 10 10 10
GL_RGB12 12 12 12
GL_RGB16 16 16 16
GL_RGBA
GL_RGBA2 2 2 2 2
GL_RGBA4 4 4 4 4
GL_RGB5_A1 5 5 5 1
GL_RGBA8 8 8 8 8
GL_RGB10_A2 10 10 10 2
GL_RGBA12 12 12 12 12
GL_RGBA16 16 16 16 16

x

A coordenada x-plane da janela do canto inferior esquerdo da região retangular dos pixels a serem copiados.

y

A coordenada do plano y da janela do canto inferior esquerdo da região retangular dos pixels a serem copiados.

width

A largura da imagem de textura. Deve ser 2n + 2 * borda para algum número inteiro n.

altura

A altura da imagem de textura. Deve ser 2n + 2 * borda para algum número inteiro n.

Fronteira

A largura da borda. Deve ser zero ou 1.

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 não era um valor aceito.
GL_INVALID_VALUE
o nível foi menor que zero ou maior que o máximo de log2, em que max é o valor retornado de GL_MAX_TEXTURE_SIZE.
GL_INVALID_VALUE
borda não era zero ou 1.
GL_INVALID_VALUE
width foi menor que zero, maior que 2 + GL_MAX_TEXTURE_SIZE ou largura não pode ser representada como 2n + 2 * borda para algum inteiro n.
GL_INVALID_OPERATION
A função foi chamada entre uma chamada para glBegin e a chamada correspondente para glEnd.

Comentários

A função glCopyTexImage2D define uma imagem de textura bidimensional usando pixels do quadro atual, em vez de main memória, como é o caso de glTexImage2D.

Usando o nível de mipmap especificado com nível, as matrizes de textura são definidas como um retângulo de pixels com o canto inferior esquerdo localizado nas coordenadas x e y, largura igual a largura + (borda de 2 * ) e uma altura igual à altura + ( borda 2 * ). O formato interno da matriz de textura é especificado com o parâmetro internalFormat .

A função glCopyTexImage2D processa os pixels em uma linha da mesma forma que glCopyPixels , exceto que antes da conversão final dos pixels, todos os valores de componente de pixel são fixados no intervalo [0,1] e convertidos no formato interno da textura para armazenamento na matriz de textura. A ordenação de pixels é determinada com coordenadas x e y inferiores correspondentes a coordenadas de textura s e t inferiores. Se qualquer um dos pixels dentro de uma linha especificada do quadro atual estiver fora da janela associada ao contexto de renderização atual, seus valores serão indefinidos.

Você não pode incluir chamadas para glCopyTexImage2D em listas de exibição.

Observação

A função glCopyTexImage2D só está disponível no OpenGL versão 1.1 ou posterior.

A texturização não tem efeito no modo de índice de cores. As funções glPixelStore e glPixelTransfer afetam exatamente as imagens de textura da maneira como afetam glDrawPixels.

A função a seguir recupera informações relacionadas a glCopyTexImage2D:

glIsEnabled com GL_TEXTURE_2D 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

glCopyTexImage1D

glDrawPixels

glEnd

glFog

glPixelStore

glPixelTransfer

glTexEnv

glTexGen

glTexImage1D

glTexImage2D

glTexParameter