commit 93dca704f808ada13dd131a67185319a9432c4bb
Author: Leszek Koltunski <leszek@distoretedandroid.org>
Date:   Thu Jan 26 17:20:58 2017 +0000

    Minor progress with Gaussian. Still need to cache the Weights and Offests tables.

diff --git a/src/main/java/org/distorted/library/EffectQueuePostprocess.java b/src/main/java/org/distorted/library/EffectQueuePostprocess.java
index 3e67ca4..4a485da 100644
--- a/src/main/java/org/distorted/library/EffectQueuePostprocess.java
+++ b/src/main/java/org/distorted/library/EffectQueuePostprocess.java
@@ -171,20 +171,10 @@ class EffectQueuePostprocess extends EffectQueue
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  private int computeKernel(int radius, float height)
+  private int computeGaussianKernel(int radius)
     {
     if( radius>=MAX_BLUR ) radius = MAX_BLUR-1;
 
-    // Box Blur size 'radius'
-/*
-    for(int i=0; i<=radius; i++)
-      {
-      mWeights[i] = 1.0f / (2.0f*radius+1.0f);
-      mOffsets[i] = i*height;
-      }
-*/
-    // Gaussian Blur size 'radius'
-
     float P = (float)NUM_GAUSSIAN / (radius>3 ? radius:3);
     float x = 0.0f;
     mWeights[0] = GAUSSIAN[0];
@@ -201,7 +191,6 @@ class EffectQueuePostprocess extends EffectQueue
 
       mWeights[i] = (1-z)*GAUSSIAN[j] + z*GAUSSIAN[j+1];
       sum += 2*mWeights[i];
-      mOffsets[i] = i*height;
       }
 
     for(int i=0; i<=radius; i++)
@@ -214,7 +203,7 @@ class EffectQueuePostprocess extends EffectQueue
 
     for(int i=0; i<numloops; i++)
       {
-      mOffsets[i+1] = mWeights[2*i+1]*mOffsets[2*i+1] + mWeights[2*i+2]*mOffsets[2*i+2];
+      mOffsets[i+1] = mWeights[2*i+1]*(2*i+1) + mWeights[2*i+2]*(2*i+2);
       mWeights[i+1] = mWeights[2*i+1] + mWeights[2*i+2];
       mOffsets[i+1] /= mWeights[i+1];
       }
@@ -242,7 +231,10 @@ class EffectQueuePostprocess extends EffectQueue
     {
     mBlurProgram.useProgram();
 
-    int radius = computeKernel( (int)mUniforms[0], 1/h );
+    int radius = computeGaussianKernel( (int)mUniforms[0] );
+
+    float adjust = 1/h;
+    for(int i=0; i<=radius; i++) mOffsets[i] *= adjust;
 
     GLES30.glUniform1fv( mWeightsH, radius+1, mWeights,0);
     GLES30.glUniform1i( mRadiusH, radius);
@@ -267,7 +259,7 @@ class EffectQueuePostprocess extends EffectQueue
     df.setAsOutput();
     GLES30.glViewport(0, 0, df.mWidth, df.mHeight);
 
-    float adjust = h/w;
+    adjust = h/w;
     for(int i=0; i<=radius; i++) mOffsets[i] *= adjust;
 
     // vertical blur
