D3D11_TEXTURE2D_DESC1 構造体 (d3d11_3.h)
2D テクスチャについて説明します。
構文
typedef struct D3D11_TEXTURE2D_DESC1 {
UINT Width;
UINT Height;
UINT MipLevels;
UINT ArraySize;
DXGI_FORMAT Format;
DXGI_SAMPLE_DESC SampleDesc;
D3D11_USAGE Usage;
UINT BindFlags;
UINT CPUAccessFlags;
UINT MiscFlags;
D3D11_TEXTURE_LAYOUT TextureLayout;
} D3D11_TEXTURE2D_DESC1;
メンバー
Width
テクスチャの幅 (テクセル単位)。 範囲は 1 ~ D3D11_REQ_TEXTURE2D_U_OR_V_DIMENSION (16384) です。 テクスチャ キューブ マップの場合、範囲は 1 ~ D3D11_REQ_TEXTURECUBE_DIMENSION (16384) です。 ただし、範囲は実際にはレンダリング デバイスを作成する 機能レベル によって制限されます。 制限の詳細については、「解説」を参照してください。
Height
テクスチャの高さ (テクセル単位)。 範囲は 1 ~ D3D11_REQ_TEXTURE2D_U_OR_V_DIMENSION (16384) です。 テクスチャ キューブ マップの場合、範囲は 1 ~ D3D11_REQ_TEXTURECUBE_DIMENSION (16384) です。 ただし、範囲は実際にはレンダリング デバイスを作成する 機能レベル によって制限されます。 制限の詳細については、「解説」を参照してください。
MipLevels
テクスチャ内のミップマップ レベルの最大数。 D3D11_TEX1D_SRVの解説を参照してください。 マルチサンプリング テクスチャには 1 を使用します。または 0 を指定すると、サブテキストの完全なセットが生成されます。
ArraySize
テクスチャ配列内のテクスチャの数。 範囲は 1 ~ D3D11_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION (2048) です。 テクスチャ キューブ マップの場合、この値は 6 の倍数 (つまり、D3D11_TEXCUBE_ARRAY_SRV の NumCubes メンバーの値の 6 倍) であり、範囲は 6 から 2046 です。 範囲は実際には、レンダリング デバイスを作成する 機能レベル によって制限されます。 制限の詳細については、「解説」を参照してください。
Format
テクスチャ形式 ( 「DXGI_FORMAT」を参照)。
SampleDesc
テクスチャのマルチサンプリング パラメーターを指定する構造体。 「DXGI_SAMPLE_DESC」を参照してください。
Usage
テクスチャの読み取りと書き込み方法を識別する値。 最も一般的な値はD3D11_USAGE_DEFAULTです。使用可能なすべての値については 、「D3D11_USAGE 」を参照してください。
BindFlags
パイプライン ステージにバインドするためのフラグ ( D3D11_BIND_FLAGを参照)。 フラグは、ビットごとの OR で組み合わせることができます。
CPUAccessFlags
許可される CPU アクセスの種類を指定するためのフラグ ( D3D11_CPU_ACCESS_FLAGを参照)。 CPU アクセスが必要ない場合は、0 を使用します。 これらのフラグは、ビットごとの OR と組み合わせることができます。
MiscFlags
他のあまり一般的でないリソース オプションを識別するフラグ ( D3D11_RESOURCE_MISC_FLAGを参照)。 これらのフラグが適用されない場合は、0 を使用します。 これらのフラグは、ビットごとの OR を使用して組み合わせることができます。 テクスチャ キューブ マップの場合は、 D3D11_RESOURCE_MISC_TEXTURECUBE フラグを設定します。 キューブ マップ配列 (つまり、 ArraySize> 6) には、 D3D_FEATURE_LEVEL_10_1以上の 機能レベルが必要です。
TextureLayout
テクスチャのレイアウトを識別する D3D11_TEXTURE_LAYOUT型指定された値。
TextureLayout パラメーターは、メモリ内のテクスチャの実際のレイアウトと、テクスチャのマップ中にアプリケーションに表示されるレイアウトの両方を選択します。 これらのフラグは、CPU アクセスも要求しないと要求されない場合があります。
TextureLayout を D3D11_TEXTURE_LAYOUT_UNDEFINED 以外の値に設定せずに、既定のテクスチャに CPU アクセス フラグを設定することは無効です。
D3D11_TEXTURE_LAYOUT_ROW_MAJORは、マルチサンプリングされていないテクスチャを 1 つのサブリソースで作成する場合にのみ使用できます (平面 YUV テクスチャがサポートされています)。 これらのテクスチャは、コピー操作のソースとコピー先としてのみ使用でき、BindFlags は 0 である必要があります。
D3D11_TEXTURE_LAYOUT_64K_STANDARD_SWIZZLEは、マルチサンプリングされていない深度ステンシル以外のテクスチャを作成する場合にのみ使用できます。
解説
この構造体は、 ID3D11Device3::CreateTexture2D1 の呼び出しで使用されます。
この構造体に加えて、 D3D11_3.h で定義され、継承されたクラスのように動作するCD3D11_TEXTURE2D_DESC1派生構造体を使用して、テクスチャの説明を作成することもできます。
デバイスは、サブサンプリング、ブロック圧縮、またはビット形式のリソースに対して、サイズ制限 (最小サイズの倍数である必要があります) を設定します。
テクスチャ サイズの範囲は、Microsoft Direct3D インターフェイス バージョンではなく、デバイスを作成する 機能レベル によって決まります。 たとえば、機能レベル 10 (D3D_FEATURE_LEVEL_10_0) で Microsoft Direct3D 10 ハードウェアを使用し、 D3D11CreateDevice を呼び出して ID3D11Device を作成する場合、2D テクスチャを作成するときに最大テクスチャ サイズを D3D10_REQ_TEXTURE2D_U_OR_V_DIMENSION (8192) に制限する必要があります。
要件
Header | d3d11_3.h |