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,驅動程式會忽略 PredicateValue 參數中的值;不過,驅動程式應該針對值的後續要求儲存述詞值。

unnamedParam3

PredicateValue [in]

要與查詢數據比較的布爾值。 如果查詢數據等於述詞值,則不會執行下列轉譯和資源操作命令。

傳回值

備註

驅動程式可以使用 pfnSetErrorCb 回呼函式來設定錯誤碼。

某些述詞只是提示;因此,它們可能不會實際防止執行作業。 Microsoft Direct3D 運行時間主要會呼叫 SetPredication ,讓應用程式發出圖形命令,而不會達到旋轉的效能,並等待 QueryGetData 函式的呼叫傳回。 因此,即使 QueryGetData 傳回S_FALSE,也會發生預先分割。 換句話說,如果 QueryGetData 可能傳回S_FALSE,應用程式也可以使用預先分割作為後援。 如果 QueryGetData 傳回S_OK,應用程式可以使用自己的應用程式邏輯手動略過呼叫圖形命令。

除了D3DDDIERR_DEVICEREMOVED以外,驅動程式不應該發生任何錯誤。 因此,如果在呼叫 pfnSetErrorCb 函式時,驅動程式會傳遞任何錯誤,但除了 D3DDDIERR_DEVICEREMOVED 之外,Direct3D 運行時間會判斷錯誤是否重要。 即使裝置已移除,驅動程式也不需要傳回D3DDDIERR_DEVICEREMOVED;不過,如果裝置移除干擾 了 SetPredication (的作業,這通常不應該) 發生,驅動程式可以傳回D3DDDIERR_DEVICEREMOVED。

規格需求

需求
最低支援的用戶端 可在 Windows Vista 和更新版本的 Windows 作業系統中使用。
目標平台 桌面
標頭 d3d10umddi.h (包含 D3d10umddi.h)

另請參閱

D3D10DDI_DEVICEFUNCS

pfnSetErrorCb