#include "android_renderer_frontend.hpp" #include #include #include namespace mbgl { namespace android { AndroidRendererFrontend::AndroidRendererFrontend( std::unique_ptr renderer_, RendererBackend& backend_, InvalidateCallback invalidate) : renderer(std::move(renderer_)) , backend(backend_) , 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 params) { updateParameters = std::move(params); asyncInvalidate.send(); } void AndroidRendererFrontend::render(View& view) { assert (renderer); if (!updateParameters) return; BackendScope guard { backend }; renderer->render(view, *updateParameters); } void AndroidRendererFrontend::onLowMemory() { assert (renderer); renderer->onLowMemory(); } std::vector AndroidRendererFrontend::querySourceFeatures(const std::string& sourceID, const SourceQueryOptions& options) const { return renderer->querySourceFeatures(sourceID, options); } std::vector AndroidRendererFrontend::queryRenderedFeatures(const ScreenBox& box, const RenderedQueryOptions& options) const { return renderer->queryRenderedFeatures(box, options); } std::vector 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