D3DX10CompileFromFile 函式

注意

我們建議您不要使用此舊版函式,而是使用 Fxc.exe 命令列編譯器或使用 D3DCompile API,以離線方式編譯。

從檔案編譯著色器或效果。

語法

HRESULT D3DX10CompileFromFile(
  _In_        LPCTSTR            pSrcFile,
  _In_  const D3D_SHADER_MACRO *pDefines,
  _In_        LPD3D10INCLUDE     pInclude,
  _In_        LPCSTR             pFunctionName,
  _In_        LPCSTR             pProfile,
  _In_        UINT               Flags1,
  _In_        UINT               Flags2,
  _In_        ID3DX10ThreadPump  *pPump,
  _Out_       ID3D10Blob         **ppShader,
  _Out_       ID3D10Blob         **ppErrorMsgs,
  _Out_       HRESULT            *pHResult
);

參數

pSrcFile [在]

類型: LPCTSTR

包含著色器程式碼的檔案名。 如果編譯器設定需要 Unicode,則資料類型 LPCTSTR 會解析為 LPCWSTR。 否則,資料型別會解析為 LPCSTR。

pDefines [在]

Type: Const D3D _ 著色器 _ 宏 *

選擇性。 巨集定義陣列的指標 (參閱 D3D _ 著色器 _ 宏) 。 陣列中的最後一個結構作為結束字元,且必須將所有成員設定為0。 如果未使用,請將 pDefines 設定為 Null

pInclude [在]

類型: LPD3D10INCLUDE

選擇性。 用來處理 include 檔案的 ID3D10Include 介面 介面指標。 若將此 設定為 Null,將會導致編譯錯誤(如果著色器包含) # 。

pFunctionName [在]

類型: LPCSTR

著色器開始執行的著色器輸入點函式名稱。 當您編譯效果時, D3DX10CompileFromFile 會忽略 pFunctionName;建議您將 pFunctionName 設定為 null ,因為如果所呼叫的函式不會使用它,則將指標參數設定為 null ,是很好的程式設計作法。

pProfile [在]

類型: LPCSTR

指定著色器模型的字串。可以是 著色器模型 2著色器模型 3著色器模型 4中的任何設定檔。

Flags1 [在]

類型: UINT

著色器編譯旗標

Flags2 [在]

類型: UINT

效果編譯旗標。 當您編譯著色器而非效果檔案時, D3DX10CompileFromFile 會忽略 Flags2;我們建議您將 Flags2 設定為零,因為如果所呼叫的函式不會使用它,則將指標參數設定為零是很好的程式設計作法。

pPump [在]

類型: ID3DX10ThreadPump*

執行緒抽取介面的指標 (查看 ID3DX10ThreadPump 介面) 。 使用 Null 來指定此函式必須等到完成後才會傳回。

ppShader [擴展]

類型: ID3D10Blob**

ID3D10Blob 介面的指標,其中包含已編譯的著色器,以及任何內嵌的 debug 和符號表資訊。

ppErrorMsgs [擴展]

類型: ID3D10Blob**

ID3D10Blob 介面的指標,其中包含在編譯期間發生的錯誤和警告清單。 這些錯誤和警告與偵錯工具的偵錯工具輸出完全相同。

pHResult [擴展]

類型: HRESULT*

傳回值的指標。 可能是 Null。 如果 pPump 不是 Null,則 pHResult 必須是有效的記憶體位置,直到非同步執行完成為止。

傳回值

類型: HRESULT

傳回值是 Direct3D 10 傳回碼中列出的其中一個值。

備註

需求

需求
標頭
D3DX10Async。h

另請參閱

一般用途函數