diff options
author | Ivo van Dongen <info@ivovandongen.nl> | 2017-09-14 21:23:07 +0300 |
---|---|---|
committer | Ivo van Dongen <ivovandongen@users.noreply.github.com> | 2017-09-22 23:33:56 +0300 |
commit | 5d12503302dff168137d6f3b1444e4dc32ad44dd (patch) | |
tree | 98128bdddb287c30b2c1445eb88d44e9a97d57ab /platform/android/src/android_renderer_frontend.hpp | |
parent | 15a47d116a0fc15d249b37574fcd932ce88909df (diff) | |
download | qtlocation-mapboxgl-5d12503302dff168137d6f3b1444e4dc32ad44dd.tar.gz |
[android] self-contained map renderer
- Isolates the GL thread in a MapRenderer class with a native peer
Diffstat (limited to 'platform/android/src/android_renderer_frontend.hpp')
-rw-r--r-- | platform/android/src/android_renderer_frontend.hpp | 35 |
1 files changed, 6 insertions, 29 deletions
diff --git a/platform/android/src/android_renderer_frontend.hpp b/platform/android/src/android_renderer_frontend.hpp index 57bfd62b26..598327838e 100644 --- a/platform/android/src/android_renderer_frontend.hpp +++ b/platform/android/src/android_renderer_frontend.hpp @@ -1,13 +1,9 @@ - #pragma once -#include "android_gl_thread.hpp" - #include <mbgl/actor/actor.hpp> #include <mbgl/annotation/annotation.hpp> #include <mbgl/renderer/renderer_backend.hpp> #include <mbgl/renderer/renderer_frontend.hpp> -#include <mbgl/util/async_task.hpp> #include <mbgl/util/geo.hpp> #include <mbgl/util/image.hpp> #include <mbgl/util/run_loop.hpp> @@ -17,6 +13,8 @@ #include <vector> #include <string> +#include "map_renderer.hpp" + namespace mbgl { class FileSource; @@ -30,15 +28,8 @@ class AndroidRendererBackend; class AndroidRendererFrontend : public RendererFrontend { public: - using RequestRenderCallback = std::function<void ()>; - using RequestProcessingCallback = std::function<void ()>; - - AndroidRendererFrontend(float pixelRatio, - mbgl::FileSource&, - mbgl::Scheduler&, - std::string programCacheDir, - RequestRenderCallback, - RequestProcessingCallback); + + AndroidRendererFrontend(MapRenderer&); ~AndroidRendererFrontend() override; void reset() override; @@ -46,19 +37,12 @@ public: void update(std::shared_ptr<UpdateParameters>) override; - // Called from OpenGL Thread - void render(); - void process(); - // Feature querying std::vector<Feature> queryRenderedFeatures(const ScreenCoordinate&, const RenderedQueryOptions&) const; std::vector<Feature> queryRenderedFeatures(const ScreenBox&, const RenderedQueryOptions&) const; std::vector<Feature> querySourceFeatures(const std::string& sourceID, const SourceQueryOptions&) const; AnnotationIDs queryPointAnnotations(const ScreenBox& box) const; - // RenderBackend proxy - Called from OpenGL Thread - void resizeFramebuffer(int width, int height); - // Memory void onLowMemory(); @@ -67,19 +51,12 @@ public: void requestSnapshot(SnapshotCallback); private: - std::unique_ptr<AndroidRendererBackend> backend; - std::unique_ptr<AndroidGLThread> glThread; std::unique_ptr<RendererObserver> rendererObserver; - - std::mutex updateMutex; - std::shared_ptr<UpdateParameters> updateParameters; - - - util::AsyncTask asyncInvalidate; + MapRenderer& mapRenderer; util::RunLoop* mapRunLoop; - bool framebufferSizeChanged = true; + // TODO std::unique_ptr<SnapshotCallback> snapshotCallback; }; |