summaryrefslogtreecommitdiff
path: root/platform/node/src/node_renderer_frontend.cpp
diff options
context:
space:
mode:
authorIvo van Dongen <info@ivovandongen.nl>2017-06-23 16:05:20 -0700
committerIvo van Dongen <ivovandongen@users.noreply.github.com>2017-07-18 10:45:12 +0200
commitb97cc980e079552219e95130b14a9aa906cd0aea (patch)
treec9195d0e0a2ddaec9d7507b341f41f9529fd62e8 /platform/node/src/node_renderer_frontend.cpp
parent3832f8d0d8194b81ea34a045e19b0d5bc7a89e25 (diff)
downloadqtlocation-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.cpp50
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