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

类型: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 指令并保留源输入的行号,以便输出行编号可以与输入源正确相关。

要求

要求 价值
目标平台 窗户
标头 d3dcompiler.h
D3dcompiler_47.lib
DLL D3dcompiler_47.dll

另请参阅

Functions