Compartilhar via


Função glCopyTexSubImage2D

A função glCopyTexSubImage2D copia uma sub-imagem de uma imagem de textura bidimensional do framebuffer.

Sintaxe

void WINAPI glCopyTexSubImage2D(
   GLenum  target,
   GLint   level,
   GLint   xoffset,
   GLint   yoffset,
   GLint   x,
   GLint   y,
   GLsizei width,
   GLsizei height
);

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. Nível 0 é a imagem base. Nível n é a nimagem de redução de mipmap.

xoffset

O deslocamento texel na direção x dentro da matriz de textura.

yoffset

O deslocamento texel na direção y dentro da matriz de textura.

x

As coordenadas do plano x da janela do canto inferior esquerdo da linha de pixels a serem copiados.

y

As coordenadas do plano y da janela do canto inferior esquerdo da linha de pixels a ser copiada.

width

A largura da sub-imagem da imagem de textura. Especificar uma sub-imagem de textura com largura zero não tem efeito.

altura

A altura da sub-imagem da imagem de textura. Especificar uma sub-imagem de textura com largura zero não tem efeito.

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 era menor que zero ou maior que o log2 (máximo), em que max é o valor retornado de GL_MAX_TEXTURE_SIZE.
GL_INVALID_VALUE
xoffset era menor que borda ou (larguraxoffset + )era maior que (borda w + ), yoffset era menor que borda ou (alturado conjunto de yoffset + ) era maior que (bordah + ), onde w é GL_TEXTURE_WIDTH e borda é GL_TEXTURE_BORDER. Observe que w inclui o dobro da largura da borda .
GL_INVALID_VALUE
width era menor que borda ou y era menor que borda, onde borda é a largura da borda da matriz de textura.
GL_INVALID_OPERATION
A matriz de textura não foi definida por uma operação glTexImage1D anterior.
GL_INVALID_OPERATION
A função foi chamada entre uma chamada para glBegin e a chamada correspondente para glEnd.

Comentários

A função glCopyTexSubImage2D substitui uma parte retangular de uma imagem de textura bidimensional por pixels do quadro atual, em vez de main memória, como é o caso de glTexSubImage2D.

Um retângulo de pixels começando com as coordenadas da janela x e y e com as dimensões largura e altura substitui a parte da matriz de textura pelos índices xoffset por xoffset + (largura - 1), com os índices yoffset a yoffset + (largura - 1) no nível de mipmap especificado por nível. O retângulo de destino na matriz de textura não pode incluir nenhum texel fora da matriz de textura especificada originalmente.

A função glCopyTexSubImage2D 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 inferiores correspondentes a coordenadas de textura 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.

Se qualquer um dos pixels dentro do retângulo especificado do quadro atual estiver fora da janela de leitura associada ao contexto de renderização atual, os valores obtidos para esses pixels serão indefinidos. Nenhuma alteração é feita no parâmetro internalFormat, width, height ou border da matriz de textura especificada ou para valores texel fora da sub-imagem de textura especificada.

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

Observação

A função glCopyTexSubImage2D 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 a forma como os pixels são desenhados usando glDrawPixels.

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

glGetTexImage

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

glCopyPixels

glCopyTexSubImage1D

glDrawPixels

glEnd

glFog

glPixelStore

glPixelTransfer

glTexEnv

glTexGen

glTexImage2D

glTexSubImage2D

glTexParameter