commit b7dba709b746959422991f79760a2573a2c68972
Author: Leszek Koltunski <leszek@distoretedandroid.org>
Date:   Fri Apr 21 11:04:21 2017 +0100

    Roll back the recent MIPMAP work.

diff --git a/src/main/java/org/distorted/library/DistortedOutputSurface.java b/src/main/java/org/distorted/library/DistortedOutputSurface.java
index d0b2a55..cb69fa5 100644
--- a/src/main/java/org/distorted/library/DistortedOutputSurface.java
+++ b/src/main/java/org/distorted/library/DistortedOutputSurface.java
@@ -27,9 +27,6 @@ import java.util.ArrayList;
 
 abstract class DistortedOutputSurface extends DistortedSurface implements DistortedSlave
 {
-  private static final int NUM_MIPMAP = 4;
-          static final int CUR_MIPMAP = 1;
-
   private static final int ATTACH = 0;
   private static final int DETACH = 1;
   private static final int DETALL = 2;
@@ -54,7 +51,7 @@ abstract class DistortedOutputSurface extends DistortedSurface implements Distor
 
   private ArrayList<Job> mJobs = new ArrayList<>();
 
-  DistortedFramebuffer[] mBuffer1, mBuffer2;
+  DistortedFramebuffer mBuffer1, mBuffer2;
 
   private long mTime;
   private float mFOV;
@@ -98,9 +95,6 @@ abstract class DistortedOutputSurface extends DistortedSurface implements Distor
 
     mClearDepth = 1.0f;
 
-    mBuffer1 = new DistortedFramebuffer[NUM_MIPMAP];
-    mBuffer2 = new DistortedFramebuffer[NUM_MIPMAP];
-
     createProjection();
     }
 
