glTexImage2D fonction)

La fonction glTexImage2D spécifie une image de texture à deux dimensions.

Syntaxe

void WINAPI glTexImage2D(
         GLenum  target,
         GLint   level,
         GLint   internalformat,
         GLsizei width,
         GLsizei height,
         GLint   border,
         GLint   format,
         GLenum  type,
   const GLvoid  *pixels
);

Paramètres

cible

Texture cible. Doit être une _ texture GL _ 2D.

level

Numéro de niveau de détail. Le niveau 0 est le niveau d’image de base. Le niveau n est la n ième image de réduction mipmap.

internalformat

Nombre de composants de couleur dans la texture. Doit être 1, 2, 3 ou 4, ou l’une des constantes symboliques suivantes : GL _ alpha, GL _ alpha4, GL _ ALPHA8, GL _ ALPHA12, GL ALPHA16, luminance GL, GL LUMINANCE4, GL LUMINANCE8, GL LUMINANCE12, GL LUMINANCE16, GL luminance alpha, GL LUMINANCE4 alpha4, GL LUMINANCE6 alpha2 _ _ _ _ _ _ _ _ _ _ _ _ , GL _ LUMINANCE8 _ ALPHA8, GL _ LUMINANCE12 _ alpha4, comptabilité GL _ LUMINANCE12 _ ALPHA12, GL _ LUMINANCE16 _ ALPHA16, GL Intensity, GL INTENSITY4, GL INTENSITY8, GL INTENSITY12, GL INTENSITY16, GL R3 G3 B2, GL RGB, _ GL RGB4 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ , GL RGB5, GL RGB8, GL RGB10, GL RGB12, GL RGB16, grand livre, GL RGBA2, GL RGBA4, GL RGB5 a1, GL RGBA8, GL RGB10 a2, GL RGBA12 ou GL RGBA16.

width

Largeur de l’image de texture. Doit être 2 n + 2 (Border) pour un entier n.

height

Hauteur de l’image de texture. Doit être 2 m + 2 (bordure) pour un entier m.

2S

Largeur de la bordure. Doit être 0 ou 1.

format

Format des données de pixels. Elle peut prendre l’une des neuf valeurs symboliques.

