D3D10CompileShader 函数 (d3d10shader.h)
编译 HLSL 着色器。
语法
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 编译器版本。
此函数实现两种方法来提供输入着色器信息。 使用 pSrcData 和 SrcDataLen 指定包含着色器 HLSL 代码的字符串 (并将 pFileName 设置为 NULL) ,或使用 pFileName 指定着色器或效果文件的名称 (并将 pSrcData 设置为 NULL) 。
若要设置可编程管道阶段,请编译着色器,然后将着色器绑定到相应的管道阶段。 例如,下面是编译几何着色器的示例 (请参阅 编译几何着色器) 。
此函数 D3D10CompileShader 调用每次操作系统发布时附带的着色器编译器版本。 DirectX SDK 发布时,着色器编译器的更新版本,可通过调用着色器编译器入口点函数(如 D3DX10CompileFromFile)的某个版本从 D3DX 访问。 如果要重新分发 DirectX 可再发行库,最好使用 D3DX 入口点函数来确保使用最新版本的着色器编译器。
要求
要求 | 值 |
---|---|
目标平台 | Windows |
标头 | d3d10shader.h |
Library | D3D10.lib |
DLL | D3D10.dll |