Partager via


structure D3DHAL_DP2RESPONSEQUERY (d3dhal.h)

DirectX 9.0 et versions ultérieures uniquement.

Une ou plusieurs structures D3DHAL_DP2RESPONSEQUERY sont analysées à partir de la mémoire tampon de réponse par le runtime après l’appel du rappel D3dDrawPrimitives2. Le pilote définit le membre bCommand de la structure D3DHAL_DP2RESPONSE D3DDP2OP_RESPONSEQUERY pour indiquer que les réponses aux requêtes précédemment émises sont disponibles dans la mémoire tampon de réponse.

Syntaxe

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

Membres

dwQueryID

Identifie la requête pour laquelle les données de réponse sont disponibles.

dwSize

Spécifie la taille, en octets, des informations de requête retournées par le pilote au runtime.

Remarques

Le runtime utilise la commande D3DDP2OP_ISSUEQUERY pour demander que le pilote traite les requêtes. Le rappel D3dDrawPrimitives2 du pilote doit traiter wPrimitiveCount D3DHAL_DP2ISSUEQUERY structures de requête à partir de la mémoire tampon de commande. La valeur de wPrimitiveCount est spécifiée dans la structure D3DHAL_DP2COMMAND. Le pilote analyse ces structures de requête et les traduit en commandes spécifiques au matériel.

Si des requêtes précédemment envoyées à l’aide de l’opération de D3DDP2OP_ISSUEQUERY se sont terminées, le pilote définit la taille de la mémoire tampon de réponse dans le membre dwErrorOffset de la structure D3DHAL_DRAWPRIMITIVES2DATA et définit le membre ddrval de D3DHAL_DRAWPRIMITIVES2DATA sur D3D_OK pour la réussite. Le pilote remplace également la mémoire tampon de commande entrante avec la mémoire tampon de réponse sortante. Chaque D3DHAL_DP2RESPONSEQUERY dans la mémoire tampon de réponse est suivie des données suivantes relatives à la requête :

  • BOOL pour D3DQUERYTYPE_EVENT. Avant de répondre avec D3DDP2OP_RESPONSEQUERY pour un événement, le pilote doit s’assurer que l’unité de traitement graphique (GPU) est terminée pour traiter toutes les opérations D3DHAL_DP2OPERATION liées à l’événement. Autrement dit, le pilote répond uniquement après que l’état de ISSUE_END de l’événement se produit. Le pilote doit toujours définir la valeur BOOL de l’événement sur TRUE lors de la réponse.
  • DWORD pour D3DQUERYTYPE_OCCLUSION. Le pilote définit ce DWORD sur le nombre de pixels pour lesquels le test z a réussi pour toutes les primitives entre le début et la fin de la requête. Si la mémoire tampon de profondeur est multisamplée, le pilote détermine le nombre de pixels à partir du nombre d’échantillons. Toutefois, si l’appareil d’affichage est capable d’évaluer la précision par test z-multisample, la conversion en nombre de pixels doit généralement être arrondie. Une application peut ensuite vérifier le résultat d’occlusion par rapport à 0, pour signifier efficacement « complètement obluded ». Les pilotes qui convertissent des quantités multisamplées en quantités de pixels doivent détecter les modifications multisampling cibles de rendu et continuer à calculer les résultats de la requête de manière appropriée.
  • structure D3DDEVINFO_VCACHE pour D3DQUERYTYPE_VCACHE.

Le runtime analyse la mémoire tampon de réponse retournée et met à jour ses structures de données internes.

Exigences

Exigence Valeur
d’en-tête d3dhal.h (include D3dhal.h)

Voir aussi

D3DDEVINFO_VCACHE

D3DDP2OP_ISSUEQUERY

D3DDP2OP_RESPONSEQUERY

D3DHAL_DP2COMMAND

D3DHAL_DP2ISSUEQUERY

D3DHAL_DP2RESPONSE

D3DHAL_DRAWPRIMITIVES2DATA

D3dDrawPrimitives2