Función glCopyTexSubImage2D

La función glCopyTexSubImage2D copia una subimagen de una imagen de textura bidimensional desde el framebuffer.

Sintaxis

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

Parámetros

Destino

Destino al que se cambiarán los datos de imagen. Debe tener el valor GL_TEXTURE_2D.

level

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

xoffset

Desplazamiento de textura en la dirección x dentro de la matriz de texturas.

yoffset

Desplazamiento de textura en la dirección y dentro de la matriz de texturas.

x

Coordenadas del plano x de la ventana de la esquina inferior izquierda de la fila de píxeles que se van a copiar.

y

Coordenadas del plano y de la ventana de la esquina inferior izquierda de la fila de píxeles que se van a copiar.

width

Ancho de la subimagen de la imagen de textura. Especificar una subimagen de textura con un ancho cero no tiene ningún efecto.

height

Alto de la subimagen de la imagen de textura. Especificar una subimagen de textura con un ancho cero no tiene ningún efecto.

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 no era un valor aceptado.
GL_INVALID_VALUE
level era menor que cero o mayor que log2 (max), donde max es el valor devuelto de GL_MAX_TEXTURE_SIZE.
GL_INVALID_VALUE
xoffset era menor que el borde o (xoffsetwidth + )era mayor que (wborder + ), yoffset era menor que el borde o (yoffsetheight + ) era mayor que (hborder + ), donde w es GL_TEXTURE_WIDTH y el borde es GL_TEXTURE_BORDER. Tenga en cuenta que w incluye dos veces el ancho del borde .
GL_INVALID_VALUE
width era menor que border o y era menor que border, donde border es el ancho de borde de la matriz de texturas.
GL_INVALID_OPERATION
La matriz de texturas no se definió mediante una operación glTexImage1D anterior.
GL_INVALID_OPERATION
Se llamó a la función entre una llamada a glBegin y la llamada correspondiente a glEnd.

Comentarios

La función glCopyTexSubImage2D reemplaza una parte rectangular de una imagen de textura bidimensional por píxeles del framebuffer actual, en lugar de desde la memoria principal, como es el caso de glTexSubImage2D.

Un rectángulo de píxeles que comienza con las coordenadas de ventana x e y , con el ancho y alto de las dimensiones, reemplaza la parte de la matriz de texturas por los índices xoffset a través de xoffset + (ancho - 1), con los índices yoffset a través de yoffset + (ancho - 1) en el nivel de mapa mip especificado por nivel. El rectángulo de destino de la matriz de texturas no puede incluir ningún elemento de textura fuera de la matriz de textura especificada originalmente.

La función glCopyTexSubImage2D procesa los píxeles de una fila de la misma manera que glCopyPixels, excepto que antes de la conversión final de los píxeles, todos los valores de componente de píxeles se sujetan al intervalo [0,1] y se convierten en el formato interno de la textura para el almacenamiento en la matriz de texturas. El orden de píxeles se determina con coordenadas x inferiores correspondientes a las coordenadas de textura inferior. Si alguno de los píxeles de una fila especificada del búfer de fotogramas actual está fuera de la ventana asociada al contexto de representación actual, sus valores no están definidos.

Si alguno de los píxeles del rectángulo especificado del búfer de fotogramas actual está fuera de la ventana de lectura asociada al contexto de representación actual, los valores obtenidos para esos píxeles no están definidos. No se realiza ningún cambio en el parámetro internalFormat, width, height o border de la matriz de textura especificada o en valores de textura fuera de la subimagen de textura especificada.

No se pueden incluir llamadas a glCopyTexSubImage2D en las listas para mostrar.

Nota

La función glCopyTexSubImage2D solo está disponible en openGL versión 1.1 o posterior.

La texturización no tiene ningún efecto en el modo de índice de color. Las funciones glPixelStore y glPixelTransfer afectan exactamente a las imágenes de textura de la manera en que afectan a la forma en que se dibujan píxeles mediante glDrawPixels.

Las siguientes funciones recuperan información relacionada con glCopyTexSubImage2D:

glGetTexImage

glIsEnabled con GL_TEXTURE_2D de argumentos

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

Vea también

glBegin

glCopyPixels

glCopyTexSubImage1D

glDrawPixels

glEnd

glFog

glPixelStore

glPixelTransfer

glTexEnv

glTexGen

glTexImage2D

glTexSubImage2D

glTexParameter