Freigeben über


D3DXFX

Optionen zum Speichern und Erstellen von Effekten.

Die Konstanten in der folgenden Tabelle werden in d3dx9effect.h definiert.

Speichern und Wiederherstellen von Flags für Effektstatus Beschreibung
D3DXFX_DONOTSAVESTATE Beim Aufrufen von Begin oder beim Aufrufen von Endwird kein Zustand gespeichert.
D3DXFX_DONOTSAVESAMPLERSTATE Ein Zustandsblock speichert den Zustand beim Aufrufen von Begin und stellt den Zustand beim Aufrufen Endwieder her.
D3DXFX_DONOTSAVESHADERSTATE Ein Stateblock speichert den Zustand (mit Ausnahme von Shadern und Shaderkonstanten) beim Aufrufen Begin und stellt den Zustand beim Aufrufen Endwieder her.
Kennzeichnungen für die Effekterstellung Beschreibung
D3DXFX_NOT_CLONEABLE Der Effekt ist nicht klonbar und enthält keine Shader-Binärdaten. GetPassDesc- gibt keine Shaderfunktionszeiger zurück. Das Festlegen dieses Flags reduziert die Speicherauslastung auf etwa 50%, da dadurch die Notwendigkeit des Effektsystems beseitigt wird, eine Kopie der Shader im Arbeitsspeicher zu behalten. Dieses Flag wird von D3DXCreateEffect, D3DXCreateEffectFromFileund D3DXCreateEffectFromResourceverwendet.
D3DXFX_LARGEADDRESSAWARE Ermöglicht die Zuordnung einer Effektressource in den Adressraum einer Maschine. Eine wichtige Einschränkung besteht darin, dass Sie keine Zeichenfolgen und Handles austauschbar verwenden können. Beispielsweise würde folgendes nicht mehr funktionieren.
g_pEffect->SetMatrix( "g_mWorldViewProjection", &mWorldViewProjection );

Stattdessen muss eine Methode wie GetParameterByName- verwendet werden, um das Handle des Parameters zu speichern, der dann zum Übergeben von Variablen an den Effekt verwendet wird.

 

Die Konstanten in der folgenden Tabelle sind nicht standardmäßig definiert und müssen vom Entwickler definiert werden.

Effektvorprozessor #define Beschreibung
D3DXFX_LARGEADDRESS_HANDLE Definieren Sie diesen Wert, bevor Sie d3dx9.h einschließen, damit die Anwendung beim Versuch, Zeichenfolgen an D3DXHANDLE Parameter zu übergeben, nicht kompiliert werden kann. Dadurch wird sichergestellt, dass gültige Informationen an die Laufzeit übergeben werden.
Effektlinkerkennzeichnungen Beschreibung
LARGE_ADDRESS_AWARE Wenn Sie das Linker-Flag LARGE_ADDRESS_AWARE = 1 festlegen, kann die Anwendung Ressourcen nach Bedarf über das Adresslimit von 2 GB zuordnen.

 

Das Effektsystem verwendet Zustandsblöcke, um den Zustand automatisch zu speichern und wiederherzustellen. Weitere Informationen zu Statusblöcken finden Sie unter Zustandsblöcke Speichern und Wiederherstellen des Zustands (Direct3D 9).

Effektkonstanten