Share via


D3D10CompileShader 函式 (d3d10shader.h)

編譯 HLSL 著色器。

注意 請使用 D3DX10CompileFromMemory ,而不是此函式。
 

語法

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 編譯程式版本。

此函式會實作兩種方式來提供輸入著色器資訊。 請使用 pSrcDataSrcDataLen 來指定包含著色器 HLSL 程式代碼的字串 (,並將 pFileName 設定為 NULL) ,或使用 pFileName 指定著色器或效果檔案的名稱 (並將 pSrcData 設定為 NULL) 。

若要設定可程式化管線階段,請編譯著色器,然後將著色器系結至適當的管線階段。 例如,以下是編譯幾何著色器的範例 (請參閱 編譯幾何著色器) 。

此函式 D3D10CompileShader 會呼叫每次操作系統發行時隨附的著色器編譯程式版本。 DirectX SDK 隨附時,著色器編譯程式的最新版本會隨附,其可藉由呼叫 D3DX10CompileFromFile 之類的著色器編譯程序進入點函式版本從 D3DX 存取。 最好使用 D3DX 進入點函式,以確保如果您要轉散發 DirectX 可轉散發連結庫,則會使用最新版本的著色器編譯程式。

規格需求

需求
目標平台 Windows
標頭 d3d10shader.h
程式庫 D3D10.lib
Dll D3D10.dll

另請參閱

著色器函式