Freigeben über


D3D10CreateEffectFromMemory-Funktion (d3d10effect.h)

Erstellt einen ID3D10Effect aus einem Puffer, der einen kompilierten Effekt enthält.

Syntax

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

Parameter

[in] pData

Typ: void*

Ein Zeiger auf einen kompilierten Effekt.

[in] DataLength

Typ: SIZE_T

Länge von pData.

[in] FXFlags

Typ: UINT

Optionen für die Effektkompilierung.

[in] pDevice

Typ: ID3D10Geräte*

Ein Zeiger auf das Gerät (siehe ID3D10Device Interface).

[in] pEffectPool

Typ: ID3D10EffectPool*

Optional. Ein Zeiger auf einen Speicherplatz für Effektvariablen, die über Effekte hinweg freigegeben werden (siehe ID3D10EffectPool-Schnittstelle).

[out] ppEffect

Typ: ID3D10Effect**

Ein Zeiger auf eine ID3D10Effect-Schnittstelle , die den erstellten Effekt enthält.

Rückgabewert

Typ: HRESULT

Gibt einen der folgenden Direct3D 10-Rückgabecodes zurück.

Bemerkungen

Hinweis

Beim Verknüpfen d3d10_1.lib erhalten Sie die Implementierung in d3d10_1.dll, wobei es sich um die Implementierung des Direct3D10.1-Programmiermodells handelt. Beim Verknüpfen d3d10.lib erhalten Sie die Implementierung in d3d10.dll, wobei es sich um die Implementierung des Direct3D10-Programmiermodells handelt.

Diese Methode wird verwendet, um ein ID3D10Effect Interface-Objekt aus einem Effekt zu erstellen, das vor der Laufzeit kompiliert und in den Arbeitsspeicher geladen wurde. Hilfe beim Vorkompilieren eines Effekts finden Sie unter Offlinekompilieren. Informationen zum Laden und Kompilieren einer ASCII-FX-Datei finden Sie unter Kompilieren eines Effekts (Direct3D 10).

Beispiele

Kompilieren des Effekts

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

Laden Sie den kompilierten Effekt zur Laufzeit.

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);

Anforderungen

   
Zielplattform Windows
Kopfzeile d3d10effect.h
Bibliothek d3d10_1.lib, d3d10.lib
DLL d3d10_1.dll, d3d10.dll

Siehe auch

Effektfunktionen (Direct3D 10)