Valeur Signification
_index de couleur GL _
Chaque élément est une valeur unique, un index de couleurs. Elle est convertie en virgule fixe (avec un nombre non spécifié de 0 bits à droite du point binaire), décalée vers la gauche ou vers la droite selon la valeur et le signe du décalage de l' _ index GL _ , puis ajoutée au décalage de l' _ index GL _ (voir glPixelTransfer). L’index résultant est converti en un ensemble de composants de couleur à l’aide de la _ carte de pixels GL _ _ i _ à _ R, de _ _ cartes de pixels GL _ i _ à _ G, de mappage de _ Pixel GL _ _ i _ à _ B et de carte de _ pixels GL _ _ i _ en _ tables, et fixé à la plage [ 0, 1 ] .
GL _ rouge
Chaque élément est un composant rouge unique. Il est converti en virgule flottante et assemblé en élément RVBA en joignant 0,0 pour le vert et le bleu, et 1,0 pour alpha. Chaque composant est ensuite multiplié par l’échelle de l’échelle GL c signée du facteur _ _ d’échelle, ajouté à l’écart de pondération GL _ c signé, et est ancré _ à la plage [ 0, 1 ] (voir glPixelTransfer).
_vert GL
Chaque élément est un composant vert unique. Il est converti en virgule flottante et assemblé en élément RVBA en joignant 0,0 pour le rouge et le bleu, et 1,0 pour alpha. Chaque composant est ensuite multiplié par l’échelle de l’échelle GL c signée du facteur _ _ d’échelle, ajouté à l’écart de pondération GL _ c signé, et est ancré _ à la plage [ 0, 1 ] (voir glPixelTransfer).
_bleu GL
Chaque élément est un composant bleu unique. Il est converti en virgule flottante et assemblé en élément RVBA en joignant 0,0 pour le rouge et le vert, et 1,0 pour alpha. Chaque composant est ensuite multiplié par l’échelle de l’échelle GL c signée du facteur _ _ d’échelle, ajouté à l’écart de pondération GL _ c signé, et est ancré _ à la plage [ 0, 1 ] (voir glPixelTransfer).
GL _ alpha
Chaque élément est un composant rouge unique. Il est converti en virgule flottante et assemblé en élément RVBA en joignant 0,0 pour le rouge, le vert et le bleu. Chaque composant est ensuite multiplié par l’échelle de l’échelle GL c signée du facteur _ _ d’échelle, ajouté à l’écart de pondération GL _ c signé, et est ancré _ à la plage [ 0, 1 ] (voir glPixelTransfer).
_RGB GL
Chaque élément est un triple RVB. Il est converti en virgule flottante et assemblé en élément RVBA en joignant 1,0 pour alpha. Chaque composant est ensuite multiplié par l’échelle de l’échelle GL c signée du facteur _ _ d’échelle, ajouté à l’écart de pondération GL _ c signé, et est ancré _ à la plage [ 0, 1 ] (voir glPixelTransfer).
GL _ RVBA
Chaque élément est un élément RVBA complet. Elle est convertie en virgule flottante. Chaque composant est ensuite multiplié par l’échelle de l’échelle GL c signée du facteur _ _ d’échelle, ajouté à l’écart de pondération GL _ c signé, et est ancré _ à la plage [ 0, 1 ] (voir glPixelTransfer).
GL _ BGR _ ext
Chaque pixel est un groupe de trois composants dans cet ordre : bleu, vert, rouge.
GL _ BGR _ EXT fournit un format qui correspond à la disposition de la mémoire de Windows les bitmaps indépendantes du périphérique (dib). par conséquent, vos applications peuvent utiliser les mêmes données avec les appels de fonction Windows et les appels de fonction de pixel OpenGL.
GL _ BGRA _ ext
Chaque pixel est un groupe de quatre composants dans l’ordre suivant : bleu, vert, rouge, alpha. GL _ BGRA _ EXT fournit un format qui correspond à la disposition de la mémoire de Windows les bitmaps indépendantes du périphérique (dib). par conséquent, vos applications peuvent utiliser les mêmes données avec les appels de fonction Windows et les appels de fonction de pixel OpenGL.
LUMINANCE du GL _
Chaque élément est une valeur de luminance unique. Elle est convertie en virgule flottante, puis Assemblée en élément RVBA en répliquant la valeur de luminance trois fois pour le rouge, le vert et le bleu, et en joignant 1,0 pour alpha. Chaque composant est ensuite multiplié par l’échelle de l’échelle GL c signée du facteur _ _ d’échelle, ajouté à l’écart de pondération GL _ c signé, et est ancré _ à la plage [ 0, 1 ] (voir glPixelTransfer).
_luminance _ alpha du GL
Chaque élément est une paire luminance/alpha. Elle est convertie en virgule flottante, puis Assemblée en élément RVBA en répliquant la valeur de luminance trois fois pour le rouge, le vert et le bleu. Chaque composant est ensuite multiplié par l’échelle de l’échelle GL c signée du facteur _ _ d’échelle, ajouté à l’écart de pondération GL _ c signé, et est ancré _ à la plage [ 0, 1 ] (voir glPixelTransfer).

type

Type de données des données de pixels. Les valeurs symboliques suivantes sont acceptées : _ octet non signé GL _ , _ octet GL, bitmap GL _ , GL _ non signé _ short, GL _ short, GL _ unsigned _ int, GL _ int et GL _ float.

pixels

Pointeur vers les données de l’image en mémoire.

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 .

