структура D3DHAL_DP2RESPONSEQUERY (d3dhal.h)
Только DirectX 9.0 и более поздних версий.
Одна или несколько D3DHAL_DP2RESPONSEQUERY структуры анализируются из буфера ответов средой выполнения после того, как среда выполнения вызывает обратный вызов D3dDrawPrimitives2 . Драйвер задает элемент bCommand структуры D3DHAL_DP2RESPONSE D3DDP2OP_RESPONSEQUERY, чтобы указать, что ответы на ранее выданные запросы доступны в буфере ответов.
Синтаксис
typedef struct _D3DHAL_DP2RESPONSEQUERY {
DWORD dwQueryID;
DWORD dwSize;
} D3DHAL_DP2RESPONSEQUERY;
Члены
dwQueryID
Определяет запрос, для которого доступны данные ответа.
dwSize
Указывает размер (в байтах) сведений о запросе, возвращаемых драйвером в среду выполнения.
Комментарии
Среда выполнения использует команду D3DDP2OP_ISSUEQUERY для запроса процесса драйвера. Обратный вызов D3dDrawPrimitives2 драйвера должен обрабатывать wPrimitiveCount D3DHAL_DP2ISSUEQUERY структуры запросов из буфера команд. Значение wPrimitiveCount указывается в структуре D3DHAL_DP2COMMAND . Драйвер анализирует эти структуры запросов и преобразует их в команды, относящиеся к оборудованию.
Если ранее отправленные запросы с использованием операции D3DDP2OP_ISSUEQUERY завершены, драйвер устанавливает размер буфера ответов в элементе dwErrorOffset структуры D3DHAL_DRAWPRIMITIVES2DATA и задает для элемента ddrval D3DHAL_DRAWPRIMITIVES2DATA значение D3D_OK для успешного завершения. Драйвер также перезаписывает буфер входящих команд буфером исходящего ответа. За каждым D3DHAL_DP2RESPONSEQUERY в буфере ответов следуют следующие данные, связанные с запросом:
- BOOL для D3DQUERYTYPE_EVENT. Прежде чем отвечать с D3DDP2OP_RESPONSEQUERY для события, драйвер должен убедиться, что графический процессор (GPU) завершил обработку всех D3DHAL_DP2OPERATION операций, связанных с событием. То есть драйвер отвечает только после возникновения состояния ISSUE_END события. При ответе драйвер должен всегда задавать значение BOOL события в значение TRUE .
- DWORD для D3DQUERYTYPE_OCCLUSION. Драйвер задает этому параметру DWORD число пикселей, для которого z-тест прошел для всех примитивов между началом и концом запроса. Если буфер глубины имеет несколько дискретных значений, драйвер определяет количество пикселей из числа выборок. Однако если устройство отображения поддерживает точность z-теста с несколькими выборками, преобразование в число пикселей, как правило, следует округлить вверх. Затем приложение может проверка результат окклюзии против 0, чтобы фактически означать "полностью occluded". Драйверы, преобразующие количества с несколькими дискретными данными в пиксели, должны обнаруживать целевые изменения множественной выборки и продолжать вычислять результаты запроса соответствующим образом.
-
D3DDEVINFO_VCACHE структура для D3DQUERYTYPE_VCACHE.
Требования
Требование | Значение |
---|---|
Заголовок | d3dhal.h (включая D3dhal.h) |
См. также раздел
D3DDP2OP_ISSUEQUERY
D3DDP2OP_RESPONSEQUERY