commit 5b673c85f59dbbffe591c0b65f2248114daf1561
Author: Leszek Koltunski <leszek@distoretedandroid.org>
Date:   Tue Jun 27 15:44:41 2017 +0100

    Some progress with GLOW. Still does not look right :)

diff --git a/src/main/java/org/distorted/library/effect/PostprocessEffectGlow.java b/src/main/java/org/distorted/library/effect/PostprocessEffectGlow.java
index 8ddf4a3..7c1f4f9 100644
--- a/src/main/java/org/distorted/library/effect/PostprocessEffectGlow.java
+++ b/src/main/java/org/distorted/library/effect/PostprocessEffectGlow.java
@@ -180,6 +180,7 @@ public class PostprocessEffectGlow extends PostprocessEffect
     GLES30.glUniform1fv( mProgram1.mUniform[2] , radius+1, mOffsets,0);
     GLES30.glUniform1fv( mProgram1.mUniform[3] , radius+1, weightsCache,offset);
     GLES30.glUniform1i ( mProgram1.mUniform[4] , radius);
+    GLES30.glUniform4f ( mProgram1.mUniform[5] , uniforms[index+1], uniforms[index+2], uniforms[index+3], uniforms[index+4]);
     GLES30.glVertexAttribPointer(mProgram1.mAttribute[0], POS_DATA_SIZE, GLES30.GL_FLOAT, false, 0, mQuadPositions);
     GLES30.glVertexAttribPointer(mProgram1.mAttribute[1], TEX_DATA_SIZE, GLES30.GL_FLOAT, false, 0, mQuadTexture);
     GLES30.glDrawArrays(GLES30.GL_TRIANGLE_STRIP, 0, 4);
@@ -191,15 +192,12 @@ public class PostprocessEffectGlow extends PostprocessEffect
     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);
     GLES30.glUniform1fv( mProgram2.mUniform[3] , radius+1, weightsCache,offset);
     GLES30.glUniform1i ( mProgram2.mUniform[4] , radius);
+    GLES30.glUniform4f ( mProgram1.mUniform[5] , uniforms[index+1], uniforms[index+2], uniforms[index+3], uniforms[index+4]);
     GLES30.glVertexAttribPointer(mProgram2.mAttribute[0], POS_DATA_SIZE, GLES30.GL_FLOAT, false, 0, mQuadPositions);
     GLES30.glVertexAttribPointer(mProgram2.mAttribute[1], TEX_DATA_SIZE, GLES30.GL_FLOAT, false, 0, mQuadTexture);
     GLES30.glDrawArrays(GLES30.GL_TRIANGLE_STRIP, 0, 4);
@@ -241,16 +239,17 @@ public class PostprocessEffectGlow extends PostprocessEffect
       "uniform float u_Offsets[MAX_BLUR]; \n"+
       "uniform float u_Weights[MAX_BLUR]; \n"+
       "uniform int u_Radius;              \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 = pixel;                                                                                  \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,u_Color.a*alpha);                                                        \n"+
       "  }";
 
     final String glowFragment2 =
@@ -264,16 +263,17 @@ public class PostprocessEffectGlow extends PostprocessEffect
       "uniform float u_Offsets[MAX_BLUR]; \n"+
       "uniform float u_Weights[MAX_BLUR]; \n"+
       "uniform int u_Radius;              \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 = pixel;                                                                                  \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,u_Color.a*alpha);                                                        \n"+
       "  }";
 
     mIndex1 = PostprocessEffect.register("BLUR1", glowVertex,glowFragment1);
