Freigeben über


DDPIXELFORMAT-Struktur (ddraw.h)

Die DDPIXELFORMAT-Struktur beschreibt das Pixelformat eines DirectDrawSurface-Objekts für die IDirectDrawSurface7::GetPixelFormat-Methode .

Hinweis Anstatt diese Struktur zum Decodieren von Dateien mit dem DDS-Dateiformat (DirectDraw Surface) zu verwenden, sollten Sie eine alternative Struktur verwenden, die nicht auf Ddraw.h basiert. Weitere Informationen zu alternativen Strukturen für DDS finden Sie unter DDS.
 

Syntax

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;

Member

dwSize

Größe der Struktur in Bytes. Dieses Element muss initialisiert werden, bevor die Struktur verwendet wird.

dwFlags

Die folgenden Flags, um optionale Steuerelemente für diese Struktur zu beschreiben.

DDPF_ALPHA

Das Pixelformat beschreibt eine reine Alphaoberfläche.

DDPF_ALPHAPIXELS

Die Oberfläche enthält Alphakanalinformationen im Pixelformat.

DDPF_ALPHAPREMULT

Die Oberfläche verwendet das vormultiplizierte Alphaformat. Das heißt, die Farbkomponenten in jedem Pixel werden mit der Alphakomponente vormultipliziert.

DDPF_BUMPLUMINANCE

Die Luminancedaten im Pixelformat sind gültig, und das dwLuminanceBitMask-Element beschreibt gültige Luminancebits für eine reine Luminanz- oder Luminanz-Alpha-Oberfläche.

DDPF_BUMPDUDV

Bump-Map-Daten im Pixelformat sind gültig. Bump-Map-Informationen sind in den Elementen dwBumpBitCount, dwBumpDuBitMask, dwBumpDvBitMask und dwBumpLuminanceBitMask enthalten.

DDPF_COMPRESSED

Die Oberfläche akzeptiert Pixeldaten im angegebenen Format und komprimiert sie während des Schreibvorgangs.

DDPF_D3DFORMAT

Gibt einen DirectX 8.0- und höher-Formatfunktionseintrag in der Liste des Texturformats an. Dieses Flag wird nicht für Anwendungen verfügbar gemacht und in Ddrawi.h definiert.

DDPF_FOURCC

Das dwFourCC-Element ist gültig und enthält einen FOURCC-Code, der ein Nicht-RGB-Pixelformat beschreibt.

DDPF_LUMINANCE

Das Pixelformat beschreibt eine reine Luminance- oder Luminance-Alpha-Oberfläche.

DDPF_PALETTEINDEXED1

Die Oberfläche ist 1-Bit-Farbindiziert.

DDPF_PALETTEINDEXED2

Die Oberfläche ist 2-Bit-Farbindiziert.

DDPF_PALETTEINDEXED4

Die Oberfläche ist 4-Bit-Farbindiziert.

DDPF_PALETTEINDEXED8

Die Oberfläche ist 8-Bit-Farbindiziert.

DDPF_PALETTEINDEXEDTO8

Die Oberfläche ist 1-, 2- oder 4-Bit-Farbindiziert auf eine 8-Bit-Palette.

DDPF_RGB

Die RGB-Daten in der Pixelformatstruktur sind gültig.

DDPF_RGBTOYUV

Die Oberfläche akzeptiert RGB-Daten und übersetzt sie während des Schreibvorgangs in YUV-Daten. Das Format der zu schreibenden Daten ist in der Pixelformatstruktur enthalten. Das DDPF_RGB-Flag ist festgelegt.

DDPF_STENCILBUFFER

Die Oberfläche codiert Schablonen- und Tiefeninformationen in jedem Pixel des z-Puffers. Dieses Flag kann nur verwendet werden, wenn auch das DDPF_ZBUFFER-Flag angegeben ist.

DDPF_YUV

Die YUV-Daten in der Pixelformatstruktur sind gültig.

DDPF_ZBUFFER

Das Pixelformat beschreibt eine Z-Puffer-Oberfläche.

DDPF_ZPIXELS

Die Oberfläche enthält z-Informationen in den Pixeln.

dwFourCC

Ein FourCC-Code.

DUMMYUNIONNAMEN

DUMMYUNIONNAMEN.dwRGBBitCount

RGB-Bits pro Pixel (4, 8, 16, 24 oder 32).

DUMMYUNIONNAMEN.dwYUVBitCount

YUV-Bits pro Pixel (4, 8, 16, 24 oder 32).

DUMMYUNIONNAMEN.dwZBufferBitDepth

Bittiefe des Z-Puffers (8, 16, 24 oder 32).

DUMMYUNIONNAMEN.dwAlphaBitDepth

Alphakanalbittiefe (1, 2, 4 oder 8) für eine reine Alphaoberfläche (DDPF_ALPHA). Für Pixelformate, die Alphainformationen enthalten, die mit Farbdaten (DDPF_ALPHAPIXELS) interleaviert sind, zählen Sie die Bits im dwRGBAlphaBitMask-Element , um die Bittiefe der Alphakomponente zu erhalten. Weitere Informationen zum Bestimmen der Alphabittiefe finden Sie unter Hinweise.

DUMMYUNIONNAMEN.dwLuminanceBitCount

