Struttura DDPIXELFORMAT (ddraw.h)
La struttura DDPIXELFORMAT descrive il formato pixel di un oggetto DirectDrawSurface per il metodo IDirectDrawSurface7::GetPixelFormat .
typedef struct _DDPIXELFORMAT {
DWORD dwSize;
DWORD dwFlags;
DWORD dwFourCC;
#if ...
union {
DWORD dwRGBBitCount;
DWORD dwYUVBitCount;
DWORD dwZBufferBitDepth;
DWORD dwAlphaBitDepth;
DWORD dwLuminanceBitCount;
DWORD dwBumpBitCount;
DWORD dwPrivateFormatBitCount;
} DUMMYUNIONNAMEN;
#elif
union {
DWORD dwRBitMask;
DWORD dwYBitMask;
DWORD dwStencilBitDepth;
DWORD dwLuminanceBitMask;
DWORD dwBumpDuBitMask;
DWORD dwOperations;
} DUMMYUNIONNAMEN;
#elif
union {
DWORD dwGBitMask;
DWORD dwUBitMask;
DWORD dwZBitMask;
DWORD dwBumpDvBitMask;
struct {
WORD wFlipMSTypes;
WORD wBltMSTypes;
} MultiSampleCaps;
} DUMMYUNIONNAMEN;
#elif
union {
DWORD dwBBitMask;
DWORD dwVBitMask;
DWORD dwStencilBitMask;
DWORD dwBumpLuminanceBitMask;
} DUMMYUNIONNAMEN;
#else
union {
DWORD dwRGBAlphaBitMask;
DWORD dwYUVAlphaBitMask;
DWORD dwLuminanceAlphaBitMask;
DWORD dwRGBZBitMask;
DWORD dwYUVZBitMask;
} DUMMYUNIONNAMEN;
#endif
} DDPIXELFORMAT;
dwSize
Dimensioni della struttura, in byte. Questo membro deve essere inizializzato prima dell'utilizzo della struttura.
dwFlags
I flag seguenti per descrivere i controlli facoltativi per questa struttura.
Il formato pixel descrive una superficie solo alfa.
La superficie contiene informazioni sul canale alfa nel formato pixel.
La superficie usa il formato alfa premoltiplicato. Ovvero, i componenti di colore in ogni pixel sono premoltiplicati dal componente alfa.
I dati di luminanza nel formato pixel sono validi e il membro dwLuminanceBitMask descrive i bit di dominanza validi per una superficie luminanza o alfa luminanza.
I dati della mappa d'urto nel formato pixel sono validi. Le informazioni sulla mappa dwBumpBitCount, dwBumpDuBitMask, dwBumpDvBitMask e dwBumpLuminanceBitMask .
La superficie accetta i dati pixel nel formato specificato e lo comprime durante l'operazione di scrittura.
Indica una voce di funzionalità di formato DirectX 8.0 e versioni successive nell'elenco dei formati di trama. Questo flag non è esposto alle applicazioni ed è definito in Ddrawi.h.
Il membro dwFourCC è valido e contiene un codice FOURCC che descrive un formato pixel non RGB.
Il formato pixel descrive una superficie di sola luminanza o luminanza-alfa.
La superficie è indicizzata a 1 bit.
La superficie è indicizzata a 2 bit.
La superficie è indicizzata a 4 bit.
La superficie è indicizzata a 8 bit.
La superficie è indicizzata a 1, 2 o a 4 bit in una tavolozza a 8 bit.
I dati RGB nella struttura del formato pixel sono validi.
La superficie accetta i dati RGB e li converte durante l'operazione di scrittura in dati YUV. Il formato dei dati da scrivere è contenuto nella struttura del formato pixel. Il flag DDPF_RGB è impostato.
La superficie codifica gli stencil e le informazioni di profondità in ogni pixel del buffer z. Questo flag può essere usato solo se viene specificato anche il flag DDPF_ZBUFFER.
I dati YUV nella struttura del formato pixel sono validi.
Il formato pixel descrive una superficie del buffer z.
La superficie contiene informazioni z nei pixel.
dwFourCC
Codice FourCC.
DUMMYUNIONNAMEN
DUMMYUNIONNAMEN.dwRGBBitCount
Bit RGB per pixel (4, 8, 16, 24 o 32).
DUMMYUNIONNAMEN.dwYUVBitCount
Bit YUV per pixel (4, 8, 16, 24 o 32).
DUMMYUNIONNAMEN.dwZBufferBitDepth
Profondità bit buffer Z (8, 16, 24 o 32).
DUMMYUNIONNAMEN.dwAlphaBitDepth
Profondità bit canale alfa (1, 2, 4 o 8) per una superficie alfa-only (DDPF_ALPHA). Per i formati pixel che contengono informazioni alfa interleaved con i dati di colore (DDPF_ALPHAPIXELS), contare i bit nel membro dwRGBAlphaBitMask per ottenere la profondità di bit del componente alfa. Per altre informazioni su come determinare la profondità dei bit alfa, vedere Osservazioni.
DUMMYUNIONNAMEN.dwLuminanceBitCount
Bit di luminanza totali per pixel. Questo membro si applica solo alle superfici luminanza e alfa luminanza.
DUMMYUNIONNAMEN.dwBumpBitCount
Numero totale di bit della mappa d'urto per pixel in una superficie della mappa d'urto.
DUMMYUNIONNAMEN.dwPrivateFormatBitCount
Bit per pixel di formati di driver privati. Valido solo nell'elenco di formato trama e se è impostato DDPF_D3DFORMAT.
DUMMYUNIONNAMEN.dwRBitMask
Maschera per i bit rossi.
DUMMYUNIONNAMEN.dwYBitMask
Maschera per i bit Y.
DUMMYUNIONNAMEN.dwStencilBitDepth
Profondità di bit del buffer degli stencil. Questo membro specifica il numero di bit riservati all'interno di ogni pixel del buffer z per le informazioni sugli stencil (il numero totale di bit z è uguale a dwZBufferBitDepth meno dwStencilBitDepth).
DUMMYUNIONNAMEN.dwLuminanceBitMask
Maschera per i bit di luminanza.
DUMMYUNIONNAMEN.dwBumpDuBitMask
Maschera per i bit U-delta della mappa d'urto.
DUMMYUNIONNAMEN.dwOperations
Flag che specificano le operazioni che possono essere eseguite su superfici con il formato pixel DDPF_D3DFORMAT. I flag sono definiti in Ddrawi.h.
DUMMYUNIONNAMEN.dwGBitMask
Maschera per i bit verdi.
DUMMYUNIONNAMEN.dwUBitMask
Maschera per i bit U.
DUMMYUNIONNAMEN.dwZBitMask
Maschera per i bit z.
DUMMYUNIONNAMEN.dwBumpDvBitMask
Maschera per i bit differenziali V della mappa d'urto.
DUMMYUNIONNAMEN.MultiSampleCaps
Struttura che contiene i due membri seguenti. Questa struttura viene utilizzata per specificare le superfici che possono essere usate durante l'esecuzione del rendering multisample. Ogni bit nelle maschere a 16 bit indica il supporto del multicampionamento con un numero specifico di campioni. Ad esempio, bit 0 indica il supporto del multicampionamento con un solo campione, bit 1 indica il supporto del multicampionamento con due campioni e così via. Il driver può indicare più di un livello supportato combinando i bit usando un OR bit per bit.
DUMMYUNIONNAMEN.MultiSampleCaps.wFlipMSTypes
Maschera a 16 bit per il multicampionamento a schermo intero (capovolgimento).
DUMMYUNIONNAMEN.MultiSampleCaps.wBltMSTypes
Maschera a 16 bit per il multicampionamento in modalità multicampionamento a blocchi di bit.
DUMMYUNIONNAMEN.dwBBitMask
Maschera per i bit blu.
DUMMYUNIONNAMEN.dwVBitMask
Maschera per i bit V.
DUMMYUNIONNAMEN.dwStencilBitMask
Maschera per i bit degli stencil all'interno di ogni pixel del buffer z.
DUMMYUNIONNAMEN.dwBumpLuminanceBitMask
Maschera per la luminanza in un pixel della mappa d'urto.
DUMMYUNIONNAMEN.dwRGBAlphaBitMask
Maschera RGB per il canale alfa.
DUMMYUNIONNAMEN.dwYUVAlphaBitMask
Maschera YUV per il canale alfa.
DUMMYUNIONNAMEN.dwLuminanceAlphaBitMask
Maschera di dominanza per il canale alfa.
DUMMYUNIONNAMEN.dwRGBZBitMask
Maschera RGB per il canale z.
DUMMYUNIONNAMEN.dwYUVZBitMask
Maschera YUV per il canale z.
Il membro dwAlphaBitDepth riflette la profondità di bit di un formato pixel solo alfa (DDPF_ALPHA). Per i formati pixel che includono il componente alfa con componenti di colore (DDPF_ALPHAPIXELS), la profondità dei bit alfa viene ottenuta contando i bit nei vari membri della maschera. Nell'esempio di codice seguente viene restituito il numero di bit impostati in una maschera di bit specificata.
WORD GetNumberOfBits( DWORD dwMask )
{
WORD wBits = 0;
while( dwMask )
{
dwMask = dwMask & ( dwMask - 1 );
wBits++;
}
return wBits;
}
Le unioni in DDPIXELFORMAT sono state aggiornate per lavorare con i compilatori che non supportano unioni senza nome. Se il compilatore non supporta unioni senza nome, definire il token NONAMELESSUNION prima di includere il file di intestazione Ddraw.h.
Intestazione | ddraw.h |