commit e52f9d96e1263d246b927173277b33ddfd1a4be9
Author: Leszek Koltunski <leszek@distoretedandroid.org>
Date:   Tue Jun 28 11:41:29 2016 +0100

    Fix a bug in PlainMonaLisa - avoid a crash on screen rotate

diff --git a/src/main/java/org/distorted/examples/plainmonalisa/PlainMonaLisaSurfaceView.java b/src/main/java/org/distorted/examples/plainmonalisa/PlainMonaLisaSurfaceView.java
index 6dc2852..add70e7 100644
--- a/src/main/java/org/distorted/examples/plainmonalisa/PlainMonaLisaSurfaceView.java
+++ b/src/main/java/org/distorted/examples/plainmonalisa/PlainMonaLisaSurfaceView.java
@@ -31,6 +31,7 @@ class PlainMonaLisaSurfaceView extends SurfaceView implements SurfaceHolder.Call
   {
   private static final String TAG = "MonaLisaSurface";
   private RenderThread mRenderThread;
+  private static volatile boolean mPaused = true;
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
@@ -110,6 +111,8 @@ class PlainMonaLisaSurfaceView extends SurfaceView implements SurfaceHolder.Call
 
   public void onPause()
     {
+    mPaused = true;
+
     Log.d(TAG, "onPause unhooking choreographer");
     Choreographer.getInstance().removeFrameCallback(this);
     }
@@ -118,6 +121,8 @@ class PlainMonaLisaSurfaceView extends SurfaceView implements SurfaceHolder.Call
 
   public void onResume()
     {
+    mPaused = false;
+
     if (mRenderThread != null)
       {
       Log.d(TAG, "onResume re-hooking choreographer");
@@ -125,6 +130,13 @@ class PlainMonaLisaSurfaceView extends SurfaceView implements SurfaceHolder.Call
       }
     }
 
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  public static boolean isPaused()
+    {
+    return mPaused;
+    }
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
   @Override
diff --git a/src/main/java/org/distorted/examples/plainmonalisa/RenderThread.java b/src/main/java/org/distorted/examples/plainmonalisa/RenderThread.java
index 53459a2..4760a96 100644
--- a/src/main/java/org/distorted/examples/plainmonalisa/RenderThread.java
+++ b/src/main/java/org/distorted/examples/plainmonalisa/RenderThread.java
@@ -237,7 +237,12 @@ public class RenderThread extends Thread
 
   public void doFrame(long frameTimeNs)
     {
-    Trace.beginSection("doFrame draw");
+    if( PlainMonaLisaSurfaceView.isPaused() )
+      {
+      android.util.Log.e("Thread", "Got here after onPaused- ignoring frame draw call!!");
+      return;
+      }
+
     eglCore.makeCurrent(eglSurface);
 
     GLES20.glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
@@ -245,7 +250,6 @@ public class RenderThread extends Thread
     monaLisa.draw(System.currentTimeMillis());
 
     eglCore.swapBuffers(eglSurface);
-    Trace.endSection();
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
