DDPIXELFORMAT 結構 (ddraw.h)
DDPIXELFORMAT 結構描述 IDirectDrawSurface7::GetPixelFormat 方法之 DirectDrawSurface 物件的像素格式。
語法
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;
成員
dwSize
結構的大小,以位元組為單位。 使用 結構之前,必須先初始化這個成員。
dwFlags
下列旗標描述此結構的選擇性控件。
DDPF_ALPHA
圖元格式描述僅限 Alpha 表面。
DDPF_ALPHAPIXELS
表面具有圖元格式的 Alpha 色板資訊。
DDPF_ALPHAPREMULT
表面使用預乘 Alpha 格式。 也就是說,每個圖元中的色彩元件都會由 Alpha 元件預乘。
DDPF_BUMPLUMINANCE
像素格式的亮度數據有效,而且 dwLuminanceBitMask 成員描述僅限亮度或亮度-alpha 表面的有效亮度位。
DDPF_BUMPDUDV
圖元格式的凸起地圖數據有效。 凸起對應資訊位於 dwBumpBitCount、dwBumpDuBitMask、dwBumpDvBitMask和 dwBumpLuminanceBitMask 成員中。
DDPF_COMPRESSED
介面會接受指定格式的像素數據,並在寫入作業期間壓縮它。
DDPF_D3DFORMAT
指出紋理格式清單中的 DirectX 8.0 和更新版本格式功能專案。 此旗標不會公開給應用程式,且定義於 Ddrawi.h 中。
DDPF_FOURCC
dwFourCC 成員有效,且包含描述非 RGB 像素格式的 FOURCC 程式代碼。
DDPF_LUMINANCE
像素格式描述僅限亮度或亮度 Alpha 表面。
DDPF_PALETTEINDEXED1
表面已編製 1 位色彩索引。
DDPF_PALETTEINDEXED2
介面是 2 位色彩索引。
DDPF_PALETTEINDEXED4
介面已編製 4 位色彩索引。
DDPF_PALETTEINDEXED8
介面為8位色彩索引。
DDPF_PALETTEINDEXEDTO8
表面是以 1、2 或 4 位的色彩索引編製至 8 位調色盤。
DDPF_RGB
像素格式結構的 RGB 資料有效。
DDPF_RGBTOYUV
介面會接受 RGB 數據,並在寫入作業期間將它轉譯為 YUV 數據。 要寫入的數據格式包含在像素格式結構中。 已設定DDPF_RGB旗標。
DDPF_STENCILBUFFER
介面會在 z 緩衝區的每個像素中編碼樣板和深度資訊。 只有在同時指定DDPF_ZBUFFER旗標時,才能使用此旗標。
DDPF_YUV
像素格式結構的 YUV 數據有效。
DDPF_ZBUFFER
圖元格式描述 z 緩衝區表面。
DDPF_ZPIXELS
介面包含圖元中的 z 資訊。
dwFourCC
FourCC 程式代碼。
DUMMYUNIONNAMEN
DUMMYUNIONNAMEN.dwRGBBitCount
每個圖元的 RGB 位(4、8、16、24 或 32)。
DUMMYUNIONNAMEN.dwYUVBitCount
每個圖元的 YUV 位(4、8、16、24 或 32)。
DUMMYUNIONNAMEN.dwZBufferBitDepth
Z 緩衝區位深度 (8、16、24 或 32)。
DUMMYUNIONNAMEN.dwAlphaBitDepth
僅限 Alpha 表面的 Alpha 色板位深度 (1、2、4 或 8) (DDPF_ALPHA)。 針對包含與色彩數據交錯的 Alpha 資訊圖元格式(DDPF_ALPHAPIXELS),計算 dwRGBAlphaBitMask 成員中的位,以取得 Alpha 元件的位深度。 如需如何判斷 Alpha 位深度的詳細資訊,請參閱。
DUMMYUNIONNAMEN.dwLuminanceBitCount
每個圖元的亮度位總計。 此成員僅適用於僅限亮度和亮度 Alpha 表面。
DUMMYUNIONNAMEN.dwBumpBitCount
凸凸圖表面中每圖元的凸凸圖位數總計。
DUMMYUNIONNAMEN.dwPrivateFormatBitCount
私人驅動程式格式的每個像素位數。 只有在紋理格式清單中有效,且設定DDPF_D3DFORMAT時。
DUMMYUNIONNAMEN.dwRBitMask
遮罩紅色位。
DUMMYUNIONNAMEN.dwYBitMask
遮罩 Y 位。
DUMMYUNIONNAMEN.dwStencilBitDepth
樣板緩衝區的位深度。 此成員會指定在樣板資訊之 z 緩衝區的每個圖元內保留多少位(z 位總數等於 dwZBufferBitDepth 減去 dwStencilBitDepth)。
DUMMYUNIONNAMEN.dwLuminanceBitMask
亮度位的遮罩。
DUMMYUNIONNAMEN.dwBumpDuBitMask
凸起對應 U-delta 位的遮罩。
DUMMYUNIONNAMEN.dwOperations
旗標,指定可使用DDPF_D3DFORMAT像素格式在介面上執行的作業。 旗標定義於 Ddrawi.h 中。
DUMMYUNIONNAMEN.dwGBitMask
綠色位的遮罩。
DUMMYUNIONNAMEN.dwUBitMask
U 位的遮罩。
DUMMYUNIONNAMEN.dwZBitMask
遮罩 z 位。
DUMMYUNIONNAMEN.dwBumpDvBitMask
適用於凸起對應 V-delta 位的遮罩。
DUMMYUNIONNAMEN.MultiSampleCaps
結構,包含下列兩個成員。 這個結構可用來指定執行多重取樣轉譯時可以使用的介面。 16 位遮罩中的每個位都表示支援使用特定數目的樣本進行多重取樣。 例如,位 0 表示只支援單一樣本的多取樣,位 1 表示支援具有兩個樣本的多重取樣,依此表示支援。 驅動程式可以使用位 OR 來結合位,以指示多個支援的層級。
DUMMYUNIONNAMEN.MultiSampleCaps.wFlipMSTypes
全螢幕 (翻轉) 模式多重取樣的 16 位遮罩。
DUMMYUNIONNAMEN.MultiSampleCaps.wBltMSTypes
視窗式 (位區塊傳輸) 模式多重取樣的 16 位遮罩。
DUMMYUNIONNAMEN.dwBBitMask
遮罩藍色位。
DUMMYUNIONNAMEN.dwVBitMask
V 位的遮罩。
DUMMYUNIONNAMEN.dwStencilBitMask
每個 z 緩衝區像素內樣板位的遮罩。
DUMMYUNIONNAMEN.dwBumpLuminanceBitMask
遮罩以凸起地圖圖元顯示亮度。
DUMMYUNIONNAMEN.dwRGBAlphaBitMask
Alpha 色板的 RGB 遮罩。
DUMMYUNIONNAMEN.dwYUVAlphaBitMask
Alpha 色板的 YUV 遮罩。
DUMMYUNIONNAMEN.dwLuminanceAlphaBitMask
Alpha 色板的亮度遮罩。
DUMMYUNIONNAMEN.dwRGBZBitMask
z 通道的 RGB 遮罩。
DUMMYUNIONNAMEN.dwYUVZBitMask
Z 通道的 YUV 遮罩。
言論
dwAlphaBitDepth 成員會反映僅限 Alpha 像素格式的位深度(DDPF_ALPHA)。 針對包含色彩元件的 Alpha 元件(DDPF_ALPHAPIXELS)的圖元格式,會藉由計算各種遮罩成員中的位來取得 Alpha 位深度。 下列程式代碼範例會傳回指定位掩碼中設定的位數。
WORD GetNumberOfBits( DWORD dwMask )
{
WORD wBits = 0;
while( dwMask )
{
dwMask = dwMask & ( dwMask - 1 );
wBits++;
}
return wBits;
}
DDPIXELFORMAT 中的等位已更新為使用不支援無名稱等位的編譯程式。 如果您的編譯程式不支援無名稱等位,請先定義NONAMELESSUNION令牌,再包含 Ddraw.h 頭檔。
要求
要求 | 價值 |
---|---|
標頭 | ddraw.h |