Compartir a través de


Método ID3D11Device::CreateShaderResourceView (d3d11.h)

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

Sintaxis

HRESULT CreateShaderResourceView(
  [in]            ID3D11Resource                        *pResource,
  [in, optional]  const D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc,
  [out, optional] ID3D11ShaderResourceView              **ppSRView
);

Parámetros

[in] pResource

Tipo: ID3D11Resource*

Puntero al recurso que servirá de entrada a un sombreador. Este recurso debe haberse creado con la marca D3D11_BIND_SHADER_RESOURCE .

[in, optional] pDesc

Tipo: const D3D11_SHADER_RESOURCE_VIEW_DESC*

Puntero a una descripción de la vista de recursos de sombreador (consulte D3D11_SHADER_RESOURCE_VIEW_DESC). Establezca este parámetro en NULL para crear una vista que tenga acceso a todo el recurso (con el formato con el que se creó el recurso).

[out, optional] ppSRView

Tipo: ID3D11ShaderResourceView**

Dirección de un puntero a un id3D11ShaderResourceView. Establezca este parámetro en NULL para validar los demás parámetros de entrada (el método devolverá S_FALSE si los demás parámetros de entrada pasan la validación).

Valor devuelto

Tipo: HRESULT

Este método devuelve uno de los siguientes códigos de retorno de Direct3D 11.

Comentarios

Un recurso se compone de uno o varios subrecursos; una vista identifica los subrecursos a los que se va a permitir el acceso de la canalización. Además, cada recurso se enlaza a la canalización mediante una vista. Una vista de sombreador-recurso está diseñada para enlazar cualquier recurso de búfer o textura a las fases del sombreador mediante los siguientes métodos de API: ID3D11DeviceContext::VSSetShaderResources, ID3D11DeviceContext::GSSetShaderResources e ID3D11DeviceContext::P SSetShaderResources.

Dado que una vista está totalmente tipada, esto significa que los recursos sin tipo se escriben completamente cuando se enlazan a la canalización.

Nota Para crear correctamente una vista de recursos de sombreador a partir de un búfer sin tipo (por ejemplo, DXGI_FORMAT_R32G32B32A32_TYPELESS), debe establecer la marca D3D11_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS al crear el búfer.
 
El entorno de ejecución de Direct3D 11.1, que está disponible a partir de Windows 8, le permite usar CreateShaderResourceView para el siguiente propósito nuevo.

Puede crear vistas de recursos de sombreador de recursos de vídeo para que los sombreadores de Direct3D puedan procesar esas vistas de recursos de sombreador. Estos recursos de vídeo son Texture2D o Texture2DArray. El valor del miembro ViewDimension de la estructura D3D11_SHADER_RESOURCE_VIEW_DESC para una vista de recursos de sombreador creada debe coincidir con el tipo de recurso de vídeo, D3D11_SRV_DIMENSION_TEXTURE2D para Texture2D y D3D11_SRV_DIMENSION_TEXTURE2DARRAY para Texture2DArray. Además, el formato del recurso de vídeo subyacente restringe los formatos que la vista puede usar. Los valores de formato de recursos de vídeo de la página de referencia de DXGI_FORMAT especifican los valores de formato a los que están restringidas las vistas.

La lógica de prevención de conflictos de lectura y escritura en tiempo de ejecución (que impide que un recurso esté enlazado como SRV y RTV o UAV al mismo tiempo) trata las vistas de diferentes partes de la misma superficie de vídeo que entran en conflicto por motivos de simplicidad. Por lo tanto, el tiempo de ejecución no permite que una aplicación lea de luma mientras la aplicación se representa simultáneamente en cromática en la misma superficie, aunque el hardware pueda permitir estas operaciones simultáneas.

Windows Phone 8: se admite esta API.

Requisitos

Requisito Value
Plataforma de destino Windows
Encabezado d3d11.h
Library D3D11.lib

Consulte también

ID3D11Device