D3DXCreateEffectFromFile function

Create an effect from an ASCII or binary effect description.

Syntax

HRESULT D3DXCreateEffectFromFile(
  _In_        LPDIRECT3DDEVICE9 pDevice,
  _In_        LPCTSTR           pSrcFile,
  _In_  const D3DXMACRO         *pDefines,
  _In_        LPD3DXINCLUDE     pInclude,
  _In_        DWORD             Flags,
  _In_        LPD3DXEFFECTPOOL  pPool,
  _Out_       LPD3DXEFFECT      *ppEffect,
  _Out_       LPD3DXBUFFER      *ppCompilationErrors
);

Parameters

pDevice [in]

Type: LPDIRECT3DDEVICE9

Pointer to the device that will create the effect. See IDirect3DDevice9.

pSrcFile [in]

Type: LPCTSTR

Pointer to the filename. This parameter supports both Unicode and ANSI strings. See Remarks.

pDefines [in]

Type: const D3DXMACRO*

Optional NULL-terminated array of preprocessor macro definitions. See D3DXMACRO.

pInclude [in]

Type: LPD3DXINCLUDE

Optional interface pointer, ID3DXInclude, to use for handling #include directives. If this value is NULL, #includes will either be honored when compiling from a file or will cause an error when compiled from a resource or memory.

Flags [in]

Type: DWORD

If pSrcFile contains a text effect, flags can be a combination of D3DXSHADER Flags and D3DXFX flags; otherwise, pSrcFile contains a binary effect and the only flags honored are D3DXFX flags. The Direct3D 10 HLSL compiler is now the default. See Effect-Compiler Tool for details.

pPool [in]

Type: LPD3DXEFFECTPOOL

Pointer to a ID3DXEffectPool object to use for shared parameters. If this value is NULL, no parameters will be shared.

ppEffect [out]

Type: LPD3DXEFFECT*

Returns a pointer to a buffer containing the compiled effect. See ID3DXEffect.

ppCompilationErrors [out]

Type: LPD3DXBUFFER*

Returns a pointer to a buffer containing a listing of compile errors. See ID3DXBuffer.

Return value

Type: HRESULT

If the function succeeds, the return value is D3D_OK. If the function fails, the return value can be one of the following: D3DERR_INVALIDCALL, D3DXERR_INVALIDDATA, E_OUTOFMEMORY.

Remarks

If the compiler settings require Unicode, the data type LPCTSTR resolves to LPCWSTR. Otherwise, the LPCTSTR data type resolves to LPCSTR.

The compiler setting also determines the function version. If Unicode is defined, the function call resolves to D3DXCreateEffectFromFileW. Otherwise, the function call resolves to D3DXCreateEffectFromFileA because ANSI strings are being used.

Requirements

Requirement Value
Header
D3DX9Effect.h
Library
D3dx9.lib

See also

Effect Functions

D3DXCompileShader

D3DXCompileShaderFromResource