D3DXPreprocessShader 函数

预处理着色器而不执行编译。 这将解析所有#defines和#includes,为后续编译提供自包含着色器。

注意

建议使用 D3DPreprocess API,而不是使用此旧函数。

 

语法

HRESULT D3DXPreprocessShader(
  _In_        LPCSTR        pSrcData,
  _In_        UINT          SrcDataSize,
  _In_  const D3DXMACRO     *pDefines,
  _In_        LPD3DXINCLUDE pInclude,
  _Out_       LPD3DXBUFFER  *ppShaderText,
  _Out_       LPD3DXBUFFER  *ppErrorMsgs
);

参数

pSrcData [in]

类型: LPCSTR

指向包含着色器的字符串的指针。

SrcDataSize [in]

类型: UINT

数据的长度(以字节为单位)。

pDefines [in]

类型: const D3DXMACRO*

D3DXMACRO 结构的可选 NULL 终止数组。 此值可以为 NULL

pInclude [in]

类型: LPD3DXINCLUDE

可选接口指针 ID3DXInclude,用于处理#include指令。 如果此值为 NULL,则从文件编译时将遵循#includes,或者在从资源或内存编译时导致错误。

ppShaderText [out]

类型: LPD3DXBUFFER*

返回一个缓冲区,其中包含表示生成的格式化令牌流的单个大型字符串。

ppErrorMsgs [out]

类型: LPD3DXBUFFER*

返回一个缓冲区,其中包含编译过程中遇到的错误和警告的列表。 这些消息与调试器在调试模式下运行时显示的消息相同。 此值可以为 NULL

返回值

类型: HRESULT

如果函数成功,则返回值D3D_OK。 如果函数失败,则返回值可以是以下值之一:D3DERR_INVALIDCALL、D3DXERR_INVALIDDATA E_OUTOFMEMORY。

要求

要求
标头
D3DX9Shader.h

D3dx9.lib

另请参阅

着色器函数

D3DXPreprocessShaderFromFile

D3DXPreprocessShaderFromResource