Compartilhar via


estrutura D3DHAL_DP2RESPONSEQUERY (d3dhal.h)

Somente o DirectX 9.0 e versões posteriores.

Uma ou mais D3DHAL_DP2RESPONSEQUERY estrutura são analisadas do buffer de resposta pelo runtime após o runtime chamar o retorno de chamada D3dDrawPrimitives2 . O driver define o membro bCommand da estrutura D3DHAL_DP2RESPONSE como D3DDP2OP_RESPONSEQUERY para indicar que as respostas a consultas emitidas anteriormente estão disponíveis no buffer de resposta.

Sintaxe

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

Membros

dwQueryID

Identifica a consulta para quais dados de resposta estão disponíveis.

dwSize

Especifica o tamanho, em bytes, das informações de consulta que o driver retorna ao runtime.

Comentários

O runtime usa o comando D3DDP2OP_ISSUEQUERY para solicitar que o driver processe consultas. O retorno de chamada D3dDrawPrimitives2 do driver deve processar as estruturas de consulta wPrimitiveCount D3DHAL_DP2ISSUEQUERY do buffer de comando. O valor de wPrimitiveCount é especificado na estrutura D3DHAL_DP2COMMAND . O driver analisa essas estruturas de consulta e as converte em seus comandos específicos de hardware.

Se as consultas enviadas anteriormente usando a operação D3DDP2OP_ISSUEQUERY concluída, o driver definirá o tamanho do buffer de resposta no membro dwErrorOffset da estrutura D3DHAL_DRAWPRIMITIVES2DATA e definirá o membro ddrval de D3DHAL_DRAWPRIMITIVES2DATA como D3D_OK para conclusão bem-sucedida. O driver também substitui o buffer de comando de entrada com o buffer de resposta de saída. Cada D3DHAL_DP2RESPONSEQUERY no buffer de resposta é seguido pelos seguintes dados relacionados à consulta:

  • BOOL para D3DQUERYTYPE_EVENT. Antes de responder com D3DDP2OP_RESPONSEQUERY para um evento, o driver deve garantir que a GPU (unidade de processamento gráfico) esteja concluída processando todas as operações de D3DHAL_DP2OPERATION relacionadas ao evento. Ou seja, o driver só responde depois que o estado ISSUE_END do evento ocorre. O driver sempre deve definir o valor BOOL do evento como TRUE ao responder.
  • DWORD para D3DQUERYTYPE_OCCLUSION. O driver define esse DWORD como o número de pixels para os quais o teste z passou para todos os primitivos entre o início e o fim da consulta. Se o buffer de profundidade for multisampled, o driver determinará o número de pixels do número de amostras. No entanto, se o dispositivo de exibição for capaz de precisão de teste z por multisampla, a conversão em número de pixels geralmente deverá ser arredondada. Em seguida, um aplicativo pode marcar o resultado de oclusão contra 0, para efetivamente significar "totalmente ocluído". Os drivers que convertem quantidades multisamplos em quantidades de pixels devem detectar alterações de multisampling de destino de renderização e continuar a calcular os resultados da consulta adequadamente.
  • D3DDEVINFO_VCACHE estrutura para D3DQUERYTYPE_VCACHE.

O runtime analisa o buffer de resposta retornado e atualiza suas estruturas de dados internas.

Requisitos

Requisito Valor
Cabeçalho d3dhal.h (inclua D3dhal.h)

Confira também

D3DDEVINFO_VCACHE

D3DDP2OP_ISSUEQUERY

D3DDP2OP_RESPONSEQUERY

D3DHAL_DP2COMMAND

D3DHAL_DP2ISSUEQUERY

D3DHAL_DP2RESPONSE

D3DHAL_DRAWPRIMITIVES2DATA

D3dDrawPrimitives2