D3DX10CreateEffectPoolFromFile 函数

从效果文件创建效果池。

语法

HRESULT D3DX10CreateEffectPoolFromFile(
  _In_        LPCTSTR            pFileName,
  _In_  const D3D_SHADER_MACRO *pDefines,
  _In_        ID3D10Include      *pInclude,
  _In_        LPCSTR             pProfile,
  _In_        UINT               HLSLFlags,
  _In_        UINT               FXFlags,
  _In_        ID3D10Device       *pDevice,
  _In_        ID3DX10ThreadPump  *pPump,
  _Out_       ID3D10EffectPool   **ppEffectPool,
  _Out_       ID3D10Blob         **ppErrors,
  _Out_       HRESULT            *pHResult
);

参数

pFileName [in]

类型: LPCTSTR

效果文件名。 如果编译器设置需要 Unicode,则数据类型 LPCTSTR 解析为 LPCWSTR。 否则,数据类型解析为 LPCSTR。

pDefines [in]

类型: const D3D_SHADER_MACRO*

以 NULL 结尾的着色器宏数组, (查看 D3D_SHADER_MACRO) ;将此设置为 NULL 可指定任何宏。

pInclude [in]

类型: ID3D10Include*

指向包含接口的指针 (请参阅 ID3D10Include 接口) 。 此参数可以为 NULL。

pProfile [in]

类型: LPCSTR

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

HLSLFlags [in]

类型: UINT

HLSL 编译选项 (请参阅 D3D10_SHADER常量) 。

FXFlags [in]

类型: UINT

效果编译选项 (请参阅 编译和效果标志) 。

pDevice [in]

类型: ID3D10Device*

指向设备的指针 (看到将使用这些资源的 ID3D10Device 接口) 。

pPump [in]

类型: ID3DX10ThreadPump*

指向线程泵接口的指针 (请参阅 ID3DX10ThreadPump 接口) 。 使用 NULL 指定此函数在完成之前不应返回。

ppEffectPool [out]

类型: ID3D10EffectPool**

指向效果池的指针的地址 (请参阅 ID3D10EffectPool 接口) 。

ppErrors [out]

类型: ID3D10Blob**

指向内存的指针的地址 (请参阅 ID3D10Blob 接口) ,其中包含效果编译错误(如果有)。

pHResult [out]

类型: HRESULT*

指向返回值的指针。 可能为 NULL。 如果 pPump 不为 NULL,则 pHResult 必须是有效的内存位置,直到异步执行完成。

返回值

类型: HRESULT

返回值是 Direct3D 10 返回代码中列出的值之一。

备注

此示例根据 BasicHLSL10 示例中使用的效果创建效果池。

   
// Create an effect pool from an effect in memory
ID3D10EffectPool * l_pEffectPool = NULL;
ID3D10Blob* l_pBlob_Errors = NULL;
WCHAR str[MAX_PATH];
hr = DXUTFindDXSDKMediaFileCch( str, MAX_PATH, L"BasicHLSL10.fx" );
hr = D3DX10CreateEffectPoolFromFile( str, 
    NULL, NULL, D3D10_SHADER_ENABLE_STRICTNESS, 
    0, pd3dDevice, NULL, &l_pEffectPool,
    &l_pBlob_Errors );

要求

要求
标头
D3DX10Async.h

另请参阅

常规用途函数