D3DX11CompileFromResource 函数
注意
D3DX (D3DX 9、D3DX 10 和 D3DX 11) 实用工具库已弃用Windows 8,并且不支持 Windows 应用商店应用。
注意
建议不要使用此函数,而是使用 资源函数,然后使用Fxc.exe命令行编译器进行脱机编译,或者使用 HLSL 编译 API 之一(如 D3DCompile API)。
从资源编译着色器或效果。
语法
HRESULT D3DX11CompileFromResource(
_In_ HMODULE hSrcModule,
_In_ LPCTSTR pSrcResource,
_In_ LPCTSTR pSrcFileName,
_In_ const D3D10_SHADER_MACRO *pDefines,
_In_ LPD3D10INCLUDE pInclude,
_In_ LPCSTR pFunctionName,
_In_ LPCSTR pProfile,
_In_ UINT Flags1,
_In_ UINT Flags2,
_In_ ID3DX11ThreadPump *pPump,
_Out_ ID3D10Blob **ppShader,
_Out_ ID3D10Blob **ppErrorMsgs,
_Out_ HRESULT *pHResult
);
参数
-
hSrcModule [in]
-
类型: HMODULE
包含着色器的资源模块的句柄。 可以使用 GetModuleHandle 函数获取 HMODULE。
-
pSrcResource [in]
-
类型: LPCTSTR
包含着色器的资源的名称。 如果编译器设置需要 Unicode,则数据类型 LPCTSTR 解析为 LPCWSTR。 否则,数据类型解析为 LPCSTR。
-
pSrcFileName [in]
-
类型: LPCTSTR
可选。 效果文件名,仅用于错误消息。 可以为 NULL。
-
pDefines [in]
-
类型: const D3D10_SHADER_MACRO*
可选。 指向宏定义的数组的指针, (查看 D3D10_SHADER_MACRO) 。 数组中的最后一个结构用作终止符,并且必须将所有成员设置为 0。 如果未使用,请将 pDefines 设置为 NULL。
-
pInclude [in]
-
类型: LPD3D10INCLUDE
可选。 指向用于处理包含文件的接口的指针。 如果着色器包含#include,则将其设置为 NULL 将导致编译错误。
-
pFunctionName [in]
-
类型: LPCSTR
着色器执行开始的着色器入口点函数的名称。 编译效果时, D3DX11CompileFromResource 忽略 pFunctionName;建议将 pFunctionName 设置为 NULL ,因为如果调用的函数不使用它,则最好将指针参数设置为 NULL 。
-
pProfile [in]
-
类型: LPCSTR
指定着色器模型的字符串;可以是着色器模型 2、着色器模型 3、着色器模型 4 或着色器模型 5 中的任何配置文件。 配置文件也可以用于效果类型 (例如fx_4_1) 。
-
Flags1 [in]
-
类型: UINT
着色器 编译标志。
-
Flags2 [in]
-
类型: UINT
效果 编译标志。 编译着色器而不是效果文件时, D3DX11CompileFromResource 会忽略 Flags2;建议将 Flags2 设置为零,因为如果调用的函数不使用它,则最好将非点参数设置为零。
-
pPump [in]
-
类型: ID3DX11ThreadPump*
指向线程泵接口的指针 (请参阅 ID3DX11ThreadPump 接口) 。 使用 NULL 指定此函数在完成之前不应返回。
-
ppShader [out]
-
类型: ID3D10Blob**
指向内存的指针,其中包含编译的着色器,以及任何嵌入的调试和符号表信息。
-
ppErrorMsgs [out]
-
类型: ID3D10Blob**
指向内存的指针,其中包含编译过程中发生的错误和警告的列表。 这些错误和警告与调试器的调试输出相同。
-
pHResult [out]
-
类型: HRESULT*
指向返回值的指针。 可能为 NULL。 如果 pPump 不为 NULL,则 pHResult 必须是有效的内存位置,直到异步执行完成。
返回值
类型: HRESULT
返回值是 Direct3D 11 返回代码中列出的值之一。
如果在向 pPump 参数提供 NULL 时向 pHResult参数提供非NULL,则 D3DX11CompileFromResource 返回E_INVALIDARG。 有关这种情况的详细信息,请参阅备注。
备注
有关 D3DX11CompileFromResource 的详细信息,请参阅 D3DCompile。
如果同时向 pPump 参数提供 NULL,则必须为 pHResult 参数提供 NULL。 否则,你随后无法使用 D3DX11CompileFromResource 在 ppShader 参数指向的内存中返回的已编译着色器代码来创建着色器。 若要从符合的着色器代码创建着色器,请调用以下 ID3D11Device 接口方法之一:
- CreateComputeShader
- CreateDomainShader
- CreateGeometryShader
- CreateGeometryShaderWithStreamOutput
- CreateHullShader
- CreatePixelShader
- CreateVertexShader
此外,如果在向 pPump 提供 NULL 时向 pHResult 提供非 NULL 值,则 D3DX11CompileFromResource 将返回E_INVALIDARG错误代码。
要求
要求 | 值 |
---|---|
标头 |
|
库 |
|