diff options
author | m-stephen <truestyle2005@163.com> | 2019-11-01 10:27:03 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-11-01 10:27:03 +0800 |
commit | 9427c04bc709c39f7e083b6d1597aaf33af8c302 (patch) | |
tree | 224fa2bffbc6a81b447c76b98e4c13a51baadc29 /platform/default/include/mbgl/gfx/headless_frontend.hpp | |
parent | fc2c02bbc6abaef52077fe5e9e78f772e6009967 (diff) | |
parent | 5b38cfee18800cbb3c6a3186882744592662c3d6 (diff) | |
download | qtlocation-mapboxgl-9427c04bc709c39f7e083b6d1597aaf33af8c302.tar.gz |
Merge branch 'master' into stephen-improve-accuracy-for-cameraupstream/stephen-improve-accuracy-for-camera
Diffstat (limited to 'platform/default/include/mbgl/gfx/headless_frontend.hpp')
-rw-r--r-- | platform/default/include/mbgl/gfx/headless_frontend.hpp | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/platform/default/include/mbgl/gfx/headless_frontend.hpp b/platform/default/include/mbgl/gfx/headless_frontend.hpp index 8f7a7bf202..8a98b4112d 100644 --- a/platform/default/include/mbgl/gfx/headless_frontend.hpp +++ b/platform/default/include/mbgl/gfx/headless_frontend.hpp @@ -1,11 +1,13 @@ #pragma once +#include <mbgl/gfx/headless_backend.hpp> +#include <mbgl/gfx/rendering_stats.hpp> #include <mbgl/map/camera.hpp> #include <mbgl/renderer/renderer_frontend.hpp> -#include <mbgl/gfx/headless_backend.hpp> #include <mbgl/util/async_task.hpp> #include <mbgl/util/optional.hpp> +#include <atomic> #include <memory> namespace mbgl { @@ -16,11 +18,18 @@ class TransformState; class HeadlessFrontend : public RendererFrontend { public: + struct RenderResult { + PremultipliedImage image; + gfx::RenderingStats stats; + }; + HeadlessFrontend(float pixelRatio_, + gfx::HeadlessBackend::SwapBehaviour swapBehviour = gfx::HeadlessBackend::SwapBehaviour::NoFlush, gfx::ContextMode mode = gfx::ContextMode::Unique, const optional<std::string> localFontFamily = {}); HeadlessFrontend(Size, float pixelRatio_, + gfx::HeadlessBackend::SwapBehaviour swapBehviour = gfx::HeadlessBackend::SwapBehaviour::NoFlush, gfx::ContextMode mode = gfx::ContextMode::Unique, const optional<std::string> localFontFamily = {}); ~HeadlessFrontend() override; @@ -29,6 +38,7 @@ public: void update(std::shared_ptr<UpdateParameters>) override; void setObserver(RendererObserver&) override; + double getFrameTime() const; Size getSize() const; void setSize(Size); @@ -44,7 +54,8 @@ public: LatLng latLngForPixel(const ScreenCoordinate&); PremultipliedImage readStillImage(); - PremultipliedImage render(Map&); + RenderResult render(Map&); + void renderOnce(Map&); optional<TransformState> getTransformState() const; @@ -52,6 +63,7 @@ private: Size size; float pixelRatio; + std::atomic<double> frameTime; std::unique_ptr<gfx::HeadlessBackend> backend; util::AsyncTask asyncInvalidate; |