summaryrefslogtreecommitdiff
path: root/platform/node/src/node_renderer_frontend.hpp
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.hpp
parent3832f8d0d8194b81ea34a045e19b0d5bc7a89e25 (diff)
downloadqtlocation-mapboxgl-b97cc980e079552219e95130b14a9aa906cd0aea.tar.gz
[node] rendering interface changes
Diffstat (limited to 'platform/node/src/node_renderer_frontend.hpp')
-rw-r--r--platform/node/src/node_renderer_frontend.hpp46
1 files changed, 46 insertions, 0 deletions
diff --git a/platform/node/src/node_renderer_frontend.hpp b/platform/node/src/node_renderer_frontend.hpp
new file mode 100644
index 0000000000..6410e3db57
--- /dev/null
+++ b/platform/node/src/node_renderer_frontend.hpp
@@ -0,0 +1,46 @@
+#pragma once
+
+#include <mbgl/map/backend.hpp>
+#include <mbgl/renderer/renderer_frontend.hpp>
+#include <mbgl/renderer/query.hpp>
+#include <mbgl/util/async_task.hpp>
+#include <mbgl/util/feature.hpp>
+#include <mbgl/util/geo.hpp>
+
+#include <functional>
+#include <memory>
+
+namespace mbgl {
+ class Renderer;
+} // namespace mbgl
+
+namespace node_mbgl {
+
+class NodeRendererFrontend : public mbgl::RendererFrontend {
+public:
+ using ViewAccessorFunction = std::function<mbgl::View* ()>;
+ NodeRendererFrontend(std::unique_ptr<mbgl::Renderer>, ViewAccessorFunction);
+
+ ~NodeRendererFrontend();
+
+ void reset() override;
+
+ void setObserver(mbgl::RendererObserver&) override;
+
+ void update(std::shared_ptr<mbgl::UpdateParameters>) override;
+
+ // Feature querying
+ std::vector<mbgl::Feature> queryRenderedFeatures(const mbgl::ScreenCoordinate&,
+ const mbgl::RenderedQueryOptions& options = {}) const;
+ std::vector<mbgl::Feature> queryRenderedFeatures(const mbgl::ScreenBox&,
+ const mbgl::RenderedQueryOptions& = {}) const;
+
+ void dumpDebugLogs();
+
+private:
+ std::unique_ptr<mbgl::Renderer> renderer;
+ std::shared_ptr<mbgl::UpdateParameters> updateParameters;
+ mbgl::util::AsyncTask asyncInvalidate;
+};
+
+} // namespace node_mbgl