IDirect3DDevice9::EndScene 方法 (d3d9helper.h)
结束通过调用 IDirect3DDevice9::BeginScene 开始的场景。
语法
HRESULT EndScene();
返回值
类型: HRESULT
如果方法成功,则返回值D3D_OK。 如果在 IDirect3DDevice9::BeginScene IDirect3DDevice9::EndScene 对中调用 了 IDirect3DDevice9:/:BeginScene ,则该方法将失败并D3DERR_INVALIDCALL。 仅当在不首先调用 IDirect3DDevice9::EndScene 的情况下调用 IDirect3DDevice9::BeginScene 两次时,才会发生这种情况。
注解
此方法成功后,驱动程序已排队等待场景呈现。 这不是同步方法,因此当此方法返回时,无法保证场景已完成呈现。
应用程序必须在执行任何呈现之前调用 IDirect3DDevice9::BeginScene ,并且必须在呈现完成时调用 IDirect3DDevice9::EndScene ,然后再调用 IDirect3DDevice9::BeginScene 。
如果 IDirect3DDevice9::BeginScene 失败,则设备无法开始场景,并且无需调用 IDirect3DDevice9::EndScene。 事实上,如果以前的 IDirect3DDevice9::BeginScene 失败,对 IDirect3DDevice9::EndScene 的 调用将失败。 这适用于创建多个交换链的任何应用程序。
任何连续调用之间最多应有一个 IDirect3DDevice9::BeginScene/IDirect3DDevice9::EndScene 对,以 (IDirect3DDevice9::P resent 或 IDirect3DSwapChain9::P resent) 。 在执行任何呈现之前,应调用 IDirect3DDevice9::BeginScene 一次,在帧的所有呈现提交到运行时后,应调用一次 IDirect3DDevice9::EndScene。 若要在 CPU 和图形加速器之间实现最大并行度,最好在调用 present 之前调用 IDirect3DDevice9::EndScene 。
要求
要求 | 值 |
---|---|
目标平台 | Windows |
标头 | d3d9helper.h (包括 D3D9.h) |
Library | D3D9.lib |