Freigeben über


D3DUSAGE

Verwendungsoptionen, die bestimmen, wie Ressourcen verwendet werden sollen.

In der folgenden Tabelle sind die verfügbaren Verwendungsoptionen zusammengefasst.

Dauerhaft BESCHREIBUNG
D3DUSAGE_AUTOGENMIPMAP
Die Ressource generiert automatisch Mipmaps. Siehe automatische Generierung von Mipmaps (Direct3D 9). Die automatische Generierung von Mipmaps wird für Volumentexturen und Tiefenschablonenoberflächen/Texturen nicht unterstützt. Diese Verwendung ist für eine Ressource im Systemspeicher (D3DPOOL_SYSTEMMEM) ungültig.
D3DUSAGE_DEPTHSTENCIL
Die Ressource ist ein Tiefenschablonenpuffer. D3DUSAGE_DEPTHSTENCIL kann nur mit D3DPOOL_DEFAULT verwendet werden.
D3DUSAGE_DMAP
Die Ressource ist eine Verdrängungszuordnung.
D3DUSAGE_DONOTCLIP
Legen Sie fest, dass der Vertexpufferinhalt nie clipping erfordert. Beim Rendern mit Puffern, für die dieses Flag festgelegt ist, muss der D3DRS_CLIPPING Renderzustand auf "false" festgelegt werden.
D3DUSAGE_DYNAMIC
Legen Sie fest, dass der Vertexpuffer dynamische Speicherverwendung erfordert. Dies ist für Treiber nützlich, da sie entscheiden können, wo der Puffer platziert werden soll. Im Allgemeinen werden statische Vertexpuffer im Videospeicher platziert, und dynamische Vertexpuffer werden im AGP-Speicher platziert. Beachten Sie, dass keine separate statische Verwendung vorhanden ist. Wenn Sie keine D3DUSAGE_DYNAMIC angeben, wird der Vertexpuffer statisch erstellt. D3DUSAGE_DYNAMIC wird streng durch die D3DLOCK_DISCARD und D3DLOCK_NOOVERWRITE Sperren von Flags erzwungen. Daher sind D3DLOCK_DISCARD und D3DLOCK_NOOVERWRITE nur für Vertexpuffer gültig, die mit D3DUSAGE_DYNAMIC erstellt wurden. Sie sind ungültige Flags für statische Vertexpuffer. Weitere Informationen finden Sie unter Verwalten von Ressourcen (Direct3D 9).
Weitere Informationen zur Verwendung dynamischer Vertexpuffer finden Sie unter Leistungsoptimierungen (Direct3D 9).
D3DUSAGE_DYNAMIC und D3DPOOL_MANAGED sind nicht kompatibel und sollten nicht zusammen verwendet werden. Siehe D3DPOOL.
Texturen können D3DUSAGE_DYNAMIC angeben. Verwaltete Texturen können jedoch nicht D3DUSAGE_DYNAMIC verwenden. Weitere Informationen zu dynamischen Texturen finden Sie unter Verwenden dynamischer Texturen.
D3DUSAGE_NONSECURE
Zulassen, dass eine freigegebene Oberfläche, die von einer sicheren Anwendung erstellt wird, von einer nicht sicheren Anwendung geöffnet wird, die über das freigegebene Handle verfügt.
Unterschiede zwischen Direct3D 9 und Direct3D 9Ex: Dieses Flag ist nur in Direct3D 9Ex verfügbar.
D3DUSAGE_NPATCHES
Legen Sie fest, dass der Vertexpuffer zum Zeichnen von N-Patches verwendet werden soll.
D3DUSAGE_POINTS
Legen Sie fest, dass der Scheitelpunkt- oder Indexpuffer für Zeichnungspunkt-Sprites verwendet wird. Der Puffer wird im Systemspeicher geladen, wenn die Softwarevertexverarbeitung zum Emulieren von Punkt-Sprites erforderlich ist.
D3DUSAGE_RENDERTARGET
Die Ressource ist ein Renderziel. D3DUSAGE_RENDERTARGET kann nur mit D3DPOOL_DEFAULT verwendet werden.
D3DUSAGE_RTPATCHES
Legen Sie fest, dass der Vertexpuffer für das Zeichnen von Grundtypen mit hoher Reihenfolge verwendet werden soll.
D3DUSAGE_SOFTWAREPROCESSING
Wenn dieses Kennzeichen verwendet wird, erfolgt die Vertexverarbeitung in der Software. Wenn dieses Flag nicht verwendet wird, erfolgt die Vertexverarbeitung in der Hardware.
Das D3DUSAGE_SOFTWAREPROCESSING-Flag kann festgelegt werden, wenn die Datenverarbeitung im gemischten Modus oder bei der Softwarevertexverarbeitung (D3DCREATE_MIXED_VERTEXPROCESSING / D3DCREATE_SOFTWARE_VERTEXPROCESSING) für dieses Gerät aktiviert ist. D3DUSAGE_SOFTWAREPROCESSING müssen für Puffer festgelegt werden, die mit der Softwarevertexverarbeitung im gemischten Modus verwendet werden sollen. Sie sollte jedoch nicht für die bestmögliche Leistung festgelegt werden, wenn Sie die Hardwareindexverarbeitung im gemischten Modus (D3DCREATE_HARDWARE_VERTEXPROCESSING) verwenden. Das Festlegen D3DUSAGE_SOFTWAREPROCESSING ist jedoch die einzige Option, wenn ein einzelner Puffer sowohl bei der Hardware- als auch bei der Softwarevertexverarbeitung verwendet wird. D3DUSAGE_SOFTWAREPROCESSING ist für Gemischte und Softwaregeräte zulässig.
D3DUSAGE_SOFTWAREPROCESSING wird mit CheckDeviceFormat verwendet, um herauszufinden, ob ein bestimmtes Texturformat während der Softwarevertexverarbeitung als Vertextexttextur verwendet werden kann. Wenn dies möglich ist, muss die Textur in D3DPOOL_SCRATCH erstellt werden.
D3DUSAGE_TEXTAPI
Dieses Verwendungsflagge muss für Vertexpuffer und Quelloberflächen angegeben werden, die in Aufrufen von ComposeRects verwendet werden. Mit diesem Verwendungsflagge erstellte Texturen können nicht für die Texturfilterung verwendet werden. Vertexpuffer, die mit diesem Verwendungsflagge erstellt wurden, können nicht als Eingabedatenstromquellen verwendet werden.
Unterschiede zwischen Direct3D 9 und Direct3D 9Ex: Dieses Flag ist nur in Direct3D 9Ex verfügbar.
D3DUSAGE_WRITEONLY
Informiert das System, dass die Anwendung nur in den Vertexpuffer schreibt. Mithilfe dieses Flags kann der Treiber den besten Speicherort für effiziente Schreibvorgänge und Renderings auswählen. Versuche, aus einem Vertexpuffer zu lesen, der mit dieser Funktion erstellt wird, schlägt fehl. Puffer, die mit D3DPOOL_DEFAULT erstellt wurden, die nicht angeben , D3DUSAGE_WRITEONLY möglicherweise eine schwere Leistungsstrafe haben. D3DUSAGE_WRITEONLY wirkt sich nur auf die Leistung von D3DPOOL_DEFAULT Puffern aus.
D3DUSAGE_RESTRICTED_CONTENT
Durch Festlegen dieses Flags wird angegeben, dass die Ressource geschützte Inhalte enthalten kann.
Unterschiede zwischen Direct3D 9 und Direct3D 9Ex: Dieses Flag ist nur in Direct3D 9Ex verfügbar.
D3DUSAGE_RESTRICT_SHARED_RESOURCE
Durch Festlegen dieses Flags wird angegeben, dass der Zugriff auf die freigegebene Ressource eingeschränkt werden soll.
Unterschiede zwischen Direct3D 9 und Direct3D 9Ex: Dieses Flag ist nur in Direct3D 9Ex verfügbar.
D3DUSAGE_RESTRICT_SHARED_RESOURCE_DRIVER
Durch Festlegen dieses Flags wird angegeben, dass der Treiber den Zugriff auf die freigegebene Ressource einschränken soll. Der Anrufer muss einen authentifizierten Kanal mit dem Treiber erstellen. Der Treiber sollte dann den Zugriff auf Prozesse zulassen, die versuchen, diese freigegebene Ressource zu öffnen.
Unterschiede zwischen Direct3D 9 und Direct3D 9Ex: Dieses Flag ist nur in Direct3D 9Ex verfügbar.

