[node] rendering interface changes
This commit is contained in:
committed by
Ivo van Dongen
parent
3832f8d0d8
commit
b97cc980e0
50
platform/node/src/node_renderer_frontend.cpp
Normal file
50
platform/node/src/node_renderer_frontend.cpp
Normal file
@@ -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
|
||||
Reference in New Issue
Block a user