commit 29246ab4de9960edc3a56046221ee05a8082bb61
Author: Leszek Koltunski <leszek@distorted.org>
Date:   Wed Dec 14 22:33:05 2016 +0000

    Change of API in DistortedFramebuffer.

diff --git a/src/main/java/org/distorted/examples/save/SaveRenderer.java b/src/main/java/org/distorted/examples/save/SaveRenderer.java
index eb5594d..20603b7 100644
--- a/src/main/java/org/distorted/examples/save/SaveRenderer.java
+++ b/src/main/java/org/distorted/examples/save/SaveRenderer.java
@@ -161,10 +161,19 @@ class SaveRenderer implements GLSurfaceView.Renderer
       int fH =(int)(mScale*bmpHeight);
       ByteBuffer buf = ByteBuffer.allocateDirect(fW*fH*4);
       buf.order(ByteOrder.LITTLE_ENDIAN);
-      mOffscreen.setAsInput();
 
-      GLES20.glReadPixels( 0, 0, fW, fH, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, buf);
-      SaveWorkerThread.newBuffer(buf,fW,fH,mPath);
+      int textureID = mOffscreen.getTextureID();
+
+      if( textureID>=0 )
+        {
+        GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, textureID);
+        GLES20.glReadPixels( 0, 0, fW, fH, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_BYTE, buf);
+        SaveWorkerThread.newBuffer(buf,fW,fH,mPath);
+        }
+      else
+        {
+        android.util.Log.e("Save", "Error trying to read from offscreen FBO");
+        }
 
       isSaving = false;
       }
