ID3D11Device::CreateVertexShader 方法 (d3d11.h)
從編譯的著色器建立頂點著色器物件。
語法
HRESULT CreateVertexShader(
[in] const void *pShaderBytecode,
[in] SIZE_T BytecodeLength,
[in, optional] ID3D11ClassLinkage *pClassLinkage,
[out, optional] ID3D11VertexShader **ppVertexShader
);
參數
[in] pShaderBytecode
類型: const void*
已編譯著色器的指標。
[in] BytecodeLength
類型: SIZE_T
已編譯頂點著色器的大小。
[in, optional] pClassLinkage
類型: ID3D11ClassLinkage*
類別連結介面的指標 (請參閱 ID3D11ClassLinkage) ;此值可以是 Null。
[out, optional] ppVertexShader
類型: ID3D11VertexShader**
ID3D11VertexShader介面指標的位址。 如果這是 Null,則會驗證所有其他參數,如果所有參數都通過驗證,則此 API 會 傳回S_FALSE ,而不是 S_OK。
傳回值
類型: HRESULT
這個方法會傳回其中一個 Direct3D 11 傳回碼。
備註
從 Windows 8 開始提供的 Direct3D 11.1 執行時間提供 下列 CreateVertexShader新功能。
下列著色器模型 5.0 指令僅適用于 Direct3D 11.0 執行時間中的圖元著色器和計算著色器。 針對 Direct3D 11.1 執行時間,因為所有著色器階段都提供 UAV () 的未排序存取檢視,因此您可以在所有著色器階段使用這些指示。
因此,如果您在頂點著色器中使用下列著色器模型 5.0 指令,則可以成功將編譯的頂點著色器傳遞至 pShaderBytecode。 也就是說, CreateVertexShader 的呼叫會成功。
如果您將已編譯的著色器傳遞至 pShaderBytecode ,該程式碼會使用每個著色器階段不支援 UAV 的任何裝置上的任何指示, (包括未實作的現有驅動程式,以支援每個著色器階段) 的 UAV, CreateVertexShader 會失敗。 如果著色器嘗試使用 UAV 插槽超出硬體支援的一組 UAV 插槽,CreateVertexShader也會失敗。
- 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 |