diff options
author | Ivo van Dongen <info@ivovandongen.nl> | 2019-02-22 15:01:55 +0200 |
---|---|---|
committer | Ivo van Dongen <info@ivovandongen.nl> | 2019-02-22 15:01:55 +0200 |
commit | bc4fd56ff8b651603f49fcd1caf239408f3326eb (patch) | |
tree | 39d9ed5111682d236471fd908f6990463f3436e2 | |
parent | 1aea17ccd9c324db7b076edf27faa1c5a12f279b (diff) | |
download | qtlocation-mapboxgl-bc4fd56ff8b651603f49fcd1caf239408f3326eb.tar.gz |
[android] re-create renderer on surface update after app backgrounding (in case egl context is preserved, but surface is not)
-rw-r--r-- | platform/android/src/map_renderer.cpp | 7 | ||||
-rw-r--r-- | platform/android/src/map_renderer.hpp | 4 |
2 files changed, 9 insertions, 2 deletions
diff --git a/platform/android/src/map_renderer.cpp b/platform/android/src/map_renderer.cpp index cff021afd2..cd8953e4cf 100644 --- a/platform/android/src/map_renderer.cpp +++ b/platform/android/src/map_renderer.cpp @@ -184,7 +184,12 @@ void MapRenderer::onSurfaceCreated(JNIEnv&) { } } -void MapRenderer::onSurfaceChanged(JNIEnv&, jint width, jint height) { +void MapRenderer::onSurfaceChanged(JNIEnv& env, jint width, jint height) { + if (!renderer) { + // In case the surface has been destroyed (due to app back-grounding) + onSurfaceCreated(env); + } + backend->resizeFramebuffer(width, height); framebufferSizeChanged = true; requestRender(); diff --git a/platform/android/src/map_renderer.hpp b/platform/android/src/map_renderer.hpp index 8c2f28a4df..fdc3600d02 100644 --- a/platform/android/src/map_renderer.hpp +++ b/platform/android/src/map_renderer.hpp @@ -94,7 +94,9 @@ private: void onSurfaceChanged(JNIEnv&, jint width, jint height); - // Called on Main thread +private: + // Called on either Main or GL thread // + void onSurfaceDestroyed(JNIEnv&); private: |