ID3D10Device::SetPredication 方法 (d3d10.h)

設定轉譯述詞。

語法

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

參數

[in] pPredicate

類型: ID3D10Predicate*

述詞的指標 (請參閱 ID3D10Predicate) 。 NULL 值表示「否」預先定義;在此情況下,PredicateValue 的值無關,但會保留ID3D10Device::GetPredication

[in] PredicateValue

類型: BOOL

如果 為 TRUE,當符合述詞的條件時,轉譯將會受到影響。 如果 為 FALSE,當不符合條件時,轉譯將會受到影響。

傳回值

備註

述詞必須處於「已發出」或「訊號」狀態,才能用於預先分隔。 當述詞設定為預先分割時, 對ID3D10Asynchronous::BeginID3D10Asynchronous::End 的呼叫無效。

如果 Predicate 產生的述詞數據等於 PredicateValue,則這個方法用來表示後續的轉譯和資源操作命令不會實際執行。 不過,某些述詞只是提示,因此可能不會實際防止執行作業。

預先分割的主要用途是允許應用程式發出圖形命令,而不需達到旋轉的效能,等待 ID3D10Asynchronous::GetData 傳回。 因此, ID3D10Asynchronous::GetData 會傳回S_FALSE時發生預先分割。 另一種思考方式:如果 ID3D10Asynchous::GetData 可能會傳回S_FALSE,應用程式也可以使用預先分割作為後援。 如果 ID3D10Asynchronous::GetData 傳回S_OK,應用程式可以使用自己的應用程式邏輯手動略過呼叫圖形命令。

規格需求

需求
目標平台 Windows
標頭 d3d10.h
程式庫 D3D10.lib

另請參閱

ID3D10Device 介面