共用方式為


DDPIXELFORMAT 結構 (ddraw.h)

DDPIXELFORMAT 結構描述 IDirectDrawSurface7::GetPixelFormat 方法之 DirectDrawSurface 物件的像素格式。

注意 不要使用此結構來譯碼具有 DirectDraw Surface (DDS) 檔格式的檔案 (.dds),您應該使用不依賴 Ddraw.h 的替代結構。 如需 DDS 替代結構的詳細資訊,請參閱 DDS
 

語法

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

圖元格式的凸起地圖數據有效。 凸起對應資訊位於 dwBumpBitCountdwBumpDuBitMaskdwBumpDvBitMaskdwBumpLuminanceBitMask 成員中。

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