Share via


DDPIXELFORMAT 結構 (ddraw.h)

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

注意 您應該使用不依賴 Ddraw.h 的替代結構,使用 DirectDraw Surface (DDS) 檔案格式 (.dds) 來解碼檔案。 如需 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

像素格式的凸凸對應資料有效。 Bump-map 資訊位於dwBumpBitCount、dwBumpDuBitMaskdwBumpDvBitMaskdwBumpLuminanceBitMask成員中。

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 色板位深度 (1、2、4 或 8) ,適用于僅限 Alpha 的介面 (DDPF_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 差異位的遮罩。

DUMMYUNIONNAMEN.dwOperations

旗標,指定可在具有DDPF_D3DFORMAT像素格式的介面上執行的作業。 旗標定義于 Ddrawi.h 中。

DUMMYUNIONNAMEN.dwGBitMask

綠色位的遮罩。

DUMMYUNIONNAMEN.dwUBitMask

U 位的遮罩。

DUMMYUNIONNAMEN.dwZBitMask

z 位的遮罩。

DUMMYUNIONNAMEN.dwBumpDvBitMask

適用于碰撞對應 V 差異位的遮罩。

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