ID3D11Device::CreateShaderResourceView-Methode (d3d11.h)

Erstellen Sie eine Shaderressourcensicht für den Zugriff auf Daten in einer Ressource.

Syntax

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

Parameter

[in] pResource

Typ: ID3D11Resource*

Zeiger auf die Ressource, die als Eingabe für einen Shader dient. Diese Ressource muss mit dem Flag D3D11_BIND_SHADER_RESOURCE erstellt worden sein.

[in, optional] pDesc

Typ: const D3D11_SHADER_RESOURCE_VIEW_DESC*

Zeiger auf eine Beschreibung der Shader-Ressourcenansicht (siehe D3D11_SHADER_RESOURCE_VIEW_DESC). Legen Sie diesen Parameter auf NULL fest, um eine Ansicht zu erstellen, die auf die gesamte Ressource zugreift (mit dem Format, mit dem die Ressource erstellt wurde).

[out, optional] ppSRView

Typ: ID3D11ShaderResourceView**

Adresse eines Zeigers auf eine ID3D11ShaderResourceView. Legen Sie diesen Parameter auf NULL fest, um die anderen Eingabeparameter zu überprüfen (die Methode gibt S_FALSE zurück, wenn die anderen Eingabeparameter die Überprüfung bestehen).

Rückgabewert

Typ: HRESULT

Diese Methode gibt einen der folgenden Direct3D 11-Rückgabecodes zurück.

Hinweise

Eine Ressource besteht aus einer oder mehreren Unterressourcen. eine Ansicht gibt an, auf welche Unterressourcen die Pipeline zugreifen kann. Darüber hinaus wird jede Ressource mithilfe einer Ansicht an die Pipeline gebunden. Eine Shaderressourcensicht ist so konzipiert, dass sie alle Puffer- oder Texturressourcen mithilfe der folgenden API-Methoden an die Shaderphasen bindet: ID3D11DeviceContext::VSSetShaderResources, ID3D11DeviceContext::GSSetShaderResources und ID3D11DeviceContext::P SSetShaderResources.

Da eine Ansicht vollständig typisiert ist, bedeutet dies, dass typlose Ressourcen vollständig eingegeben werden, wenn sie an die Pipeline gebunden sind.

Hinweis Um eine Shaderressourcensicht aus einem typlosen Puffer (z. B. DXGI_FORMAT_R32G32B32A32_TYPELESS) erfolgreich zu erstellen, müssen Sie beim Erstellen des Puffers das D3D11_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS-Flag festlegen.
 
Mit der Direct3D 11.1-Runtime, die ab Windows 8 verfügbar ist, können Sie CreateShaderResourceView für den folgenden neuen Zweck verwenden.

Sie können Shaderressourcenansichten von Videoressourcen erstellen, damit Direct3D-Shader diese Shaderressourcensichten verarbeiten können. Diese Videoressourcen sind Entweder Texture2D oder Texture2DArray. Der Wert im ViewDimension-Member der D3D11_SHADER_RESOURCE_VIEW_DESC-Struktur für eine erstellte Shader-Ressourcensicht muss mit dem Typ der Videoressource übereinstimmen, D3D11_SRV_DIMENSION_TEXTURE2D für Texture2D und D3D11_SRV_DIMENSION_TEXTURE2DARRAY für Texture2DArray. Darüber hinaus schränkt das Format der zugrunde liegenden Videoressource die Formate ein, die die Ansicht verwenden kann. Die Videoressourcenformatwerte auf der DXGI_FORMAT Referenzseite geben die Formatwerte an, auf die Ansichten beschränkt sind.

Die Lese-/Schreibschutzlogik der Runtime (die verhindert, dass eine Ressource gleichzeitig als SRV und RTV oder UAV gebunden wird) behandelt Ansichten verschiedener Teile derselben Videooberfläche aus Gründen der Einfachheit als Konflikt. Daher erlaubt die Runtime einer Anwendung nicht, aus luma zu lesen, während die Anwendung gleichzeitig auf der gleichen Oberfläche in Chroma gerendert wird, obwohl die Hardware diese gleichzeitigen Vorgänge zulässt.

Windows Phone 8: Diese API wird unterstützt.

Anforderungen

Anforderung Wert
Zielplattform Windows
Kopfzeile d3d11.h
Bibliothek D3D11.lib

Weitere Informationen

ID3D11Device