D3DHAL_DP2RESPONSEQUERY-Struktur (d3dhal.h)

Nur DirectX 9.0 und höhere Versionen.

Mindestens eine D3DHAL_DP2RESPONSEQUERY Struktur werden vom Antwortpuffer von der Runtime analysiert, nachdem die Runtime den D3dDrawPrimitives2-Rückruf aufgerufen hat. Der Treiber legt den bCommand-Member der D3DHAL_DP2RESPONSE Struktur 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;

Member

dwQueryID

Gibt die Abfrage an, für die Antwortdaten verfügbar sind.

dwSize

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

Hinweise

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

Wenn zuvor Abfragen mithilfe des vorgangs D3DDP2OP_ISSUEQUERY abgeschlossen wurden, legt der Treiber die Größ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. Auf jede D3DHAL_DP2RESPONSEQUERY im Antwortpuffer folgen die folgenden Daten im Zusammenhang mit der Abfrage:

  • BOOL für D3DQUERYTYPE_EVENT. Bevor er mit D3DDP2OP_RESPONSEQUERY für ein Ereignis reagiert, muss der Treiber sicherstellen, dass die Grafikverarbeitungseinheit (GPU) alle D3DHAL_DP2OPERATION Vorgänge verarbeitet, die sich auf das Ereignis beziehen. Das heißt, der Treiber antwortet nur, nachdem der ISSUE_END Zustand des Ereignisses auftritt. Der Treiber muss den BOOL-Wert des Ereignisses immer auf TRUE festlegen, wenn er reagiert.
  • 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 Anfang und Ende der Abfrage bestanden hat. Wenn der Tiefenpuffer multisampled ist, bestimmt der Treiber die Anzahl von Pixeln aus der Anzahl der Beispiele. Wenn das Anzeigegerät jedoch in der Lage ist, eine Genauigkeit pro Multisampel z-Test zu erhalten, sollte die Konvertierung in die Anzahl von Pixeln in der Regel aufgerundet werden. Eine Anwendung kann dann das Okklusionsergebnis mit 0 überprüfen, um effektiv "vollständig verschließen" zu bedeuten. Treiber, die multisampled-Mengen in Pixelmengen konvertieren, sollten Renderziel-Multisamplingänderungen erkennen und die Abfrageergebnisse weiterhin entsprechend berechnen.
  • D3DDEVINFO_VCACHE Struktur für D3DQUERYTYPE_VCACHE.

Die Runtime analysiert den zurückgegebenen Antwortpuffer und aktualisiert seine internen Datenstrukturen.

Anforderungen

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

Weitere Informationen

D3DDEVINFO_VCACHE

D3DDP2OP_ISSUEQUERY

D3DDP2OP_RESPONSEQUERY

D3DHAL_DP2COMMAND

D3DHAL_DP2ISSUEQUERY

D3DHAL_DP2RESPONSE

D3DHAL_DRAWPRIMITIVES2DATA

D3dDrawPrimitives2