> ## 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/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 <i>pResource</i> null est utilisé pour initialiser un descripteur null, ce qui garantit un comportement de liaison null semblable à D3D11 (les lectures retournent des 0, les écritures sont ignorées), mais un <i>pDesc</i> valide est alors nécessaire pour 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/reference/graphics/d3d12/structs/d3d12_shader_resource_view_desc_public) qui décrit la vue de ressource de nuanceur.

Un <i>pDesc</i> null est utilisé pour initialiser un descripteur par défaut, si possible. Ce comportement est identique à celui du descripteur null de D3D11, où les valeurs par défaut sont renseignées. 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 entier et sont typées (ni brutes ni structurées) ; pour les textures, les SRV ciblent une texture entière, tous les niveaux de mip et toutes les tranches de tableau. Les ressources ne prennent pas toutes en charge l'initialisation avec un descripteur null.

*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). Pour ce faire, les développeurs appellent **CreateShaderResourceView** deux fois pour la même texture, en transmettant des formats à 1 canal et à 2 canaux. La transmission d'un format à 1 canal compatible avec le plan Y mappe uniquement le plan Y. La transmission d'un format à 2 canaux compatible avec les plans UV (ensemble) mappe uniquement les plans U et V sous la forme d'une seule vue de ressource.

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écrivez et créez 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);
```

Reportez-vous à [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/reference/graphics/d3d12_x/interfaces/id3d12device/id3d12device)


## Related topics

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