> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# D3D12_SHADER_COMPONENT_MAPPING

> シェーダー リソース ビュー (SRV) によってメモリがどのようにルーティングされるかを指定します。

シェーダー リソース ビュー (SRV) によってメモリがどのようにルーティングされるかを指定します。

## 構文

```cpp theme={null}
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
```

## 定数

| 定数                                                            | 説明                                                                                    |
| ------------------------------------------------------------- | ------------------------------------------------------------------------------------- |
| 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            | 結果の値を強制的に 0 にすることを示します。                                                               |
| D3D12\_SHADER\_COMPONENT\_MAPPING\_FORCE\_VALUE\_1            | 結果の値を強制的に 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** を使用して指定できます。

以下を参照してください。

次の定義に注意してください。

```cpp theme={null}
#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)
```

## 要件

**ヘッダー:** d3d12\_xs.h または d3d12\_x.h\
**ライブラリ:** d3d12\_xs.lib または d3d12\_x.lib\
**サポートされるプラットフォーム**: XBOX Series 本体および XBOX One ファミリ

## 関連項目

[コア列挙型](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/direct3d-12-enumerations)


## Related topics

- [D3D12_SHADER_RESOURCE_VIEW_DESC](/ja-jp/reference/graphics/d3d12/structs/d3d12_shader_resource_view_desc_public.md)
- [D3D12_TILE_MAPPING_FLAGS](/ja-jp/reference/graphics/d3d12/enums/d3d12_tile_mapping_flags_public.md)
- [D3D12_SHADER_BYTECODE](/ja-jp/reference/graphics/d3d12/structs/d3d12_shader_bytecode_public.md)
- [D3D12_SHADER_VISIBILITY](/ja-jp/reference/graphics/d3d12/enums/d3d12_shader_visibility_public.md)
- [D3D12_SHADER_CACHE_FLAGS](/ja-jp/reference/graphics/d3d12/enums/d3d12_shader_cache_flags_public.md)
