次の方法で共有


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

ピクセル形式は、アルファのみのサーフェスを表します。

DDPF_ALPHAPIXELS

サーフェスには、ピクセル形式のアルファ チャネル情報があります。

DDPF_ALPHAPREMULT

サーフェスでは、事前乗算されたアルファ形式が使用されます。 つまり、各ピクセルの色成分はアルファ成分によって事前に乗算されます。

DDPF_BUMPLUMINANCE

ピクセル形式の輝度データは有効であり、 dwLuminanceBitMask メンバーは、輝度専用または輝度アルファサーフェスの有効な輝度ビットを記述します。

DDPF_BUMPDUDV

ピクセル形式のバンプ マップ データは有効です。 バンプ マップ情報は、 dwBumpBitCountdwBumpDuBitMaskdwBumpDvBitMaskdwBumpLuminanceBitMask メンバーにあります。

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