diff options
author | Ivo van Dongen <info@ivovandongen.nl> | 2019-02-14 11:12:02 +0200 |
---|---|---|
committer | Ivo van Dongen <ivovandongen@users.noreply.github.com> | 2019-02-14 13:58:03 +0200 |
commit | 3802f7e922e16a18c75d66aa615094f4c62fd0b1 (patch) | |
tree | 1c3e74fcaf47ff42a023503a28503051aef11aa0 /platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/glsurfaceview/GLSurfaceViewMapRenderer.java | |
parent | ceea900578d8f31497810ef19aa7c17669e40722 (diff) | |
download | qtlocation-mapboxgl-3802f7e922e16a18c75d66aa615094f4c62fd0b1.tar.gz |
[android] hook into surface holder to cleanup renderer on the right thread before the surface is destroyed
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/glsurfaceview/GLSurfaceViewMapRenderer.java')
-rw-r--r-- | platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/glsurfaceview/GLSurfaceViewMapRenderer.java | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/glsurfaceview/GLSurfaceViewMapRenderer.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/glsurfaceview/GLSurfaceViewMapRenderer.java index 584c9dcf57..e757907ab8 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/glsurfaceview/GLSurfaceViewMapRenderer.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/renderer/glsurfaceview/GLSurfaceViewMapRenderer.java @@ -4,6 +4,8 @@ import android.content.Context; import android.opengl.GLSurfaceView; import android.support.annotation.NonNull; +import android.view.SurfaceHolder; + import com.mapbox.mapboxsdk.maps.renderer.MapRenderer; import com.mapbox.mapboxsdk.maps.renderer.egl.EGLConfigChooser; @@ -33,6 +35,15 @@ public class GLSurfaceViewMapRenderer extends MapRenderer implements GLSurfaceVi glSurfaceView.setRenderer(this); glSurfaceView.setRenderMode(RENDERMODE_WHEN_DIRTY); glSurfaceView.setPreserveEGLContextOnPause(true); + + glSurfaceView.getHolder().addCallback(new SurfaceHolderCallbackAdapter() { + + @Override + public void surfaceDestroyed(SurfaceHolder holder) { + GLSurfaceViewMapRenderer.this.onSurfaceDestroyed(); + } + + }); } @Override |