summaryrefslogtreecommitdiff
path: root/platform/android/src/android_renderer_frontend.cpp
diff options
context:
space:
mode:
authorIvo van Dongen <info@ivovandongen.nl>2017-06-27 17:04:09 -0700
committerIvo van Dongen <ivovandongen@users.noreply.github.com>2017-07-18 10:45:12 +0200
commitd68d8a7846ef0b4d06c31e0ed451b31354a7dec9 (patch)
tree8236d0ce48b0d90baab947e044ce3a61aa9a615b /platform/android/src/android_renderer_frontend.cpp
parentb6d56ad634e2b3048e97bedd9f674aa4ec975453 (diff)
downloadqtlocation-mapboxgl-d68d8a7846ef0b4d06c31e0ed451b31354a7dec9.tar.gz
[android] rendering interface changes
Diffstat (limited to 'platform/android/src/android_renderer_frontend.cpp')
-rw-r--r--platform/android/src/android_renderer_frontend.cpp70
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
+