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,则将其设置为 NULL 将导致编译错误。 可以传递 D3D_COMPILE_STANDARD_FILE_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 |
Library | D3dcompiler_47.lib |
DLL | D3dcompiler_47.dll |