diff options
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 |