Fonction glTexImage1D

La fonction glTexImage1D spécifie une image de texture unidimensionnelle.

Syntaxe

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

Paramètres

cible

La texture cible. Doit être GL_TEXTURE_1D.

level

Le numéro du niveau de détail. Le niveau 0 est le niveau de l'image de base. Le niveau n est la n° image de réduction mipmap.

internalformat

Spécifie le 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, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LU MINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12 , GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_RGB, GL_R3_G3_B2, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA 4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12 ou GL_RGBA16.

width

La largeur de l'image de texture. Doit être 2n + 2( border ) pour un entier n. La hauteur de l'image de texture est 1.

frontière

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

format

Le format des données de pixels. Il peut prendre l'une des neuf valeurs symboliques.

Value Signification
GL_COLOR_INDEX
Chaque élément est une valeur unique, un indice de couleur. Il est converti en virgule fixe (avec un nombre non spécifié de 0 bits à droite du point binaire), décalé vers la gauche ou la droite, selon la valeur et le signe de GL_INDEX_SHIFT, et ajouté à GL_INDEX_OFFSET (voir glPixelTransfer). L'index résultant est converti en un ensemble de composants de couleur à l'aide des tables GL_PIXEL_MAP_I_TO_R, GL_PIXEL_MAP_I_TO_G, GL_PIXEL_MAP_I_TO_B et GL_PIXEL_MAP_I_TO_A, et limité à la plage [0,1].
GL_RED
Chaque élément est un seul composant rouge. Il est converti en virgule flottante et assemblé en un élément RGBA en attachant 0,0 pour le vert et le bleu et 1,0 pour l'alpha. Chaque composant est ensuite multiplié par le facteur d'échelle signé GL_c_SCALE, ajouté au biais signé GL_c_BIAS et limité à la plage [0,1] (voir glPixelTransfer).
GL_GREEN
Chaque élément est un seul composant vert. Il est converti en virgule flottante et assemblé en un élément RGBA en attachant 0,0 pour le rouge et le bleu et 1,0 pour l'alpha. Chaque composant est ensuite multiplié par le facteur d'échelle signé GL_c_SCALE, ajouté au biais signé GL_c_BIAS et limité à la plage [0,1] (voir glPixelTransfer).
GL_BLUE
Chaque élément est un seul composant bleu. Il est converti en virgule flottante et assemblé en un élément RGBA en attachant 0,0 pour le rouge et le vert et 1,0 pour l'alpha. Chaque composant est ensuite multiplié par le facteur d'échelle signé GL_c_SCALE, ajouté au biais signé GL_c_BIAS et limité à la plage [0,1] (voir glPixelTransfer).
GL_ALPHA
Chaque élément est un seul composant rouge. Il est converti en virgule flottante et assemblé en un élément RGBA en attachant 0,0 pour le rouge, le vert et le bleu. Chaque composant est ensuite multiplié par le facteur d'échelle signé GL_c_SCALE, ajouté au biais signé GL_c_BIAS et limité à la plage [0,1] (voir glPixelTransfer).
GL_RGB
Chaque élément est un triple RVB. Il est converti en virgule flottante et assemblé en un élément RGBA en attachant 1.0 pour alpha. Chaque composant est ensuite multiplié par le facteur d'échelle signé GL_c_SCALE, ajouté au biais signé GL_c_BIAS et limité à la plage [0,1] (voir glPixelTransfer).
GL_RGBA
Chaque élément est un élément RGBA complet. Il est converti en virgule flottante. Chaque composant est ensuite multiplié par le facteur d'échelle signé GL_c_SCALE, ajouté au biais signé GL_c_BIAS et limité à 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 des bitmaps (DIB) indépendants du périphérique Windows. Ainsi vos applications peuvent utiliser les mêmes données avec les appels de fonctions Windows et les appels de fonctions pixels OpenGL.
GL_BGRA_EXT
Chaque pixel est un groupe de quatre composants dans cet ordre : bleu, vert, rouge, alpha.
GL_BGRA_EXT fournit un format qui correspond à la disposition de la mémoire des bitmaps Windows indépendants du périphérique (DIB). Ainsi vos applications peuvent utiliser les mêmes données avec les appels de fonctions Windows et les appels de fonctions pixels OpenGL.
GL_LUMINANCE
Chaque élément est une valeur de luminance unique. Il est converti en virgule flottante, puis assemblé en un élément RGBA en répliquant la valeur de luminance trois fois pour le rouge, le vert et le bleu, et en attachant 1,0 pour l'alpha. Chaque composant est ensuite multiplié par le facteur d'échelle signé GL_c_SCALE, ajouté au biais signé GL_c_BIAS et limité à la plage [0,1] (voir glPixelTransfer).
GL_LUMINANCE_ALPHA
Chaque élément est une paire luminance/alpha. Il est converti en virgule flottante, puis assemblé en un élément RGBA en répliquant trois fois la valeur de luminance pour le rouge, le vert et le bleu. Chaque composant est ensuite multiplié par le facteur d'échelle signé GL_c_SCALE, ajouté au biais signé GL_c_BIAS et limité à la plage [0,1] (voir glPixelTransfer).

