Struttura DDPIXELFORMAT (ddraw.h)

La struttura DDPIXELFORMAT descrive il formato pixel di un oggetto DirectDrawSurface per il metodo IDirectDrawSurface7::GetPixelFormat .

Nota Anziché usare questa struttura per decodificare i file con il formato di file DDS (DirectDraw Surface), è consigliabile usare una struttura alternativa che non si basa su Ddraw.h. Per altre informazioni sulle strutture alternative per DDS, vedere DDS.
 

Sintassi

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;

Members

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.

DDPF_ALPHA

Il formato pixel descrive una superficie solo alfa.

DDPF_ALPHAPIXELS

La superficie contiene informazioni sul canale alfa nel formato pixel.

DDPF_ALPHAPREMULT

La superficie usa il formato alfa premoltiplicato. Ovvero, i componenti di colore in ogni pixel sono premoltiplicati dal componente alfa.

DDPF_BUMPLUMINANCE

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.

DDPF_BUMPDUDV

I dati della mappa d'urto nel formato pixel sono validi. Le informazioni sulla mappa dwBumpBitCount, dwBumpDuBitMask, dwBumpDvBitMask e dwBumpLuminanceBitMask .

DDPF_COMPRESSED

La superficie accetta i dati pixel nel formato specificato e lo comprime durante l'operazione di scrittura.

DDPF_D3DFORMAT

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.

DDPF_FOURCC

Il membro dwFourCC è valido e contiene un codice FOURCC che descrive un formato pixel non RGB.

DDPF_LUMINANCE

Il formato pixel descrive una superficie di sola luminanza o luminanza-alfa.

DDPF_PALETTEINDEXED1

La superficie è indicizzata a 1 bit.

DDPF_PALETTEINDEXED2

La superficie è indicizzata a 2 bit.

DDPF_PALETTEINDEXED4

La superficie è indicizzata a 4 bit.

DDPF_PALETTEINDEXED8

La superficie è indicizzata a 8 bit.

DDPF_PALETTEINDEXEDTO8

La superficie è indicizzata a 1, 2 o a 4 bit in una tavolozza a 8 bit.

DDPF_RGB

I dati RGB nella struttura del formato pixel sono validi.

DDPF_RGBTOYUV

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.

DDPF_STENCILBUFFER

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.

DDPF_YUV

I dati YUV nella struttura del formato pixel sono validi.

DDPF_ZBUFFER

Il formato pixel descrive una superficie del buffer z.

DDPF_ZPIXELS

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.

Commenti

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.

Requisiti

   
Intestazione ddraw.h