commit 7ad20cced44bb206006dfcfa394cbd2365e3f975
Author: Leszek Koltunski <leszek@distoretedandroid.org>
Date:   Wed Jun 28 17:55:32 2017 +0100

    Debugging Glow.

diff --git a/src/main/java/org/distorted/library/effect/PostprocessEffectGlow.java b/src/main/java/org/distorted/library/effect/PostprocessEffectGlow.java
index b9ab8d2..4b56015 100644
--- a/src/main/java/org/distorted/library/effect/PostprocessEffectGlow.java
+++ b/src/main/java/org/distorted/library/effect/PostprocessEffectGlow.java
@@ -191,7 +191,11 @@ public class PostprocessEffectGlow extends PostprocessEffect
     mProgram2.useProgram();
     outBuffer.bindForOutput(0);
     outBuffer.setAsInput(1);
-
+/*
+GLES30.glColorMask(true,true,true,true);
+GLES30.glClearColor(0.0f,0.0f,0.0f,0.0f);
+GLES30.glClear(GLES30.GL_COLOR_BUFFER_BIT);
+*/
     GLES30.glUniform1f ( mProgram2.mUniform[0] , near);
     GLES30.glUniform1i ( mProgram2.mUniform[1] , 0 );
     GLES30.glUniform1fv( mProgram2.mUniform[2] , radius+1, mOffsets,0);
@@ -241,15 +245,15 @@ public class PostprocessEffectGlow extends PostprocessEffect
       "uniform int u_Radius;              \n"+
       "uniform vec4 u_Color;              \n"+
 
-      "void main()                                                                                             \n"+
-      "  {                                                                                                     \n"+
-      "  float alpha= texture(u_ColorTexture,v_TexCoord).a * u_Weights[0];                                     \n"+
-      "  for (int i=1; i<=u_Radius; i+=1)                                                                      \n"+
-      "    {                                                                                                   \n"+
-      "    alpha += ( texture(u_ColorTexture,vec2(v_TexCoord.x+u_Offsets[i],v_TexCoord.y)).a +                 \n"+
-      "               texture(u_ColorTexture,vec2(v_TexCoord.x-u_Offsets[i],v_TexCoord.y)).a ) * u_Weights[i]; \n"+
-      "    }                                                                                                   \n"+
-      "  fragColor = vec4(u_Color.rgb,alpha);                                                                  \n"+
+      "void main()                                                                                           \n"+
+      "  {                                                                                                   \n"+
+      "  vec4 pixel = texture(u_ColorTexture,v_TexCoord) * u_Weights[0];                                     \n"+
+      "  for (int i=1; i<=u_Radius; i+=1)                                                                    \n"+
+      "    {                                                                                                 \n"+
+      "    pixel += ( texture(u_ColorTexture,vec2(v_TexCoord.x+u_Offsets[i],v_TexCoord.y)) +                 \n"+
+      "               texture(u_ColorTexture,vec2(v_TexCoord.x-u_Offsets[i],v_TexCoord.y)) ) * u_Weights[i]; \n"+
+      "    }                                                                                                 \n"+
+      "  fragColor = vec4( 0.5*(pixel.rgb+u_Color.rgb), sign(pixel.a)*u_Color.a);                            \n"+
       "  }";
 
     final String glowFragment2 =
@@ -265,19 +269,19 @@ public class PostprocessEffectGlow extends PostprocessEffect
       "uniform int u_Radius;              \n"+
       "uniform vec4 u_Color;              \n"+
 
-      "void main()                                                                                             \n"+
-      "  {                                                                                                     \n"+
-      "  float alpha= texture(u_ColorTexture,v_TexCoord).a * u_Weights[0];                                     \n"+
-      "  for (int i=1; i<=u_Radius; i+=1)                                                                      \n"+
-      "    {                                                                                                   \n"+
-      "    alpha += ( texture(u_ColorTexture,vec2(v_TexCoord.x,v_TexCoord.y+u_Offsets[i])).a +                 \n"+
-      "               texture(u_ColorTexture,vec2(v_TexCoord.x,v_TexCoord.y-u_Offsets[i])).a ) * u_Weights[i]; \n"+
-      "    }                                                                                                   \n"+
-      "  fragColor = vec4(u_Color.rgb,alpha);                                                                  \n"+
+      "void main()                                                                                           \n"+
+      "  {                                                                                                   \n"+
+      "  vec4 pixel = texture(u_ColorTexture,v_TexCoord) * u_Weights[0];                                     \n"+
+      "  for (int i=1; i<=u_Radius; i+=1)                                                                    \n"+
+      "    {                                                                                                 \n"+
+      "    pixel += ( texture(u_ColorTexture,vec2(v_TexCoord.x,v_TexCoord.y+u_Offsets[i])) +                 \n"+
+      "               texture(u_ColorTexture,vec2(v_TexCoord.x,v_TexCoord.y-u_Offsets[i])) ) * u_Weights[i]; \n"+
+      "    }                                                                                                 \n"+
+      "  fragColor = vec4( 0.5*(pixel.rgb+u_Color.rgb), sign(pixel.a)*u_Color.a);                            \n"+
       "  }";
 
-    mIndex1 = PostprocessEffect.register("BLUR1", glowVertex,glowFragment1);
-    mIndex2 = PostprocessEffect.register("BLUR2", glowVertex,glowFragment2);
+    mIndex1 = PostprocessEffect.register("GLOW1", glowVertex,glowFragment1);
+    mIndex2 = PostprocessEffect.register("GLOW2", glowVertex,glowFragment2);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/library/main/DistortedOutputSurface.java b/src/main/java/org/distorted/library/main/DistortedOutputSurface.java
index f471ee7..560b809 100644
--- a/src/main/java/org/distorted/library/main/DistortedOutputSurface.java
+++ b/src/main/java/org/distorted/library/main/DistortedOutputSurface.java
@@ -184,6 +184,7 @@ private String sLast="", sCurr="";
       mBuffer[j] = new DistortedFramebuffer(2,BOTH_DEPTH_STENCIL,TYPE_SYST, (int)(mWidth*mipmap), (int)(mHeight*mipmap) );
       mBuffer[j].mMipmap = mipmap;
       mBuffer[j].mNear   = mNear;  // copy mNear as well (for blitting- see PostprocessEffectBlur.apply() )
+      mBuffer[j].glClearColor(1.0f,1.0f,1.0f,0.0f);
       mipmap *= EffectQuality.MULTIPLIER;
       }
 
diff --git a/src/main/java/org/distorted/library/main/EffectQueueMatrix.java b/src/main/java/org/distorted/library/main/EffectQueueMatrix.java
index d903e0e..5f1776d 100644
--- a/src/main/java/org/distorted/library/main/EffectQueueMatrix.java
+++ b/src/main/java/org/distorted/library/main/EffectQueueMatrix.java
@@ -96,7 +96,7 @@ class EffectQueueMatrix extends EffectQueue
     float ylen = projection.mHeight*(mMaxy-mMiny)/2;
     float scale = 1.0f + marginInPixels/( xlen>ylen ? ylen:xlen );
 
-    //android.util.Log.d("scale", ""+marginInPixels+" scale= "+scale+" xlen="+xlen+" ylen="+ylen);
+    android.util.Log.d("scale", ""+marginInPixels+" scale= "+scale+" xlen="+xlen+" ylen="+ylen+" meshW="+(2*halfX)+" meshY="+(2*halfY));
 
     Matrix.scaleM(mViewMatrix, 0, scale, scale, scale);
     }
