glPixelStoref, fonction
Définit les modes de stockage des pixels.
Syntaxe
void WINAPI glPixelStoref(
GLenum pname,
GLfloat 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 cliente et sont donc significatifs uniquement pour les commandes glReadPixels . Les voici :
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, uniquement sur l’ordre des octets dans les composants ou les index. Par exemple, les trois composants d’un pixel de format GL_RGB sont toujours stockés avec le rouge premier, le vert deuxième 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 dans la mémoire, l’emplacement du premier pixel de la ligne suivante est obtenu [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 s’il est supérieur à zéro, l’argument de largeur de la routine de pixels dans le cas contraire), a est la valeur de l’alignement gl-pack 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
composants ou index. Le composant de mot dans cette description fait référence aux valeurs non indexées rouge, vert, bleu, alpha et profondeur. Le format de stockage GL_RGB, par exemple, a trois composants par pixel : d’abord rouge, vert et enfin bleu.GL_PACK_SKIP_PIXELS et
GL_PACK_SKIP_ROWSCes 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 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 équivaut à incrémenter le pointeur de j k composants ou index, où k correspond au 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 des octets paires), 4 (alignement des mots) et 8 (les lignes commencent sur des 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 cliente. 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 second 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 Si elle est supérieure à 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 dans la mémoire, l’emplacement du premier pixel de la ligne suivante est obtenu [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 s’il est supérieur à zéro, l’argument de largeur de la routine de pixels dans le cas contraire), a est la valeur de l’alignement gl-pack 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
composants ou index. Le composant de mot dans cette description fait référence aux valeurs non indexées rouge, vert, bleu, alpha et profondeur. Le format de stockage GL_RGB, par exemple, a trois composants par pixel : d’abord rouge, vert et enfin bleu.GL_UNPACK_SKIP_PIXELS et
GL_UNPACK_SKIP_ROWSCes 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 équivaut à incrémenter le pointeur d’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 équivaut à incrémenter le pointeur de j k composants ou index, 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 des octets paires), 4 (alignement des mots) et 8 (les lignes commencent sur des 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 | Boolean | false | True ou False |
GL_PACK_SWAP_BYTES | Boolean | 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 | Boolean | false | True ou False |
GL_UNPACK_LSB_FIRST | Boolean | 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 l’un des paramètres du magasin de pixels. Les paramètres booléens sont définis sur false si param est 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 argument GL_PACK_SKIP_PIXELS
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 argument GL_UNPACK_SKIP_ROWS
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 |
|
Bibliothèque |
|
DLL |
|