type

Le type de données des données de pixels. Les valeurs symboliques suivantes sont acceptées : GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT et GL_FLOAT.

pixels

Un pointeur vers les données d’image en mémoire.

Valeur retourné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
GL_INVALID_ENUM
la cible n'était pas un GL_TEXTURE.
GL_INVALID_ENUM
le format n'était pas une constante de format acceptée. Seules les constantes de format autres que GL_STENCIL_INDEX et GL_DEPTH_COMPONENT sont acceptées. Voir la description du paramètre de format pour une liste des valeurs possibles.
GL_INVALID_ENUM
type n’était pas une constante de type.
GL_INVALID_ENUM
le type était GL_BITMAP et le format n'était pas GL_COLOR_INDEX.
GL_INVALID_VALUE
level était inférieur à zéro ou supérieur à log2 max, où max était la valeur renvoyée de GL_MAX_TEXTURE_SIZE.
GL_INVALID_VALUE
internalformat n’était pas 1, 2, 3 ou 4.
GL_INVALID_VALUE
la largeur était inférieure à zéro ou supérieure à 2 + GL_MAX_TEXTURE_SIZE, ou elle ne pouvait pas être représentée par 2 n + 2(border) pour une valeur entière de n.
GL_INVALID_VALUE
la frontière n'était pas 0 ou 1.
GL_INVALID_OPERATION
La fonction a été appelée entre un appel à glBegin et l'appel correspondant à glEnd.

Notes

La fonction glTexImage1D spécifie une image de texture unidimensionnelle. 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 unidimensionnelle est activée et désactivée à l'aide de glEnable et glDisable avec l'argument GL_TEXTURE_1D.

Les images de texture sont définies avec glTexImage1D. Les arguments décrivent les paramètres de l'image de texture, tels que la largeur, la largeur de la bordure, le numéro de niveau de détail (voir glTexParameter) et le nombre de composants de couleur fournis. Les trois derniers arguments décrivent la manière dont l'image est représentée en mémoire. Ces arguments sont identiques aux formats de pixels utilisés pour glDrawPixels.

Les données sont lues à partir des pixels sous la forme d'une séquence d'octets signés ou non signés, de valeurs courtes ou longues, ou de valeurs à virgule flottante simple précision, selon le type. Ces valeurs sont regroupées en ensembles de une, deux, trois ou quatre valeurs, selon le format, pour former des éléments. Si le type est GL_BITMAP, les données sont considérées comme une chaîne d'octets non signés (et le format doit être GL_COLOR_INDEX). Chaque octet de données est traité comme huit éléments de 1 bit, l'ordre des bits étant déterminé par GL_UNPACK_LSB_FIRST (voir glPixelStore).

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

La texturation n’a aucun effet en mode index de couleur.

L'image de texture peut être représentée par les mêmes formats de données que les pixels dans une commande glDrawPixels, sauf que GL_STENCIL_INDEX et GL_DEPTH_COMPONENT ne peuvent pas être utilisés. Les modes glPixelStore et glPixelTransfer affectent les images de texture exactement de la même manière qu'ils affectent glDrawPixels.

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

Les fonctions suivantes récupèrent les informations liées à glTexImageID :

glGetTexImage

glIsEnabled avec l'argument GL_TEXTURE_1D

Spécifications

Condition requise Value
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

glCopyTexImage1D

glCopyTexImage2D

glCopyTexSubImage1D

glCopyTexSubImage2D

glDrawPixels

glEnd

glFog

glGetTexImage

glIsEnabled

glPixelStore

glPixelTransfer

glTexEnv

glTexGen

glTexImage2D

glTexSubImage1D

glTexSubImage2D

glTexParameter