Share via


D3DDEVINFO_VCACHE-Struktur (d3d9types.h)

Nur DirectX 8.1 und höhere Versionen.

Die D3DDEVINFO_VCACHE-Struktur beschreibt Vertex-Cache-Informationen eines Geräts.

Syntax

typedef struct _D3DDEVINFO_VCACHE {
  DWORD Pattern;
  DWORD OptMethod;
  DWORD CacheSize;
  DWORD MagicNumber;
} D3DDEVINFO_VCACHE, *LPD3DDEVINFO_VCACHE;

Member

Pattern

Gibt das Bitmuster an. Der Treiber muss das Bitmuster als vierstelligen CACH-Codewert (FOURCC) angeben. Der Treiber kann das MAKEFOURCC-Makro wie folgt verwenden, um den FOURCC-Wert als CACH anzugeben:

MAKEFOURCC('C', 'A', 'C', 'H');

OptMethod

Gibt die Methode der Gitteroptimierung an. Der Treiber kann einen der folgenden Werte verwenden, um die verwendete Gitteroptimierung anzugeben:

Wert Bedeutung
D3DXMESHOPT_STRIPREORDER (0) Optimierung der längsten Streifen
D3DXMESHOPT_VCACHE (1) Vertexcache-basierte Optimierung

CacheSize

Gibt die effektive Größe in Einträgen an, für die der Treiber den Vertexcache optimiert. Die tatsächliche Cachegröße muss nicht der größe entsprechen, die in CacheSize angegeben ist, da sich in den meisten Fällen die tatsächliche Cachegröße als größer herausstellt. Der Treiber gibt nur eine optimierte Größe in CacheSize an, wenn er auch D3DXMESHOPT_VCACHE im OptMethod-Element angibt.

MagicNumber

Gibt die Zahl an, die als Teil einer Test-und-Fehler-Prozedur verwendet werden soll, wenn ermittelt wird, wann die Stripsliste neu gestartet werden soll. Diese Zahl kann von 1 auf den Wert im CacheSize-Element festgelegt werden. In der Regel liegen die besten Werte in der Nähe von CacheSize/2.

Hinweise

Nur DirectX 8.1-Versionen. Die Direct3D-Runtime ruft die D3dGetDriverState-Funktion eines Treibers auf, um Vertexcacheinformationen vom Treiber abzurufen. In diesem D3dGetDriverState-Aufruf gibt die Runtime das D3DDEVINFOID_VCACHE-Flag im dwFlags-Member der DD_GETDRIVERSTATEDATA-Struktur an, die die Runtime übergibt. Der Treiber gibt Vertexcacheinformationen in einer D3DDEVINFO_VCACHE-Struktur an und gibt sie am lpdwStates-Member von DD_GETDRIVERSTATEDATA zurück.

Nur DirectX 9.0 und höhere Versionen. Die Direct3D-Runtime gibt D3DDP2OP_CREATEQUERY- und D3DDP2OP_ISSUEQUERY-Befehle in Aufrufen des D3dDrawPrimitives2-Rückrufs des Treibers an, um treiberseitige Ressourcen für die Abfrage zu erstellen und dann den Treiber asynchron nach Vertex-Cache-Informationen abzufragen. Im Aufruf mit dem Befehl D3DDP2OP_CREATEQUERY gibt die Runtime den D3DQUERYTYPE_VCACHE Abfragetyp im QueryType-Member der D3DHAL_DP2CREATEQUERY-Struktur an.

Wenn der Treiber eine Vertex-Cache-Abfrage abgeschlossen hat, legt der Treiber die Gesamtgröße des Antwortpuffers im dwErrorOffset-Member der D3DHAL_DRAWPRIMITIVES2DATA-Struktur fest und legt den ddrval-Member von D3DHAL_DRAWPRIMITIVES2DATA auf D3D_OK fest, damit der Abschluss erfolgreich abgeschlossen wird. Der Treiber überschreibt auch den eingehenden Befehlspuffer mit dem ausgehenden Antwortpuffer. Dieser Antwortpuffer enthält eine D3DHAL_DP2RESPONSEQUERY-Struktur , die eine Antwort für die Vertex-Cache-Abfrage identifiziert. Auf diese D3DHAL_DP2RESPONSEQUERY folgen die Vertexcachedaten in der D3DDEVINFO_VCACHE-Struktur.

Anforderungen

Anforderung Wert
Header d3d9types.h (include D3d9types.h)

Weitere Informationen

D3DDP2OP_CREATEQUERY

D3DDP2OP_ISSUEQUERY

D3DHAL_DP2CREATEQUERY

D3DHAL_DP2RESPONSEQUERY

D3DHAL_DRAWPRIMITIVES2DATA

D3dDrawPrimitives2

D3dGetDriverState