Метод IDirect3DDevice9::EndScene (d3d9.h)

Завершает сцену, начатую вызовом IDirect3DDevice9::BeginScene.

Синтаксис

HRESULT EndScene();

Возвращаемое значение

Тип: HRESULT

Если метод выполнен успешно, возвращаемое значение будет D3D_OK. Метод завершится ошибкой с D3DERR_INVALIDCALL, если вызывается IDirect3DDevice9::BeginScene в паре IDirect3Ddevice9::BeginScene/IDirect3Device9::EndScene . Это происходит, только если IDirect3DDevice9::BeginScene вызывается дважды без первого вызова IDirect3Device9::EndScene.

Комментарии

При успешном выполнении этого метода сцена будет поставлена в очередь для отрисовки драйвером. Этот метод не является синхронным, поэтому при возврате этого метода сцена не гарантирует завершение отрисовки.

Приложения должны вызывать IDirect3DDevice9::BeginScene перед выполнением отрисовки и вызывать IDirect3DDevice9::EndScene после завершения отрисовки и перед повторным вызовом IDirect3DDevice9::BeginScene .

Если IDirect3DDevice9::BeginScene завершается сбоем, устройству не удалось начать сцену и нет необходимости вызывать IDirect3Device9::EndScene. На самом деле, вызовы

IDirect3DDevice9::EndScene завершится ошибкой , если предыдущий IDirect3Ddevice9::BeginScene завершился сбоем. Это относится к любому приложению, которое создает несколько цепочек буферов.

Между любыми последовательными вызовами представления должна быть не более одной пары IDirect3DDevice9::BeginScene/IDirect3Device9::EndScene ( IDirect3DDevice9::P resent или IDirect3DSwapChain9::P resent). IDirect3DDevice9::BeginScene следует вызывать один раз перед выполнением отрисовки, а IDirect3DDevice9::EndScene — один раз после отправки всей отрисовки кадра в среду выполнения. Чтобы обеспечить максимальный параллелизм между ЦП и графическим ускорителем, рекомендуется вызывать IDirect3DDevice9::EndScene как можно дальше, чем вызов present.

Требования

Требование Значение
Целевая платформа Windows
Header d3d9.h (включая D3D9.h)
Библиотека D3D9.lib

См. также раздел

IDirect3DDevice9