From 8fef2b65319e2fe896ab5276ab7be97a9ff51798 Mon Sep 17 00:00:00 2001 From: Ivo van Dongen Date: Tue, 25 Jul 2017 11:04:18 +0300 Subject: [android] manage backendscope in renderer frontend --- platform/android/src/android_renderer_frontend.cpp | 5 +++++ platform/android/src/android_renderer_frontend.hpp | 4 +++- platform/android/src/native_map_view.cpp | 1 + 3 files changed, 9 insertions(+), 1 deletion(-) (limited to 'platform') diff --git a/platform/android/src/android_renderer_frontend.cpp b/platform/android/src/android_renderer_frontend.cpp index acb1c74557..41e44d297a 100644 --- a/platform/android/src/android_renderer_frontend.cpp +++ b/platform/android/src/android_renderer_frontend.cpp @@ -1,6 +1,7 @@ #include "android_renderer_frontend.hpp" #include +#include #include namespace mbgl { @@ -8,8 +9,10 @@ namespace android { AndroidRendererFrontend::AndroidRendererFrontend( std::unique_ptr renderer_, + RendererBackend& backend_, InvalidateCallback invalidate) : renderer(std::move(renderer_)) + , backend(backend_) , asyncInvalidate([=, invalidate=std::move(invalidate)]() { invalidate(); }) { @@ -38,6 +41,8 @@ void AndroidRendererFrontend::render(View& view) { assert (renderer); if (!updateParameters) return; + BackendScope guard { backend }; + renderer->render(view, *updateParameters); } diff --git a/platform/android/src/android_renderer_frontend.hpp b/platform/android/src/android_renderer_frontend.hpp index 95513a7682..59ece88f19 100644 --- a/platform/android/src/android_renderer_frontend.hpp +++ b/platform/android/src/android_renderer_frontend.hpp @@ -2,6 +2,7 @@ #pragma once #include +#include #include #include #include @@ -23,7 +24,7 @@ namespace android { class AndroidRendererFrontend : public RendererFrontend { public: using InvalidateCallback = std::function; - AndroidRendererFrontend(std::unique_ptr, InvalidateCallback); + AndroidRendererFrontend(std::unique_ptr, RendererBackend&, InvalidateCallback); ~AndroidRendererFrontend() override; void reset() override; @@ -43,6 +44,7 @@ public: private: std::unique_ptr renderer; + RendererBackend& backend; std::shared_ptr updateParameters; util::AsyncTask asyncInvalidate; }; diff --git a/platform/android/src/native_map_view.cpp b/platform/android/src/native_map_view.cpp index 5f89217485..17f55d9827 100755 --- a/platform/android/src/native_map_view.cpp +++ b/platform/android/src/native_map_view.cpp @@ -78,6 +78,7 @@ NativeMapView::NativeMapView(jni::JNIEnv& _env, // Create a renderer frontend rendererFrontend = std::make_unique(std::move(renderer), + *this, [this] { this->invalidate(); }); // Create the core map -- cgit v1.2.1