diff options
author | Ivo van Dongen <info@ivovandongen.nl> | 2017-06-28 10:55:43 -0700 |
---|---|---|
committer | Ivo van Dongen <ivovandongen@users.noreply.github.com> | 2017-07-18 10:45:12 +0200 |
commit | 8401325a82a5affd9f4fe2348d065d8aa0aa0bc4 (patch) | |
tree | 1257134471367de3d0e71301c808c1bd8e9ed8cd /platform/glfw/glfw_renderer_frontend.cpp | |
parent | d68d8a7846ef0b4d06c31e0ed451b31354a7dec9 (diff) | |
download | qtlocation-mapboxgl-8401325a82a5affd9f4fe2348d065d8aa0aa0bc4.tar.gz |
[glfw] rendering interface changes
Diffstat (limited to 'platform/glfw/glfw_renderer_frontend.cpp')
-rw-r--r-- | platform/glfw/glfw_renderer_frontend.cpp | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/platform/glfw/glfw_renderer_frontend.cpp b/platform/glfw/glfw_renderer_frontend.cpp new file mode 100644 index 0000000000..99f409e338 --- /dev/null +++ b/platform/glfw/glfw_renderer_frontend.cpp @@ -0,0 +1,39 @@ +#include "glfw_renderer_frontend.hpp" + +#include <mbgl/renderer/renderer.hpp> + +GLFWRendererFrontend::GLFWRendererFrontend(std::unique_ptr<mbgl::Renderer> renderer_, GLFWView& glfwView_) + : glfwView(glfwView_) + , renderer(std::move(renderer_)) { + glfwView.setRenderFrontend(this); +} + +GLFWRendererFrontend::~GLFWRendererFrontend() = default; + +void GLFWRendererFrontend::reset() { + assert(renderer); + renderer.reset(); +} + +void GLFWRendererFrontend::setObserver(mbgl::RendererObserver& observer) { + assert(renderer); + renderer->setObserver(&observer); +} + +void GLFWRendererFrontend::update(std::shared_ptr<mbgl::UpdateParameters> params) { + updateParameters = std::move(params); + glfwView.invalidate(); +} + +void GLFWRendererFrontend::render() { + assert(renderer); + + if (!updateParameters) return; + + renderer->render(glfwView, *updateParameters); +} + +mbgl::Renderer* GLFWRendererFrontend::getRenderer() { + assert(renderer); + return renderer.get(); +} |