Partager via


fonction glGetTexImage

La fonction glGetTexImage retourne une image de texture.

Syntaxe

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

Paramètres

cible

Spécifie la texture à obtenir. GL_TEXTURE_1D et GL_TEXTURE_2D sont acceptés.

level

Numéro de niveau de détail de l’image souhaitée. Le niveau 0 est le niveau de l’image de base. Le niveau n est la nièmeimage de réduction de mipmap.

format

Format de pixel pour les données retournées. Les formats pris en charge sont GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_RGBA, GL_LUMINANCE, GL_BGR_EXT, GL_BGRA_EXT et GL_LUMINANCE_ALPHA.

type

Type de pixel pour les données retournées. Les types pris en charge sont GL_UNSIGNED_BYTE, GL_BYTE, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT et GL_FLOAT.

Pixels

Retourne l’image de texture. Doit être un pointeur vers un tableau du type spécifié par type.

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, format ou type n’était pas une valeur acceptée.
GL_INVALID_VALUE
level est inférieur à zéro ou supérieur au journal2 (max), où max est la valeur retournée de GL_MAX_TEXTURE_SIZE.
GL_INVALID_OPERATION
La fonction a été appelée entre un appel à glBegin et l’appel correspondant à glEnd .

Notes

La fonction glGetTexImage retourne une image de texture en pixels. Le paramètre cible spécifie si l’image de texture souhaitée est celle spécifiée par glTexImage1D(GL_TEXTURE_1D) ou par glTexImage2D(GL_TEXTURE_2D). Le paramètre level spécifie le numéro de niveau de détail de l’image souhaitée. Les paramètres de format et de type spécifient le format et le type du tableau d’images souhaité. Pour obtenir une description des valeurs acceptables pour les paramètres de format et de type , respectivement, consultez glTexImage1D et glDrawPixels.

Le fonctionnement de glGetTexImage est mieux compris si l’image de texture interne à quatre composants sélectionnée est une mémoire tampon de couleurs RVBA de la taille de l’image. La sémantique de glGetTexImage est ensuite identique à celle des glReadPixels appelés avec le même format et le même type, avec x et y définis sur zéro, la largeur définie sur la largeur de l’image de texture (y compris la bordure si une a été spécifiée) et la hauteur définie sur un pour les images 1D, ou sur la hauteur de l’image de texture (y compris la bordure, si un a été spécifié) pour les images 2D.

Étant donné que l’image de texture interne est une image RVBA, les formats de pixel GL_COLOR_INDEX, GL_STENCIL_INDEX et GL_DEPTH_COMPONENT ne sont pas acceptés, et le type de pixel GL_BITMAP n’est pas accepté.

Si l’image de texture sélectionnée ne contient pas quatre composants, les mappages suivants sont appliqués. Les textures à composant unique sont traitées comme des mémoires tampons RVBA avec le rouge défini sur la valeur à composant unique et le vert, le bleu et l’alpha définis sur zéro.

Les textures à deux composants sont traitées comme des mémoires tampons RVBA, le rouge étant défini sur la valeur zéro du composant, l’alpha sur la valeur du composant 1 et le vert et le bleu sur zéro. Enfin, les textures à trois composants sont traitées comme des mémoires tampons RVBA avec le rouge défini sur le composant zéro, le vert défini sur le composant 1, le bleu défini sur le composant 2 et l’alpha défini sur zéro.

Pour déterminer la taille requise des pixels, utilisez glGetTexLevelParameter pour déterminer les dimensions de l’image de texture interne, puis mettre à l’échelle le nombre requis de pixels en fonction du stockage requis pour chaque pixel, en fonction du format et du type. Veillez à prendre en compte les paramètres de stockage de pixels, en particulier GL_PACK_ALIGNMENT.

Si une erreur est générée, aucune modification n’est apportée au contenu des pixels.

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

glGet avec GL_PACK_ALIGNMENT d’arguments et autres

glGetTexLevelParameter avec argument GL_TEXTURE_WIDTH

glGetTexLevelParameter avec argument GL_TEXTURE_HEIGHT

glGetTexLevelParameter avec argument GL_TEXTURE_BORDER

glGetTexLevelParameter avec argument GL_TEXTURE_COMPONENTS

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

glDrawPixels

glEnd

glGetTexLevelParameter

glReadPixels

glTexImage1D

glTexImage2D