D3DXCompileShaderFromResource 函数
编译着色器文件。
注意
建议使用 Fxc.exe 命令行编译器或使用 D3DCompile API 脱机编译,而不是使用此旧函数。
语法
HRESULT D3DXCompileShaderFromResource(
_In_ HMODULE hSrcModule,
_In_ LPCSTR pSrcResource,
_In_ const D3DXMACRO *pDefines,
_In_ LPD3DXINCLUDE pInclude,
_In_ LPCSTR pFunctionName,
_In_ LPCSTR pProfile,
_In_ DWORD Flags,
_Out_ LPD3DXBUFFER *ppShader,
_Out_ LPD3DXBUFFER *ppErrorMsgs,
_Out_ LPD3DXCONSTANTTABLE *ppConstantTable
);
参数
-
hSrcModule [in]
-
类型: HMODULE
包含效果说明的模块的句柄。 如果此参数为 NULL,则将使用当前模块。
-
pSrcResource [in]
-
类型: LPCSTR
指向指定资源名称的字符串的指针。
-
pDefines [in]
-
类型: const D3DXMACRO*
D3DXMACRO 结构的可选 NULL 终止数组。 此值可以为 NULL。
-
pInclude [in]
-
类型: LPD3DXINCLUDE
可选接口指针 ID3DXInclude,用于处理#include指令。 如果此值为 NULL,则从文件编译时将遵循#includes,或者在从资源或内存编译时出错。
-
pFunctionName [in]
-
类型: LPCSTR
指向执行开始处的着色器入口点函数的指针。
-
pProfile [in]
-
类型: LPCSTR
指向确定着色器指令集的着色器配置文件的指针。 有关可用配置文件的列表,请参阅 D3DXGetVertexShaderProfile 或 D3DXGetPixelShaderProfile 。
-
Flags [in]
-
类型: DWORD
由各种标志标识的编译选项。 Direct3D 10 HLSL 编译器现在是默认编译器。 有关详细信息,请参阅 D3DXSHADER 标志 。
-
ppShader [out]
-
类型: LPD3DXBUFFER*
返回包含创建的着色器的缓冲区。 此缓冲区包含已编译的着色器代码,以及任何嵌入的调试和符号表信息。
-
ppErrorMsgs [out]
-
类型: LPD3DXBUFFER*
返回一个缓冲区,其中包含编译过程中遇到的错误和警告的列表。 这些消息与调试器在调试模式下运行时显示的消息相同。 此值可以为 NULL。
-
ppConstantTable [out]
-
类型: LPD3DXCONSTANTTABLE*
返回 ID3DXConstantTable 接口,该接口可用于访问着色器常量。 此值可以为 NULL。 如果将应用程序编译为大地址感知 (也就是说,使用 /LARGEADDRESSAWARE 链接器选项处理大于 2 GB) 的地址,则不能使用此参数,必须将其设置为 NULL。 相反,必须使用 D3DXGetShaderConstantTableEx 函数来检索嵌入在着色器中的着色器常量表。 在此 D3DXGetShaderConstantTableEx 调用中,必须将 D3DXCONSTTABLE_LARGEADDRESSAWARE 标志传递给 Flags 参数,以指定访问最多 4 GB 的虚拟地址空间。
返回值
类型: HRESULT
如果函数成功,则返回值D3D_OK。 如果函数失败,则返回值可以是下列值之一:D3DERR_INVALIDCALL、D3DXERR_INVALIDDATA、E_OUTOFMEMORY。
要求
要求 | 值 |
---|---|
标头 |
|
库 |
|
另请参阅