Bemerkungen

Einsatz- und Ressourcenkombinationen

Verwendungen werden entweder angegeben, wenn eine Ressource erstellt oder mit CheckDeviceType angegeben wird, um die Funktion einer vorhandenen Ressource zu testen. In der folgenden Tabelle wird angegeben, welche Verwendungen auf welche Ressourcentypen angewendet werden können.

Verwendung Vertexpuffer erstellen Indexpuffer erstellen Texturerstellung Erstellen einer Cubetextur Volumentextur erstellen Erstellen von Surface Überprüfen des Geräteformats
D3DUSAGE_AUTOGENMIPMAP Ja, ja ja
D3DUSAGE_DEPTHSTENCIL Ja, ja Ja, ja
D3DUSAGE_DMAP ja ja
D3DUSAGE_DONOTCLIP Ja ja
D3DUSAGE_DYNAMIC ja ja ja ja ja
D3DUSAGE_NONSECURE ja
D3DUSAGE_NPATCHES Ja
D3DUSAGE_POINTS Ja ja
D3DUSAGE_RTPATCHES Ja ja
D3DUSAGE_RENDERTARGET Ja, ja Ja, ja
D3DUSAGE_SOFTWAREPROCESSING ja ja ja ja ja ja
D3DUSAGE_TEXTAPI Ja ja
D3DUSAGE_WRITEONLY Ja ja

 

Verwenden Sie CheckDeviceFormat , um die Hardwareunterstützung für diese Verwendungen zu überprüfen.

Jede der Methoden zur Ressourcenerstellung wird hier aufgeführt.

Die D3DXCreatexxx-Texturfunktionen verwenden auch einige dieser Konstantenwerte für die Ressourcenerstellung.

Weitere Informationen zu Pooltypen und deren Einschränkungen mit bestimmten Verwendungen finden Sie unter D3DPOOL.

Anforderungen

Anforderung Wert
Kopfzeile
D3d9types.h

Siehe auch

Direct3D-Konstanten

D3DUSAGE_QUERY

D3DDECLUSAGE

D3DPOOL