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,當不符合條件時,轉譯將會受到影響。

傳回值

備註

述詞必須處於「發出」或「已發出」狀態,才能用於預先部署。 當述詞設定為預先部署時,對 ID3D11DeviceContext::BeginID3D11DeviceContext::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
標頭 d3d11.h
程式庫 D3D11.lib

另請參閱

ID3D11DeviceContext