summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--platform/android/src/map_renderer.cpp7
-rw-r--r--platform/android/src/map_renderer.hpp4
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: