diff options
Diffstat (limited to 'platform/glfw/glfw_view.cpp')
-rw-r--r-- | platform/glfw/glfw_view.cpp | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/platform/glfw/glfw_view.cpp b/platform/glfw/glfw_view.cpp index 1beaf2b52b..ffc6588464 100644 --- a/platform/glfw/glfw_view.cpp +++ b/platform/glfw/glfw_view.cpp @@ -1,4 +1,5 @@ #include "glfw_view.hpp" +#include "glfw_renderer_frontend.hpp" #include "ny_route.hpp" #include <mbgl/annotation/annotation.hpp> @@ -11,6 +12,7 @@ #include <mbgl/util/string.hpp> #include <mbgl/util/chrono.hpp> #include <mbgl/map/backend_scope.hpp> +#include <mbgl/renderer/renderer.hpp> #include <mbgl/map/camera.hpp> #include <mapbox/cheap_ruler.hpp> @@ -142,6 +144,10 @@ void GLFWView::setMap(mbgl::Map *map_) { map->addAnnotationImage(makeImage("default_marker", 22, 22, 1)); } +void GLFWView::setRenderFrontend(GLFWRendererFrontend* rendererFrontend_) { + rendererFrontend = rendererFrontend_; +} + void GLFWView::updateAssumedState() { assumeFramebufferBinding(0); assumeViewport(0, 0, getFramebufferSize()); @@ -196,7 +202,7 @@ void GLFWView::onKey(GLFWwindow *window, int key, int /*scancode*/, int action, view->nextOrientation(); break; case GLFW_KEY_Q: { - auto result = view->map->queryPointAnnotations({ {}, { double(view->getSize().width), double(view->getSize().height) } }); + auto result = view->rendererFrontend->getRenderer()->queryPointAnnotations({ {}, { double(view->getSize().width), double(view->getSize().height) } }); printf("visible point annotations: %lu\n", result.size()); } break; case GLFW_KEY_P: @@ -489,16 +495,17 @@ void GLFWView::run() { glfwPollEvents(); - if (dirty) { + if (dirty && rendererFrontend) { + dirty = false; const double started = glfwGetTime(); if (animateRouteCallback) animateRouteCallback(map); activate(); - mbgl::BackendScope scope { *this, mbgl::BackendScope::ScopeType::Implicit }; + mbgl::BackendScope guard { *this, getScopeType() }; - map->render(*this); + rendererFrontend->render(); glfwSwapBuffers(window); @@ -507,7 +514,6 @@ void GLFWView::run() { invalidate(); } - dirty = false; } }; |