Nom Signification
_enum GL non valide _
la cible n’était pas une _ texture GL _ 2D.
_enum GL non valide _
le format n’était pas une constante de format acceptée. Seules les constantes de format autres que l' _ index du stencil GL et le composant de _ _ profondeur GL _ sont acceptées. Pour obtenir la liste des valeurs possibles, consultez la description du paramètre format .
_enum GL non valide _
le type n’est pas une constante de type .
_enum GL non valide _
le type était _ bitmap GL et le format n’était pas l’index de _ couleur GL _ .
_valeur non valide du GL _
le niveau était inférieur à zéro ou supérieur à log2 Max, où Max était la valeur retournée de la _ taille de texture max GL _ _ .
_valeur non valide du GL _
internalformat n’était pas 1, 2, 3 ou 4.
_valeur non valide du GL _
la largeur ou la hauteur est inférieure à zéro ou supérieure à 2 + la _ taille de la texture GL maximum _ _ , ou elle ne peut pas être représentée sous la forme 2 n + 2 (bordure) pour une valeur entière de n.
_valeur non valide du GL _
la bordure n’est pas 0 ou 1.
_opération non valide du GL _
La fonction a été appelée entre un appel à glBegin et l’appel correspondant à glEnd.

Notes

La fonction glTexImage2D spécifie une image de texture à deux dimensions. La texturation mappe une partie d’une image de texture spécifiée sur chaque primitive graphique pour laquelle la texturation est activée. La texturation à deux dimensions est activée et désactivée à l’aide de glEnable et glDisable avec l’argument GL _ texture _ 2D.

Les images de texture sont définies avec glTexImage2D. Les arguments décrivent les paramètres de l’image de texture, tels que la hauteur, la largeur, la largeur de la bordure, le nombre de niveaux de détail (voir glTexParameter) et le nombre de composants de couleur fournis. Les trois derniers arguments décrivent le mode de représentation de l’image en mémoire. Ces arguments sont identiques aux formats de pixels utilisés pour glDrawPixels.

Les données sont lues à partir de pixels sous la forme d’une séquence d’octets signés ou non signés, de shorts ou de longs, ou de valeurs à virgule flottante simple précision, en fonction du type. Ces valeurs sont regroupées en jeux d’une, deux, trois ou quatre valeurs, selon le format, pour former des éléments. Si le type est _ bitmap GL, les données sont considérées comme une chaîne d’octets non signés (et le format doit être un index de couleur GL _ _ ). Chaque octet de données est traité comme des éléments 8 1 bits, l’ordonnancement des bits étant déterminé par le _ décompression GL _ LSB en _ premier (voir glPixelStore). Pour obtenir une description des valeurs acceptables pour le paramètre de type , consultez glDrawPixels .

Une image de texture peut avoir jusqu’à quatre composants par élément de texture, en fonction des composants. Une image de texture à un composant utilise uniquement le composant rouge de la couleur RVBA extraite des pixels. Une image à deux composants utilise les valeurs R et A. Une image à trois composants utilise les valeurs R, G et B. Une image à quatre composants utilise tous les composants RVBA.

La texturation n’a aucun effet dans le mode d’index des couleurs.

L’image de texture peut être représentée par les mêmes formats de données que les pixels d’une commande glDrawPixels , à ceci près que le _ composant index du stencil GL _ et profondeur du GL _ _ ne peut pas être utilisé. Les modes glPixelStore et glPixelTransfer affectent les images de texture exactement comme elles affectent glDrawPixels.

Une image de texture avec une hauteur ou une largeur nulle indique la texture null. Si la texture null est spécifiée pour le niveau de détail 0, c’est comme si la texturation était désactivée.

Les fonctions suivantes récupèrent les informations relatives à glTexImage2D:

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

glDrawPixels

glEnd

glFog

glIsEnabled

glPixelStore

glPixelTransfer

glTexEnv

glTexGen

glTexImage1D

glTexParameter