Share via


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也會失敗。

規格需求

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

另請參閱

ID3D11Device