ID3D11Device::CreateShaderResourceView 方法 (d3d11.h)

建立著色器資源檢視,以存取資源中的數據。

語法

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

參數

[in] pResource

類型: ID3D11Resource*

做為著色器輸入之資源的指標。 此資源必須已使用 D3D11_BIND_SHADER_RESOURCE 旗標建立。

[in, optional] pDesc

類型: const D3D11_SHADER_RESOURCE_VIEW_DESC*

著色器資源檢視描述的指標, (請參閱 D3D11_SHADER_RESOURCE_VIEW_DESC) 。 將此參數設定為 NULL ,以建立檢視,該檢視會使用以) 建立資源的格式來存取整個資源 (。

[out, optional] ppSRView

類型: ID3D11ShaderResourceView**

ID3D11ShaderResourceView 指標的位址。 將此參數設定為 NULL ,以驗證方法 (如果其他 輸入參數通過驗證) ,則會傳回S_FALSE。

傳回值

類型: HRESULT

這個方法會傳回下列其中一個 Direct3D 11 傳回碼

備註

資源是由一或多個子資源所組成;檢視可識別允許管線存取的子資源。 此外,每個資源都會使用檢視系結至管線。 著色器資源檢視的設計目的是使用下列 API 方法將任何緩衝區或紋理資源系結至著色器階段: ID3D11DeviceContext::VSSetShaderResourcesID3D11DeviceContext::GSSetShaderResourcesID3D11DeviceContext::P SSetShaderResources

因為檢視是完整類型,這表示在系結至管線時,無類型資源會變成完全型別。

注意 例如,若要從無類型緩衝區成功建立著色器資源檢視 (例如 ,DXGI_FORMAT_R32G32B32A32_TYPELESS) ,您必須在建立緩衝區時設定 D3D11_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS 旗標。
 
從 Windows 8 開始提供的 Direct3D 11.1 運行時間,可讓您針對下列新用途使用 CreateShaderResourceView

您可以建立視訊資源的著色器資源檢視,讓 Direct3D 著色器可以處理這些著色器資源檢視。 這些影片資源為 Texture2DTexture2DArray。 所建立著色器資源檢視之D3D11_SHADER_RESOURCE_VIEW_DESC結構之 ViewDimension 成員中的值必須符合視訊資源的類型,D3D11_SRV_DIMENSION_TEXTURE2D Texture2D 和 Texture2DArray 的D3D11_SRV_DIMENSION_TEXTURE2DARRAY。 此外,基礎視訊資源的格式會限制檢視可以使用的格式。 DXGI_FORMAT參考頁面上的視 資源格式值會指定檢視限制的格式值。

運行時間讀取+寫入衝突防護邏輯 (,可讓資源無法同時系結為 SRV 和 RTV 或 UAV,) 將相同視訊介面的不同部分檢視視為衝突,以求簡單起見。 因此,運行時間不允許應用程式從 luma 讀取,而應用程式同時轉譯為相同介面中的色度,即使硬體可能允許這些同時作業也一樣。

Windows Phone 8:支援此 API。

規格需求

需求
目標平台 Windows
標頭 d3d11.h
程式庫 D3D11.lib

另請參閱

ID3D11Device