共用方式為


D3DPreprocess 函式 (d3dcompiler.h)

前置處理未編譯的 HLSL 程式碼。

語法

HRESULT D3DPreprocess(
  [in]            LPCVOID                pSrcData,
  [in]            SIZE_T                 SrcDataSize,
  [in, optional]  LPCSTR                 pSourceName,
  [in, optional]  const D3D_SHADER_MACRO *pDefines,
  [in, optional]  ID3DInclude            *pInclude,
  [out]           ID3DBlob               **ppCodeText,
  [out, optional] ID3DBlob               **ppErrorMsgs
);

參數

[in] pSrcData

類型: LPCVOID

未編譯著色器資料的指標;ASCII HLSL 程式碼或已編譯的效果。

[in] SrcDataSize

類型: SIZE_T

pSrcData的長度。

[in, optional] pSourceName

類型: LPCSTR

包含未編譯 HLSL 程式碼的檔案名。

[in, optional] pDefines

類型:const D3D_SHADER_MACRO*

Null 終止巨集定義的陣列, (請參閱 D3D_SHADER_MACRO) 。

[in, optional] pInclude

類型: ID3DInclude*

ID3DInclude用於處理 include 檔案的指標。 如果著色器包含 #include,將此設定為 Null 會導致編譯錯誤。 您可以傳遞 D3D_COMPILE_STANDARD_FILE_INCLUDE 宏,這是預設 include 處理常式的指標。 此預設包含處理常式包含相對於目前目錄的檔案,以及相對於初始原始程式檔目錄的檔案。 當您使用 D3D_COMPILE_STANDARD_FILE_INCLUDE時,必須在 pSourceName 參數中指定來原始檔案名;編譯器會從 pSourceName衍生初始相對目錄。

#define D3D_COMPILE_STANDARD_FILE_INCLUDE ((ID3DInclude*)(UINT_PTR)1)

[out] ppCodeText

類型: ID3DBlob**

包含已編譯器代碼的 ID3DBlob 位址。

[out, optional] ppErrorMsgs

類型: ID3DBlob**

ID3DBlob的指標,其中包含編譯器錯誤訊息,如果沒有錯誤則為Null

傳回值

類型: HRESULT

傳回其中一個 Direct3D 11 傳回碼

備註

D3DPreprocess 輸出 #line 指示詞,並保留來源輸入的行號,讓輸出行號可以適當地與輸入來源相關。

需求

   
目標平台 Windows
標頭 d3dcompiler.h
程式庫 D3dcompiler_47.lib
Dll D3dcompiler_47.dll

請參閱

函式