[default] manage backendscope in renderer frontend

This commit is contained in:
Ivo van Dongen
2017-07-25 11:01:35 +03:00
committed by Ivo van Dongen
parent 66e1429460
commit f69997a19c
3 changed files with 8 additions and 4 deletions

View File

@@ -12,7 +12,7 @@ namespace mbgl {
HeadlessBackend::HeadlessBackend() = default;
HeadlessBackend::~HeadlessBackend() {
BackendScope guard { *this, getScopeType() };
BackendScope guard { *this };
context.reset();
}

View File

@@ -1,13 +1,16 @@
#include "async_renderer_frontend.hpp"
#include <mbgl/renderer/backend_scope.hpp>
#include <mbgl/renderer/renderer.hpp>
namespace mbgl {
AsyncRendererFrontend::AsyncRendererFrontend(std::unique_ptr<Renderer> renderer_, View& view_)
AsyncRendererFrontend::AsyncRendererFrontend(std::unique_ptr<Renderer> renderer_, RendererBackend& backend, View& view_)
: renderer(std::move(renderer_))
, view(view_)
, asyncInvalidate([this] {
, asyncInvalidate([&] {
if (renderer && updateParameters) {
BackendScope guard { backend };
renderer->render(view, *updateParameters);
}
}) {

View File

@@ -10,11 +10,12 @@
namespace mbgl {
class Renderer;
class RendererBackend;
// Default implementation for RendererFrontend
class AsyncRendererFrontend : public mbgl::RendererFrontend {
public:
AsyncRendererFrontend(std::unique_ptr<Renderer>, View&);
AsyncRendererFrontend(std::unique_ptr<Renderer>, RendererBackend&, View&);
~AsyncRendererFrontend() override;
void reset() override;