Ressourceneigenschaften (Direct3D 9)

Alle Ressourcen verwenden die folgenden Eigenschaften.

  • Verwendung. Die Art und Weise, wie eine Ressource verwendet wird, z. B. als Textur oder als Renderziel.
  • Formatieren. Das Format der Daten, z. B. das Pixelformat einer 2D-Oberfläche.
  • Pool. Der Typ des Arbeitsspeichers, in dem die Ressource zugeordnet ist.
  • Type (Typ). Der Typ der Ressource, z. B. ein Vertexpuffer oder ein Renderziel.

Ressourcenverwendungen werden erzwungen. Eine Anwendung, die eine Ressource in einem bestimmten Vorgang verwendet, muss diesen Vorgang zum Zeitpunkt der Ressourcenerstellung angeben. Eine Liste der für Ressourcen definierten Nutzungskonstanten finden Sie unter D3DUSAGE.

Die konstanten D3DUSAGE_RTPATCHES, D3DUSAGE_NPATCHES und D3DUSAGE_POINTS geben dem Treiber an, dass die Daten in diesen Puffern wahrscheinlich für dreieckige oder Rasterpatches, N-Patches bzw. Punktspite verwendet werden. Diese Flags werden bereitgestellt, falls die Hardware diese Vorgänge ohne Hostverarbeitung nicht ausführen kann. Daher sollte der Treiber diese Oberflächen im Systemspeicher zuordnen, damit die CPU darauf zugreifen kann. Wenn der Treiber diese Vorgänge vollständig in Hardware ausführen kann, kann er diese Oberflächen im Video- oder AGP-Speicher zuordnen, um eine Hostkopie zu vermeiden und die Leistung mindestens zweimal zu verbessern. Beachten Sie, dass die von diesen Flags bereitgestellten Informationen nicht unbedingt erforderlich sind. Ein Treiber kann erkennen, dass solche Vorgänge für die Daten ausgeführt werden, und der Puffer wird für nachfolgende Frames wieder in den Systemspeicher verschoben.

Ausführliche Informationen zu den Verwendungsflags und deren Beziehung zu bestimmten Ressourcen finden Sie auf den Referenzseiten zu den einzelnen Methoden zur Ressourcenerstellung.

Informationen zum Oberflächenformat von Ressourcen finden Sie unter dem Aufzählungstyp D3DFORMAT .

Die Speicherklasse, die die Puffer einer Ressource enthält, wird als Pool bezeichnet. Poolwerte werden durch den aufgezählten D3DPOOL-Typ definiert. Ein Pool kann nicht für verschiedene Objekte gemischt werden, die in einer einzelnen Ressource enthalten sind, d. h. mip-Ebenen in einer mipmap. Wenn ein Pool für eine Ressource ausgewählt wird, kann der Pool nicht geändert werden.

Die Ressourcentypen werden implizit zur Laufzeit festgelegt, wenn die Anwendung eine Methode zur Ressourcenerstellung aufruft, z. B. IDirect3DDevice9::CreateCubeTexture. Ressourcentypen werden durch den aufgezählten D3DRESOURCETYPE-Typ definiert. Anwendungen können diese Typen zur Laufzeit abfragen. Es wird jedoch erwartet, dass in den meisten Szenarien keine Überprüfung des Laufzeittyps erforderlich ist.

Direct3D-Ressourcen