Struttura PIXELFORMATDESCRIPTOR (wingdi.h)
La struttura PIXELFORMATDESCRIPTOR descrive il formato pixel di una superficie di disegno.
Sintassi
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;
Members
nSize
Specifica le dimensioni di questa struttura di dati. Questo valore deve essere impostato su sizeof(PIXELFORMATDESCRIPTOR).
nVersion
Specifica la versione di questa struttura di dati. Questo valore deve essere impostato su 1.
dwFlags
Set di flag di bit che specificano le proprietà del buffer pixel. Le proprietà in genere non si escludono a vicenda; è possibile impostare qualsiasi combinazione di flag di bit, con le eccezioni indicate. Vengono definite le costanti del flag di bit seguenti.
Valore | Significato |
---|---|
PFD_DRAW_TO_WINDOW
|
Il buffer può disegnare in una finestra o in una superficie del dispositivo. |
PFD_DRAW_TO_BITMAP
|
Il buffer può disegnare in una bitmap di memoria. |
PFD_SUPPORT_GDI
|
Il buffer supporta il disegno GDI. Questo flag e PFD_DOUBLEBUFFER si escludono a vicenda nell'implementazione generica corrente. |
PFD_SUPPORT_OPENGL
|
Il buffer supporta il disegno OpenGL. |
PFD_GENERIC_ACCELERATED
|
Il formato pixel è supportato da un driver di dispositivo che accelera l'implementazione generica. Se questo flag è chiaro e viene impostato il flag di PFD_GENERIC_FORMAT, il formato pixel è supportato solo dall'implementazione generica. |
PFD_GENERIC_FORMAT
|
Il formato pixel è supportato dall'implementazione del software GDI, nota anche come implementazione generica. Se questo bit è chiaro, il formato pixel è supportato da un driver di dispositivo o da un hardware. |
PFD_NEED_PALETTE
|
Il buffer usa i pixel RGBA in un dispositivo gestito dalla tavolozza. Per ottenere i risultati migliori per questo tipo di pixel, è necessaria una tavolozza logica. I colori nella tavolozza devono essere specificati in base ai valori dei membri cRedBits, cRedShift, cGreenBits, cGreenShift, cBluebits e cBlueShift . La tavolozza deve essere creata e realizzata nel contesto del dispositivo prima di chiamare wglMakeCurrent. |
PFD_NEED_SYSTEM_PALETTE
|
Definito nei descrittori di formato pixel dell'hardware che supporta una tavolozza hardware solo in modalità a colori 256. Affinché tali sistemi usino l'accelerazione hardware, la tavolozza hardware deve essere in ordine fisso (ad esempio 3-3-2) quando è in modalità RGBA o deve corrispondere alla tavolozza logica quando è in modalità di indice dei colori. Quando questo flag è impostato, è necessario chiamare SetSystemPaletteUse nel programma per forzare un mapping uno-a-uno della tavolozza logica e della tavolozza di sistema. Se l'hardware OpenGL supporta più tavolozze hardware e il driver di dispositivo può allocare tavolozze hardware di riserva per OpenGL, questo flag è in genere chiaro.
Questo flag non è impostato nei formati pixel generici. |
PFD_DOUBLEBUFFER
|
Il buffer viene memorizzato nel doppio buffer. Questo flag e PFD_SUPPORT_GDI si escludono a vicenda nell'implementazione generica corrente. |
PFD_STEREO
|
Il buffer è stereoscopico. Questo flag non è supportato nell'implementazione generica corrente. |
PFD_SWAP_LAYER_BUFFERS
|
Indica se un dispositivo può scambiare singoli piani di livello con formati pixel che includono sovrapposizione a doppio buffer o piani di sottosezioni. In caso contrario, tutti i piani livello vengono scambiati insieme come gruppo. Quando questo flag è impostato, wglSwapLayerBuffers è supportato. |
È possibile specificare i flag di bit seguenti quando si chiama ChoosePixelFormat.
Valore | Significato |
---|---|
PFD_DEPTH_DONTCARE
|
Il formato pixel richiesto può avere o meno un buffer di profondità. Per selezionare un formato pixel senza un buffer di profondità, è necessario specificare questo flag. Il formato pixel richiesto può essere con o senza un buffer di profondità. In caso contrario, vengono considerati solo i formati pixel con un buffer di profondità. |
PFD_DOUBLEBUFFER_DONTCARE
|
Il formato pixel richiesto può essere con buffer singolo o doppio. |
PFD_STEREO_DONTCARE
|
Il formato pixel richiesto può essere monoscopico o stereoscopico. |
Con la funzione di estensione glAddSwapHintRectWIN , sono inclusi due nuovi flag per la struttura di formato pixel PIXELFORMATDESCRIPTOR .
Valore | Significato |
---|---|
PFD_SWAP_COPY
|
Specifica il contenuto del buffer nascosto nel piano colore principale con doppio buffer dopo uno scambio di buffer. Se si scambiano i buffer di colore, il contenuto del buffer nascosto viene copiato nel buffer anteriore. Il contenuto del buffer nascosto non è interessato dallo scambio. PFD_SWAP_COPY è un suggerimento solo e potrebbe non essere fornito da un driver. |
PFD_SWAP_EXCHANGE
|
Specifica il contenuto del buffer nascosto nel piano colore principale con doppio buffer dopo uno scambio di buffer. Lo scambio dei buffer di colore causa lo scambio del contenuto del buffer nascosto con il contenuto del buffer anteriore. Dopo lo scambio, il contenuto del buffer nascosto contiene il contenuto del buffer anteriore prima dello scambio. PFD_SWAP_EXCHANGE è un suggerimento solo e potrebbe non essere fornito da un driver. |
iPixelType
Specifica il tipo di dati pixel. Vengono definiti i tipi seguenti.
Valore | Significato |
---|---|
PFD_TYPE_RGBA
|
Pixel RGBA. Ogni pixel ha quattro componenti in questo ordine: rosso, verde, blu e alfa. |
PFD_TYPE_COLORINDEX
|
Pixel di indice colore. Ogni pixel usa un valore di indice color. |
cColorBits
Specifica il numero di bitplani di colore in ogni buffer di colori. Per i tipi di pixel RGBA, è la dimensione del buffer di colore, escluso i bitplani alfa. Per i pixel di indice dei colori, è la dimensione del buffer dell'indice colore.
cRedBits
Specifica il numero di bitplani rossi in ogni buffer di colore RGBA.
cRedShift
Specifica il numero di maiuscole per i bitplani rossi in ogni buffer di colore RGBA.
cGreenBits
Specifica il numero di bitplani verdi in ogni buffer di colore RGBA.
cGreenShift
Specifica il numero di maiuscole per i bitplani verdi in ogni buffer di colore RGBA.
cBlueBits
Specifica il numero di bitplani blu in ogni buffer di colore RGBA.
cBlueShift
Specifica il numero di maiuscole per i bitplani blu in ogni buffer di colore RGBA.
cAlphaBits
Specifica il numero di bitplani alfa in ogni buffer di colore RGBA. I bitplani alfa non sono supportati.
cAlphaShift
Specifica il numero di maiuscole per i bitplani alfa in ogni buffer di colore RGBA. I bitplani alfa non sono supportati.
cAccumBits
Specifica il numero totale di bitplani nel buffer di accumulo.
cAccumRedBits
Specifica il numero di bitplani rossi nel buffer di accumulo.
cAccumGreenBits
Specifica il numero di bitplani verdi nel buffer di accumulo.
cAccumBlueBits
Specifica il numero di bitplani blu nel buffer di accumulo.
cAccumAlphaBits
Specifica il numero di bitplani alfa nel buffer di accumulo.
cDepthBits
Specifica la profondità del buffer di profondità (asse z).
cStencilBits
Specifica la profondità del buffer stencil.
cAuxBuffers
Specifica il numero di buffer ausiliari. I buffer ausiliari non sono supportati.
iLayerType
Ignorato. Le implementazioni precedenti di OpenGL usano questo membro, ma non vengono più usate.
bReserved
Specifica il numero di piani di sovrimpressione e sottolay. I bit da 0 a 3 specificano fino a 15 piani di sovrapposizione e bit da 4 a 7 specificano fino a 15 piani di sottolay.
dwLayerMask
Ignorato. Le implementazioni precedenti di OpenGL usano questo membro, ma non vengono più usate.
dwVisibleMask
Specifica il colore trasparente o l'indice di un piano di sottolay. Quando il tipo di pixel è RGBA, dwVisibleMask è un valore di colore RGB trasparente. Quando il tipo di pixel è indice colore, è un valore di indice trasparente.
dwDamageMask
Ignorato. Le implementazioni precedenti di OpenGL usano questo membro, ma non vengono più usate.
Commenti
Si noti con attenzione, come documentato in precedenza, che alcune proprietà del formato pixel non sono supportate nell'implementazione generica corrente. L'implementazione generica è l'implementazione del software Microsoft GDI di OpenGL. I produttori di hardware possono migliorare le parti di OpenGL e possono supportare alcune proprietà di formato pixel non supportate dall'implementazione generica.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 2000 Professional [solo app desktop] |
Server minimo supportato | Windows 2000 Server [solo app desktop] |
Intestazione | wingdi.h |