Structure DDPIXELFORMAT (ddraw.h)
La structure DDPIXELFORMAT décrit le format de pixel d’un objet DirectDrawSurface pour la méthode IDirectDrawSurface7::GetPixelFormat .
Syntaxe
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;
Membres
dwSize
Taille de la structure, en octets. Ce membre doit être initialisé avant l’utilisation de la structure.
dwFlags
Les indicateurs suivants décrivent les contrôles facultatifs pour cette structure.
DDPF_ALPHA
Le format de pixel décrit une surface alpha uniquement.
DDPF_ALPHAPIXELS
La surface a des informations de canal alpha au format de pixel.
DDPF_ALPHAPREMULT
La surface utilise le format alpha prémultiplié. Autrement dit, les composants de couleur dans chaque pixel sont prémultipliés par le composant alpha.
DDPF_BUMPLUMINANCE
Les données de luminance au format de pixel sont valides, et le membre dwLuminanceBitMask décrit les bits de luminance valides pour une surface de luminance uniquement ou de luminance-alpha.
DDPF_BUMPDUDV
Les données bump-map au format pixel sont valides. Les informations bump-map se situent dans les membres dwBumpBitCount, dwBumpDuBitMask, dwBumpDvBitMask et dwBumpLuminanceBitMask .
DDPF_COMPRESSED
La surface accepte les données de pixels au format spécifié et les compresse pendant l’opération d’écriture.
DDPF_D3DFORMAT
Indique une entrée de fonctionnalité de format DirectX 8.0 et ultérieure dans la liste des formats de texture. Cet indicateur n’est pas exposé aux applications et est défini dans Ddrawi.h.
DDPF_FOURCC
Le membre dwFourCC est valide et contient un code FOURCC qui décrit un format de pixel non RVB.
DDPF_LUMINANCE
Le format de pixels décrit une surface luminance-only ou luminance-alpha.
DDPF_PALETTEINDEXED1
La surface est indexée en couleur 1 bits.
DDPF_PALETTEINDEXED2
La surface est indexée en couleur 2 bits.
DDPF_PALETTEINDEXED4
La surface est indexée en couleur 4 bits.
DDPF_PALETTEINDEXED8
La surface est indexée en couleur 8 bits.
DDPF_PALETTEINDEXEDTO8
La surface est indexée en couleur 1, 2 ou 4 bits dans une palette 8 bits.
DDPF_RGB
Les données RVB dans la structure de format de pixels sont valides.
DDPF_RGBTOYUV
La surface accepte les données RVB et les traduit pendant l’opération d’écriture en données YUV. Le format des données à écrire est contenu dans la structure de format de pixels. L’indicateur DDPF_RGB est défini.
DDPF_STENCILBUFFER
La surface encode les informations de gabarit et de profondeur dans chaque pixel de la mémoire tampon z. Cet indicateur ne peut être utilisé que si l’indicateur DDPF_ZBUFFER est également spécifié.
DDPF_YUV
Les données YUV dans la structure de format de pixels sont valides.
DDPF_ZBUFFER
Le format de pixels décrit une surface z-buffer.
DDPF_ZPIXELS
La surface contient des informations z dans les pixels.
dwFourCC
Un code FourCC.
DUMMYUNIONNAMEN
DUMMYUNIONNAMEN.dwRGBBitCount
Bits RVB par pixel (4, 8, 16, 24 ou 32).
DUMMYUNIONNAMEN.dwYUVBitCount
Bits YUV par pixel (4, 8, 16, 24 ou 32).
DUMMYUNIONNAMEN.dwZBufferBitDepth
Profondeur de bits de la mémoire tampon Z (8, 16, 24 ou 32).
DUMMYUNIONNAMEN.dwAlphaBitDepth
Profondeur de bits du canal alpha (1, 2, 4 ou 8) pour une surface alpha uniquement (DDPF_ALPHA). Pour les formats de pixels qui contiennent des informations alpha entrelacées avec des données de couleur (DDPF_ALPHAPIXELS), comptez les bits dans le membre dwRGBAlphaBitMask pour obtenir la profondeur de bits du composant alpha. Pour plus d’informations sur la façon de déterminer la profondeur des bits alpha, consultez Remarques.
DUMMYUNIONNAMEN.dwLuminanceBitCount
Nombre total de bits de luminance par pixel. Ce membre s’applique uniquement aux surfaces luminance-only et luminance-alpha.
DUMMYUNIONNAMEN.dwBumpBitCount
Nombre total de bits de carte de bosses par pixel dans une surface de carte de bosses.
DUMMYUNIONNAMEN.dwPrivateFormatBitCount
Bits par pixel des formats de pilote privé. Valide uniquement dans la liste de formats de texture et si DDPF_D3DFORMAT est défini.
DUMMYUNIONNAMEN.dwRBitMask
Masque pour les bits rouges.
DUMMYUNIONNAMEN.dwYBitMask
Masque pour les bits Y.
DUMMYUNIONNAMEN.dwStencilBitDepth
Profondeur de bits de la mémoire tampon de gabarit. Ce membre spécifie le nombre de bits réservés dans chaque pixel de la mémoire tampon z pour les informations de gabarit (le nombre total de z-bits est égal à dwZBufferBitDepth moins dwStencilBitDepth).
DUMMYUNIONNAMEN.dwLuminanceBitMask
Masque pour les bits de luminance.
DUMMYUNIONNAMEN.dwBumpDuBitMask
Masque pour les bits U-delta de la carte de bosses.
DUMMYUNIONNAMEN.dwOperations
Indicateurs qui spécifient les opérations qui peuvent être effectuées sur des surfaces au format de pixel DDPF_D3DFORMAT. Les indicateurs sont définis dans Ddrawi.h.
DUMMYUNIONNAMEN.dwGBitMask
Masque pour les bits verts.
DUMMYUNIONNAMEN.dwUBitMask
Masque pour les bits U.
DUMMYUNIONNAMEN.dwZBitMask
Masque pour z bits.
DUMMYUNIONNAMEN.dwBumpDvBitMask
Masque pour les bits V-delta de la carte de bosses.
DUMMYUNIONNAMEN.MultiSampleCaps
Structure qui contient les deux membres suivants. Cette structure est utilisée pour spécifier les surfaces qui peuvent être utilisées lors de l’exécution d’un rendu multi-échantillon. Chaque bit dans les masques 16 bits indique la prise en charge du multi-échantillonnage avec un nombre spécifique d’échantillons. Par exemple, le bit 0 indique la prise en charge du multi-échantillonnage avec un seul exemple, le bit 1 indique la prise en charge de l’échantillonnage multiple avec deux exemples, et ainsi de suite. Le pilote peut indiquer plusieurs niveaux pris en charge en combinant les bits à l’aide d’un or au niveau du bit.
DUMMYUNIONNAMEN.MultiSampleCaps.wFlipMSTypes
Masque 16 bits pour l’échantillonnage multiple en mode plein écran (flip).
DUMMYUNIONNAMEN.MultiSampleCaps.wBltMSTypes
Masque 16 bits pour l’échantillonnage multiple en mode fenêtré (transfert de bloc de bits).
DUMMYUNIONNAMEN.dwBBitMask
Masque pour les bits bleus.
DUMMYUNIONNAMEN.dwVBitMask
Masque pour les bits V.
DUMMYUNIONNAMEN.dwStencilBitMask
Masque pour les bits de gabarit dans chaque pixel z-buffer.
DUMMYUNIONNAMEN.dwBumpLuminanceBitMask
Masque pour la luminosité dans un pixel de carte de bosses.
DUMMYUNIONNAMEN.dwRGBAlphaBitMask
Masque RVB pour le canal alpha.
DUMMYUNIONNAMEN.dwYUVAlphaBitMask
Masque YUV pour le canal alpha.
DUMMYUNIONNAMEN.dwLuminanceAlphaBitMask
Masque de luminance pour le canal alpha.
DUMMYUNIONNAMEN.dwRGBZBitMask
Masque RVB pour le canal z.
DUMMYUNIONNAMEN.dwYUVZBitMask
Masque YUV pour le canal z.
Notes
Le membre dwAlphaBitDepth reflète la profondeur de bits d’un format de pixels alpha uniquement (DDPF_ALPHA). Pour les formats de pixels qui incluent le composant alpha avec des composants de couleur (DDPF_ALPHAPIXELS), la profondeur de bits alpha est obtenue en comptant les bits dans les différents membres du masque. L’exemple de code suivant retourne le nombre de bits définis dans un masque de bits donné.
WORD GetNumberOfBits( DWORD dwMask )
{
WORD wBits = 0;
while( dwMask )
{
dwMask = dwMask & ( dwMask - 1 );
wBits++;
}
return wBits;
}
Les unions dans DDPIXELFORMAT ont été mises à jour pour fonctionner avec des compilateurs qui ne prennent pas en charge les unions sans nom. Si votre compilateur ne prend pas en charge les unions sans nom, définissez le jeton NONAMELESSUNION avant d’inclure le fichier d’en-tête Ddraw.h.
Spécifications
En-tête | ddraw.h |