ID3D11DeviceContext::SetPredication 方法 (d3d11.h)

设置呈现谓词。

语法

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

参数

[in, optional] pPredicate

类型: ID3D11Predicate*

指向表示呈现谓词的 ID3D11Predicate 接口的指针。 NULL 值指示“no”谓词;在这种情况下,PredicateValue 的值不相关,但将保留 ID3D11DeviceContext::GetPredication

[in] PredicateValue

类型: BOOL

如果 为 TRUE,则当满足谓词的条件时,呈现将受到影响。 如果 为 FALSE,则当不符合条件时,呈现将受到影响。

返回值

备注

谓词必须处于“已发出”或“已发出”状态,才能用于预测。 虽然谓词是为谓词设置的,但对 ID3D11DeviceContext::BeginID3D11DeviceContext::End 的调用无效。

使用此方法表示,如果谓词的生成谓词数据等于 PredicateValue,则不会实际执行后续呈现和资源操作命令。 但是,某些谓词只是提示,因此它们实际上可能不会阻止执行操作。

谓词的主要用途是允许应用程序发出呈现和资源操作命令,而不会受到旋转的性能影响,等待 ID3D11DeviceContext::GetData 返回。 因此, 在 ID3D11DeviceContext::GetData 返回 S_FALSE时,可能会发生谓词。 另一种考虑方式:如果 ID3D11DeviceContext::GetData 可能返回 S_FALSE,应用程序还可以使用谓词作为回退。 如果 ID3D11DeviceContext::GetData 返回 S_OK,则应用程序可以使用自己的应用程序逻辑跳过手动调用呈现和资源操作命令。

Direct3D 11 的呈现和资源操作命令包括以下绘制、调度、复制、更新、清除、生成和解析操作。

可以在即时上下文或延迟上下文上设置呈现谓词。 有关即时和延迟上下文的信息,请参阅 即时和延迟呈现

要求

要求
目标平台 Windows
标头 d3d11.h
Library D3D11.lib

另请参阅

ID3D11DeviceContext