D3DXCreateEffectFromResourceEx

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

HRESULT D3DXCreateEffectFromResourceEx(
  LPDIRECT3DDEVICE9 pDevice,
  HMODULE hSrcModule,
  LPCTSTR pSrcResource,
  CONST D3DXMACRO * pDefines,
  LPD3DXINCLUDE pInclude,
  LPCSTR pSkipConstants,
  DWORD Flags,
  LPD3DXEFFECTPOOL pPool,
  LPD3DXEFFECT * ppEffect,
  LPD3DXBUFFER * ppCompilationErrors
);

Parameters

pDevice
[in] Pointer to the device.
hSrcModule
[in] Handle to a module containing the effect description. If this parameter is NULL, the current module will be used.
pSrcResource
[in] Pointer to the resource. This parameter supports both Unicode and ANSI strings. See Remarks.
pDefines
[in] Pointer to the preprocessor definitions. See D3DXMACRO.
pInclude
[in] 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] 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] If pSrcResource contains a text effect, flags can be a combination of D3DXSHADER Flags and D3DXFX flags; otherwise, pSrcResource contains a binary effect and the only flags honored are D3DXFX flags.
pPool
[in] Pointer to an ID3DXEffectPool object to use for shared parameters. If this value is NULL, no parameters will be shared.
ppEffect
[out] Returns a buffer containing the compiled effect.
ppCompilationErrors
[out] Returns a buffer containing a listing of compile errors.

Return Values

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 D3DXCreateEffectFromResource 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:

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

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 D3DXCreateEffectFromResourceW. Otherwise, the function call resolves to D3DXCreateEffectFromResourceA because ANSI strings are being used.

D3DXCreateEffectFromResource loads data from a resource of type RT_RCDATA. See MSDN for more information about Windows resources.

Requirements

Header: Declared in D3dx9effect.h.

See Also

D3DXCreateEffectEx, D3DXCreateEffectFromFileEx