From f69997a19cf74a125c46a60e6004aa84e24c0b68 Mon Sep 17 00:00:00 2001 From: Ivo van Dongen Date: Tue, 25 Jul 2017 11:01:35 +0300 Subject: [default] manage backendscope in renderer frontend --- platform/default/mbgl/gl/headless_backend.cpp | 2 +- platform/default/mbgl/renderer/async_renderer_frontend.cpp | 7 +++++-- platform/default/mbgl/renderer/async_renderer_frontend.hpp | 3 ++- 3 files changed, 8 insertions(+), 4 deletions(-) (limited to 'platform') diff --git a/platform/default/mbgl/gl/headless_backend.cpp b/platform/default/mbgl/gl/headless_backend.cpp index 9076be4cbb..82660331fa 100644 --- a/platform/default/mbgl/gl/headless_backend.cpp +++ b/platform/default/mbgl/gl/headless_backend.cpp @@ -12,7 +12,7 @@ namespace mbgl { HeadlessBackend::HeadlessBackend() = default; HeadlessBackend::~HeadlessBackend() { - BackendScope guard { *this, getScopeType() }; + BackendScope guard { *this }; context.reset(); } diff --git a/platform/default/mbgl/renderer/async_renderer_frontend.cpp b/platform/default/mbgl/renderer/async_renderer_frontend.cpp index 37b4e60cf6..230d0bb820 100644 --- a/platform/default/mbgl/renderer/async_renderer_frontend.cpp +++ b/platform/default/mbgl/renderer/async_renderer_frontend.cpp @@ -1,13 +1,16 @@ #include "async_renderer_frontend.hpp" + +#include #include namespace mbgl { -AsyncRendererFrontend::AsyncRendererFrontend(std::unique_ptr renderer_, View& view_) +AsyncRendererFrontend::AsyncRendererFrontend(std::unique_ptr renderer_, RendererBackend& backend, View& view_) : renderer(std::move(renderer_)) , view(view_) - , asyncInvalidate([this] { + , asyncInvalidate([&] { if (renderer && updateParameters) { + BackendScope guard { backend }; renderer->render(view, *updateParameters); } }) { diff --git a/platform/default/mbgl/renderer/async_renderer_frontend.hpp b/platform/default/mbgl/renderer/async_renderer_frontend.hpp index 00cf3a480c..e1b2f780cd 100644 --- a/platform/default/mbgl/renderer/async_renderer_frontend.hpp +++ b/platform/default/mbgl/renderer/async_renderer_frontend.hpp @@ -10,11 +10,12 @@ namespace mbgl { class Renderer; +class RendererBackend; // Default implementation for RendererFrontend class AsyncRendererFrontend : public mbgl::RendererFrontend { public: - AsyncRendererFrontend(std::unique_ptr, View&); + AsyncRendererFrontend(std::unique_ptr, RendererBackend&, View&); ~AsyncRendererFrontend() override; void reset() override; -- cgit v1.2.1