D3D10CompileShader 函式 (d3d10shader.h)
編譯 HLSL 著色器。
語法
HRESULT D3D10CompileShader(
[in] LPCSTR pSrcData,
[in] SIZE_T SrcDataSize,
[in] LPCSTR pFileName,
[in] const D3D10_SHADER_MACRO *pDefines,
[in] LPD3D10INCLUDE pInclude,
[in] LPCSTR pFunctionName,
[in] LPCSTR pProfile,
[in] UINT Flags,
[out] ID3D10Blob **ppShader,
[out] ID3D10Blob **ppErrorMsgs
);
參數
[in] pSrcData
類型: LPCSTR
包含著色器原始程式碼的字串指標。
[in] SrcDataSize
類型: SIZE_T
pSrcData 的大小,以位元組為單位。
[in] pFileName
類型: LPCSTR
包含著色器程式代碼的檔名。
[in] pDefines
類型: const D3D10_SHADER_MACRO*
選擇性。 宏定義的陣列指標 (請參閱 D3D10_SHADER_MACRO) 。
陣列中的最後一個結構會做為終止符,而且所有成員都必須設定為 0。
如果未使用,請將 pDefines 設定為 NULL。
[in] pInclude
類型: LPD3D10INCLUDE*
選擇性。 ID3D10Include Interface 介面的指標,用於處理 include 檔案。 如果著色器包含 #include,將此設定為 NULL 會導致編譯錯誤。
[in] pFunctionName
類型: LPCSTR
著色器執行開始處的著色器進入點函式名稱。
[in] pProfile
類型: LPCSTR
指定 著色器配置檔 或著色器模型的字串。
[in] Flags
類型: UINT
著色器 編譯選項。
[out] ppShader
類型: ID3D10Blob**
ID3D10Blob 介面的指標,其中包含已編譯的著色器,以及任何內嵌的偵錯和符號數據表資訊。
[out] ppErrorMsgs
類型: ID3D10Blob**
ID3D10Blob 介面的指標,其中包含編譯期間發生的錯誤和警告清單。 這些錯誤和警告與調試程式的偵錯輸出相同。
傳回值
類型: HRESULT
傳回下列其中一個 Direct3D 10 傳回碼。
備註
此函式會使用 2006 年 11 月 DirectX SDK 中發行的 HLSL 編譯程式版本。
此函式會實作兩種方式來提供輸入著色器資訊。 請使用 pSrcData 和 SrcDataLen 來指定包含著色器 HLSL 程式代碼的字串 (,並將 pFileName 設定為 NULL) ,或使用 pFileName 指定著色器或效果檔案的名稱 (並將 pSrcData 設定為 NULL) 。
若要設定可程式化管線階段,請編譯著色器,然後將著色器系結至適當的管線階段。 例如,以下是編譯幾何著色器的範例 (請參閱 編譯幾何著色器) 。
此函式 D3D10CompileShader 會呼叫每次操作系統發行時隨附的著色器編譯程式版本。 DirectX SDK 隨附時,著色器編譯程式的最新版本會隨附,其可藉由呼叫 D3DX10CompileFromFile 之類的著色器編譯程序進入點函式版本從 D3DX 存取。 最好使用 D3DX 進入點函式,以確保如果您要轉散發 DirectX 可轉散發連結庫,則會使用最新版本的著色器編譯程式。
規格需求
需求 | 值 |
---|---|
目標平台 | Windows |
標頭 | d3d10shader.h |
程式庫 | D3D10.lib |
Dll | D3D10.dll |