Partager via


glPixelStorei, fonction

Définit les modes de stockage des pixels.

Syntaxe

void WINAPI glPixelStorei(
   GLenum pname,
   GLint  param
);

Paramètres

pname

Nom symbolique du paramètre à définir. Six des paramètres de stockage affectent la façon dont les données de pixel sont retournées à la mémoire du client et sont donc significatifs uniquement pour les commandes glReadPixels . Ils sont les suivants.

Paramètre de stockage Description
GL_PACK_SWAP_BYTES Si la valeur est true, l’ordre des octets pour les composants de couleur multioctets, les composants de profondeur, les index de couleur ou les index de gabarit est inversé. Autrement dit, si un composant de quatre octets est composé d’octets b0 , b1 , b2 , b3 , il est stocké en mémoire sous la forme b3 , b2, b1 , b0 si GL_PACK_SWAP_BYTES est true. GL_PACK_SWAP_BYTES n’a aucun effet sur l’ordre de mémoire des composants au sein d’un pixel, mais uniquement sur l’ordre des octets au sein des composants ou des index. Par exemple, les trois composants d’un pixel de format GL_RGB sont toujours stockés avec le premier rouge, le deuxième vert et le troisième bleu, quelle que soit la valeur de GL_PACK_SWAP_BYTES.
GL_PACK_LSB_FIRST Si la valeur est true, les bits sont classés dans un octet du moins significatif au plus significatif ; sinon, le premier bit de chaque octet est le plus significatif. Ce paramètre est significatif uniquement pour les données bitmap.
GL_PACK_ROW_LENGTH S’il est supérieur à zéro, GL_PACK_ROW_LENGTH définit le nombre de pixels dans une ligne. Si le premier pixel d’une ligne est placé à l’emplacement p en mémoire, l’emplacement du premier pixel de la ligne suivante est obtenu en ignorant Équation montrant l’emplacement du premier pixel de la ligne suivante dans GL_PACK_ROW_LENGTH. [newline] composants ou index, où n est le nombre de composants ou d’index dans un pixel, l est le nombre de pixels dans une ligne (gl-pack-row-length si elle est supérieure à zéro, l’argument width de la routine de pixels sinon), a est la valeur de gl-pack-alignment et s est la taille, en octets, d’un seul composant (si un<s, alors c’est comme si un = s). dans le cas de valeurs 1 bits, l’emplacement de la ligne suivante est obtenu en ignorant Équation montrant l’emplacement de la ligne suivante dans GL_PACK_ROW_LENGTH.
composants ou index. Le composant word dans cette description fait référence aux valeurs non indexées rouge, vert, bleu, alpha et depth. Le format de stockage GL_RGB, par exemple, a trois composants par pixel : d’abord le rouge, puis le vert et enfin le bleu.
GL_PACK_SKIP_PIXELS et
GL_PACK_SKIP_ROWS
Ces valeurs sont fournies à titre pratique pour le programmeur; ils ne fournissent aucune fonctionnalité qui ne peut pas être dupliquée simplement en incrémentant le pointeur passé à glReadPixels. Définir GL_PACK_SKIP_PIXELS sur i équivaut à incrémenter le pointeur par i n composants ou index, où n est le nombre de composants ou d’index dans chaque pixel. Définir GL_PACK_SKIP_ROWS sur j revient à incrémenter le pointeur par des composants ou des index j k , où k est le nombre de composants ou d’index par ligne, comme calculé ci-dessus dans la section GL_PACK_ROW_LENGTH.
GL_PACK_ALIGNMENT Spécifie les exigences d’alignement pour le début de chaque ligne de pixels en mémoire. Les valeurs autorisées sont 1 (alignement d’octets), 2 (lignes alignées sur les octets paires), 4 (alignement des mots) et 8 (les lignes commencent sur les limites de mots doubles).

Les six autres paramètres de stockage affectent la façon dont les données de pixels sont lues à partir de la mémoire du client. Ces valeurs sont significatives pour glDrawPixels, glTexImage1D, glTexImage2D, glBitmap et glPolygonStipple. Les voici :

