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
ピクセル形式は、アルファのみのサーフェスを表します。
DDPF_ALPHAPIXELS
サーフェスには、ピクセル形式のアルファ チャネル情報があります。
DDPF_ALPHAPREMULT
サーフェスでは、事前乗算されたアルファ形式が使用されます。 つまり、各ピクセルの色成分はアルファ成分によって事前に乗算されます。
DDPF_BUMPLUMINANCE
ピクセル形式の輝度データは有効であり、 dwLuminanceBitMask メンバーは、輝度専用または輝度アルファサーフェスの有効な輝度ビットを記述します。
DDPF_BUMPDUDV
ピクセル形式のバンプ マップ データは有効です。 バンプ マップ情報は、 dwBumpBitCount、 dwBumpDuBitMask、 dwBumpDvBitMask、 dwBumpLuminanceBitMask メンバーにあります。
DDPF_COMPRESSED
サーフェスは、指定された形式のピクセル データを受け入れ、書き込み操作中に圧縮します。
DDPF_D3DFORMAT
テクスチャ形式リスト内の DirectX 8.0 以降のフォーマット機能エントリを示します。 このフラグはアプリケーションに公開されず、Ddrawi.h で定義されています。
DDPF_FOURCC
dwFourCC メンバーは有効であり、RGB 以外のピクセル形式を記述する FOURCC コードが含まれています。
DDPF_LUMINANCE
ピクセル形式は、輝度のみのサーフェスまたは輝度アルファサーフェスを表します。
DDPF_PALETTEINDEXED1
サーフェスは 1 ビットのカラー インデックスが付きます。
DDPF_PALETTEINDEXED2
サーフェスは 2 ビットのカラー インデックスが付きます。
DDPF_PALETTEINDEXED4
サーフェスは 4 ビットのカラー インデックスが付きます。
DDPF_PALETTEINDEXED8
サーフェスは 8 ビットのカラー インデックスが付きます。
DDPF_PALETTEINDEXEDTO8
サーフェスは、8 ビット パレットに対して 1 ビット、2 ビット、または 4 ビットのカラー インデックスが付けられます。
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
1 ピクセルあたりの YUV ビット数 (4、8、16、24、または 32)。
DUMMYUNIONNAMEN.dwZBufferBitDepth
Z バッファー のビット深度 (8、16、24、または 32)。
DUMMYUNIONNAMEN.dwAlphaBitDepth
アルファ専用サーフェス (DDPF_ALPHA) のアルファ チャネル ビット深度 (1、2、4、または 8)。 カラー データ (DDPF_ALPHAPIXELS) とインターリーブされたアルファ情報を含むピクセル形式の場合は、 dwRGBAlphaBitMask メンバー内のビットをカウントして、アルファ コンポーネントのビット深度を取得します。 アルファ ビット深度を決定する方法の詳細については、「解説」を参照してください。
DUMMYUNIONNAMEN.dwLuminanceBitCount
ピクセルあたりの総輝度ビット数。 このメンバーは、輝度のみのサーフェスと輝度アルファ サーフェスにのみ適用されます。
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
次の 2 つのメンバーを含む 構造体。 この構造体は、マルチサンプル レンダリングを実行するときに使用できるサーフェスを指定するために使用されます。 16 ビット マスクの各ビットは、特定の数のサンプルを使用したマルチサンプリングのサポートを示します。 たとえば、ビット 0 は 1 つのサンプルのみのマルチサンプリングのサポートを示し、ビット 1 は 2 つのサンプルを使用したマルチサンプリングのサポートなどを示します。 ドライバーは、ビットごとの OR を使用してビットを組み合わせることで、複数のサポートされているレベルを示すことができます。
DUMMYUNIONNAMEN.MultiSampleCaps.wFlipMSTypes
全画面表示 (反転) モードのマルチサンプリング用の 16 ビット マスク。
DUMMYUNIONNAMEN.MultiSampleCaps.wBltMSTypes
ウィンドウ (ビット ブロック転送) モードマルチサンプリング用の 16 ビット マスク。
DUMMYUNIONNAMEN.dwBBitMask
青いビットのマスク。
DUMMYUNIONNAMEN.dwVBitMask
V ビットのマスク。
DUMMYUNIONNAMEN.dwStencilBitMask
各 z バッファー ピクセル内のステンシル ビットのマスク。
DUMMYUNIONNAMEN.dwBumpLuminanceBitMask
バンプ マップ ピクセルの輝度をマスクします。
DUMMYUNIONNAMEN.dwRGBAlphaBitMask
アルファ チャネルの RGB マスク。
DUMMYUNIONNAMEN.dwYUVAlphaBitMask
アルファ チャネルの YUV マスク。
DUMMYUNIONNAMEN.dwLuminanceAlphaBitMask
アルファ チャネルの輝度マスク。
DUMMYUNIONNAMEN.dwRGBZBitMask
z チャネルの RGB マスク。
DUMMYUNIONNAMEN.dwYUVZBitMask
z チャネルの YUV マスク。
解説
dwAlphaBitDepth メンバーは、アルファのみのピクセル形式 (DDPF_ALPHA) のビット深度を反映します。 カラー コンポーネント (DDPF_ALPHAPIXELS) を含むアルファ コンポーネントを含むピクセル形式の場合、アルファ ビット深度は、さまざまなマスク メンバー内のビットをカウントすることによって取得されます。 次のコード例では、特定のビットマスクに設定されているビット数を返します。
WORD GetNumberOfBits( DWORD dwMask )
{
WORD wBits = 0;
while( dwMask )
{
dwMask = dwMask & ( dwMask - 1 );
wBits++;
}
return wBits;
}
DDPIXELFORMAT の共用体は、名前のない共用体をサポートしていないコンパイラで動作するように更新されました。 コンパイラで名前のない共用体がサポートされていない場合は、Ddraw.h ヘッダー ファイルを含める前に NONAMELESSUNION トークンを定義してください。
要件
Header | ddraw.h |