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

# CreateShaderResourceView

> リソース内のデータにアクセスするためのシェーダー リソース ビューを作成します。(ID3D12Device.CreateShaderResourceView)

リソース内のデータにアクセスするためのシェーダー リソース ビューを作成します。

## 構文

```cpp theme={null}
void CreateShaderResourceView(
    ID3D12Resource  pResource,
    const D3D12_SHADER_RESOURCE_VIEW_DESC  pDesc,
    D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor
)
```

### パラメーター

*pResource \[in, optional]*<br />型: ID3D12Resource \*

シェーダー リソースを表す [ID3D12Resource](/reference/graphics/d3d12_xs/interfaces/ID3D12Resource/id3d12resource_xs) オブジェクトへのポインター。

<i>pResource</i> または <i>pDesc</i> の少なくとも一方を指定する必要があります。null の <i>pResource</i> は null デスクリプターの初期化に使用されます。これは、D3D11 と同様の null バインディング動作 (読み取り時は 0、書き込みは破棄) を保証しますが、デスクリプター タイプを判別するために有効な <i>pDesc</i> を持つ必要があります。

*pDesc \[in, optional]*<br />型: const D3D12\_SHADER\_RESOURCE\_VIEW\_DESC \*

シェーダー リソース ビューを記述する [D3D12\_SHADER\_RESOURCE\_VIEW\_DESC](/reference/graphics/d3d12/structs/d3d12_shader_resource_view_desc_public) 構造体へのポインター。

null の <i>pDesc</i> は、可能な場合、既定のデスクリプターの初期化に使用されます。この動作は、既定値が入力される D3D11 の null デスクリプターの動作と同じです。この動作では、リソースのフォーマットとディメンション (typeless でない場合) が継承され、バッファーの場合、SRV はバッファー全体を対象とし、型付き (raw または構造化ではない) となります。テクスチャの場合、SRV はテクスチャ全体、すべてのミップ、およびすべての配列スライスを対象とします。null デスクリプターの初期化をサポートしないリソースもあります。

*DestDescriptor \[in]*<br />型: D3D12\_CPU\_DESCRIPTOR\_HANDLE

シェーダー リソース ビューを表す CPU デスクリプター ハンドルを記述します。このハンドルは、シェーダー可視またはシェーダー可視でないデスクリプター ヒープに作成できます。

### 戻り値

型: void

なし。

## 解説

<h3><a id="Processing_YUV_4_2_0_video_formats" /><a id="processing_yuv_4_2_0_video_formats" /><a id="PROCESSING_YUV_4_2_0_VIDEO_FORMATS" />YUV 4:2:0 ビデオ フォーマットの処理</h3> アプリは、輝度 (Y) プレーンをクロマ (UV) プレーンとは別にマップする必要があります。開発者は、同じテクスチャに対して **CreateShaderResourceView** を 2 回呼び出し、1 チャネルおよび 2 チャネルのフォーマットを渡すことでこれを行います。Y プレーンと互換性のある 1 チャネル フォーマットを渡すと、Y プレーンのみがマップされます。UV プレーン (合わせて) と互換性のある 2 チャネル フォーマットを渡すと、U プレーンと V プレーンのみが単一のリソース ビューとしてマップされます。

YUV 4:2:0 フォーマットは、[DXGI\_FORMAT](https://learn.microsoft.com/en-us/windows/desktop/api/dxgiformat/ne-dxgiformat-dxgi_format) に一覧されています。

#### 例

[D3D12nBodyGravity](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/working-samples) サンプルでは、**ID3D12Device::CreateShaderResourceView** を次のように使用しています。

1 つの記述に基づいて 2 つのシェーダー リソース ビューを記述して作成します。

```cpp theme={null}
D3D12_SHADER_RESOURCE_VIEW_DESC srvDesc = {};
srvDesc.Shader4ComponentMapping = D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING;
srvDesc.Format = DXGI_FORMAT_UNKNOWN;
srvDesc.ViewDimension = D3D12_SRV_DIMENSION_BUFFER;
srvDesc.Buffer.FirstElement = 0;
srvDesc.Buffer.NumElements = ParticleCount;
srvDesc.Buffer.StructureByteStride = sizeof(Particle);
srvDesc.Buffer.Flags = D3D12_BUFFER_SRV_FLAG_NONE;

CD3DX12_CPU_DESCRIPTOR_HANDLE srvHandle0(m_srvUavHeap->GetCPUDescriptorHandleForHeapStart(), SrvParticlePosVelo0 + index, m_srvUavDescriptorSize);
CD3DX12_CPU_DESCRIPTOR_HANDLE srvHandle1(m_srvUavHeap->GetCPUDescriptorHandleForHeapStart(), SrvParticlePosVelo1 + index, m_srvUavDescriptorSize);
m_device->CreateShaderResourceView(m_particleBuffer0[index].Get(), &srvDesc, srvHandle0);
m_device->CreateShaderResourceView(m_particleBuffer1[index].Get(), &srvDesc, srvHandle1);
```

[D3D12 リファレンスのサンプル コード](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/notes-on-example-code) を参照してください。

<div class="code" />

## 要件

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

## 関連項目

[ID3D12Device](/reference/graphics/d3d12_x/interfaces/id3d12device/id3d12device)


## Related topics

- [D3D12_SHADER_RESOURCE_VIEW_DESC](/ja-jp/reference/graphics/d3d12/structs/d3d12_shader_resource_view_desc_public.md)
- [D3D12_TEX1D_SRV](/ja-jp/reference/graphics/d3d12/structs/d3d12_tex1d_srv_public.md)
- [D3D12_CPU_DESCRIPTOR_HANDLE](/ja-jp/reference/graphics/d3d12/structs/d3d12_cpu_descriptor_handle_public.md)
- [D3D12_TEX3D_SRV](/ja-jp/reference/graphics/d3d12/structs/d3d12_tex3d_srv_public.md)
- [D3D12_TEXCUBE_SRV](/ja-jp/reference/graphics/d3d12/structs/d3d12_texcube_srv_public.md)