@@ -177,22 +171,13 @@ abstract class DistortedOutputSurface extends DistortedSurface implements Distor
         }
       else
         {
-        if( mBuffer1[0]==null )
+        if( mBuffer1==null )
           {
-          int sizeX = mWidth;
-          int sizeY = mHeight;
-
-          for(int j=0; j<NUM_MIPMAP; j++)
-            {
-            mBuffer1[j] = new DistortedFramebuffer(mDepthCreated!=DONT_CREATE, DistortedSurface.TYPE_SYST, sizeX, sizeY);
-            mBuffer2[j] = new DistortedFramebuffer(false                     , DistortedSurface.TYPE_SYST, sizeX, sizeY);
-
-            sizeX *= 0.9f;
-            sizeY *= 0.9f;
-            }
+          mBuffer1 = new DistortedFramebuffer(mDepthCreated!=DONT_CREATE, DistortedSurface.TYPE_SYST, mWidth, mHeight);
+          mBuffer2 = new DistortedFramebuffer(false                     , DistortedSurface.TYPE_SYST, mWidth, mHeight);
           }
 
-        numRenders += child.draw(time,mBuffer1[CUR_MIPMAP]);
+        numRenders += child.draw(time,mBuffer1);
         if( i==num-1 )
           {
           numRenders += currP.postprocess(time,this);
diff --git a/src/main/java/org/distorted/library/EffectQueuePostprocess.java b/src/main/java/org/distorted/library/EffectQueuePostprocess.java
index c415036..6631fe0 100644
--- a/src/main/java/org/distorted/library/EffectQueuePostprocess.java
+++ b/src/main/java/org/distorted/library/EffectQueuePostprocess.java
@@ -93,8 +93,8 @@ class EffectQueuePostprocess extends EffectQueue
   private static float[] offsetsCache = new float[MAX_BLUR + MAX_BLUR*MAX_BLUR/4];
 
   private static DistortedProgram mBlur1Program, mBlur2Program;
-  private static int mRadius1H,mOffsets1H,mWeights1H,mDepth1H, mScale1H, mColorTexture1H;
-  private static int mRadius2H,mOffsets2H,mWeights2H,mDepth2H, mScale2H, mColorTexture2H, mDepthTexture2H;
+  private static int mRadius1H,mOffsets1H,mWeights1H,mDepth1H, mColorTexture1H;
+  private static int mRadius2H,mOffsets2H,mWeights2H,mDepth2H, mColorTexture2H, mDepthTexture2H;
   private static float[] mWeights = new float[MAX_BLUR];
   private static float[] mOffsets = new float[MAX_BLUR];
   // another effect ....
@@ -131,7 +131,6 @@ class EffectQueuePostprocess extends EffectQueue
     mOffsets1H      = GLES30.glGetUniformLocation( blur1ProgramH, "u_Offsets");
     mWeights1H      = GLES30.glGetUniformLocation( blur1ProgramH, "u_Weights");
     mDepth1H        = GLES30.glGetUniformLocation( blur1ProgramH, "u_Depth");
-    mScale1H        = GLES30.glGetUniformLocation( blur1ProgramH, "u_Scale");
     mColorTexture1H = GLES30.glGetUniformLocation( blur1ProgramH, "u_ColorTexture");
 
     final InputStream blur2VertexStream   = resources.openRawResource(R.raw.blur_vertex_shader);
@@ -155,7 +154,6 @@ class EffectQueuePostprocess extends EffectQueue
     mOffsets2H      = GLES30.glGetUniformLocation( blur2ProgramH, "u_Offsets");
     mWeights2H      = GLES30.glGetUniformLocation( blur2ProgramH, "u_Weights");
     mDepth2H        = GLES30.glGetUniformLocation( blur2ProgramH, "u_Depth");
-    mScale2H        = GLES30.glGetUniformLocation( blur2ProgramH, "u_Scale");
     mColorTexture2H = GLES30.glGetUniformLocation( blur2ProgramH, "u_ColorTexture");
     mDepthTexture2H = GLES30.glGetUniformLocation( blur2ProgramH, "u_DepthTexture");
     }
@@ -261,9 +259,9 @@ class EffectQueuePostprocess extends EffectQueue
       {
       compute(time);
 
-      surface.mBuffer1[DistortedOutputSurface.CUR_MIPMAP].setAsInput();
-      float w = surface.mBuffer1[DistortedOutputSurface.CUR_MIPMAP].mWidth;
-      float h = surface.mBuffer1[DistortedOutputSurface.CUR_MIPMAP].mHeight;
+      surface.mBuffer1.setAsInput();
+      float w = surface.mBuffer1.mWidth;
+      float h = surface.mBuffer2.mHeight;
 
       int radius = (int)mUniforms[0];
       if( radius>=MAX_BLUR ) radius = MAX_BLUR-1;
@@ -276,12 +274,11 @@ class EffectQueuePostprocess extends EffectQueue
 
       // horizontal blur
       mBlur1Program.useProgram();
-      surface.mBuffer2[DistortedOutputSurface.CUR_MIPMAP].setAsOutput(time);
+      surface.mBuffer2.setAsOutput(time);
 
       GLES30.glUniform1fv( mWeights1H, radius+1, weightsCache,offset);
       GLES30.glUniform1i( mRadius1H, radius);
       GLES30.glUniform1f( mDepth1H , 1.0f-surface.mNear);
-      GLES30.glUniform1f( mScale1H , 1.0f);
       GLES30.glUniform1i( mColorTexture1H , 0 );
       for(int i=0; i<=radius; i++) mOffsets[i] = offsetsCache[offset+i]/h;
       GLES30.glUniform1fv( mOffsets1H ,radius+1, mOffsets,0);
@@ -291,14 +288,13 @@ class EffectQueuePostprocess extends EffectQueue
 
       // vertical blur
       mBlur2Program.useProgram();
-      surface.mBuffer2[DistortedOutputSurface.CUR_MIPMAP].setAsInput();
-      surface.mBuffer1[DistortedOutputSurface.CUR_MIPMAP].setAsDepth();
+      surface.mBuffer2.setAsInput();
+      surface.mBuffer1.setAsDepth();
       surface.setAsOutput(time);
 
       GLES30.glUniform1fv( mWeights2H, radius+1, weightsCache,offset);
       GLES30.glUniform1i( mRadius2H, radius);
       GLES30.glUniform1f( mDepth2H , 1.0f-surface.mNear);
-      GLES30.glUniform1f( mScale2H , 0.9f);
       GLES30.glUniform1i( mColorTexture2H , 0 );
       GLES30.glUniform1i( mDepthTexture2H , 1 );
       for(int i=0; i<=radius; i++) mOffsets[i] = offsetsCache[offset+i]/w;
diff --git a/src/main/res/raw/blur_vertex_shader.glsl b/src/main/res/raw/blur_vertex_shader.glsl
index f020009..59a33c5 100644
--- a/src/main/res/raw/blur_vertex_shader.glsl
+++ b/src/main/res/raw/blur_vertex_shader.glsl
@@ -30,12 +30,11 @@ varying vec2 v_TexCoordinate;    //
 #endif
 
 uniform float u_Depth;    // distance from the near plane to render plane, in clip coords
-uniform float u_Scale;
 
 //////////////////////////////////////////////////////////////////////////////////////////////
 
 void main()
   {
-  v_TexCoordinate = u_Scale*a_TexCoordinate;
+  v_TexCoordinate = a_TexCoordinate;
   gl_Position     = vec4(2.0*a_Position,u_Depth,1.0);
   }
\ No newline at end of file
