Partager via


ID3D11Device ::CreateShaderResourceView, méthode (d3d11.h)

Créez une vue nuanceur-ressource pour accéder aux données d’une ressource.

Syntaxe

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

Paramètres

[in] pResource

Type : ID3D11Resource*

Pointeur vers la ressource qui servira d’entrée à un nuanceur. Cette ressource doit avoir été créée avec l’indicateur D3D11_BIND_SHADER_RESOURCE .

[in, optional] pDesc

Type : const D3D11_SHADER_RESOURCE_VIEW_DESC*

Pointeur vers une description de la vue de ressource de nuanceur (voir D3D11_SHADER_RESOURCE_VIEW_DESC). Définissez ce paramètre sur NULL pour créer une vue qui accède à la ressource entière (en utilisant le format avec lequel la ressource a été créée).

[out, optional] ppSRView

Type : ID3D11ShaderResourceView**

Adresse d’un pointeur vers un ID3D11ShaderResourceView. Définissez ce paramètre sur NULL pour valider les autres paramètres d’entrée (la méthode retourne S_FALSE si les autres paramètres d’entrée réussissent la validation).

Valeur retournée

Type : HRESULT

Cette méthode retourne l’un des codes de retour Direct3D 11 suivants.

Remarques

Une ressource est constituée d’une ou plusieurs sous-ressources ; une vue identifie les sous-ressources auxquelles le pipeline doit accéder. En outre, chaque ressource est liée au pipeline à l’aide d’une vue. Une vue de ressource de nuanceur est conçue pour lier n’importe quelle ressource de mémoire tampon ou de texture aux étapes du nuanceur à l’aide des méthodes d’API suivantes : ID3D11DeviceContext ::VSSetShaderResources, ID3D11DeviceContext ::GSSetShaderResources et ID3D11DeviceContext ::P SSetShaderResources.

Étant donné qu’une vue est entièrement typée, cela signifie que les ressources sans type deviennent entièrement typées lorsqu’elles sont liées au pipeline.

Note Pour créer correctement une vue nuanceur-ressource à partir d’une mémoire tampon sans type (par exemple, DXGI_FORMAT_R32G32B32A32_TYPELESS), vous devez définir l’indicateur D3D11_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS lorsque vous créez la mémoire tampon.
 
Le runtime Direct3D 11.1, disponible à partir de Windows 8, vous permet d’utiliser CreateShaderResourceView pour la nouvelle utilisation suivante.

Vous pouvez créer des vues nuanceur-ressource de ressources vidéo afin que les nuanceurs Direct3D puissent traiter ces vues de ressources de nuanceur. Ces ressources vidéo sont Texture2D ou Texture2DArray. La valeur dans le membre ViewDimension de la structure D3D11_SHADER_RESOURCE_VIEW_DESC d’une vue de ressource de nuanceur créée doit correspondre au type de ressource vidéo, D3D11_SRV_DIMENSION_TEXTURE2D pour Texture2D et D3D11_SRV_DIMENSION_TEXTURE2DARRAY pour Texture2DArray. En outre, le format de la ressource vidéo sous-jacente limite les formats que la vue peut utiliser. Les valeurs de format de ressource vidéo de la page de référence DXGI_FORMAT spécifient les valeurs de format auxquelles les affichages sont limités.

La logique de prévention des conflits en lecture/écriture du runtime (qui empêche une ressource d’être liée en tant que SRV et RTV ou UAV en même temps) traite les vues de différentes parties de la même surface vidéo comme étant en conflit par souci de simplicité. Par conséquent, le runtime n’autorise pas une application à lire à partir de luma tandis que l’application effectue simultanément un rendu en chroma sur la même surface, même si le matériel peut autoriser ces opérations simultanées.

Windows Phone 8 : Cette API est prise en charge.

Configuration requise

Condition requise Valeur
Plateforme cible Windows
En-tête d3d11.h
Bibliothèque D3D11.lib

Voir aussi

ID3D11Device