Compartir a través de


estructura D3DHAL_DP2RESPONSEQUERY (d3dhal.h)

DirectX 9.0 y versiones posteriores solo.

El tiempo de ejecución analiza una o varias D3DHAL_DP2RESPONSEQUERY estructura del búfer de respuesta después de que el tiempo de ejecución llame a la devolución de llamada D3dDrawPrimitives2 . El controlador establece el miembro bCommand de la estructura D3DHAL_DP2RESPONSE en D3DDP2OP_RESPONSEQUERY para indicar que las respuestas a las consultas emitidas anteriormente están disponibles en el búfer de respuesta.

Sintaxis

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

Miembros

dwQueryID

Identifica la consulta para la que están disponibles los datos de respuesta.

dwSize

Especifica el tamaño, en bytes, de la información de consulta que devuelve el controlador al tiempo de ejecución.

Comentarios

El tiempo de ejecución usa el comando D3DDP2OP_ISSUEQUERY para solicitar que el controlador procese consultas. La devolución de llamada D3dDrawPrimitives2 del controlador debe procesar wPrimitiveCount D3DHAL_DP2ISSUEQUERY estructuras de consulta desde el búfer de comandos. El valor de wPrimitiveCount se especifica en la estructura D3DHAL_DP2COMMAND . El controlador analiza estas estructuras de consulta y las traduce a sus comandos específicos de hardware.

Si las consultas enviadas anteriormente con la operación de D3DDP2OP_ISSUEQUERY se completan, el controlador establece el tamaño del búfer de respuesta en el miembro dwErrorOffset de la estructura D3DHAL_DRAWPRIMITIVES2DATA y establece el miembro ddrval de D3DHAL_DRAWPRIMITIVES2DATA en D3D_OK para que se complete correctamente. El controlador también sobrescribe el búfer de comandos entrantes con el búfer de respuesta saliente. Cada D3DHAL_DP2RESPONSEQUERY del búfer de respuesta va seguido de los siguientes datos relacionados con la consulta:

  • BOOL para D3DQUERYTYPE_EVENT. Antes de responder con D3DDP2OP_RESPONSEQUERY de un evento, el controlador debe asegurarse de que la unidad de procesamiento gráfico (GPU) haya terminado de procesar todas las operaciones D3DHAL_DP2OPERATION relacionadas con el evento. Es decir, el controlador solo responde después de que se produzca el estado de ISSUE_END del evento. El controlador siempre debe establecer el valor BOOL del evento en TRUE al responder.
  • DWORD para D3DQUERYTYPE_OCCLUSION. El controlador establece esta DWORD en el número de píxeles para los que se ha superado la prueba z para todos los primitivos entre el principio y el final de la consulta. Si el búfer de profundidad es multimuestreo, el controlador determina el número de píxeles del número de muestras. Sin embargo, si el dispositivo de pantalla es capaz de precisión de la prueba z por multimuestra, la conversión al número de píxeles normalmente se debe redondear hacia arriba. Después, una aplicación puede comprobar el resultado de la oclusión en 0, para significar eficazmente "totalmente ocluido". Los controladores que convierten cantidades de muestreo múltiple en cantidades de píxeles deben detectar cambios de muestreo múltiple de destino de representación y seguir calculando los resultados de la consulta correctamente.
  • D3DDEVINFO_VCACHE estructura de D3DQUERYTYPE_VCACHE.

El tiempo de ejecución analiza el búfer de respuesta devuelto y actualiza sus estructuras de datos internas.

Requisitos

Requisito Valor
Header d3dhal.h (incluya D3dhal.h)

Consulte también

D3DDEVINFO_VCACHE

D3DDP2OP_ISSUEQUERY

D3DDP2OP_RESPONSEQUERY

D3DHAL_DP2COMMAND

D3DHAL_DP2ISSUEQUERY

D3DHAL_DP2RESPONSE

D3DHAL_DRAWPRIMITIVES2DATA

D3dDrawPrimitives2