D3DFORMAT
さまざまな種類のサーフェス形式を定義します。
typedef enum _D3DFORMAT {
D3DFMT_UNKNOWN = 0,
D3DFMT_R8G8B8 = 20,
D3DFMT_A8R8G8B8 = 21,
D3DFMT_X8R8G8B8 = 22,
D3DFMT_R5G6B5 = 23,
D3DFMT_X1R5G5B5 = 24,
D3DFMT_A1R5G5B5 = 25,
D3DFMT_A4R4G4B4 = 26,
D3DFMT_R3G3B2 = 27,
D3DFMT_A8 = 28,
D3DFMT_A8R3G3B2 = 29,
D3DFMT_X4R4G4B4 = 30,
D3DFMT_A2B10G10R10 = 31,
D3DFMT_A8B8G8R8 = 32,
D3DFMT_X8B8G8R8 = 33,
D3DFMT_G16R16 = 34,
D3DFMT_A2R10G10B10 = 35,
D3DFMT_A16B16G16R16 = 36,
D3DFMT_A8P8 = 40,
D3DFMT_P8 = 41,
D3DFMT_L8 = 50,
D3DFMT_A8L8 = 51,
D3DFMT_A4L4 = 52,
D3DFMT_V8U8 = 60,
D3DFMT_L6V5U5 = 61,
D3DFMT_X8L8V8U8 = 62,
D3DFMT_Q8W8V8U8 = 63,
D3DFMT_V16U16 = 64,
D3DFMT_A2W10V10U10 = 67,
D3DFMT_UYVY = MAKEFOURCC('U', 'Y', 'V', 'Y'),
D3DFMT_R8G8_B8G8 = MAKEFOURCC('R', 'G', 'B', 'G'),
D3DFMT_YUY2 = MAKEFOURCC('Y', 'U', 'Y', '2'),
D3DFMT_G8R8_G8B8 = MAKEFOURCC('G', 'R', 'G', 'B'),
D3DFMT_DXT1 = MAKEFOURCC('D', 'X', 'T', '1'),
D3DFMT_DXT2 = MAKEFOURCC('D', 'X', 'T', '2'),
D3DFMT_DXT3 = MAKEFOURCC('D', 'X', 'T', '3'),
D3DFMT_DXT4 = MAKEFOURCC('D', 'X', 'T', '4'),
D3DFMT_DXT5 = MAKEFOURCC('D', 'X', 'T', '5'),
D3DFMT_D16_LOCKABLE = 70,
D3DFMT_D32 = 71,
D3DFMT_D15S1 = 73,
D3DFMT_D24S8 = 75,
D3DFMT_D24X8 = 77,
D3DFMT_D24X4S4 = 79,
D3DFMT_D16 = 80,
D3DFMT_D32F_LOCKABLE = 82,
D3DFMT_D24FS8 = 83,
#if !defined(D3D_DISABLE_9EX)
D3DFMT_D32_LOCKABLE = 84,
D3DFMT_S8_LOCKABLE = 85,
#endif // !D3D_DISABLE_9EX
D3DFMT_L16 = 81,
D3DFMT_VERTEXDATA =100,
D3DFMT_INDEX16 =101,
D3DFMT_INDEX32 =102,
D3DFMT_Q16W16V16U16 =110,
D3DFMT_MULTI2_ARGB8 = MAKEFOURCC('M','E','T','1'),
D3DFMT_R16F = 111,
D3DFMT_G16R16F = 112,
D3DFMT_A16B16G16R16F = 113,
D3DFMT_R32F = 114,
D3DFMT_G32R32F = 115,
D3DFMT_A32B32G32R32F = 116,
D3DFMT_CxV8U8 = 117,
#if !defined(D3D_DISABLE_9EX)
D3DFMT_A1 = 118,
D3DFMT_A2B10G10R10_XR_BIAS = 119,
D3DFMT_BINARYBUFFER = 199,
#endif // !D3D_DISABLE_9EX
D3DFMT_FORCE_DWORD =0x7fffffff
} D3DFORMAT;
注釈
いくつかの種類の形式があります。
すべての形式は、左から右、最上位ビット、最下位ビットに一覧表示されます。 たとえば、 D3DFORMAT_ARGB は最上位ビット チャネル A (アルファ) から最下位ビット チャネル B (青) に順序付けされます。 サーフェス データを走査する場合、データは最下位ビットから最上位ビットにメモリに格納されます。つまり、メモリ内のチャネルの順序は、最下位ビット (青) から最上位ビット (アルファ) になります。
未定義のチャネル (G16R16、A8 など) を含む形式の既定値は 1 です。 唯一の例外は、3 つのカラー チャネルの 000 に初期化される A8 形式です。
ビットの順序は最初に最上位バイトからであるため、D3DFMT_A8L8は、この 2 バイト形式の上位バイトがアルファであることを示します。 D3DFMT_D16 は、16 ビットの整数値とアプリケーションロック可能なサーフェスを示します。
ピクセル形式は、ハードウェア ベンダーが定義した拡張形式の式を有効にし、確立された FOURCC メソッドを含めるために選択されています。 Direct3D ランタイムによって認識される形式のセットは、D3DFORMAT によって定義されます。
形式は独立したハードウェア ベンダー (IHV) によって提供され、多くの FOURCC コードは一覧に記載されていないことに注意してください。 この列挙体の形式は、ランタイムによって承認されるという点で一意です。つまり、参照ラスタライザーはこれらすべての型で動作します。 IHV で提供される形式は、個々の IHV でカードカードベースでサポートされます。
BackBuffer または表示形式
これらの形式は、バック バッファーまたはディスプレイの唯一の有効な形式です。
フォーマット | バック バッファー | 表示 |
---|---|---|
A2R10G10B10 | x | x (全画面表示モードのみ) |
A8R8G8B8 | x | |
X8R8G8B8 | x | x |
A1R5G5B5 | x | |
X1R5G5B5 | x | x |
R5G6B5 | x | x |
バッファー形式
深度バッファー、ステンシル バッファー、頂点バッファー、インデックス バッファーには、それぞれ固有の形式があります。
バッファー フラグ | 値 | 形式 |
---|---|---|
D3DFMT_D16_LOCKABLE | 70 | 16 ビットの z バッファー ビット深度。 |
D3DFMT_D32 | 71 | 32 ビット z バッファー ビット深度。 |
D3DFMT_D15S1 | 73 | 深度チャネル用に 15 ビットが予約され、ステンシル チャネル用に 1 ビットが予約されている 16 ビットの z バッファー ビット深度。 |
D3DFMT_D24S8 | 75 | 深度チャネルに 24 ビット、ステンシル チャネルに 8 ビットを使用する 32 ビットの z バッファー ビット深度。 |
D3DFMT_D24X8 | 77 | 深度チャネルに 24 ビットを使用した 32 ビットの z バッファー ビット深度。 |
D3DFMT_D24X4S4 | 79 | 深度チャネルに 24 ビット、ステンシル チャネルに 4 ビットを使用する 32 ビットの z バッファー ビット深度。 |
D3DFMT_D32F_LOCKABLE | 82 | 深度値が標準の IEEE 浮動小数点数として表されるロック可能な形式。 |
D3DFMT_D24FS8 | 83 | 24 ビットの深度 (24 ビット浮動小数点形式 - 20e4) と 8 ビットのステンシルを含むロックできない形式。 |
D3DFMT_D32_LOCKABLE | 84 | ロック可能な 32 ビット深度バッファー。
Direct3D 9 と Direct3D 9Ex の違い: このフラグは、Direct3D 9Ex でのみ使用できます。 |
D3DFMT_S8_LOCKABLE | 85 | ロック可能な 8 ビット ステンシル バッファー。
Direct3D 9 と Direct3D 9Ex の違い: このフラグは、Direct3D 9Ex でのみ使用できます。 |
D3DFMT_D16 | 80 | 16 ビットの z バッファー ビット深度。 |
D3DFMT_VERTEXDATA | 100 | 頂点バッファー サーフェスについて説明します。 |
D3DFMT_INDEX16 | 101 | 16 ビット インデックス バッファーのビット深度。 |
D3DFMT_INDEX32 | 102 | 32 ビット インデックス バッファーのビット深度。 |
D3DFMT_D16_LOCKABLEを除くすべての深度ステンシル形式は、ピクセルごとに特定のビット順序がないことを示し、ドライバーは、指定されたビット/深度チャネルの数 (ステンシル チャネルではなく) を超える消費を許可されます。
DXTn 圧縮テクスチャ形式
これらのフラグは、圧縮テクスチャに使用されます。
DXTn 圧縮テクスチャ フラグ | 値 | 形式 |
---|---|---|
D3DFMT_DXT1 | MAKEFOURCC('D', 'X', 'T', '1') | DXT1 圧縮テクスチャ形式 |
D3DFMT_DXT2 | MAKEFOURCC('D', 'X', 'T', '2') | DXT2 圧縮テクスチャ形式 |
D3DFMT_DXT3 | MAKEFOURCC('D', 'X', 'T', '3') | DXT3 圧縮テクスチャ形式 |
D3DFMT_DXT4 | MAKEFOURCC('D', 'X', 'T', '4') | DXT4 圧縮テクスチャ形式 |
D3DFMT_DXT5 | MAKEFOURCC('D', 'X', 'T', '5') | DXT5 圧縮テクスチャ形式 |
ランタイムでは、サーフェスディメンションが 4 の倍数でない限り、アプリケーションは DXTn 形式を使用してサーフェスを作成できません。 これは、オフスクリーンプレーンサーフェス、レンダーターゲット、2Dテクスチャ、キューブテクスチャ、ボリュームテクスチャに適用されます。
Floating-Point形式
これらのフラグは、浮動小数点サーフェス形式に使用されます。 これらの 16 ビット/チャネル形式は、s10e5 形式とも呼ばれます。
浮動小数点フラグ | 値 | 形式 |
---|---|---|
D3DFMT_R16F | 111 | 赤チャネルに 16 ビットを使用する 16 ビットの float 形式。 |
D3DFMT_G16R16F | 112 | 赤チャネルに 16 ビット、緑チャネルに 16 ビットを使用する 32 ビット浮動小数点形式。 |
D3DFMT_A16B16G16R16F | 113 | 各チャネルに 16 ビットを使用する 64 ビットの float 形式 (アルファ、青、緑、赤)。 |
FOURCC 形式
FOURCC 形式のデータは圧縮データです。
MAKEFOURCC
4 文字のコードを生成するためのマクロは次のとおりです。
#define MAKEFOURCC(ch0, ch1, ch2, ch3) \
((DWORD)(BYTE)(ch0) | ((DWORD)(BYTE)(ch1) << 8) | \
((DWORD)(BYTE)(ch2) << 16) | ((DWORD)(BYTE)(ch3) << 24 ))
定義されている FOURCC 形式を次に示します。
FOURCC フラグ | 値 | 形式 |
---|---|---|
D3DFMT_MULTI2_ARGB8 | MAKEFOURCC('M','E','T','1') | MultiElement テクスチャ (圧縮されていません) |
D3DFMT_G8R8_G8B8 | MAKEFOURCC('G', 'R', 'G', 'B') | YUY2 (Y0U0、Y1V0、Y2U2 など) に似た 16 ビットパック RGB 形式。 色の値を適切に表すには、ピクセル ペアが必要です。 ペアの最初のピクセルには、8 ビットの緑 (高 8 ビット) と 8 ビットの赤 (下位 8 ビット) が含まれています。 2 番目のピクセルには、8 ビットの緑 (上位 8 ビット) と 8 ビットの青 (下位 8 ビット) が含まれています。 2 つのピクセルは赤と青のコンポーネントを共有しますが、それぞれに固有の緑のコンポーネント (G0R0、G1B0、G2R2 など) があります。 テクスチャ サンプラーは、ピクセル シェーダーを調べても色を正規化しません。0.0f ~ 255.0f の範囲に留まる。 これは、すべてのプログラム可能なピクセル シェーダー モデルに当てはまります。 固定関数ピクセル シェーダーの場合、ハードウェアは 0.f ~ 1.f の範囲に正規化し、基本的に YUY2 テクスチャとして扱う必要があります。 この形式を公開するハードウェアでは、 D3DCAPS9 の PixelShader1xMaxValue メンバーを、その範囲を処理できる値に設定する必要があります。 |
D3DFMT_R8G8_B8G8 | MAKEFOURCC('R', 'G', 'B', 'G') | UYVY (U0Y0、V0Y1、U2Y2 など) に似た 16 ビットパック RGB 形式。 色の値を適切に表すには、ピクセル ペアが必要です。 ペアの最初のピクセルには、8 ビットの緑 (低 8 ビット) と 8 ビットの赤 (上位 8 ビット) が含まれています。 2 番目のピクセルには、8 ビットの緑 (低 8 ビット) と 8 ビットの青 (上位 8 ビット) が含まれています。 2 つのピクセルは赤と青のコンポーネントを共有しますが、それぞれに一意の緑のコンポーネント (R0G0、B0G1、R2G2 など) があります。 テクスチャ サンプラーは、ピクセル シェーダーを調べても色を正規化しません。0.0f ~ 255.0f の範囲に留まる。 これは、すべてのプログラム可能なピクセル シェーダー モデルに当てはまります。 固定関数ピクセル シェーダーの場合、ハードウェアは 0.f ~ 1.f の範囲に正規化し、基本的に YUY2 テクスチャとして扱う必要があります。 この形式を公開するハードウェアでは、 D3DCAPS9 の PixelShader1xMaxValue メンバーを、その範囲を処理できる値に設定する必要があります。 |
D3DFMT_UYVY | MAKEFOURCC('U', 'Y', 'V', 'Y') | UYVY 形式 (PC98 準拠) |
D3DFMT_YUY2 | MAKEFOURCC('Y', 'U', 'Y', '2') | YUY2 形式 (PC98 準拠) |
IEEE 形式
これらのフラグは、浮動小数点サーフェス形式に使用されます。 これらの 32 ビット/チャネル形式は、s23e8 形式とも呼ばれます。
浮動小数点フラグ | 値 | 形式 |
---|---|---|
D3DFMT_R32F | 114 | 赤チャネルに 32 ビットを使用する 32 ビット浮動小数点形式。 |
D3DFMT_G32R32F | 115 | 赤チャネルには 32 ビット、緑チャネルの場合は 32 ビットを使用する 64 ビットの float 形式。 |
D3DFMT_A32B32G32R32F | 116 | 各チャネルに 32 ビットを使用する 128 ビットの float 形式 (アルファ、青、緑、赤)。 |
混合形式
混合形式のデータには、符号なしデータと符号付きデータの組み合わせを含めることができます。
混合形式フラグ | 値 | 形式 |
---|---|---|
D3DFMT_L6V5U5 | 61 | 輝度に 6 ビットを使用し、v と you にそれぞれ 5 ビットを使用する、輝度を持つ 16 ビットのバンプ マップ形式。 |
D3DFMT_X8L8V8U8 | 62 | 各チャネルに 8 ビットを使用した輝度を持つ 32 ビットのバンプ マップ形式。 |
D3DFMT_A2W10V10U10 | 67 | アルファに 2 ビット、w、v、you にそれぞれ 10 ビットを使用する 32 ビットのバンプ マップ形式。 |
署名付き形式
符号付き形式のデータは、正と負の両方にすることができます。 符号付き形式では、(U)、(V)、(W)、および (Q) データの組み合わせを使用します。
署名付き書式フラグ | 値 | 形式 |
---|---|---|
D3DFMT_V8U8 | 60 | 8 ビットを使用した 16 ビットのバンプ マップ形式。各ビットは、自分と v のデータに対応します。 |
D3DFMT_Q8W8V8U8 | 63 | チャネルごとに 8 ビットを使用する 32 ビットのバンプ マップ形式。 |
D3DFMT_V16U16 | 64 | チャネルごとに 16 ビットを使用する 32 ビットのバンプ マップ形式。 |
D3DFMT_Q16W16V16U16 | 110 | コンポーネントごとに 16 ビットを使用する 64 ビットのバンプ マップ形式。 |
D3DFMT_CxV8U8 | 117 | 16 ビットの通常の圧縮形式。 テクスチャ サンプラーは、C = sqrt(1 - U² - V²) から C チャネルを計算します。 |
符号なし形式
符号なし形式のデータは正である必要があります。 符号なし形式では、(R)ed、(G)reen、(B)lue、(A)lpha、(L)uminance、および (P)alette データの組み合わせを使用します。 データはカラー パレットのインデックス付けに使用されるため、パレット データはカラー インデックス付きデータとも呼ばれます。
符号なし書式フラグ | 値 | 形式 |
---|---|---|
D3DFMT_R8G8B8 | 20 | チャネルあたり 8 ビットの 24 ビット RGB ピクセル形式。 |
D3DFMT_A8R8G8B8 | 21 | チャネルあたり 8 ビットを使用するアルファを含む 32 ビット ARGB ピクセル形式。 |
D3DFMT_X8R8G8B8 | 22 | 32 ビット RGB ピクセル形式。各色に 8 ビットが予約されています。 |
D3DFMT_R5G6B5 | 23 | 16 ビット RGB ピクセル形式。赤は 5 ビット、緑は 6 ビット、青は 5 ビット。 |
D3DFMT_X1R5G5B5 | 24 | 色ごとに 5 ビットが予約されている 16 ビットピクセル形式。 |
D3DFMT_A1R5G5B5 | 25 | 色ごとに 5 ビットが予約され、1 ビットがアルファ用に予約されている 16 ビットピクセル形式。 |
D3DFMT_A4R4G4B4 | 26 | チャネルごとに 4 ビットの 16 ビット ARGB ピクセル形式。 |
D3DFMT_R3G3B2 | 27 | 赤の場合は 3 ビット、緑の場合は 3 ビット、青の場合は 2 ビットを使用する 8 ビットの RGB テクスチャ形式。 |
D3DFMT_A8 | 28 | 8 ビットアルファのみ。 |
D3DFMT_A8R3G3B2 | 29 | アルファの場合は 8 ビット、赤と緑はそれぞれ 3 ビット、青の場合は 2 ビットを使用する 16 ビットの ARGB テクスチャ形式。 |
D3DFMT_X4R4G4B4 | 30 | 色ごとに 4 ビットを使用する 16 ビット RGB ピクセル形式。 |
D3DFMT_A2B10G10R10 | 31 | 各色に 10 ビット、アルファに 2 ビットを使用する 32 ビットピクセル形式。 |
D3DFMT_A8B8G8R8 | 32 | チャネルあたり 8 ビットを使用するアルファを含む 32 ビット ARGB ピクセル形式。 |
D3DFMT_X8B8G8R8 | 33 | 32 ビット RGB ピクセル形式。各色に 8 ビットが予約されています。 |
D3DFMT_G16R16 | 34 | 緑と赤にそれぞれ 16 ビットを使用する 32 ビットピクセル形式。 |
D3DFMT_A2R10G10B10 | 35 | 赤、緑、青にそれぞれ 10 ビットを使用し、アルファの場合は 2 ビットを使用する 32 ビットのピクセル形式。 |
D3DFMT_A16B16G16R16 | 36 | コンポーネントごとに 16 ビットを使用する 64 ビットピクセル形式。 |
D3DFMT_A8P8 | 40 | 8 ビットのアルファでインデックスが付いた 8 ビットの色。 |
D3DFMT_P8 | 41 | インデックス付きの 8 ビットカラー。 |
D3DFMT_L8 | 50 | 8 ビット輝度のみ。 |
D3DFMT_L16 | 81 | 16 ビットの輝度のみ。 |
D3DFMT_A8L8 | 51 | アルファと輝度にそれぞれ 8 ビットを使用する 16 ビット。 |
D3DFMT_A4L4 | 52 | アルファと輝度にそれぞれ 4 ビットを使用する 8 ビット。 |
D3DFMT_A1 | 118 | 1 ビットモノクロ。
Direct3D 9 と Direct3D 9Ex の違い: このフラグは Direct3D 9Ex でのみ使用できます。 |
D3DFMT_A2B10G10R10_XR_BIAS | 119 | 2.8バイアス固定点。
Direct3D 9 と Direct3D 9Ex の違い: このフラグは Direct3D 9Ex でのみ使用できます。 |
D3DFMT_BINARYBUFFER | 199 | データに固有の型がないことを示すバイナリ形式。
Direct3D 9 と Direct3D 9Ex の違い: このフラグは Direct3D 9Ex でのみ使用できます。 |
その他
このフラグは、未定義の形式に使用されます。
その他のフラグ | 値 | 形式 |
---|---|---|
D3DFMT_UNKNOWN | 0 | サーフェスの形式が不明です |
要件
要件 | 値 |
---|---|
ヘッダー |
|
関連項目