commit 7cfeeb63dbaf76d7a0c0e0d6940372076fe5a7f5
Author: Leszek Koltunski <leszek@distorted.org>
Date:   Sun Jun 12 23:48:50 2016 +0100

    Progress with Save app.

diff --git a/src/main/AndroidManifest.xml b/src/main/AndroidManifest.xml
index 137679c..1cd1e6a 100644
--- a/src/main/AndroidManifest.xml
+++ b/src/main/AndroidManifest.xml
@@ -6,6 +6,7 @@
 
     <uses-sdk android:minSdkVersion="11" android:targetSdkVersion="23" />
     <uses-feature android:glEsVersion="0x00020000" android:required="true" />
+    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
 
     <application android:icon="@drawable/icon" android:label="@string/app_name" android:allowBackup="true" android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
         <activity android:name=".TableOfContents">
diff --git a/src/main/java/org/distorted/examples/save/SaveActivity.java b/src/main/java/org/distorted/examples/save/SaveActivity.java
index 19e4c05..1d45996 100644
--- a/src/main/java/org/distorted/examples/save/SaveActivity.java
+++ b/src/main/java/org/distorted/examples/save/SaveActivity.java
@@ -69,7 +69,7 @@ public class SaveActivity extends Activity implements SeekBar.OnSeekBarChangeLis
 
     public void Save(View v)
       {
-      android.util.Log.e("SAVE", "Save button!!");
+      SaveRenderer.Save();
       }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/examples/save/SaveRenderer.java b/src/main/java/org/distorted/examples/save/SaveRenderer.java
index ffcdfe5..4cddc1b 100644
--- a/src/main/java/org/distorted/examples/save/SaveRenderer.java
+++ b/src/main/java/org/distorted/examples/save/SaveRenderer.java
@@ -1,6 +1,7 @@
 
 package org.distorted.examples.save;
 
+import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
 
@@ -21,13 +22,14 @@ import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
 import android.opengl.GLES20;
 import android.opengl.GLSurfaceView;
+import android.os.Environment;
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
 class SaveRenderer implements GLSurfaceView.Renderer 
 {
     private GLSurfaceView mView;
-    private DistortedBitmap mGirl;
+    private static DistortedBitmap mGirl;
     private Float2D pLeft, pRight;
     private Float4D sinkRegion;
     private static Interpolator1D diSink;
@@ -67,6 +69,29 @@ class SaveRenderer implements GLSurfaceView.Renderer
      s0.set(boobsSink);
      }
 
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+   public static void Save()
+     {
+     File file;
+     String filePath;
+     int lowestNotFound = 1;
+
+     while(true)
+       {
+       filePath = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES) + "/girl" + lowestNotFound +".png";
+       file = new File(filePath);
+
+       if( !file.exists() )
+         {
+         android.util.Log.e("SAVE", "Saving to "+file.getAbsolutePath());
+         mGirl.savePNG(file.getAbsolutePath());
+         break;
+         }
+       lowestNotFound++;
+       }
+     }
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
    
    public void onDrawFrame(GL10 glUnused) 
