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.hpp | |
parent | 3832f8d0d8194b81ea34a045e19b0d5bc7a89e25 (diff) | |
download | qtlocation-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.hpp | 46 |
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 |