Freigeben über


D3DHAL_DP2RESPONSEQUERY Struktur (d3dhal.h)

Nur DirectX 9.0 und höhere Versionen.

Eine oder mehrere D3DHAL_DP2RESPONSEQUERY Struktur werden vom Antwortpuffer nach dem Aufruf der D3dDrawPrimitives2 Rückruf durch die Laufzeit analysiert. Der Treiber legt den D3DHAL_DP2RESPONSE bCommand bCommand Member auf D3DDP2OP_RESPONSEQUERY fest, um anzugeben, dass Antworten auf zuvor ausgegebene Abfragen im Antwortpuffer verfügbar sind.

Syntax

typedef struct _D3DHAL_DP2RESPONSEQUERY {
  DWORD dwQueryID;
  DWORD dwSize;
} D3DHAL_DP2RESPONSEQUERY;

Angehörige

dwQueryID

Identifiziert die Abfrage, für welche Antwortdaten verfügbar sind.

dwSize

Gibt die Größe der Abfrageinformationen in Bytes an, die der Treiber zur Laufzeit zurückgibt.

Bemerkungen

Die Laufzeit verwendet den Befehl D3DDP2OP_ISSUEQUERY, um anzufordern, dass der Treiberprozess abfragt. Der D3dDrawPrimitives2- Rückruf des Treibers sollte wPrimitiveCount D3DHAL_DP2ISSUEQUERY Abfragestrukturen aus dem Befehlspuffer verarbeiten. Der Wert wPrimitiveCount wird in der D3DHAL_DP2COMMAND Struktur angegeben. Der Treiber analysiert diese Abfragestrukturen und übersetzt sie in seine hardwarespezifischen Befehle.

Wenn zuvor Abfragen mit dem abgeschlossenen D3DDP2OP_ISSUEQUERY Vorgang abgeschlossen wurden, legt der Treiber die Größe des Antwortpuffers im dwErrorOffset-Element der D3DHAL_DRAWPRIMITIVES2DATA-Struktur fest und legt das ddrval Member von D3DHAL_DRAWPRIMITIVES2DATA auf D3D_OK für den erfolgreichen Abschluss fest. Der Treiber überschreibt auch den eingehenden Befehlspuffer mit dem ausgehenden Antwortpuffer. Auf jede D3DHAL_DP2RESPONSEQUERY im Antwortpuffer folgen die folgenden Daten im Zusammenhang mit der Abfrage:

  • BOOL für D3DQUERYTYPE_EVENT. Bevor Sie mit D3DDP2OP_RESPONSEQUERY für ein Ereignis reagieren, muss der Treiber sicherstellen, dass die Grafikverarbeitungseinheit (GPU) alle D3DHAL_DP2OPERATION Vorgänge verarbeitet, die mit dem Ereignis zusammenhängen. Das heißt, der Treiber antwortet nur, nachdem der ISSUE_END Zustand des Ereignisses auftritt. Der Treiber muss beim Reagieren immer den BOOL-Wert des Ereignisses auf TRUE- festlegen.
  • DWORD für D3DQUERYTYPE_OCCLUSION. Der Treiber legt dieses DWORD auf die Anzahl der Pixel fest, für die der Z-Test für alle Grundtypen zwischen Dem Anfang und Ende der Abfrage bestanden hat. Wenn der Tiefenpuffer multisampelt ist, bestimmt der Treiber die Anzahl der Pixel aus der Anzahl der Beispiele. Wenn das Anzeigegerät jedoch in der Lage ist, die Genauigkeit des Multisample-Z-Tests zu überprüfen, sollte die Konvertierung in die Anzahl der Pixel im Allgemeinen aufgerundet werden. Eine Anwendung kann dann das Okklusionsergebnis gegen 0 überprüfen, um effektiv "vollständig verdeckt" zu bedeuten. Treiber, die Multisampling-Mengen in Pixelmengen konvertieren, sollten Renderziel-Multisampling-Änderungen erkennen und die Abfrageergebnisse entsprechend berechnen.
  • D3DDEVINFO_VCACHE Struktur für D3DQUERYTYPE_VCACHE.

Die Laufzeit analysiert den zurückgegebenen Antwortpuffer und aktualisiert die internen Datenstrukturen.

Anforderungen

Anforderung Wert
Header- d3dhal.h (einschließlich D3dhal.h)

Siehe auch

D3DDEVINFO_VCACHE

D3DDP2OP_ISSUEQUERY

D3DDP2OP_RESPONSEQUERY

D3DHAL_DP2COMMAND

D3DHAL_DP2ISSUEQUERY

D3DHAL_DP2RESPONSE

D3DHAL_DRAWPRIMITIVES2DATA

D3dDrawPrimitives2