Structure PIXELFORMATDESCRIPTOR (wingdi.h)
La structure PIXELFORMATDESCRIPTOR décrit le format de pixel d’une surface de dessin.
Syntaxe
typedef struct tagPIXELFORMATDESCRIPTOR {
WORD nSize;
WORD nVersion;
DWORD dwFlags;
BYTE iPixelType;
BYTE cColorBits;
BYTE cRedBits;
BYTE cRedShift;
BYTE cGreenBits;
BYTE cGreenShift;
BYTE cBlueBits;
BYTE cBlueShift;
BYTE cAlphaBits;
BYTE cAlphaShift;
BYTE cAccumBits;
BYTE cAccumRedBits;
BYTE cAccumGreenBits;
BYTE cAccumBlueBits;
BYTE cAccumAlphaBits;
BYTE cDepthBits;
BYTE cStencilBits;
BYTE cAuxBuffers;
BYTE iLayerType;
BYTE bReserved;
DWORD dwLayerMask;
DWORD dwVisibleMask;
DWORD dwDamageMask;
} PIXELFORMATDESCRIPTOR, *PPIXELFORMATDESCRIPTOR, *LPPIXELFORMATDESCRIPTOR;
Membres
nSize
Spécifie la taille de cette structure de données. Cette valeur doit être définie sur sizeof(PIXELFORMATDESCRIPTOR).
nVersion
Spécifie la version de cette structure de données. Cette valeur doit être définie sur 1.
dwFlags
Ensemble d’indicateurs de bits qui spécifient les propriétés de la mémoire tampon de pixels. Les propriétés ne s’excluent généralement pas mutuellement ; vous pouvez définir n’importe quelle combinaison d’indicateurs de bits, avec les exceptions notées. Les constantes d’indicateur de bits suivantes sont définies.
Valeur | Signification |
---|---|
PFD_DRAW_TO_WINDOW
|
La mémoire tampon peut dessiner sur une fenêtre ou une surface d’appareil. |
PFD_DRAW_TO_BITMAP
|
La mémoire tampon peut dessiner dans une bitmap de mémoire. |
PFD_SUPPORT_GDI
|
La mémoire tampon prend en charge le dessin GDI. Cet indicateur et PFD_DOUBLEBUFFER s’excluent mutuellement dans l’implémentation générique actuelle. |
PFD_SUPPORT_OPENGL
|
La mémoire tampon prend en charge le dessin OpenGL. |
PFD_GENERIC_ACCELERATED
|
Le format de pixel est pris en charge par un pilote de périphérique qui accélère l’implémentation générique. Si cet indicateur est clair et que l’indicateur PFD_GENERIC_FORMAT est défini, le format de pixel est pris en charge par l’implémentation générique uniquement. |
PFD_GENERIC_FORMAT
|
Le format de pixel est pris en charge par l’implémentation logicielle GDI, également appelée implémentation générique. Si ce bit est clair, le format de pixel est pris en charge par un pilote de périphérique ou un matériel. |
PFD_NEED_PALETTE
|
La mémoire tampon utilise des pixels RVBA sur un appareil géré par palette. Une palette logique est nécessaire pour obtenir les meilleurs résultats pour ce type de pixel. Les couleurs de la palette doivent être spécifiées en fonction des valeurs des membres cRedBits, cRedShift, cGreenBits, cGreenShift, cBluebits et cBlueShift . La palette doit être créée et réalisée dans le contexte de l’appareil avant d’appeler wglMakeCurrent. |
PFD_NEED_SYSTEM_PALETTE
|
Défini dans les descripteurs de format pixel du matériel qui prend en charge une palette de matériels en mode 256 couleurs uniquement. Pour que ces systèmes utilisent l’accélération matérielle, la palette matérielle doit être dans un ordre fixe (par exemple, 3-3-2) en mode RVBA ou doit correspondre à la palette logique en mode color-index. Lorsque cet indicateur est défini, vous devez appeler SetSystemPaletteUse dans votre programme pour forcer un mappage un-à-un de la palette logique et de la palette système. Si votre matériel OpenGL prend en charge plusieurs palettes matérielles et que le pilote de périphérique peut allouer des palettes de matériel de rechange pour OpenGL, cet indicateur est généralement clair.
Cet indicateur n’est pas défini dans les formats de pixels génériques. |
PFD_DOUBLEBUFFER
|
La mémoire tampon est mise en mémoire tampon double. Cet indicateur et PFD_SUPPORT_GDI s’excluent mutuellement dans l’implémentation générique actuelle. |
PFD_STEREO
|
La mémoire tampon est stéréoscopique. Cet indicateur n’est pas pris en charge dans l’implémentation générique actuelle. |
PFD_SWAP_LAYER_BUFFERS
|
Indique si un appareil peut permuter des plans de couche individuels avec des formats de pixels qui incluent des plans superposés ou sous-jacents à double mise en mémoire tampon. Sinon, tous les plans de couche sont échangés ensemble en tant que groupe. Lorsque cet indicateur est défini, wglSwapLayerBuffers est pris en charge. |
Vous pouvez spécifier les indicateurs de bits suivants lors de l’appel de ChoosePixelFormat.
Valeur | Signification |
---|---|
PFD_DEPTH_DONTCARE
|
Le format de pixel demandé peut avoir ou non une mémoire tampon de profondeur. Pour sélectionner un format de pixel sans mémoire tampon de profondeur, vous devez spécifier cet indicateur. Le format de pixel demandé peut être avec ou sans mémoire tampon de profondeur. Sinon, seuls les formats de pixels avec une mémoire tampon de profondeur sont pris en compte. |
PFD_DOUBLEBUFFER_DONTCARE
|
Le format de pixel demandé peut être mis en mémoire tampon simple ou double. |
PFD_STEREO_DONTCARE
|
Le format de pixel demandé peut être monoscopique ou stéréoscopique. |
Avec la fonction d’extension glAddSwapHintRectWIN , deux nouveaux indicateurs sont inclus pour la structure de format de pixel PIXELFORMATDESCRIPTOR .
Valeur | Signification |
---|---|
PFD_SWAP_COPY
|
Spécifie le contenu de la mémoire tampon d’arrière-plan dans le plan de couleurs main double mise en mémoire tampon après un échange de mémoire tampon. L’échange des tampons de couleurs entraîne la copie du contenu de la mémoire tampon d’arrière-plan vers la mémoire tampon avant. Le contenu de la mémoire tampon d’arrière-mémoire n’est pas affecté par l’échange. PFD_SWAP_COPY est un indicateur uniquement et peut ne pas être fourni par un pilote. |
PFD_SWAP_EXCHANGE
|
Spécifie le contenu de la mémoire tampon d’arrière-plan dans le plan de couleurs main double mise en mémoire tampon après un échange de mémoire tampon. L’échange des tampons de couleurs entraîne l’échange du contenu de la mémoire tampon d’arrière-plan avec le contenu de la mémoire tampon avant. Après l’échange, le contenu de la mémoire tampon d’arrière-plan contient le contenu de la mémoire tampon avant l’échange. PFD_SWAP_EXCHANGE est un indicateur uniquement et peut ne pas être fourni par un pilote. |
iPixelType
Spécifie le type de données de pixels. Les types suivants sont définis.
Valeur | Signification |
---|---|
PFD_TYPE_RGBA
|
Pixels RVBA. Chaque pixel a quatre composants dans cet ordre : rouge, vert, bleu et alpha. |
PFD_TYPE_COLORINDEX
|
Pixels d’index de couleur. Chaque pixel utilise une valeur d’index de couleur. |
cColorBits
Spécifie le nombre de plans de bits de couleur dans chaque mémoire tampon de couleur. Pour les types de pixels RVBA, il s’agit de la taille de la mémoire tampon de couleurs, à l’exclusion des plans de bits alpha. Pour les pixels d’index de couleur, il s’agit de la taille de la mémoire tampon color-index.
cRedBits
Spécifie le nombre de plans de bits rouges dans chaque mémoire tampon de couleurs RVBA.
cRedShift
Spécifie le nombre de décalages pour les plans de bits rouges dans chaque mémoire tampon de couleurs RVBA.
cGreenBits
Spécifie le nombre de plans de bits verts dans chaque mémoire tampon de couleurs RVBA.
cGreenShift
Spécifie le nombre de décalages pour les plans de bits verts dans chaque mémoire tampon de couleurs RVBA.
cBlueBits
Spécifie le nombre de plans de bits bleus dans chaque mémoire tampon de couleurs RVBA.
cBlueShift
Spécifie le nombre de décalages pour les plans de bits bleus dans chaque mémoire tampon de couleurs RVBA.
cAlphaBits
Spécifie le nombre de plans de bits alpha dans chaque mémoire tampon de couleurs RVBA. Les plans de bits alpha ne sont pas pris en charge.
cAlphaShift
Spécifie le nombre de décalages pour les plans de bits alpha dans chaque mémoire tampon de couleurs RVBA. Les plans de bits alpha ne sont pas pris en charge.
cAccumBits
Spécifie le nombre total de plans de bits dans la mémoire tampon d’accumulation.
cAccumRedBits
Spécifie le nombre de plans de bits rouges dans la mémoire tampon d’accumulation.
cAccumGreenBits
Spécifie le nombre de plans de bits verts dans la mémoire tampon d’accumulation.
cAccumBlueBits
Spécifie le nombre de plans de bits bleus dans la mémoire tampon d’accumulation.
cAccumAlphaBits
Spécifie le nombre de plans de bits alpha dans la mémoire tampon d’accumulation.
cDepthBits
Spécifie la profondeur de la mémoire tampon de profondeur (axe z).
cStencilBits
Spécifie la profondeur de la mémoire tampon de gabarit.
cAuxBuffers
Spécifie le nombre de mémoires tampons auxiliaires. Les mémoires tampons auxiliaires ne sont pas prises en charge.
iLayerType
Ignoré. Les implémentations antérieures d’OpenGL utilisaient ce membre, mais il n’est plus utilisé.
bReserved
Spécifie le nombre de plans de superposition et de sous-couche. Les bits 0 à 3 spécifient jusqu’à 15 plans de superposition et les bits 4 à 7 spécifient jusqu’à 15 plans de sous-couche.
dwLayerMask
Ignoré. Les implémentations antérieures d’OpenGL utilisaient ce membre, mais il n’est plus utilisé.
dwVisibleMask
Spécifie la couleur transparente ou l’index d’un plan sous-jacent. Lorsque le type de pixel est RVBA, dwVisibleMask est une valeur de couleur RVB transparente. Lorsque le type de pixel est un index de couleur, il s’agit d’une valeur d’index transparente.
dwDamageMask
Ignoré. Les implémentations antérieures d’OpenGL utilisaient ce membre, mais il n’est plus utilisé.
Remarques
Notez soigneusement, comme indiqué ci-dessus, que certaines propriétés de format de pixels ne sont pas prises en charge dans l’implémentation générique actuelle. L’implémentation générique est l’implémentation logicielle Microsoft GDI d’OpenGL. Les fabricants de matériel peuvent améliorer certaines parties d’OpenGL et peuvent prendre en charge certaines propriétés de format de pixels non prises en charge par l’implémentation générique.
Configuration requise
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 | wingdi.h |