D3DXCreateEffectEx function

Creates an effect from an ASCII or binary effect description. This function is an extended version of D3DXCreateEffect that allows an application to control which parameters are ignored by the effects system.

Syntax

HRESULT D3DXCreateEffectEx(
  _In_        LPDIRECT3DDEVICE9 pDevice,
  _In_        LPCVOID           pSrcData,
  _In_        UINT              SrcDataLen,
  _In_  const D3DXMACRO         *pDefines,
  _In_        LPD3DXINCLUDE     pInclude,
  _In_        LPCSTR            pSkipConstants,
  _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.

pSrcData [in]

Type: LPCVOID

Pointer to a buffer containing an effect description.

SrcDataLen [in]

Type: UINT

Length of the effect data, in bytes.

pDefines [in]

Type: const D3DXMACRO*

An optional NULL-terminated array of D3DXMACRO structures that describe preprocessor definitions. This value can be NULL.

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.

pSkipConstants [in]

Type: LPCSTR

A string of effect parameters that will be ignored by the effect system. The string must be NULL terminated, and needs to contain the name of each application-managed constant separated by a semicolon.

Flags [in]

Type: DWORD

If pSrcData contains a text effect, flags can be a combination of D3DXSHADER Flags and D3DXFX flags; otherwise, pSrcData 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 an 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 an ID3DXEffect interface.

ppCompilationErrors [out]

Type: LPD3DXBUFFER*

Returns a buffer containing a list of compile errors.

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

This function is an extended version of D3DXCreateEffect that allows an application to specify which effect constants will be managed by the application. A constant that is managed by the application is ignored by the effects system. That is, the application is responsible for initializing the constant as well as saving and restoring its state whenever appropriate.

This function checks each constant in pSkipConstants to see that:

  • It is bound to a constant register.
  • It is only used in HLSL shader code.

If a constant is named in the string that is not present in the effect, it is ignored.

Requirements

Requirement Value
Header
D3DX9Effect.h
Library
D3dx9.lib

See also

Effect Functions

D3DXCreateEffectFromFileEx

D3DXCreateEffectFromResourceEx