D3D12_SHADER_COMPONENT_MAPPING 列挙 (d3d12.h)
シェーダー リソース ビュー (SRV) によってメモリがどのようにルーティングされるかを指定します。
構文
typedef enum D3D12_SHADER_COMPONENT_MAPPING {
D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0 = 0,
D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_1 = 1,
D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_2 = 2,
D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_3 = 3,
D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_0 = 4,
D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_1 = 5
} ;
定数
D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0 値: 0 戻り値のコンポーネント 0 (赤) を示します。 |
D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_1 値: 1 戻り値のコンポーネント 1 (緑) を示します。 |
D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_2 値: 2 戻り値のコンポーネント 2 (青) を示します。 |
D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_3 値: 3 戻り値のコンポーネント 3 (アルファ) を示します。 |
D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_0 値: 4 結果の値を強制的に 0 にすることを示します。 |
D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_1 値: 5 結果の値 1 を強制することを示します。 強制 1 の値は、ソース形式のコンポーネントの形式の種類に応じて、0x1または 1.0f のいずれかです。 |
注釈
この列挙型を使用すると、SRV はメモリフェッチ後にシェーダーの 4 つの戻り値コンポーネントにメモリをルーティングする方法を選択できます。 各シェーダー コンポーネント [0..3] (RGBA に対応) のオプションは、SRV フェッチ結果からのコンポーネント 0..3、または強制 0 または強制 1 です。
既定の 1:1 マッピングは、 D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPINGを指定することで示すことができます。それ以外の場合は、マクロ D3D12_ENCODE_SHADER_4_COMPONENT_MAPPINGを使用して任意のマッピングを指定できます。
以下を参照してください。
次の定義に注意してください。
#define D3D12_SHADER_COMPONENT_MAPPING_MASK 0x7
#define D3D12_SHADER_COMPONENT_MAPPING_SHIFT 3
#define D3D12_SHADER_COMPONENT_MAPPING_ALWAYS_SET_BIT_AVOIDING_ZEROMEM_MISTAKES \
(1<<(D3D12_SHADER_COMPONENT_MAPPING_SHIFT*4))
#define D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING(Src0,Src1,Src2,Src3) \
((((Src0)&D3D12_SHADER_COMPONENT_MAPPING_MASK)| \
(((Src1)&D3D12_SHADER_COMPONENT_MAPPING_MASK)<<D3D12_SHADER_COMPONENT_MAPPING_SHIFT)| \
(((Src2)&D3D12_SHADER_COMPONENT_MAPPING_MASK)<<(D3D12_SHADER_COMPONENT_MAPPING_SHIFT*2))| \
(((Src3)&D3D12_SHADER_COMPONENT_MAPPING_MASK)<<(D3D12_SHADER_COMPONENT_MAPPING_SHIFT*3))| \
D3D12_SHADER_COMPONENT_MAPPING_ALWAYS_SET_BIT_AVOIDING_ZEROMEM_MISTAKES))
#define D3D12_DECODE_SHADER_4_COMPONENT_MAPPING(ComponentToExtract,Mapping) \
((D3D12_SHADER_COMPONENT_MAPPING)(Mapping >> (D3D12_SHADER_COMPONENT_MAPPING_SHIFT*ComponentToExtract) & D3D12_SHADER_COMPONENT_MAPPING_MASK))
#define D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING(0,1,2,3)
要件
要件 | 値 |
---|---|
Header | d3d12.h |