Condividi tramite


Metodo ID3D11Device::CreateShaderResourceView (d3d11.h)

Creare una visualizzazione shader-resource per l'accesso ai dati in una risorsa.

Sintassi

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

Parametri

[in] pResource

Tipo: ID3D11Resource*

Puntatore alla risorsa che fungerà da input a uno shader. Questa risorsa deve essere stata creata con il flag di D3D11_BIND_SHADER_RESOURCE .

[in, optional] pDesc

Tipo: const D3D11_SHADER_RESOURCE_VIEW_DESC*

Puntatore a una descrizione della visualizzazione delle risorse shader (vedere D3D11_SHADER_RESOURCE_VIEW_DESC). Impostare questo parametro su NULL per creare una visualizzazione che accede all'intera risorsa (usando il formato con cui è stata creata la risorsa).

[out, optional] ppSRView

Tipo: ID3D11ShaderResourceView**

Indirizzo di un puntatore a un ID3D11ShaderResourceView. Impostare questo parametro su NULL per convalidare gli altri parametri di input (il metodo restituirà S_FALSE se gli altri parametri di input passano la convalida).

Valore restituito

Tipo: HRESULT

Questo metodo restituisce uno dei codici restituiti Direct3D 11 seguenti.

Commenti

Una risorsa è costituita da una o più sottoresource; una vista identifica quali sottoresource consentono alla pipeline di accedere. Inoltre, ogni risorsa è associata alla pipeline usando una visualizzazione. Una visualizzazione shader-resource è progettata per associare qualsiasi risorsa buffer o trama alle fasi shader usando i metodi API seguenti: ID3D11DeviceContext::VSSetShaderResources, ID3D11DeviceContext::GSSetShaderResources e ID3D11DeviceContext::P SSetShaderResources.

Poiché una visualizzazione è completamente tipizzata, ciò significa che le risorse senza tipo diventano completamente digitate quando associate alla pipeline.

Nota Per creare correttamente una visualizzazione shader-resource da un buffer senza tipi (ad esempio, DXGI_FORMAT_R32G32B32A32_TYPELESS), è necessario impostare il flag di D3D11_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS quando si crea il buffer.
 
Il runtime Direct3D 11.1, disponibile a partire da Windows 8, consente di usare CreateShaderResourceView per il nuovo scopo seguente.

È possibile creare visualizzazioni di risorse shader delle risorse video in modo che gli shader Direct3D possano elaborare tali visualizzazioni delle risorse shader. Queste risorse video sono Texture2D o Texture2DArray. Il valore nel membro ViewDimension della struttura D3D11_SHADER_RESOURCE_VIEW_DESC per una visualizzazione risorsa shader creata deve corrispondere al tipo di risorsa video, D3D11_SRV_DIMENSION_TEXTURE2D per Texture2D e D3D11_SRV_DIMENSION_TEXTURE2DARRAY per Texture2DArray. Inoltre, il formato della risorsa video sottostante limita i formati che la visualizzazione può usare. I valori del formato delle risorse video nella pagina di riferimento DXGI_FORMAT specificano i valori di formato a cui le visualizzazioni sono limitate.

La logica di prevenzione dei conflitti di lettura e scrittura di runtime (che impedisce l'associazione di una risorsa come SRV e RTV o UAV contemporaneamente) tratta le visualizzazioni di parti diverse della stessa superficie video in conflitto per semplicità. Pertanto, il runtime non consente a un'applicazione di leggere da luma mentre l'applicazione esegue il rendering simultaneo della stessa superficie anche se l'hardware potrebbe consentire queste operazioni simultanee.

Windows Phone 8: questa API è supportata.

Requisiti

Requisito Valore
Piattaforma di destinazione Windows
Intestazione d3d11.h
Libreria D3D11.lib

Vedi anche

ID3D11Device