diff options
Diffstat (limited to 'platform/default/mbgl/gl/headless_backend.hpp')
-rw-r--r-- | platform/default/mbgl/gl/headless_backend.hpp | 32 |
1 files changed, 18 insertions, 14 deletions
diff --git a/platform/default/mbgl/gl/headless_backend.hpp b/platform/default/mbgl/gl/headless_backend.hpp index 26033acf82..7757037533 100644 --- a/platform/default/mbgl/gl/headless_backend.hpp +++ b/platform/default/mbgl/gl/headless_backend.hpp @@ -1,46 +1,50 @@ #pragma once -#include <mbgl/map/backend.hpp> +#include <mbgl/renderer/renderer_backend.hpp> #include <memory> #include <functional> namespace mbgl { -class HeadlessDisplay; - -class HeadlessBackend : public Backend { +class HeadlessBackend : public RendererBackend { public: - HeadlessBackend(); - HeadlessBackend(std::shared_ptr<HeadlessDisplay>); + HeadlessBackend(Size = { 256, 256 }); ~HeadlessBackend() override; + void bind() override; + Size getFramebufferSize() const override; void updateAssumedState() override; - void invalidate() override; + void setSize(Size); + PremultipliedImage readStillImage(); - struct Impl { + class Impl { + public: virtual ~Impl() = default; + virtual gl::ProcAddress getExtensionFunctionPointer(const char*) = 0; virtual void activateContext() = 0; virtual void deactivateContext() {} }; private: // Implementation specific functions - gl::ProcAddress initializeExtension(const char*) override; + gl::ProcAddress getExtensionFunctionPointer(const char*) override; void activate() override; void deactivate() override; - bool hasContext() const { return bool(impl); } - bool hasDisplay(); - - void createContext(); + void createImpl(); - std::shared_ptr<HeadlessDisplay> display; +private: std::unique_ptr<Impl> impl; + Size size; + float pixelRatio; bool active = false; + + class View; + std::unique_ptr<View> view; }; } // namespace mbgl |