Метод ID3D11DeviceContext::SetPredication (d3d11.h)

Задайте предикат отрисовки.

Синтаксис

void SetPredication(
  [in, optional] ID3D11Predicate *pPredicate,
  [in]           BOOL            PredicateValue
);

Параметры

[in, optional] pPredicate

Тип: ID3D11Predicate*

Указатель на интерфейс ID3D11Predicate , представляющий предикат отрисовки. Значение NULL указывает на предикат "нет"; В этом случае значение PredicateValue не имеет значения, но будет сохранено для ID3D11DeviceContext::GetPredication.

[in] PredicateValue

Тип: BOOL

Если задано значение TRUE, отрисовка будет зависеть от выполнения условий предиката. Если значение РАВНО FALSE, отрисовка будет влиять, если условия не выполняются.

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

None

Remarks

Предикат должен находиться в состоянии "выдано" или "сигнальное", чтобы использовать его для предикаций. Хотя предикат задан для предикаций, вызовы ID3D11DeviceContext::Begin и ID3D11DeviceContext::End недопустимы.

Используйте этот метод, чтобы указать, что последующие команды отрисовки и обработки ресурсов фактически не выполняются, если результирующие данные предиката равны PredicateValue. Однако некоторые предикаты являются лишь подсказками, поэтому они не могут препятствовать выполнению операций.

Основная полезность предикаций заключается в том, чтобы позволить приложению выполнять команды отрисовки и обработки ресурсов без снижения производительности при вращении, ожидая возвращения ID3D11DeviceContext::GetData . Таким образом, предикат может возникать, когда ID3D11DeviceContext::GetData возвращает S_FALSE. Другой способ представить это: приложение также может использовать предикат в качестве резервного, если возможно, что ID3D11DeviceContext::GetData возвращает S_FALSE. Если ID3D11DeviceContext::GetData возвращает S_OK, приложение может пропустить вызов команд отрисовки и обработки ресурсов вручную с помощью собственной логики приложения.

Команды отрисовки и обработки ресурсов для Direct3D 11 включают такие операции Draw, Dispatch, Copy, Update, Clear, Generate и Resolve.

Предикат отрисовки можно задать в непосредственном или отложенном контексте. Сведения о непосредственных и отложенных контекстах см. в разделе Интерпретация и Отложенная отрисовка.

Требования

Требование Значение
Целевая платформа Windows
Header d3d11.h
Библиотека D3D11.lib

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

ID3D11DeviceContext