IDirect3DDevice9::EndScene 方法 (d3d9helper.h)
結束從呼叫 IDirect3DDevice9::BeginScene 開始的場景。
Syntax
HRESULT EndScene();
傳回值
類型: HRESULT
如果方法成功,傳回值會D3D_OK。 如果在 IDirect3DDevice9::BeginScene 已在 IDirect3DDevice9::BeginSceice9::BeginScene/IDirect3DDevice9::EndScene 配對中呼叫,此方法將會 D3DERR_INVALIDCALL失敗。 只有當 IDirect3DDevice9::BeginScene 呼叫兩次,而不先呼叫 IDirect3DDevice9::EndScene 時,才會發生這種情況。
備註
當此方法成功時,場景已排入佇列以供驅動程序轉譯。 這不是同步方法,因此當此方法傳回時,場景不保證已完成轉譯。
應用程式在執行任何轉譯之前,必須先呼叫 IDirect3DDevice9::BeginScene ,而且必須在轉譯完成時呼叫 IDirect3DDevice9::EndScene ,然後再呼叫 IDirect3DDevice9::BeginScene 。
如果 IDirect3DDevice9::BeginScene 失敗,裝置無法開始場景,而且不需要呼叫 IDirect3DDevice9::EndScene。 事實上,如果先前的 IDirect3DDevice9::BeginScene 失敗,則呼叫 IDirect3DDevice9::BeginScene 將會失敗。 這適用於任何建立多個交換鏈結的應用程式。
任何後續呼叫之間最多應該有一個 IDirect3DDevice9::BeginScene/IDirect3Device9::EndScene 配對,以呈現 (IDirect3DDevice9::P resent 或 IDirect3DSwapChain9::P resent) 。 在執行任何轉譯之前,應該先呼叫 IDirect3DDevice9::BeginScene 一次,並在框架的所有轉譯提交至運行時間之後呼叫一次 IDirect3DDevice9::EndScene。 若要在 CPU 與圖形加速器之間啟用最大平行處理原則,最好盡可能呼叫 IDirect3DDevice9::EndScene 。
規格需求
需求 | 值 |
---|---|
目標平台 | Windows |
標頭 | d3d9helper.h (包含 D3D9.h) |
程式庫 | D3D9.lib |