Поделиться через


функция обратного вызова PFND3D10DDI_SETPREDICATION (d3d10umddi.h)

Функция SetPredication указывает, выполняются ли на самом деле следующие команды отрисовки и обработки ресурсов.

Синтаксис

PFND3D10DDI_SETPREDICATION Pfnd3d10ddiSetpredication;

void Pfnd3d10ddiSetpredication(
  D3D10DDI_HDEVICE unnamedParam1,
  D3D10DDI_HQUERY unnamedParam2,
  BOOL unnamedParam3
)
{...}

Параметры

unnamedParam1

hDevice [in]

Дескриптор устройства отображения (графический контекст).

unnamedParam2

hQuery [in]

Дескриптор объекта запроса для задания в качестве предиката. Если задать для hQueryзначение NULL , это означает, что предикация отсутствует. Если для hQuery задано значение NULL, драйвер игнорирует значение в параметре PredicateValue ; однако драйвер должен хранить значение предиката для последующих запросов к значению.

unnamedParam3

PredicateValue [in]

Логическое значение для сравнения с данными запроса. Если данные запроса равны значению предиката, следующие команды отрисовки и обработки ресурсов не выполняются.

Возвращаемое значение

None

Remarks

Драйвер может использовать функцию обратного вызова pfnSetErrorCb , чтобы задать код ошибки.

Некоторые предикаты являются только подсказками; поэтому они могут не препятствовать выполнению операций. Среда выполнения Microsoft Direct3D в основном вызывает SetPredication , чтобы позволить приложениям выдавать графические команды без снижения производительности при вращении и ожидания вызова функции QueryGetData . Таким образом, предикация может происходить, даже если QueryGetData возвращает S_FALSE. Иными словами, приложение также может использовать предикацию в качестве резервного варианта, если QueryGetData может возвращать S_FALSE. Если QueryGetData возвращает S_OK, приложение может пропустить вызов графических команд вручную с помощью собственной логики приложения.

Драйвер не должен столкнуться с какой-либо ошибкой, за исключением D3DDDIERR_DEVICEREMOVED. Таким образом, если драйвер передает любую ошибку, за исключением D3DDDIERR_DEVICEREMOVED, в вызове функции pfnSetErrorCb , среда выполнения Direct3D определит, что ошибка является критической. Даже если устройство было удалено, драйвер не обязан возвращать D3DDDIERR_DEVICEREMOVED; Однако если удаление устройства мешало работе SetPredication (что обычно не должно происходить), драйвер может вернуть D3DDDIERR_DEVICEREMOVED.

Требования

Требование Значение
Минимальная версия клиента Доступно в Windows Vista и более поздних версиях операционных систем Windows.
Целевая платформа Персональный компьютер
Верхняя часть d3d10umddi.h (включая D3d10umddi.h)

См. также раздел

D3D10DDI_DEVICEFUNCS

pfnSetErrorCb