Revision control
++ VARYING vec2 TexCoord0;
++ VARYING vec2 TexCoord1;
++ VARYING vec2 TexCoord2;
++
++ #define WT3_0 1.0
++ #define WT3_1 0.6
++ #define WT3_NORMALIZE (WT3_0+2.0*(WT3_1))
++
++ vec4 gaussianBlur3TapPremultiplied( sampler2D inSampler )
++ {
++ vec4 OutCol = vec4(0.0);
++ OutCol += texture(inSampler, TexCoord0) * ( WT3_1/WT3_NORMALIZE );
++ OutCol += texture(inSampler, TexCoord1) * ( WT3_0/WT3_NORMALIZE );
++ OutCol += texture(inSampler, TexCoord2) * ( WT3_1/WT3_NORMALIZE );
++ return OutCol;
++ }
++
++ void MAIN()
++ {
++ vec4 src = texture(INPUT, INPUT_UV);
++
++ float trailfade = 1.0 - fadeAmount;
++ vec4 outCol = gaussianBlur3TapPremultiplied(glowSampler) * trailfade;
++
++ // Change the color so that it looks different; saturate it a bit
++ float srcSum = dot(vec3(1.0), src.rgb);
++ src.rgb = src.rgb * 0.7 + vec3(srcSum) * 0.3;
++ FRAGCOLOR.rgb = (1.0 - src.a) * outCol.rgb + src.rgb;
++ FRAGCOLOR.a = src.a + outCol.a;
++ }