summaryrefslogtreecommitdiff
path: root/platform/darwin/src/MGLRendererFrontend.h
diff options
context:
space:
mode:
Diffstat (limited to 'platform/darwin/src/MGLRendererFrontend.h')
-rw-r--r--platform/darwin/src/MGLRendererFrontend.h12
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;
};