D3D10CompileShader 函数 (d3d10shader.h)

编译 HLSL 着色器。

注意 使用 D3DX10CompileFromMemory 而不是此函数。
 

语法

HRESULT D3D10CompileShader(
  [in]  LPCSTR                   pSrcData,
  [in]  SIZE_T                   SrcDataSize,
  [in]  LPCSTR                   pFileName,
  [in]  const D3D10_SHADER_MACRO *pDefines,
  [in]  LPD3D10INCLUDE           pInclude,
  [in]  LPCSTR                   pFunctionName,
  [in]  LPCSTR                   pProfile,
  [in]  UINT                     Flags,
  [out] ID3D10Blob               **ppShader,
  [out] ID3D10Blob               **ppErrorMsgs
);

参数

[in] pSrcData

类型: LPCSTR

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

[in] SrcDataSize

类型: SIZE_T

pSrcData 的大小(以字节为单位)。

[in] pFileName

类型: LPCSTR

包含着色器代码的文件的名称。

[in] pDefines

类型: const D3D10_SHADER_MACRO*

可选。 指向宏定义的数组的指针, (查看 D3D10_SHADER_MACRO) 。 数组中的最后一个结构用作终止符,并且必须将所有成员设置为 0。
如果未使用,请将 pDefines 设置为 NULL

[in] pInclude

类型: LPD3D10INCLUDE*

可选。 指向 ID3D10Include 接口 的指针,用于处理包含文件。 如果着色器包含 #include,则将其设置为 NULL 将导致编译错误。

[in] pFunctionName

类型: LPCSTR

着色器执行开始的着色器入口点函数的名称。

[in] pProfile

类型: LPCSTR

一个指定 着色器配置文件 或着色器模型的字符串。

[in] Flags

类型: UINT

着色器 编译选项

[out] ppShader

类型: ID3D10Blob**

指向 ID3D10Blob 接口 的指针,该接口包含已编译的着色器以及任何嵌入的调试和符号表信息。

[out] ppErrorMsgs

类型: ID3D10Blob**

指向 ID3D10Blob 接口 的指针,该接口包含编译过程中发生的错误和警告的列表。 这些错误和警告与调试器的调试输出相同。

返回值

类型: HRESULT

返回以下 Direct3D 10 返回代码之一。

注解

此函数使用 2006 年 11 月 DirectX SDK 中发布的 HLSL 编译器版本。

此函数实现两种方法来提供输入着色器信息。 使用 pSrcDataSrcDataLen 指定包含着色器 HLSL 代码的字符串 (并将 pFileName 设置为 NULL) ,或使用 pFileName 指定着色器或效果文件的名称 (并将 pSrcData 设置为 NULL) 。

若要设置可编程管道阶段,请编译着色器,然后将着色器绑定到相应的管道阶段。 例如,下面是编译几何着色器的示例 (请参阅 编译几何着色器) 。

此函数 D3D10CompileShader 调用每次操作系统发布时附带的着色器编译器版本。 DirectX SDK 发布时,着色器编译器的更新版本,可通过调用着色器编译器入口点函数(如 D3DX10CompileFromFile)的某个版本从 D3DX 访问。 如果要重新分发 DirectX 可再发行库,最好使用 D3DX 入口点函数来确保使用最新版本的着色器编译器。

要求

要求
目标平台 Windows
标头 d3d10shader.h
Library D3D10.lib
DLL D3D10.dll

另请参阅

着色器函数