#include "qmapboxgl_renderer_frontend_p.hpp" #include #include QMapboxGLRendererFrontend::QMapboxGLRendererFrontend(std::unique_ptr renderer_, mbgl::RendererBackend& backend_, mbgl::View& view_) : renderer(std::move(renderer_)) , backend(backend_) , view(view_) { } QMapboxGLRendererFrontend::~QMapboxGLRendererFrontend() = default; void QMapboxGLRendererFrontend::reset() { if (renderer) { renderer.reset(); } } void QMapboxGLRendererFrontend::update(std::shared_ptr updateParameters_) { updateParameters = updateParameters_; emit updated(); } void QMapboxGLRendererFrontend::setObserver(mbgl::RendererObserver& observer_) { if (!renderer) return; renderer->setObserver(&observer_); } void QMapboxGLRendererFrontend::render() { if (!renderer || !updateParameters) return; // The OpenGL implementation automatically enables the OpenGL context for us. mbgl::BackendScope scope { backend, mbgl::BackendScope::ScopeType::Implicit }; renderer->render(view, *updateParameters); }