D3D10CreateEffectFromMemory function (d3d10effect.h)

Creates an ID3D10Effect from a buffer containing a compiled effect.

Syntax

HRESULT D3D10CreateEffectFromMemory(
  [in]  void             *pData,
  [in]  SIZE_T           DataLength,
  [in]  UINT             FXFlags,
  [in]  ID3D10Device     *pDevice,
  [in]  ID3D10EffectPool *pEffectPool,
  [out] ID3D10Effect     **ppEffect
);

Parameters

[in] pData

Type: void*

A pointer to a compiled effect.

[in] DataLength

Type: SIZE_T

Length of pData.

[in] FXFlags

Type: UINT

Effect compile options.

[in] pDevice

Type: ID3D10Device*

A pointer to the device (see ID3D10Device Interface).

[in] pEffectPool

Type: ID3D10EffectPool*

Optional. A pointer to a memory space for effect variables that are shared across effects (see ID3D10EffectPool Interface).

[out] ppEffect

Type: ID3D10Effect**

A pointer to an ID3D10Effect Interface which contains the created effect.

Return value

Type: HRESULT

Returns one of the following Direct3D 10 Return Codes.

Remarks

This method is used to create an ID3D10Effect Interface object from an effect that has been compiled before runtime and loaded into memory.
For help precompiling an effect, see Offline Compiling.
To load and compile an ASCII .fx file see Compile an Effect (Direct3D 10).

Examples

Compiling and loading an effect

Compile the effect.


fxc.exe /T fx_4_0 /Fo Tutorial03.fxo Tutorial03.fx      
          

Load the compiled effect at runtime.


ifstream is("tutorial03.fxo", ios::binary);
is.seekg(0,ios_base::end);
streampos pos = is.tellg();
is.seekg(0,ios_base::beg);
char * effectBuffer = new char[pos];
is.read(effectBuffer,pos);
	
hr = D3D10CreateEffectFromMemory((void *)effectBuffer,pos,0,g_pd3dDevice,NULL,&g_pEffect);
          

Requirements

   
Target Platform Windows
Header d3d10effect.h
Library D3D10.lib
DLL D3D10.dll

See also

Effect Functions (Direct3D 10)