diff options
Diffstat (limited to 'platform/default/headless_view.cpp')
-rw-r--r-- | platform/default/headless_view.cpp | 72 |
1 files changed, 12 insertions, 60 deletions
diff --git a/platform/default/headless_view.cpp b/platform/default/headless_view.cpp index 95b196b746..f96b0a7f6d 100644 --- a/platform/default/headless_view.cpp +++ b/platform/default/headless_view.cpp @@ -1,34 +1,27 @@ #include <mbgl/platform/default/headless_view.hpp> -#include <mbgl/platform/default/headless_display.hpp> -#include <cassert> +#include <mbgl/gl/gl.hpp> + #include <cstring> namespace mbgl { HeadlessView::HeadlessView(float pixelRatio_, uint16_t width, uint16_t height) - : display(std::make_shared<HeadlessDisplay>()) - , pixelRatio(pixelRatio_) - , dimensions({{ width, height }}) - , needsResize(true) { -} - -HeadlessView::HeadlessView(std::shared_ptr<HeadlessDisplay> display_, - float pixelRatio_, - uint16_t width, - uint16_t height) - : display(std::move(display_)) - , pixelRatio(pixelRatio_) - , dimensions({{ width, height }}) - , needsResize(true) { + : pixelRatio(pixelRatio_), dimensions({ { width, height } }), needsResize(true) { } HeadlessView::~HeadlessView() { - activate(); clearBuffers(); - deactivate(); +} - destroyContext(); +void HeadlessView::bind() { + if (needsResize) { + clearBuffers(); + resizeFramebuffer(); + needsResize = false; + } else { + bindFramebuffer(); + } } void HeadlessView::resize(const uint16_t width, const uint16_t height) { @@ -41,8 +34,6 @@ void HeadlessView::resize(const uint16_t width, const uint16_t height) { } PremultipliedImage HeadlessView::readStillImage(std::array<uint16_t, 2> size) { - assert(active); - if (!size[0] || !size[1]) { size[0] = dimensions[0] * pixelRatio; size[1] = dimensions[1] * pixelRatio; @@ -76,43 +67,4 @@ std::array<uint16_t, 2> HeadlessView::getFramebufferSize() const { static_cast<uint16_t>(dimensions[1] * pixelRatio) }}; } -void HeadlessView::activate() { - active = true; - - if (!glContext) { - if (!display) { - throw std::runtime_error("Display is not set"); - } - createContext(); - } - - activateContext(); - - if (!extensionsLoaded) { - gl::InitializeExtensions(initializeExtension); - extensionsLoaded = true; - } - - if (needsResize) { - clearBuffers(); - resizeFramebuffer(); - needsResize = false; - } -} - -void HeadlessView::deactivate() { - deactivateContext(); - active = false; -} - -void HeadlessView::invalidate() { - assert(false); -} - -void HeadlessView::notifyMapChange(MapChange change) { - if (mapChangeCallback) { - mapChangeCallback(change); - } -} - } // namespace mbgl |