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.
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).
Zugehörige Themen