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 處理程式包含相對於目前目錄的檔案,以及相對於初始原始程式檔目錄的檔案。 當您使用
#define D3D_COMPILE_STANDARD_FILE_INCLUDE ((ID3DInclude*)(UINT_PTR)1)
[out] ppCodeText
類型:ID3DBlob**
變數的指標,接收可用來存取預處理器程式代碼之 ID3DBlob 介面的指標。
[out, optional] ppErrorMsgs
類型:ID3DBlob**
包含編譯程式錯誤訊息的 ID3DBlob 指標,如果沒有錯誤,NULL。
傳回值
類型:HRESULT
傳回其中一個
言論
D3DPreprocess 輸出 #line 指示詞,並保留來源輸入的行號,以便輸出行編號可以適當地與輸入來源相關。
要求
要求 | 價值 |
---|---|
目標平臺 | 窗戶 |
標頭 | d3dcompiler.h |
連結庫 | D3dcompiler_47.lib |
DLL | D3dcompiler_47.dll |