diff options
author | Ivo van Dongen <info@ivovandongen.nl> | 2017-07-25 10:56:00 +0300 |
---|---|---|
committer | Ivo van Dongen <ivovandongen@users.noreply.github.com> | 2017-07-25 17:44:28 +0300 |
commit | 66e1429460b0aad6b295773db6e6fe965831ff3c (patch) | |
tree | 6a311f5c8dfeaa573a20536197b7e49f6398ade7 /platform/darwin/src/MGLRendererFrontend.h | |
parent | 27343c6a75aba9c4d04b0362fc0e50889f0e2e69 (diff) | |
download | qtlocation-mapboxgl-66e1429460b0aad6b295773db6e6fe965831ff3c.tar.gz |
[ios][macos] manage backendscope in renderer frontend
Diffstat (limited to 'platform/darwin/src/MGLRendererFrontend.h')
-rw-r--r-- | platform/darwin/src/MGLRendererFrontend.h | 12 |
1 files changed, 9 insertions, 3 deletions
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 <mbgl/renderer/backend_scope.hpp> #include <mbgl/renderer/renderer.hpp> +#include <mbgl/renderer/renderer_backend.hpp> #include <mbgl/renderer/renderer_frontend.hpp> #include <mbgl/util/async_task.hpp> #include <mbgl/util/optional.hpp> @@ -11,9 +13,10 @@ class MGLRenderFrontend : public mbgl::RendererFrontend { public: - MGLRenderFrontend(std::unique_ptr<mbgl::Renderer> renderer_, MGLMapView* nativeView_, mbgl::View* mbglView_, bool async = false) + MGLRenderFrontend(std::unique_ptr<mbgl::Renderer> 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<mbgl::Renderer> renderer; __weak MGLMapView *nativeView = nullptr; - mbgl::View *mbglView = nullptr; + mbgl::RendererBackend& mbglBackend; + mbgl::View& mbglView; std::shared_ptr<mbgl::UpdateParameters> updateParameters; mbgl::optional<mbgl::util::AsyncTask> asyncInvalidate; }; |