Partager via


Structure DDPIXELFORMAT (ddraw.h)

La structure DDPIXELFORMAT décrit le format de pixel d’un objet DirectDrawSurface pour la méthode IDirectDrawSurface7::GetPixelFormat .

Note Au lieu d’utiliser cette structure pour décoder des fichiers au format de fichier DirectDraw Surface (DDS) (.dds), vous devez utiliser une autre structure qui ne repose pas sur Ddraw.h. Pour plus d’informations sur les structures alternatives pour DDS, consultez DDS.
 

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