summaryrefslogtreecommitdiff
path: root/platform/android/src/android_renderer_frontend.hpp
diff options
context:
space:
mode:
authorIvo van Dongen <info@ivovandongen.nl>2017-09-14 21:23:07 +0300
committerIvo van Dongen <ivovandongen@users.noreply.github.com>2017-09-22 23:33:56 +0300
commit5d12503302dff168137d6f3b1444e4dc32ad44dd (patch)
tree98128bdddb287c30b2c1445eb88d44e9a97d57ab /platform/android/src/android_renderer_frontend.hpp
parent15a47d116a0fc15d249b37574fcd932ce88909df (diff)
downloadqtlocation-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.hpp35
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;
};