Condividi tramite


D3DHAL_DP2RESPONSEQUERY struttura (d3dhal.h)

DirectX 9.0 e versioni successive solo.

Una o più D3DHAL_DP2RESPONSEQUERY struttura vengono analizzate dal buffer di risposta dal runtime dopo che il runtime chiama il callback D3dDrawPrimitives2 . Il driver imposta il membro bCommand della struttura di D3DHAL_DP2RESPONSE su D3DDP2OP_RESPONSEQUERY per indicare che le risposte alle query rilasciate in precedenza sono disponibili nel buffer di risposta.

Sintassi

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

Members

dwQueryID

Identifica la query per cui sono disponibili i dati di risposta.

dwSize

Specifica le dimensioni, in byte, delle informazioni di query restituite dal driver al runtime.

Commenti

Il runtime usa il comando D3DDP2OP_ISSUEQUERY per richiedere che il processo del driver eselabori le query. Il callback D3dDrawPrimitives2 del driver deve elaborare wPrimitiveCount D3DHAL_DP2ISSUEQUERY strutture di query dal buffer dei comandi. Il valore di wPrimitiveCount viene specificato nella struttura D3DHAL_DP2COMMAND . Il driver analizza queste strutture di query e li converte nei comandi specifici dell'hardware.

Se in precedenza sono state inviate query usando l'operazione di D3DDP2OP_ISSUEQUERY completata, il driver imposta le dimensioni del buffer di risposta nel membro dwErrorOffset della struttura D3DHAL_DRAWPRIMITIVES2DATA e imposta il membro ddrval di D3DHAL_DRAWPRIMITIVES2DATA su D3D_OK per il completamento riuscito. Il driver sovrascrive anche il buffer dei comandi in ingresso con il buffer di risposta in uscita. Ogni D3DHAL_DP2RESPONSEQUERY nel buffer di risposta viene seguito dai dati seguenti correlati alla query:

  • BOOL per D3DQUERYTYPE_EVENT. Prima di rispondere con D3DDP2OP_RESPONSEQUERY per un evento, il driver deve assicurarsi che l'unità di elaborazione grafica (GPU) venga completata l'elaborazione di tutte le operazioni D3DHAL_DP2OPERATION correlate all'evento. Ovvero, il driver risponde solo dopo che si verifica lo stato di ISSUE_END dell'evento. Il driver deve sempre impostare il valore BOOL dell'evento su TRUE quando risponde.
  • DWORD per D3DQUERYTYPE_OCCLUSION. Il driver imposta questo DWORD sul numero di pixel per cui il test z passato per tutte le primitive tra l'inizio e la fine della query. Se il buffer di profondità è multicampionato, il driver determina il numero di pixel dal numero di campioni. Tuttavia, se il dispositivo visualizzato è in grado di eseguire l'accuratezza z-test multisample, la conversione in numero di pixel deve essere generalmente arrotondata. Un'applicazione può quindi controllare il risultato dell'occlusione rispetto a 0, per indicare in modo efficace "completamente occluso". I driver che convertono le quantità multicampionate in quantità pixel devono rilevare le modifiche a piùampling di destinazione e continuare a calcolare i risultati della query in modo appropriato.
  • D3DDEVINFO_VCACHE struttura per D3DQUERYTYPE_VCACHE.

Il runtime analizza il buffer di risposta restituito e aggiorna le strutture di dati interne.

Requisiti

Requisito Valore
Intestazione d3dhal.h (include D3dhal.h)

Vedi anche

D3DDEVINFO_VCACHE

D3DDP2OP_ISSUEQUERY

D3DDP2OP_RESPONSEQUERY

D3DHAL_DP2COMMAND

D3DHAL_DP2ISSUEQUERY

D3DHAL_DP2RESPONSE

D3DHAL_DRAWPRIMITIVES2DATA

D3dDrawPrimitives2