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 resentIDirect3DSwapChain9::P resent) 。 在執行任何轉譯之前,應該先呼叫 IDirect3DDevice9::BeginScene 一次,並在框架的所有轉譯提交至運行時間之後呼叫一次 IDirect3DDevice9::EndScene。 若要在 CPU 與圖形加速器之間啟用最大平行處理原則,最好盡可能呼叫 IDirect3DDevice9::EndScene

規格需求

需求
目標平台 Windows
標頭 d3d9helper.h (包含 D3D9.h)
程式庫 D3D9.lib

另請參閱

IDirect3DDevice9