summaryrefslogtreecommitdiff
path: root/platform
diff options
context:
space:
mode:
Diffstat (limited to 'platform')
-rw-r--r--platform/default/src/mbgl/gfx/headless_frontend.cpp2
-rw-r--r--platform/glfw/glfw_backend.hpp2
-rw-r--r--platform/glfw/glfw_gl_backend.hpp4
-rw-r--r--platform/glfw/glfw_renderer_frontend.cpp3
-rw-r--r--platform/glfw/glfw_view.cpp18
-rw-r--r--platform/glfw/glfw_view.hpp2
-rw-r--r--platform/glfw/main.cpp2
7 files changed, 19 insertions, 14 deletions
diff --git a/platform/default/src/mbgl/gfx/headless_frontend.cpp b/platform/default/src/mbgl/gfx/headless_frontend.cpp
index 996006bfe2..a580647913 100644
--- a/platform/default/src/mbgl/gfx/headless_frontend.cpp
+++ b/platform/default/src/mbgl/gfx/headless_frontend.cpp
@@ -45,7 +45,7 @@ HeadlessFrontend::HeadlessFrontend(Size size_,
frameTime = (endTime - startTime).count();
}
}),
- renderer(std::make_unique<Renderer>(*getBackend(), pixelRatio, localFontFamily)) {}
+ renderer(std::make_unique<Renderer>(getBackend(), pixelRatio, localFontFamily)) {}
HeadlessFrontend::~HeadlessFrontend() = default;
diff --git a/platform/glfw/glfw_backend.hpp b/platform/glfw/glfw_backend.hpp
index 867e60d79e..df803b2fd4 100644
--- a/platform/glfw/glfw_backend.hpp
+++ b/platform/glfw/glfw_backend.hpp
@@ -22,7 +22,7 @@ public:
return mbgl::gfx::Backend::Create<GLFWBackend, GLFWwindow*, bool>(window, capFrameRate);
}
- virtual mbgl::gfx::RendererBackend& getRendererBackend() = 0;
+ virtual mbgl::gfx::RendererBackend* getRendererBackend() = 0;
virtual mbgl::Size getSize() const = 0;
virtual void setSize(mbgl::Size) = 0;
};
diff --git a/platform/glfw/glfw_gl_backend.hpp b/platform/glfw/glfw_gl_backend.hpp
index 5971bbd0c5..b7a8221d94 100644
--- a/platform/glfw/glfw_gl_backend.hpp
+++ b/platform/glfw/glfw_gl_backend.hpp
@@ -18,8 +18,8 @@ public:
// GLFWRendererBackend implementation
public:
- mbgl::gfx::RendererBackend& getRendererBackend() override {
- return *this;
+ mbgl::gfx::RendererBackend* getRendererBackend() override {
+ return this;
}
mbgl::Size getSize() const override;
void setSize(mbgl::Size) override;
diff --git a/platform/glfw/glfw_renderer_frontend.cpp b/platform/glfw/glfw_renderer_frontend.cpp
index 46f1309901..41d365e52c 100644
--- a/platform/glfw/glfw_renderer_frontend.cpp
+++ b/platform/glfw/glfw_renderer_frontend.cpp
@@ -28,10 +28,11 @@ void GLFWRendererFrontend::update(std::shared_ptr<mbgl::UpdateParameters> params
void GLFWRendererFrontend::render() {
assert(renderer);
+ assert(glfwView.getRendererBackend());
if (!updateParameters) return;
- mbgl::gfx::BackendScope guard { glfwView.getRendererBackend(), mbgl::gfx::BackendScope::ScopeType::Implicit };
+ mbgl::gfx::BackendScope guard { *glfwView.getRendererBackend(), mbgl::gfx::BackendScope::ScopeType::Implicit };
// onStyleImageMissing might be called during a render. The user implemented method
// could trigger a call to MGLRenderFrontend#update which overwrites `updateParameters`.
diff --git a/platform/glfw/glfw_view.cpp b/platform/glfw/glfw_view.cpp
index 3d10f2c654..1992268d75 100644
--- a/platform/glfw/glfw_view.cpp
+++ b/platform/glfw/glfw_view.cpp
@@ -168,7 +168,7 @@ void GLFWView::setRenderFrontend(GLFWRendererFrontend* rendererFrontend_) {
rendererFrontend = rendererFrontend_;
}
-mbgl::gfx::RendererBackend& GLFWView::getRendererBackend() {
+mbgl::gfx::RendererBackend* GLFWView::getRendererBackend() {
return backend->getRendererBackend();
}
@@ -180,6 +180,9 @@ void GLFWView::onKey(GLFWwindow *window, int key, int /*scancode*/, int action,
view->animateRouteCallback = nullptr;
switch (key) {
+ case GLFW_KEY_V:
+ view->rendererFrontend->getRenderer()->setRendererBackend(view->getRendererBackend());
+ break;
case GLFW_KEY_ESCAPE:
glfwSetWindowShouldClose(window, true);
break;
@@ -709,13 +712,14 @@ void GLFWView::run() {
updateAnimatedAnnotations();
- mbgl::gfx::BackendScope scope { backend->getRendererBackend() };
-
- rendererFrontend->render();
+ if (backend->getRendererBackend()) {
+ mbgl::gfx::BackendScope scope { *backend->getRendererBackend() };
+ rendererFrontend->render();
- report(1000 * (glfwGetTime() - started));
- if (benchmark) {
- invalidate();
+ report(1000 * (glfwGetTime() - started));
+ if (benchmark) {
+ invalidate();
+ }
}
}
diff --git a/platform/glfw/glfw_view.hpp b/platform/glfw/glfw_view.hpp
index e9867f14da..fe1d94de91 100644
--- a/platform/glfw/glfw_view.hpp
+++ b/platform/glfw/glfw_view.hpp
@@ -27,7 +27,7 @@ public:
void setRenderFrontend(GLFWRendererFrontend*);
- mbgl::gfx::RendererBackend& getRendererBackend();
+ mbgl::gfx::RendererBackend* getRendererBackend();
void setTestDirectory(std::string dir) { testDirectory = std::move(dir); };
diff --git a/platform/glfw/main.cpp b/platform/glfw/main.cpp
index ded8ee3e1f..140e534955 100644
--- a/platform/glfw/main.cpp
+++ b/platform/glfw/main.cpp
@@ -119,7 +119,7 @@ int main(int argc, char *argv[]) {
}
}
- GLFWRendererFrontend rendererFrontend { std::make_unique<mbgl::Renderer>(view->getRendererBackend(), view->getPixelRatio()), *view };
+ GLFWRendererFrontend rendererFrontend { std::make_unique<mbgl::Renderer>(view->getPixelRatio()) , *view };
mbgl::Map map(rendererFrontend, *view,
mbgl::MapOptions().withSize(view->getSize()).withPixelRatio(view->getPixelRatio()), resourceOptions);