diff options
Diffstat (limited to 'platform/android/src/android_renderer_frontend.cpp')
-rw-r--r-- | platform/android/src/android_renderer_frontend.cpp | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/platform/android/src/android_renderer_frontend.cpp b/platform/android/src/android_renderer_frontend.cpp new file mode 100644 index 0000000000..acb1c74557 --- /dev/null +++ b/platform/android/src/android_renderer_frontend.cpp @@ -0,0 +1,70 @@ +#include "android_renderer_frontend.hpp" + +#include <mbgl/map/view.hpp> +#include <mbgl/renderer/renderer.hpp> + +namespace mbgl { +namespace android { + +AndroidRendererFrontend::AndroidRendererFrontend( + std::unique_ptr<Renderer> renderer_, + InvalidateCallback invalidate) + : renderer(std::move(renderer_)) + , asyncInvalidate([=, invalidate=std::move(invalidate)]() { + invalidate(); + }) { +} + +AndroidRendererFrontend::~AndroidRendererFrontend() = default; + +void AndroidRendererFrontend::reset() { + assert (renderer); + if (renderer) { + renderer.reset(); + } +} + +void AndroidRendererFrontend::setObserver(RendererObserver& observer) { + assert (renderer); + renderer->setObserver(&observer); +} + +void AndroidRendererFrontend::update(std::shared_ptr<UpdateParameters> params) { + updateParameters = std::move(params); + asyncInvalidate.send(); +} + +void AndroidRendererFrontend::render(View& view) { + assert (renderer); + if (!updateParameters) return; + + renderer->render(view, *updateParameters); +} + +void AndroidRendererFrontend::onLowMemory() { + assert (renderer); + renderer->onLowMemory(); +} + +std::vector<Feature> AndroidRendererFrontend::querySourceFeatures(const std::string& sourceID, + const SourceQueryOptions& options) const { + return renderer->querySourceFeatures(sourceID, options); +} + +std::vector<Feature> AndroidRendererFrontend::queryRenderedFeatures(const ScreenBox& box, + const RenderedQueryOptions& options) const { + return renderer->queryRenderedFeatures(box, options); +} + +std::vector<Feature> AndroidRendererFrontend::queryRenderedFeatures(const ScreenCoordinate& point, + const RenderedQueryOptions& options) const { + return renderer->queryRenderedFeatures(point, options); +} + +AnnotationIDs AndroidRendererFrontend::queryPointAnnotations(const ScreenBox& box) const { + return renderer->queryPointAnnotations(box); +} + +} // namespace android +} // namespace mbgl + |