diff options
author | Ivo van Dongen <info@ivovandongen.nl> | 2017-06-23 16:05:20 -0700 |
---|---|---|
committer | Ivo van Dongen <ivovandongen@users.noreply.github.com> | 2017-07-18 10:45:12 +0200 |
commit | b97cc980e079552219e95130b14a9aa906cd0aea (patch) | |
tree | c9195d0e0a2ddaec9d7507b341f41f9529fd62e8 /platform/node/src/node_renderer_frontend.cpp | |
parent | 3832f8d0d8194b81ea34a045e19b0d5bc7a89e25 (diff) | |
download | qtlocation-mapboxgl-b97cc980e079552219e95130b14a9aa906cd0aea.tar.gz |
[node] rendering interface changes
Diffstat (limited to 'platform/node/src/node_renderer_frontend.cpp')
-rw-r--r-- | platform/node/src/node_renderer_frontend.cpp | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/platform/node/src/node_renderer_frontend.cpp b/platform/node/src/node_renderer_frontend.cpp new file mode 100644 index 0000000000..4722b45351 --- /dev/null +++ b/platform/node/src/node_renderer_frontend.cpp @@ -0,0 +1,50 @@ +#include "node_renderer_frontend.hpp" +#include <mbgl/renderer/renderer.hpp> +#include <mbgl/map/backend_scope.hpp> + +namespace node_mbgl { + +NodeRendererFrontend::NodeRendererFrontend(std::unique_ptr<mbgl::Renderer> renderer_, ViewAccessorFunction getView) + : renderer(std::move(renderer_)) + , asyncInvalidate([&, this, getView] { + if (renderer && updateParameters) { + renderer->render(*getView(), *updateParameters); + } + }) { +} + +NodeRendererFrontend::~NodeRendererFrontend() = default; + +void NodeRendererFrontend::reset() { + assert(renderer); + renderer.reset(); +} + +void NodeRendererFrontend::setObserver(mbgl::RendererObserver& observer_) { + assert(renderer); + renderer->setObserver(&observer_); +} + +void NodeRendererFrontend::update(std::shared_ptr<mbgl::UpdateParameters> updateParameters_) { + updateParameters = updateParameters_; + asyncInvalidate.send(); +} + +std::vector<mbgl::Feature> NodeRendererFrontend::queryRenderedFeatures(const mbgl::ScreenBox& box, + const mbgl::RenderedQueryOptions& options) const { + assert(renderer); + return renderer->queryRenderedFeatures(box, options); +} + +std::vector<mbgl::Feature> NodeRendererFrontend::queryRenderedFeatures(const mbgl::ScreenCoordinate& point, + const mbgl::RenderedQueryOptions& options) const { + assert(renderer); + return renderer->queryRenderedFeatures(point, options); +} + +void NodeRendererFrontend::dumpDebugLogs() { + assert(renderer); + return renderer->dumpDebugLogs(); +} + +} // namespace node_mbgl |