Paramètre de stockage Description
GL_UNPACK_SWAP_BYTES Si la valeur est true, l’ordre des octets pour les composants de couleur multioctets, les composants de profondeur, les index de couleur ou les index de gabarit est inversé. Autrement dit, si un composant de quatre octets est composé d’octets b0 , b1 , b2 , b3 , il est stocké en mémoire sous la forme b3 , b2, b1 , b0 si GL_UNPACK_SWAP_BYTES est true. GL_UNPACK_SWAP_BYTES n’a aucun effet sur l’ordre de mémoire des composants au sein d’un pixel, uniquement sur l’ordre des octets au sein des composants ou des index. Par exemple, les trois composants d’un pixel de format GL_RGB sont toujours stockés avec le premier rouge, le deuxième vert et le troisième bleu, quelle que soit la valeur de GL_UNPACK_SWAP_BYTES.
GL_UNPACK_LSB_FIRST Si la valeur est true, les bits sont classés dans un octet du moins significatif au plus significatif ; sinon, le premier bit de chaque octet est le plus significatif. Cela est significatif uniquement pour les données bitmap.
GL_UNPACK_ROW_LENGTH S’il est supérieur à zéro, GL_UNPACK_ROW_LENGTH définit le nombre de pixels dans une ligne. Si le premier pixel d’une ligne est placé à l’emplacement p en mémoire, l’emplacement du premier pixel de la ligne suivante est obtenu en ignorant Équation montrant l’emplacement du premier pixel de la ligne suivante dans GL_UNPACK_ROW_LENGTH. [newline] composants ou index, où n est le nombre de composants ou d’index dans un pixel, l est le nombre de pixels dans une ligne (gl-pack-row-length si elle est supérieure à zéro, l’argument width de la routine de pixels sinon), a est la valeur de gl-pack-alignment et s est la taille, en octets, d’un seul composant (si un<s, alors c’est comme si un = s). dans le cas de valeurs 1 bits, l’emplacement de la ligne suivante est obtenu en ignorant Équation montrant l’emplacement de la ligne suivante dans GL_UNPACK_ROW_LENGTH.
composants ou index. Le composant word dans cette description fait référence aux valeurs non indexées rouge, vert, bleu, alpha et depth. Le format de stockage GL_RGB, par exemple, a trois composants par pixel : d’abord le rouge, puis le vert et enfin le bleu.
GL_UNPACK_SKIP_PIXELS et
GL_UNPACK_SKIP_ROWS
Ces valeurs sont fournies à titre pratique pour le programmeur; ils ne fournissent aucune fonctionnalité qui ne peut pas être dupliquée simplement en incrémentant le pointeur passé à glDrawPixels, glTexImage1D, glTexImage2D, glBitmap ou glPolygonStipple. Définir GL_UNPACK_SKIP_PIXELS sur i revient à incrémenter le pointeur par i n composants ou index, où n est le nombre de composants ou d’index dans chaque pixel. Définir GL_UNPACK_SKIP_ROWS sur j revient à incrémenter le pointeur par des composants ou des index j k , où k est le nombre de composants ou d’index par ligne, comme calculé ci-dessus dans la section GL_UNPACK_ROW_LENGTH.
GL_UNPACK_ALIGNMENT Spécifie les exigences d’alignement pour le début de chaque ligne de pixels en mémoire. Les valeurs autorisées sont 1 (alignement d’octets), 2 (lignes alignées sur les octets paires), 4 (alignement des mots) et 8 (les lignes commencent sur les limites de mots doubles).

param

Valeur sur laquelle pname est défini.

Valeur renvoyée

Cette fonction ne retourne pas de valeur.

Notes

La fonction glPixelStore définit les modes de stockage de pixels qui affectent le fonctionnement des glDrawPixels et glReadPixels suivants, ainsi que le déballage des modèles de stipple de polygones (voir glPolygonStipple), bitmaps (voir glBitmap) et modèles de texture (voir glTexImage1D, glTexImage2D, glTexSubImage1D et glTexSubImage2D).

Le tableau suivant indique le type, la valeur initiale et la plage de valeurs valides pour chacun des paramètres de stockage qui peuvent être définis avec glPixelStore.

Pname Type Valeur initiale Plage valide
GL_PACK_SWAP_BYTES Booléen false True ou False
GL_PACK_SWAP_BYTES Booléen false True ou False
GL_PACK_ROW_LENGTH entier 0 [0,?)
GL_PACK_SKIP_ROWS entier 0 [0,?)
GL_PACK_SKIP_PIXELS entier 0 [0,?)
GL_PACK_ALIGNMENT entier 4 1, 2, 4 ou 8
GL_UNPACK_SWAP_BYTES Booléen false True ou False
GL_UNPACK_LSB_FIRST Booléen false True ou False
GL_UNPACK_ROW_LENGTH entier 0 [0,?)
GL_UNPACK_SKIP_ROWS entier 0 [0,?)
GL_UNPACK_SKIP_PIXELS entier 0 [0,?)
GL_UNPACK_ALIGNMENT entier 4 1, 2, 4 ou 8

La fonction glPixelStoref peut être utilisée pour définir n’importe quel paramètre de magasin de pixels. Si le type de paramètre est Boolean et si param est 0,0, le paramètre est false ; sinon, elle est définie sur true. Si pname est un paramètre de type entier, param est arrondi à l’entier le plus proche.

De même, la fonction glPixelStorei peut également être utilisée pour définir n’importe quel paramètre de magasin de pixels. Les paramètres booléens sont définis sur false si param a la valeur 0 et true dans le cas contraire. Le paramètre param est converti en virgule flottante avant d’être affecté à des paramètres à valeur réelle.

Les modes de stockage de pixels en vigueur lorsque glDrawPixels, glReadPixels, glTexImage1D, glTexImage2D, glBitmap ou glPolygonStipple sont placés dans une liste d’affichage contrôlent l’interprétation des données mémoire. Les modes de stockage de pixels en vigueur lors de l’exécution d’une liste d’affichage ne sont pas significatifs.

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

glGet avec argument GL_PACK_SWAP_BYTES

glGet avec argument GL_PACK_LSB_FIRST

glGet avec argument GL_PACK_ROW_LENGTH

glGet avec argument GL_PACK_SKIP_ROWS

glGet avec GL_PACK_SKIP_PIXELS d’arguments

glGet avec argument GL_PACK_ALIGNMENT

glGet avec argument GL_UNPACK_SWAP_BYTES

glGet avec argument GL_UNPACK_LSB_FIRST

glGet avec argument GL_UNPACK_ROW_LENGTH

glGet avec GL_UNPACK_SKIP_ROWS d’arguments

glGet avec argument GL_UNPACK_SKIP_PIXELS

glGet avec argument GL_UNPACK_ALIGNMENT

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

glBitmap

glDrawPixels

glEnd

glPixelMap

glPixelTransfer

glPixelZoom

glPolygonStipple

glReadPixels

glTexImage1D

glTexImage2D