D3DUSAGE
Nutzungsoptionen, die angeben, wie Ressourcen verwendet werden sollen.
In der folgenden Tabelle sind die verfügbaren Nutzungsoptionen zusammengefasst.
Konstante | BESCHREIBUNG |
---|---|
|
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. |
|
Die Ressource ist ein Tiefenschablonenpuffer.
D3DUSAGE_DEPTHSTENCIL kann nur mit D3DPOOL_DEFAULT verwendet werden. |
|
Die Ressource ist eine Verschiebungszuordnung. |
|
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. |
|
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. |
|
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. |
|
Legen Sie fest, um anzugeben, dass der Vertexpuffer zum Zeichnen von N-Patches verwendet werden soll. |
|
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. |
|
Die Ressource ist ein Renderziel.
D3DUSAGE_RENDERTARGET kann nur mit D3DPOOL_DEFAULT verwendet werden. |
|
Legen Sie fest, um anzugeben, dass der Vertexpuffer zum Zeichnen von Grundtypen hoher Ordnung verwendet werden soll. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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.
- CreateCubeTexture
- CreateDepthStencilSurface
- CreateIndexBuffer
- CreateOffscreenPlainSurface
- CreateRenderTarget
- CreateTexture
- CreateVertexBuffer
- CreateVolumeTexture
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 |
|
Siehe auch