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

> Crée une vue de ressource de nuanceur pour accéder aux données d'une ressource. (ID3D12Device.CreateShaderResourceView)

Crée une vue de ressource de nuanceur pour accéder aux données d'une ressource.

## Syntaxe

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

### Paramètres

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

Pointeur vers l'objet [ID3D12Resource](/fr-CA/reference/graphics/d3d12_xs/interfaces/ID3D12Resource/id3d12resource_xs) qui représente la ressource de nuanceur.

Au moins l'un des paramètres <i>pResource</i> ou <i>pDesc</i> doit être fourni. Un paramètre <i>pResource</i> nul est utilisé pour initialiser un descripteur nul, ce qui garantit un comportement de liaison nulle semblable à celui de D3D11 (les lectures retournent des 0 et les écritures sont ignorées), mais il doit avoir un paramètre <i>pDesc</i> valide afin de déterminer le type de descripteur.

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

Pointeur vers une structure [D3D12\_SHADER\_RESOURCE\_VIEW\_DESC](/fr-CA/reference/graphics/d3d12/structs/d3d12_shader_resource_view_desc_public) qui décrit la vue de ressource de nuanceur.

Un paramètre <i>pDesc</i> nul est utilisé pour initialiser un descripteur par défaut, si possible. Ce comportement est identique au comportement du descripteur nul de D3D11, où les valeurs par défaut sont remplies. Ce comportement hérite du format et de la dimension de la ressource (si elle n'est pas sans type). Pour les tampons, les SRV ciblent un tampon complet et sont typés (ni bruts ni structurés); pour les textures, les SRV ciblent une texture complète, tous les niveaux de mip et toutes les tranches du tableau. Les ressources ne prennent pas toutes en charge l'initialisation par un descripteur nul.

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

Décrit le handle de descripteur CPU qui représente la vue de ressource de nuanceur. Ce handle peut être créé dans un tas de descripteurs visible ou non visible par les nuanceurs.

### Valeur de retour

Type : void

Aucune.

## Remarques

<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" />Traitement des formats vidéo YUV 4:2:0</h3> Une application doit mapper le plan de luminance (Y) séparément des plans de chrominance (UV). Les développeurs le font en appelant **CreateShaderResourceView** deux fois pour la même texture et en passant des formats à 1 canal et à 2 canaux. Le fait de passer un format à 1 canal compatible avec le plan Y mappe uniquement le plan Y. Le fait de passer un format à 2 canaux compatible avec les plans UV (ensemble) mappe uniquement les plans U et V en tant que vue de ressource unique.

Les formats YUV 4:2:0 sont répertoriés dans [DXGI\_FORMAT](https://learn.microsoft.com/en-us/windows/desktop/api/dxgiformat/ne-dxgiformat-dxgi_format).

#### Exemples

L'exemple [D3D12nBodyGravity](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/working-samples) utilise **ID3D12Device::CreateShaderResourceView** comme suit :

Décrire et créer deux vues de ressource de nuanceur à partir d'une seule description.

```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);
```

Consultez l'[Exemple de code dans la référence D3D12](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/notes-on-example-code).

<div class="code" />

## Configuration requise

**En-tête :** d3d12\_xs.h ou d3d12\_x.h<br />**Bibliothèque :** d3d12\_xs.lib ou d3d12\_x.lib<br />**Plateformes prises en charge :** consoles XBOX Series et famille XBOX One

## Voir aussi

[ID3D12Device](/fr-CA/reference/graphics/d3d12_x/interfaces/id3d12device/id3d12device)


## Related topics

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