ID3D11Device::CreateDomainShader 方法 (d3d11.h)

建立 網域著色器

語法

HRESULT CreateDomainShader(
  [in]            const void         *pShaderBytecode,
  [in]            SIZE_T             BytecodeLength,
  [in, optional]  ID3D11ClassLinkage *pClassLinkage,
  [out, optional] ID3D11DomainShader **ppDomainShader
);

參數

[in] pShaderBytecode

類型: const void*

已編譯著色器的指標。

[in] BytecodeLength

類型: SIZE_T

已編譯著色器的大小。

[in, optional] pClassLinkage

類型: ID3D11ClassLinkage*

類別連結介面的指標 (請參閱 ID3D11ClassLinkage) ;此值可以是 NULL

[out, optional] ppDomainShader

類型: ID3D11DomainShader**

ID3D11DomainShader 介面指標的位址。 如果這是 NULL,則會驗證所有其他參數,而且如果所有參數都通過驗證,則此 API 會傳回 S_FALSE ,而不是 S_OK

傳回值

類型: HRESULT

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

備註

從 Windows 8 開始提供的 Direct3D 11.1 運行時間提供下列 CreateDomainShader 新功能。

下列著色器模型 5.0 指令僅適用於 Direct3D 11.0 運行時間中的圖元著色器和計算著色器。 針對 Direct3D 11.1 執行時間,因為 UAV) (未排序的存取檢視可在所有著色器階段使用,因此您可以在所有著色器階段使用這些指示。

因此,如果您在定義域著色器中使用下列著色器模型 5.0 指令,您可以將編譯的網域著色器成功傳遞至 pShaderBytecode。 也就是說, CreateDomainShader 的呼叫會成功。

如果您將編譯的著色器傳遞至 pShaderBytecode ,該程式代碼會使用每個著色器階段不支援 UAV 的任何裝置上的任何指示, (包括未實作的現有驅動程式,以支援每個著色器階段 ) ,CreateDomainShader 就會失敗。 如果著色器嘗試使用UAV位置超出硬體支援的一組UAV插槽,CreateDomainShader也會失敗。

規格需求

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

另請參閱

ID3D11Device