D3DUSAGE

Nutzungsoptionen, die angeben, wie Ressourcen verwendet werden sollen.

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

Konstante BESCHREIBUNG
D3DUSAGE_AUTOGENMIPMAP
Die Ressource generiert automatisch Mipmaps. Weitere Informationen finden Sie unter 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 Verschiebungszuordnung.
D3DUSAGE_DONOTCLIP
Legen Sie fest, um anzugeben, dass der Inhalt des Vertexpuffers niemals beschnitten werden muss. 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, um anzugeben, dass für den Vertexpuffer dynamischer Arbeitsspeicher verwendet werden muss. 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 und dynamische Vertexpuffer im AGP-Speicher platziert. Beachten Sie, dass es keine separate statische Verwendung gibt. Wenn Sie D3DUSAGE_DYNAMIC nicht angeben, wird der Vertexpuffer statisch gemacht. D3DUSAGE_DYNAMIC wird streng durch die D3DLOCK_DISCARD und D3DLOCK_NOOVERWRITE Sperrflags erzwungen. Daher sind D3DLOCK_DISCARD und D3DLOCK_NOOVERWRITE nur für mit D3DUSAGE_DYNAMIC erstellte Vertexpuffer gültig. 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 inkompatibel und sollten nicht zusammen verwendet werden. Siehe D3DPOOL.
Texturen können D3DUSAGE_DYNAMIC angeben. Verwaltete Texturen können jedoch keine 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 wurde, 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, um anzugeben, dass der Vertexpuffer zum Zeichnen von N-Patches verwendet werden soll.
D3DUSAGE_POINTS
Legen Sie fest, um anzugeben, dass der Scheitelpunkt- oder Indexpuffer für Zeichnungspunkt-Sprites verwendet wird. Der Puffer wird in den Systemspeicher geladen, wenn die Softwarevertexverarbeitung erforderlich ist, um Punktspites zu emulieren.
D3DUSAGE_RENDERTARGET
Die Ressource ist ein Renderziel. D3DUSAGE_RENDERTARGET kann nur mit D3DPOOL_DEFAULT verwendet werden.
D3DUSAGE_RTPATCHES
Legen Sie fest, um anzugeben, dass der Vertexpuffer zum Zeichnen von Grundtypen hoher Ordnung verwendet werden soll.
D3DUSAGE_SOFTWAREPROCESSING
Wenn dieses Flag verwendet wird, erfolgt die Vertexverarbeitung in der Software. Wenn dieses Flag nicht verwendet wird, erfolgt die Vertexverarbeitung in der Hardware.
Das flag D3DUSAGE_SOFTWAREPROCESSING kann festgelegt werden, wenn die Verarbeitung von gemischten Oder Softwarevertexen (D3DCREATE_MIXED_VERTEXPROCESSING / D3DCREATE_SOFTWARE_VERTEXPROCESSING) für dieses Gerät aktiviert ist. D3DUSAGE_SOFTWAREPROCESSING muss festgelegt werden, damit Puffer für die Softwarevertexverarbeitung im gemischten Modus verwendet werden können, sie sollten jedoch nicht für die bestmögliche Leistung festgelegt werden, wenn die Hardwareindexverarbeitung im gemischten Modus (D3DCREATE_HARDWARE_VERTEXPROCESSING) verwendet wird. 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 Gemischt- und Softwaregeräte zulässig.
D3DUSAGE_SOFTWAREPROCESSING wird mit CheckDeviceFormat verwendet, um herauszufinden, ob ein bestimmtes Texturformat während der Softwarevertexverarbeitung als Vertextextur verwendet werden kann. Wenn dies möglich ist, muss die Textur in D3DPOOL_SCRATCH erstellt werden.
D3DUSAGE_TEXTAPI
Dieses Verwendungsflag muss für Vertexpuffer und Quelloberflächen angegeben werden, die in Aufrufen von ComposeRects verwendet werden. Mit diesem Verwendungsflag erstellte T-Extures können nicht für die Texturfilterung verwendet werden. Vertexpuffer, die mit diesem Verwendungsflag erstellt werden, 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 Mit dieser Funktion erstellten Vertexpuffer zu lesen, schlagen fehl. Puffer, die mit D3DPOOL_DEFAULT erstellt wurden, die keine D3DUSAGE_WRITEONLY angeben, können schwerwiegende Leistungseinbußen erleiden. D3DUSAGE_WRITEONLY wirkt sich nur auf die Leistung von D3DPOOL_DEFAULT Puffern aus.
D3DUSAGE_RESTRICTED_CONTENT
Das Festlegen dieses Flags gibt an, dass die Ressource möglicherweise geschützte Inhalte enthält.
Unterschiede zwischen Direct3D 9 und Direct3D 9Ex: Dieses Flag ist nur in Direct3D 9Ex verfügbar.
D3DUSAGE_RESTRICT_SHARED_RESOURCE
Das Festlegen dieses Flags gibt an, 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
Das Festlegen dieses Flags gibt an, dass der Treiber den Zugriff auf die freigegebene Ressource einschränken soll. Der Aufrufer 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

Verwendungs- und Ressourcenkombinationen

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

Verbrauch Vertexpuffer erstellen Indexpuffer erstellen Texturerstellung Erstellen einer Cubetextur Erstellen der Volumetextur Erstellen von Surface Überprüfen des Geräteformats
D3DUSAGE_AUTOGENMIPMAP x x x
D3DUSAGE_DEPTHSTENCIL x x x x
D3DUSAGE_DMAP x x
D3DUSAGE_DONOTCLIP x x
D3DUSAGE_DYNAMIC x x x x x x
D3DUSAGE_NONSECURE x x x x x x x
D3DUSAGE_NPATCHES x x
D3DUSAGE_POINTS x x
D3DUSAGE_RTPATCHES x x
D3DUSAGE_RENDERTARGET x x x x
D3DUSAGE_SOFTWAREPROCESSING x x x x x x
D3DUSAGE_TEXTAPI x x
D3DUSAGE_WRITEONLY x x

 

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

Jede der Methoden zur Ressourcenerstellung ist hier aufgeführt.

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

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

Anforderungen

Anforderung Wert
Header
D3d9types.h

Siehe auch

Direct3D-Konstanten

D3DUSAGE_QUERY

D3DDECLUSAGE

D3DPOOL