From 66e1429460b0aad6b295773db6e6fe965831ff3c Mon Sep 17 00:00:00 2001 From: Ivo van Dongen Date: Tue, 25 Jul 2017 10:56:00 +0300 Subject: [ios][macos] manage backendscope in renderer frontend --- platform/darwin/src/MGLRendererFrontend.h | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'platform/darwin/src/MGLRendererFrontend.h') diff --git a/platform/darwin/src/MGLRendererFrontend.h b/platform/darwin/src/MGLRendererFrontend.h index 839d3be773..3611577f2e 100644 --- a/platform/darwin/src/MGLRendererFrontend.h +++ b/platform/darwin/src/MGLRendererFrontend.h @@ -1,4 +1,6 @@ +#include #include +#include #include #include #include @@ -11,9 +13,10 @@ class MGLRenderFrontend : public mbgl::RendererFrontend { public: - MGLRenderFrontend(std::unique_ptr renderer_, MGLMapView* nativeView_, mbgl::View* mbglView_, bool async = false) + MGLRenderFrontend(std::unique_ptr renderer_, MGLMapView* nativeView_, mbgl::RendererBackend& mbglBackend_, mbgl::View& mbglView_, bool async = false) : renderer(std::move(renderer_)) , nativeView(nativeView_) + , mbglBackend(mbglBackend_) , mbglView(mbglView_) { if (async) { @@ -46,7 +49,9 @@ public: void render() { if (!renderer || !updateParameters) return; - renderer->render(*mbglView, *updateParameters); + mbgl::BackendScope guard { mbglBackend, mbgl::BackendScope::ScopeType::Implicit }; + + renderer->render(mbglView, *updateParameters); } mbgl::Renderer* getRenderer() { @@ -61,7 +66,8 @@ public: private: std::unique_ptr renderer; __weak MGLMapView *nativeView = nullptr; - mbgl::View *mbglView = nullptr; + mbgl::RendererBackend& mbglBackend; + mbgl::View& mbglView; std::shared_ptr updateParameters; mbgl::optional asyncInvalidate; }; -- cgit v1.2.1