summaryrefslogtreecommitdiff
path: root/platform/android/src/map_renderer.cpp
diff options
context:
space:
mode:
authortobrun <tobrun.van.nuland@gmail.com>2019-04-15 11:58:46 +0200
committerTobrun <tobrun.van.nuland@gmail.com>2019-04-17 11:40:15 +0200
commitd89b13f9555b3cde33499ed7bcece20c166e4dfd (patch)
tree1d52f5f57f8ba6c7b13a11655f46766169933f88 /platform/android/src/map_renderer.cpp
parent425553646bc79286687f240da34144b44949c9f1 (diff)
downloadqtlocation-mapboxgl-d89b13f9555b3cde33499ed7bcece20c166e4dfd.tar.gz
[android] - unify has surface state handling
Diffstat (limited to 'platform/android/src/map_renderer.cpp')
-rw-r--r--platform/android/src/map_renderer.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/platform/android/src/map_renderer.cpp b/platform/android/src/map_renderer.cpp
index 36d23c1849..64c00585f8 100644
--- a/platform/android/src/map_renderer.cpp
+++ b/platform/android/src/map_renderer.cpp
@@ -195,12 +195,17 @@ void MapRenderer::onSurfaceChanged(JNIEnv& env, jint width, jint height) {
requestRender();
}
-void MapRenderer::onSurfaceDestroyed(JNIEnv&) {
+void MapRenderer::onRendererReset(JNIEnv&) {
// Make sure to destroy the renderer on the GL Thread
auto self = ActorRef<MapRenderer>(*this, mailbox);
self.ask(&MapRenderer::resetRenderer).wait();
}
+// needs to be called on GL thread
+void MapRenderer::onSurfaceDestroyed(JNIEnv&) {
+ resetRenderer();
+}
+
// Static methods //
void MapRenderer::registerNative(jni::JNIEnv& env) {
@@ -214,6 +219,7 @@ void MapRenderer::registerNative(jni::JNIEnv& env) {
jni::MakePeer<MapRenderer, const jni::Object<MapRenderer>&, jni::jfloat, const jni::String&, const jni::String&>,
"nativeInitialize", "finalize",
METHOD(&MapRenderer::render, "nativeRender"),
+ METHOD(&MapRenderer::onRendererReset, "nativeReset"),
METHOD(&MapRenderer::onSurfaceCreated,
"nativeOnSurfaceCreated"),
METHOD(&MapRenderer::onSurfaceChanged,