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

こちらもご覧ください

コア列挙型