функция обратного вызова 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 NULL, драйвер игнорирует значение в параметре predicateValue; Однако драйвер должен хранить значение предиката для последующих запросов к значению.
unnamedParam3
PredicateValue [in]
Логическое значение для сравнения с данными запроса. Если данные запроса равны значению предиката, следующие команды отрисовки и манипуляции ресурсами не выполняются.
Возвращаемое значение
Никакой
Замечания
Драйвер может использовать функцию обратного вызова 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 (include D3d10umddi.h) |