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

> Crea una vista de recursos de sombreador para acceder a los datos de un recurso. (ID3D12Device.CreateShaderResourceView)

Crea una vista de recursos de sombreador para acceder a los datos de un recurso.

## Sintaxis

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

### Parámetros

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

Un puntero al objeto [ID3D12Resource](/reference/graphics/d3d12_xs/interfaces/ID3D12Resource/id3d12resource_xs) que representa el recurso de sombreador.

Debe proporcionarse al menos uno de <i>pResource</i> o <i>pDesc</i>. Un <i>pResource</i> nulo se usa para inicializar un descriptor nulo, lo que garantiza un comportamiento de enlace nulo similar al de D3D11 (se leen ceros y las escrituras se descartan), pero debe tener un <i>pDesc</i> válido para poder determinar el tipo de descriptor.

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

Un puntero a una estructura [D3D12\_SHADER\_RESOURCE\_VIEW\_DESC](/reference/graphics/d3d12/structs/d3d12_shader_resource_view_desc_public) que describe la vista de recursos de sombreador.

Un <i>pDesc</i> nulo se usa para inicializar un descriptor predeterminado, si es posible. Este comportamiento es idéntico al comportamiento del descriptor nulo de D3D11, donde se rellenan los valores predeterminados. Este comportamiento hereda el formato y la dimensión del recurso (si no es sin tipo); para los búferes, las SRV apuntan a un búfer completo y tienen tipo (no son sin formato ni estructuradas), y para las texturas, las SRV apuntan a una textura completa, todos los mips y todos los segmentos de la matriz. No todos los recursos admiten la inicialización de descriptores nulos.

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

Describe el identificador de descriptor de CPU que representa la vista de recursos de sombreador. Este identificador puede crearse en un montón de descriptores visible o no visible para el sombreador.

### Valor devuelto

Tipo: void

Ninguno.

## Comentarios

<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" />Procesamiento de formatos de vídeo YUV 4:2:0</h3> Una aplicación debe asignar el plano de luma (Y) por separado de los planos de croma (UV). Los desarrolladores lo hacen llamando a **CreateShaderResourceView** dos veces para la misma textura y pasando formatos de 1 canal y de 2 canales. Pasar un formato de 1 canal compatible con el plano Y asigna solo el plano Y. Pasar un formato de 2 canales compatible con los planos UV (juntos) asigna solo los planos U y V como una única vista de recursos.

Los formatos YUV 4:2:0 se enumeran en [DXGI\_FORMAT](https://learn.microsoft.com/en-us/windows/desktop/api/dxgiformat/ne-dxgiformat-dxgi_format).

#### Ejemplos

El ejemplo [D3D12nBodyGravity](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/working-samples) usa **ID3D12Device::CreateShaderResourceView** de la siguiente manera:

Describa y cree dos vistas de recursos de sombreador basadas en una descripción.

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

Consulte el [código de ejemplo en la referencia de D3D12](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/notes-on-example-code).

<div class="code" />

## Requisitos

**Encabezado:** d3d12\_xs.h o d3d12\_x.h<br />**Biblioteca:** d3d12\_xs.lib o d3d12\_x.lib<br />**Plataformas compatibles**: consolas XBOX Series y familia XBOX One

## Consulte también

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


## Related topics

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