Gesamtleuchtdichtebits pro Pixel. Dieses Element gilt nur für Luminanz- und Luminance-Alpha-Oberflächen.

DUMMYUNIONNAMEN.dwBumpBitCount

Gesamtanzahl der Bump-Map-Bits pro Pixel in einer Bump-Map-Oberfläche.

DUMMYUNIONNAMEN.dwPrivateFormatBitCount

Bits pro Pixel privater Treiberformate. Nur gültig in der Texturformatliste und wenn DDPF_D3DFORMAT festgelegt ist.

DUMMYUNIONNAMEN.dwRBitMask

Maskierung für rote Bits.

DUMMYUNIONNAMEN.dwYBitMask

Maskierung für Y-Bits.

DUMMYUNIONNAMEN.dwStencilBitDepth

Bittiefe des Schablonenpuffers. Dieses Element gibt an, wie viele Bits in jedem Pixel des z-Puffers für Schabloneninformationen reserviert sind (die Gesamtzahl der z-Bits entspricht dwZBufferBitDepth minus dwStencilBitDepth).

DUMMYUNIONNAMEN.dwLuminanceBitMask

Maske für Luminance-Bits.

DUMMYUNIONNAMEN.dwBumpDuBitMask

Maskierung für Bump-Map-U-Delta-Bits.

DUMMYUNIONNAMEN.dwOperations

Flags, die die Vorgänge angeben, die auf Oberflächen mit dem DDPF_D3DFORMAT Pixelformat ausgeführt werden können. Die Flags sind in Ddrawi.h definiert.

DUMMYUNIONNAMEN.dwGBitMask

Maskierung für grüne Bits.

DUMMYUNIONNAMEN.dwUBitMask

Maskierung für U-Bits.

DUMMYUNIONNAMEN.dwZBitMask

Maskierung für z-Bits.

DUMMYUNIONNAMEN.dwBumpDvBitMask

Maskierung für Bump-Map-V-Delta-Bits.

DUMMYUNIONNAMEN.MultiSampleCaps

Eine Struktur, die die folgenden beiden Elemente enthält. Diese Struktur wird verwendet, um Oberflächen anzugeben, die beim Rendern mit mehreren Datensampeln verwendet werden können. Jedes Bit in den 16-Bit-Masken weist auf die Unterstützung von Multisampling mit einer bestimmten Anzahl von Beispielen hin. Bit 0 gibt beispielsweise die Unterstützung von Multisampling mit nur einem einzelnen Beispiel an, Bit 1 die Unterstützung von Multisampling mit zwei Beispielen usw. Der Treiber kann mehr als eine unterstützte Ebene angeben, indem die Bits mithilfe eines bitweisen OR kombiniert werden.

DUMMYUNIONNAMEN.MultiSampleCaps.wFlipMSTypes

Eine 16-Bit-Maske für multisampling im Vollbildmodus (Flip-Modus).

DUMMYUNIONNAMEN.MultiSampleCaps.wBltMSTypes

Eine 16-Bit-Maske für das Mehrfachsampling im Fenstermodus (Bitblockübertragung).

DUMMYUNIONNAMEN.dwBBitMask

Maske für blaue Bits.

DUMMYUNIONNAMEN.dwVBitMask

Maskierung für V-Bits.

DUMMYUNIONNAMEN.dwStencilBitMask

Maskierung für Schablonenbits in jedem z-Puffer-Pixel.

DUMMYUNIONNAMEN.dwBumpLuminanceBitMask

Mask for luminance in a bump-map pixel.

DUMMYUNIONNAMEN.dwRGBAlphaBitMask

RGB-Maske für den Alphakanal.

DUMMYUNIONNAMEN.dwYUVAlphaBitMask

YUV-Maske für den Alphakanal.

DUMMYUNIONNAMEN.dwLuminanceAlphaBitMask

Leuchtdichtemaske für den Alphakanal.

DUMMYUNIONNAMEN.dwRGBZBitMask

RGB-Maske für den z-Kanal.

DUMMYUNIONNAMEN.dwYUVZBitMask

YUV-Maske für den z-Kanal.

Hinweise

Das dwAlphaBitDepth-Element spiegelt die Bittiefe eines rein alphabasierten Pixelformats (DDPF_ALPHA) wider. Bei Pixelformaten, die die Alphakomponente mit Farbkomponenten (DDPF_ALPHAPIXELS) enthalten, wird die Alphabittiefe durch Zählen der Bits in den verschiedenen Maskenelementen abgerufen. Im folgenden Codebeispiel wird die Anzahl der Bits zurückgegeben, die in einer bestimmten Bitmaske festgelegt sind.

WORD GetNumberOfBits( DWORD dwMask )
{
    WORD wBits = 0;
    while( dwMask )
    {
        dwMask = dwMask & ( dwMask - 1 );  
        wBits++;
    }
    return wBits;
}

Die Unions in DDPIXELFORMAT wurden aktualisiert, um mit Compilern zu arbeiten, die keine namenlosen Unions unterstützen. Wenn Ihr Compiler keine namenlosen Unions unterstützt, definieren Sie das NONAMELESSUNION-Token, bevor Sie die Ddraw.h-Headerdatei einschließen.

Anforderungen

   
Kopfzeile ddraw.h