> ## 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_RESOURCE_VIEW_DESC

> シェーダー リソース ビューを記述します。(D3D12_SHADER_RESOURCE_VIEW_DESC)

シェーダー リソース ビュー (SRV) を記述します。

## 構文

```cpp theme={null}
typedef struct D3D12_SHADER_RESOURCE_VIEW_DESC
{
    DXGI_FORMAT Format;
    D3D12_SRV_DIMENSION ViewDimension;
    UINT Shader4ComponentMapping;
    D3D12_BUFFER_SRV Buffer;
    D3D12_TEX1D_SRV Texture1D;
    D3D12_TEX1D_ARRAY_SRV Texture1DArray;
    D3D12_TEX2D_SRV Texture2D;
    D3D12_TEX2D_ARRAY_SRV Texture2DArray;
    D3D12_TEX2DMS_SRV Texture2DMS;
    D3D12_TEX2DMS_ARRAY_SRV Texture2DMSArray;
    D3D12_TEX3D_SRV Texture3D;
    D3D12_TEXCUBE_SRV TextureCube;
    D3D12_TEXCUBE_ARRAY_SRV TextureCubeArray;
    UNKNOWN_TYPE RaytracingAccelerationStructure;
} D3D12_SHADER_RESOURCE_VIEW_DESC
```

### メンバー

*Format*\
型: DXGI\_FORMAT

表示形式を指定する [DXGI\_FORMAT](https://learn.microsoft.com/en-us/windows/desktop/api/dxgiformat/ne-dxgiformat-dxgi_format) 型の値。解説を参照してください。

*ViewDimension*\
型: D3D12\_SRV\_DIMENSION

ビューのリソースの種類を指定する [D3D12\_SRV\_DIMENSION](/reference/graphics/d3d12_x/enums/d3d12_srv_dimension) 型の値。この型は、基になるリソースのリソースの種類と同じです。このメンバーは、以下の共用体で使用する \_SRV も決定します。

*Shader4ComponentMapping*\
型: UINT

[D3D12\_ENCODE\_SHADER\_4\_COMPONENT\_MAPPING](/reference/graphics/d3d12/enums/d3d12_shader_component_mapping_public) マクロを使用して構築される値。**D3D12\_SHADER\_COMPONENT\_MAPPING** 列挙型は、このシェーダー リソース ビュー (SRV) を介してシェーダーでテクスチャがアクセスされたときに、メモリからどの値を返すかを指定します。たとえば、メモリのコンポーネント 1 (緑) または定数 `0` を、シェーダーに渡す値のコンポーネント 2 (`.b`) にルーティングできます。

*Buffer*\
型: D3D12\_BUFFER\_SRV

リソースをバッファーとして表示する [D3D12\_BUFFER\_SRV](/reference/graphics/d3d12/structs/d3d12_buffer_srv_public) 構造体。

*Texture1D*\
型: D3D12\_TEX1D\_SRV

リソースを 1D テクスチャとして表示する [D3D12\_TEX1D\_SRV](/reference/graphics/d3d12/structs/d3d12_tex1d_srv_public) 構造体。

*Texture1DArray*\
型: D3D12\_TEX1D\_ARRAY\_SRV

リソースを 1D テクスチャ配列として表示する [D3D12\_TEX1D\_ARRAY\_SRV](/reference/graphics/d3d12/structs/d3d12_tex1d_array_srv_public) 構造体。

*Texture2D*\
型: D3D12\_TEX2D\_SRV

リソースを 2D テクスチャとして表示する [D3D12\_TEX2D\_SRV](/reference/graphics/d3d12/structs/d3d12_tex2d_srv_public) 構造体。

*Texture2DArray*\
型: D3D12\_TEX2D\_ARRAY\_SRV

リソースを 2D テクスチャ配列として表示する [D3D12\_TEX2D\_ARRAY\_SRV](/reference/graphics/d3d12/structs/d3d12_tex2d_array_srv_public) 構造体。

*Texture2DMS*\
型: D3D12\_TEX2DMS\_SRV

リソースを 2D マルチサンプル テクスチャとして表示する [D3D12\_TEX2DMS\_SRV](/reference/graphics/d3d12/structs/d3d12_tex2dms_srv_public) 構造体。

*Texture2DMSArray*\
型: D3D12\_TEX2DMS\_ARRAY\_SRV

リソースを 2D マルチサンプル テクスチャ配列として表示する [D3D12\_TEX2DMS\_ARRAY\_SRV](/reference/graphics/d3d12/structs/d3d12_tex2dms_array_srv_public) 構造体。

*Texture3D*\
型: D3D12\_TEX3D\_SRV

リソースを 3D テクスチャとして表示する [D3D12\_TEX3D\_SRV](/reference/graphics/d3d12/structs/d3d12_tex3d_srv_public) 構造体。

*TextureCube*\
型: D3D12\_TEXCUBE\_SRV

リソースを 3D キューブ テクスチャとして表示する [D3D12\_TEXCUBE\_SRV](/reference/graphics/d3d12/structs/d3d12_texcube_srv_public) 構造体。

*TextureCubeArray*\
型: D3D12\_TEXCUBE\_ARRAY\_SRV

リソースを 3D キューブ テクスチャ配列として表示する [D3D12\_TEXCUBE\_ARRAY\_SRV](/reference/graphics/d3d12/structs/d3d12_texcube_array_srv_public) 構造体。

*RaytracingAccelerationStructure*\
リソースをレイトレーシング高速化構造体として表示する [D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_SRV](/reference/graphics/d3d12/structs/d3d12_raytracing_acceleration_structure_srv_public) 構造体。

## 解説

ビューは、リソース内のデータを参照するための形式固有の手段です。ビューは、参照するデータと、読み取り時にどのようにキャストするかを決定します。

リソースを参照するときは、リソース ビュー記述で、リソースの形式と互換性のある型付き形式を指定する必要があります。つまり、名前に \_TYPELESS を含む形式ではリソース ビュー記述を作成できません。ただし、ビューに型付き形式を指定することで、型なしリソースを参照することはできます。たとえば、DXGI\_FORMAT\_R32G32B32\_TYPELESS リソースは、DXGI\_FORMAT\_R32G32B32\_FLOAT、DXGI\_FORMAT\_R32G32B32\_UINT、DXGI\_FORMAT\_R32G32B32\_SINT のいずれかの型付き形式で参照できます。これらの型付き形式は型なしリソースと互換性があるためです。

[ID3D12Device::CreateShaderResourceView](/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_createshaderresourceview_public) を呼び出して、シェーダー リソース ビュー記述を作成します。

## 要件

**ヘッダー:** 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-structures)


## Related topics

- [CreateShaderResourceView](/ja-jp/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_createshaderresourceview_public.md)
- [D3D12_TEXCUBE_SRV](/ja-jp/reference/graphics/d3d12/structs/d3d12_texcube_srv_public.md)
- [D3D12_TEX3D_SRV](/ja-jp/reference/graphics/d3d12/structs/d3d12_tex3d_srv_public.md)
- [D3D12_TEXCUBE_ARRAY_SRV](/ja-jp/reference/graphics/d3d12/structs/d3d12_texcube_array_srv_public.md)
- [D3D12_TEX2D_SRV](/ja-jp/reference/graphics/d3d12/structs/d3d12_tex2d_srv_public.md)
