Platform SDK: DirectX

DDPIXELFORMAT

DDPIXELFORMAT 構造体は、IDirectDrawSurface7::GetPixelFormat メソッドに対する DirectDrawSurface オブジェクトのピクセル フォーマットを記述する。

typedef struct _DDPIXELFORMAT{ 
    DWORD dwSize; 
    DWORD dwFlags; 
    DWORD dwFourCC; 
    union 
    { 
        DWORD dwRGBBitCount; 
        DWORD dwYUVBitCount; 
        DWORD dwZBufferBitDepth; 
        DWORD dwAlphaBitDepth; 
        DWORD dwLuminanceBitCount;
        DWORD dwBumpBitCount;
    } DUMMYUNIONNAMEN(1);
    union 
    { 
        DWORD dwRBitMask; 
        DWORD dwYBitMask; 
        DWORD dwStencilBitDepth;
        DWORD dwLuminanceBitMask;
        DWORD dwBumpDuBitMask;
    } DUMMYUNIONNAMEN(2);
    union 
    { 
        DWORD dwGBitMask; 
        DWORD dwUBitMask; 
        DWORD dwZBitMask;
        DWORD dwBumpDvBitMask;
    } DUMMYUNIONNAMEN(3);
    union 
    { 
        DWORD dwBBitMask; 
        DWORD dwVBitMask; 
        DWORD dwStencilBitMask;
        DWORD dwBumpLuminanceBitMask;
    } DUMMYUNIONNAMEN(4);
    union 
    { 
        DWORD dwRGBAlphaBitMask; 
        DWORD dwYUVAlphaBitMask; 
        DWORD dwLuminanceAlphaBitMask;
        DWORD dwRGBZBitMask; 
        DWORD dwYUVZBitMask; 
    } DUMMYUNIONNAMEN(5);
} DDPIXELFORMAT, FAR* LPDDPIXELFORMAT; 

メンバ

dwSize
バイト単位の構造体のサイズ。このメンバは、構造体を使用する前に初期化しなくてはならない。
dwFlags
以下に、オプション制御フラグを示す。
DDPF_ALPHA
ピクセル フォーマットは、アルファ専用サーフェスを記述する。
DDPF_ALPHAPIXELS
サーフェスには、ピクセル フォーマットのアルファ チャネル情報がある。
DDPF_ALPHAPREMULT
サーフェスは、あらかじめ増やしたアルファ フォーマットを使用する。つまり、個々のピクセルの色成分は、アルファ成分をあらかじめ掛けられている。
DDPF_BUMPLUMINANCE
ピクセル フォーマットの輝度データは有効である。また、dwLuminanceBitMask メンバは、輝度専用または輝度アルファ サーフェスに対する有効な輝度ビットを記述する。
DDPF_BUMPDUDV
ピクセル フォーマットのバンプマップ データは有効である。バンプマップ情報は、dwBumpBitCountdwBumpDuBitMaskdwBumpDvBitMask、および dwBumpLuminanceBitMask メンバにある。
DDPF_COMPRESSED
サーフェスは指定されたフォーマットでピクセル データを受け取り、書き込み処理中にそのデータを圧縮する。
DDPF_FOURCC
dwFourCC メンバは有効で、非 RGB ピクセル フォーマットを記述する FOURCC コードを含む。
DDPF_LUMINANCE
ピクセル フォーマットは、輝度専用または輝度アルファ サーフェスを記述する。
DDPF_PALETTEINDEXED1
DDPF_PALETTEINDEXED2
DDPF_PALETTEINDEXED4
DDPF_PALETTEINDEXED8
サーフェスは、1 ビット、2 ビット、4 ビット、または 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 コード。詳細情報は、「4 文字コード (FOURCC) 」を参照すること。
dwRGBBitCount
RGB ビット/ピクセル (4、8、16、24、または 32)。
dwYUVBitCount
YUV ビット/ピクセル (4、8、16、24、または 32)。
dwZBufferBitDepth
Z バッファ ビット深度 (8、16、24、または 32)。
dwAlphaBitDepth
アルファ専用サーフェス (DDPF_ALPHA) のためのアルファ チャネル ビット深度 (1、2、4、または 8)。アルファ情報を含むピクセル フォーマットは色データ (DDPF_ALPHAPIXELS) でインターリーブされるため、dwRGBAlphaBitMask メンバのビットをカウントし、アルファ成分のビット深度を取得する。詳細情報は注意を参照すること。
dwLuminanceBitCount
総輝度ビット/ピクセル。このメンバは、輝度専用および輝度アルファ サーフェスだけに適用する。
dwBumpBitCount
バンプマップ サーフェスの総バンプマップ ビット/ピクセル。
dwRBitMask
赤ビットのマスク。
dwYBitMask
Y ビットのマスク。
dwStencilBitDepth
ステンシル バッファのビット深度。このメンバは、ステンシル情報の Z バッファの各ピクセル内で確保されるビットの数を指定する。(z ビットの総数は dwZBufferBitDepth から dwStencilBitDepth を引いた数と等しい)。
dwLuminanceBitMask
輝度ビットのマスク。
dwBumpDuBitMask
バンプマップ U デルタ ビットのマスク。
dwGBitMask
緑ビットのマスク。
dwUBitMask
U ビットのマスク。
dwZBitMask
z ビットのマスク。
dwBumpDvBitMask
バンプマップ V デルタ ビットのマスク。
dwBBitMask
青ビットのマスク。
dwVBitMask
V ビットのマスク。
dwStencilBitMask
各 Z バッファ ピクセル内のステンシル ビットのマスク。
dwBumpLuminanceBitMask
バンプマップ ピクセルの輝度のマスク。
dwRGBAlphaBitMaskdwYUVAlphaBitMaskdwLuminanceAlphaBitMask
アルファ チャネルのマスク。
dwRGBZBitMaskdwYUVZBitMask
z チャネルのマスク。

注意

dwAlphaBitDepth メンバは、アルファ専用ピクセル フォーマット (DDPF_ALPHA) のビット深度を反映する。色成分 (DDPF_ALPHAPIXELS) と共にアルファ成分を含むピクセル フォーマットのために、アルファ ビット深度はさまざまなマスク メンバのビットを数えることで取得される。次のコード例は、与えられたビットマスクのビット セット数を返す。

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

この構造体の集合は、名前のない集合をサポートしないコンパイラで機能するように更新されている。コンパイラが名前のない集合をサポートしない場合、Ddraw.h ヘッダー ファイルをインクルードする前に NONAMELESSUNION トークンを定義する。

動作環境

  Windows NT/2000 : Windows NT 4.0 Service Pack 3 またはそれ以降が必要。
  Windows 95/98 : Windows 95 以降が必要。Windows 95 用に再配布可能な形で使用可能。
  ヘッダー : ddraw.h で宣言。

参照

オフスクリーン サーフェス フォーマット