DDPIXELFORMAT-Struktur (ddraw.h)
Die DDPIXELFORMAT-Struktur beschreibt das Pixelformat eines DirectDrawSurface-Objekts für die IDirectDrawSurface7::GetPixelFormat-Methode .
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 |