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也會失敗。
- dcl_uav_typed
- dcl_uav_raw
- dcl_uav_structured
- ld_raw
- ld_structured
- ld_uav_typed
- store_raw
- store_structured
- store_uav_typed
- sync_uglobal
- 例如 ,atomic_and 和 imm_atomic_and) 等所有不可 (部分完成專案和立即不可部分完成專案
規格需求
需求 | 值 |
---|---|
目標平台 | Windows |
標頭 | d3d11.h |
程式庫 | D3D11.lib |