共用方式為


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 處理程式的指標。 此預設 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 指示詞,並保留來源輸入的行號,以便輸出行編號可以適當地與輸入來源相關。

要求

要求 價值
目標平臺 窗戶
標頭 d3dcompiler.h
連結庫 D3dcompiler_47.lib
DLL D3dcompiler_47.dll

另請參閱

函式