Compartilhar via


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

Crie uma exibição de recurso de sombreador para acessar dados em um recurso.

Sintaxe

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

Parâmetros

[in] pResource

Tipo: ID3D11Resource*

Ponteiro para o recurso que servirá como entrada para um sombreador. Esse recurso deve ter sido criado com o sinalizador D3D11_BIND_SHADER_RESOURCE .

[in, optional] pDesc

Tipo: const D3D11_SHADER_RESOURCE_VIEW_DESC*

Ponteiro para uma descrição de exibição de recurso de sombreador (consulte D3D11_SHADER_RESOURCE_VIEW_DESC). Defina esse parâmetro como NULL para criar uma exibição que acesse todo o recurso (usando o formato com o qual o recurso foi criado).

[out, optional] ppSRView

Tipo: ID3D11ShaderResourceView**

Endereço de um ponteiro para um ID3D11ShaderResourceView. Defina esse parâmetro como NULL para validar os outros parâmetros de entrada (o método retornará S_FALSE se os outros parâmetros de entrada passarem na validação).

Retornar valor

Tipo: HRESULT

Esse método retorna um dos seguintes códigos de retorno do Direct3D 11.

Comentários

Um recurso é composto por um ou mais sub-recursos; uma exibição identifica quais sub-recursos permitir que o pipeline acesse. Além disso, cada recurso é associado ao pipeline usando uma exibição. Uma exibição de recurso de sombreador foi projetada para associar qualquer recurso de buffer ou textura aos estágios do sombreador usando os seguintes métodos de API: ID3D11DeviceContext::VSSetShaderResources, ID3D11DeviceContext::GSSetShaderResources e ID3D11DeviceContext::P SSetShaderResources.

Como uma exibição é totalmente tipada, isso significa que os recursos sem tipo ficam totalmente tipados quando associados ao pipeline.

Nota Para criar com êxito uma exibição de recurso de sombreador de um buffer sem tipo (por exemplo, DXGI_FORMAT_R32G32B32A32_TYPELESS), você deve definir o sinalizador D3D11_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS ao criar o buffer.
 
O runtime do Direct3D 11.1, que está disponível a partir do Windows 8, permite que você use CreateShaderResourceView para a nova finalidade a seguir.

Você pode criar exibições de recursos de sombreador de recursos de vídeo para que os sombreadores direct3D possam processar essas exibições de recurso de sombreador. Esses recursos de vídeo são Texture2D ou Texture2DArray. O valor no membro ViewDimension da estrutura D3D11_SHADER_RESOURCE_VIEW_DESC para um modo de exibição de recurso de sombreador criado deve corresponder ao tipo de recurso de vídeo, D3D11_SRV_DIMENSION_TEXTURE2D para Texture2D e D3D11_SRV_DIMENSION_TEXTURE2DARRAY para Texture2DArray. Além disso, o formato do recurso de vídeo subjacente restringe os formatos que a exibição pode usar. Os valores de formato de recurso de vídeo na página de referência do DXGI_FORMAT especificam os valores de formato aos quais as exibições são restritas.

A lógica de prevenção de conflitos de leitura+gravação de runtime (que impede que um recurso seja associado como SRV e RTV ou UAV ao mesmo tempo) trata as exibições de diferentes partes da mesma superfície de vídeo como conflitantes para simplificar. Portanto, o runtime não permite que um aplicativo leia do luma enquanto o aplicativo renderiza simultaneamente para chroma na mesma superfície, embora o hardware possa permitir essas operações simultâneas.

Windows Phone 8: há suporte para essa API.

Requisitos

Requisito Valor
Plataforma de Destino Windows
Cabeçalho d3d11.h
Biblioteca D3D11.lib

Confira também

ID3D11Device