Freigeben über


D3DXFX

Optionen zum Speichern und Erstellen von Effekten.

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

Flags zum Speichern und Wiederherstellen von Effektzuständen Beschreibung
D3DXFX_DONOTSAVESTATE Beim Aufrufen von Begin wird der Zustand nicht gespeichert, und beim Aufrufen von End wird kein Zustand wiederhergestellt.
D3DXFX_DONOTSAVESAMPLERSTATE Beim Aufrufen von Begin wird der Zustand in einem Zustandsblock gespeichert, und beim Aufrufen von End wird der Zustand wiederhergestellt.
D3DXFX_DONOTSAVESHADERSTATE Beim Aufrufen von Begin wird der Zustand in einem Zustandsblock gespeichert (außer Shader und Shaderkonstanten), und beim Aufrufen von End wird der Zustand wiederhergestellt.
Flags zum Erstellen von Effekten Beschreibung
D3DXFX_NOT_CLONEABLE Der Effekt ist nicht klonbar und enthält keine Shaderbinärdaten. GetPassDesc gibt keine Shaderfunktionszeiger zurück. Durch das Festlegen dieses Flags wird der Arbeitsspeicherverbrauch um etwa 50 % reduziert, da das Effektsystem keine Kopien der Shader mehr im Arbeitsspeicher vorhalten muss. Dieses Flag wird von D3DXCreateEffect, D3DXCreateEffectFromFile und D3DXCreateEffectFromResource verwendet.
D3DXFX_LARGEADDRESSAWARE Ermöglicht die Zuordnung einer Effektressource in den oberen Adressraum eines Computers. Eine wichtige Einschränkung besteht darin, dass Sie Zeichenfolgen und Handles nicht 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, das dann zum Übergeben von Variablen an den Effekt verwendet wird.

 

Die Konstanten in der folgenden Tabelle sind standardmäßig nicht definiert und müssen von den Entwickler*innen 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 Runtime übergeben werden.
Flags für Effektlinker Beschreibung
LARGE_ADDRESS_AWARE Wenn Sie das Linkerflag „LARGE_ADDRESS_AWARE = 1“ festlegen, kann die Anwendung bei Bedarf Ressourcen über das Adresslimit von 2 GB hinaus zuordnen.

 

Das Effektsystem verwendet Zustandsblöcke, um den Zustand automatisch zu speichern und wiederherzustellen. Weitere Informationen zu Zustandsblöcken finden Sie unter Zustandsblöcke zum Speichern und Wiederherstellen von Zuständen (Direct3D 9).

Effektkonstanten