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.
Requisiti
Requisito | Valore |
---|---|
Intestazione | d3dhal.h (include D3dhal.h) |
Vedi anche
D3DDP2OP_ISSUEQUERY
D3DDP2OP_RESPONSEQUERY