ID3DXInclude::Open 方法

用户实现的方法,用于打开和读取着色器#include文件的内容。

语法

HRESULT Open(
  [in]  D3DXINCLUDE_TYPE IncludeType,
  [in]  LPCSTR           pFileName,
  [in]  LPCVOID          pParentData,
  [out] LPCVOID          *ppData,
  [out] UINT             *pBytes
);

参数

IncludeType [in]

类型: D3DXINCLUDE_TYPE

#include文件的位置。 请参阅 D3DXINCLUDE_TYPE

pFileName [in]

类型: LPCSTR

#include文件的名称。

pParentData [in]

类型: LPCVOID

指向包含 #include 文件的容器的指针。 编译器可能会在 pParentData 中传递 NULL。 有关详细信息,请参阅 编译效果 (Direct3D 11) 中的“搜索包含文件”部分。

ppData [out]

类型: LPCVOID*

指向返回的缓冲区的指针,该缓冲区包含 include 指令。 此指针在调用 ID3DXInclude::Close 之前保持有效。

pBytes [out]

类型: UINT*

ppData 中返回的字节数。

返回值

类型: HRESULT

用户实现的方法应返回S_OK。 如果在读取#include文件时回调失败,导致调用回调的 API 将失败。 这是以下项之一:

  • HLSL 着色器将失败其中一个 D3DXCompileShader*** 函数。
  • 程序集着色器将失败其中一个 D3DXAssembleShader*** 函数。
  • 效果将失败 D3DXCreateEffect*** 或 D3DXCreateEffectCompiler*** 函数之一。

要求

要求
标头
D3DX9Shader.h

D3dx9.lib

另请参阅

ID3DXInclude

ID3DXInclude::Close