Partager via


fonction glCopyTexSubImage2D

La fonction glCopyTexSubImage2D copie une sous-image d’une image de texture à deux dimensions à partir du framebuffer.

Syntaxe

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

Paramètres

cible

Cible vers laquelle les données d’image seront modifiées. Doit avoir la valeur GL_TEXTURE_2D.

level

Numéro de niveau de détail. Le niveau 0 est l’image de base. Level n est l’image de réduction nth mipmap.

xoffset

Décalage de texel dans la direction x dans le tableau de textures.

yoffset

Décalage de texel dans la direction y dans le tableau de textures.

x

Coordonnées du plan X de la fenêtre du coin inférieur gauche de la ligne de pixels à copier.

y

Coordonnées du plan y de la fenêtre du coin inférieur gauche de la ligne de pixels à copier.

width

Largeur de la sous-image de l’image de texture. La spécification d’une sous-image de texture avec une largeur nulle n’a aucun effet.

height

Hauteur de la sous-image de l’image de texture. La spécification d’une sous-image de texture avec une largeur nulle n’a aucun effet.

Valeur renvoyée

Cette fonction ne retourne pas de valeur.

Codes d’erreur

Les codes d’erreur suivants peuvent être récupérés par la fonction glGetError .

Name Signification
GL_INVALID_ENUM
target n’était pas une valeur acceptée.
GL_INVALID_VALUE
le niveau était inférieur à zéro ou supérieur au journal2 (max), où max est la valeur retournée de GL_MAX_TEXTURE_SIZE.
GL_INVALID_VALUE
xoffset était inférieur à la bordure ou (largeurxoffset + ) était supérieur à (bordure w + ), yoffset était inférieur à la bordure, ou (hauteuryoffset + ) était supérieur à (bordureh + ), où w est GL_TEXTURE_WIDTH et bordure est GL_TEXTURE_BORDER. Notez que w inclut deux fois la largeur de la bordure .
GL_INVALID_VALUE
la largeur était inférieure à la bordure ou y était inférieure à la bordure, où bordure est la largeur de bordure du tableau de textures.
GL_INVALID_OPERATION
Le tableau de textures n’a pas été défini par une opération glTexImage1D précédente.
GL_INVALID_OPERATION
La fonction a été appelée entre un appel à glBegin et l’appel à glEnd correspondant.

Notes

La fonction glCopyTexSubImage2D remplace une partie rectangulaire d’une image de texture à deux dimensions par des pixels du framebuffer actuel, plutôt que par main mémoire comme c’est le cas pour glTexSubImage2D.

Un rectangle de pixels commençant par les coordonnées de la fenêtre x et y et avec la largeur et la hauteur des dimensions remplace la partie du tableau de textures par les index xoffset à xoffset + (largeur - 1), avec les index yoffset à yoffset + (largeur - 1) au niveau mipmap spécifié par niveau. Le rectangle de destination dans le tableau de textures ne peut pas inclure de texels en dehors du tableau de textures spécifié à l’origine.

La fonction glCopyTexSubImage2D traite les pixels d’une ligne de la même manière que glCopyPixels, sauf qu’avant la conversion finale des pixels, toutes les valeurs des composants de pixels sont limitées à la plage [0,1] et converties au format interne de la texture pour le stockage dans le tableau de textures. L’ordre des pixels est déterminé avec des coordonnées x inférieures correspondant aux coordonnées de texture inférieures. Si l’un des pixels d’une ligne spécifiée du framebuffer actuel se trouve en dehors de la fenêtre associée au contexte de rendu actuel, ses valeurs ne sont pas définies.

Si l’un des pixels du rectangle spécifié du framebuffer actuel se trouve en dehors de la fenêtre de lecture associée au contexte de rendu actuel, les valeurs obtenues pour ces pixels ne sont pas définies. Aucune modification n’est apportée au paramètre internalFormat, width, height ou border du tableau de textures spécifié ou aux valeurs texel en dehors de la sous-image de texture spécifiée.

Vous ne pouvez pas inclure d’appels à glCopyTexSubImage2D dans les listes d’affichage.

Notes

La fonction glCopyTexSubImage2D est uniquement disponible dans OpenGL version 1.1 ou ultérieure.

La texturation n’a aucun effet en mode d’index de couleur. Les fonctions glPixelStore et glPixelTransfer affectent exactement les images de texture de la manière dont elles affectent la façon dont les pixels sont dessinés à l’aide de glDrawPixels.

Les fonctions suivantes récupèrent des informations relatives à glCopyTexSubImage2D :

glGetTexImage

glIsEnabled avec argument GL_TEXTURE_2D

Spécifications

Condition requise Valeur
Client minimal pris en charge
Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge
Windows 2000 Server [applications de bureau uniquement]
En-tête
Gl.h
Bibliothèque
Opengl32.lib
DLL
Opengl32.dll

Voir aussi

glBegin

glCopyPixels

glCopyTexSubImage1D

glDrawPixels

glEnd

glFog

glPixelStore

glPixelTransfer

glTexEnv

glTexGen

glTexImage2D

glTexSubImage2D

glTexParameter