11#pragma once
22
3+ #include < mbgl/gfx/headless_backend.hpp>
34#include < mbgl/map/camera.hpp>
45#include < mbgl/renderer/renderer_frontend.hpp>
5- #include < mbgl/gfx/headless_backend.hpp>
66#include < mbgl/util/async_task.hpp>
77#include < mbgl/util/optional.hpp>
88
9+ #include < atomic>
910#include < memory>
1011
1112namespace mbgl {
@@ -17,10 +18,12 @@ class TransformState;
1718class HeadlessFrontend : public RendererFrontend {
1819public:
1920 HeadlessFrontend (float pixelRatio_,
21+ gfx::HeadlessBackend::SwapBehaviour swapBehviour = gfx::HeadlessBackend::SwapBehaviour::NoFlush,
2022 gfx::ContextMode mode = gfx::ContextMode::Unique,
2123 const optional<std::string> localFontFamily = {});
2224 HeadlessFrontend (Size,
2325 float pixelRatio_,
26+ gfx::HeadlessBackend::SwapBehaviour swapBehviour = gfx::HeadlessBackend::SwapBehaviour::NoFlush,
2427 gfx::ContextMode mode = gfx::ContextMode::Unique,
2528 const optional<std::string> localFontFamily = {});
2629 ~HeadlessFrontend () override ;
@@ -29,6 +32,7 @@ class HeadlessFrontend : public RendererFrontend {
2932 void update (std::shared_ptr<UpdateParameters>) override ;
3033 void setObserver (RendererObserver&) override ;
3134
35+ double getFrameTime () const ;
3236 Size getSize () const ;
3337 void setSize (Size);
3438
@@ -45,13 +49,15 @@ class HeadlessFrontend : public RendererFrontend {
4549
4650 PremultipliedImage readStillImage ();
4751 PremultipliedImage render (Map&);
52+ void renderOnce (Map&);
4853
4954 optional<TransformState> getTransformState () const ;
5055
5156private:
5257 Size size;
5358 float pixelRatio;
5459
60+ std::atomic<double > frameTime;
5561 std::unique_ptr<gfx::HeadlessBackend> backend;
5662 util::AsyncTask asyncInvalidate;
5763
0 commit comments