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 |
請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應