// https://github.com/paulhoux/Cinder-Samples/tree/master/BloomingNeon

#version 150
precision mediump float;

uniform mat4 ark_ModelViewMatrix;
uniform mat4 ark_ProjectionMatrix;

uniform sampler2D ark_TextureId;
uniform vec2 ark_SampleOffset;
uniform float ark_Attenuation;

in vec2 ark_VertexTexCoordOut;
in vec4 ark_VertexColorOut;

out vec4 ark_FragColor;

void main (void)
{
	vec2 uv = ark_VertexTexCoordOut.xy;// / vec2(1024, 512);
	
	vec3 sum = vec3( 0.0, 0.0, 0.0 );	
	sum += texture( ark_TextureId, uv + -10.0 * ark_SampleOffset ).rgb * 0.009167927656011385;
	sum += texture( ark_TextureId, uv +  -9.0 * ark_SampleOffset ).rgb * 0.014053461291849008;
	sum += texture( ark_TextureId, uv +  -8.0 * ark_SampleOffset ).rgb * 0.020595286319257878;
	sum += texture( ark_TextureId, uv +  -7.0 * ark_SampleOffset ).rgb * 0.028855245532226279;
	sum += texture( ark_TextureId, uv +  -6.0 * ark_SampleOffset ).rgb * 0.038650411513543079;
	sum += texture( ark_TextureId, uv +  -5.0 * ark_SampleOffset ).rgb * 0.049494378859311142;
	sum += texture( ark_TextureId, uv +  -4.0 * ark_SampleOffset ).rgb * 0.060594058578763078;
	sum += texture( ark_TextureId, uv +  -3.0 * ark_SampleOffset ).rgb * 0.070921288047096992;
	sum += texture( ark_TextureId, uv +  -2.0 * ark_SampleOffset ).rgb * 0.079358891804948081;
	sum += texture( ark_TextureId, uv +  -1.0 * ark_SampleOffset ).rgb * 0.084895951965930902;
	sum += texture( ark_TextureId, uv +   0.0 * ark_SampleOffset ).rgb * 0.086826196862124602;
	sum += texture( ark_TextureId, uv +  +1.0 * ark_SampleOffset ).rgb * 0.084895951965930902;
	sum += texture( ark_TextureId, uv +  +2.0 * ark_SampleOffset ).rgb * 0.079358891804948081;
	sum += texture( ark_TextureId, uv +  +3.0 * ark_SampleOffset ).rgb * 0.070921288047096992;
	sum += texture( ark_TextureId, uv +  +4.0 * ark_SampleOffset ).rgb * 0.060594058578763078;
	sum += texture( ark_TextureId, uv +  +5.0 * ark_SampleOffset ).rgb * 0.049494378859311142;
	sum += texture( ark_TextureId, uv +  +6.0 * ark_SampleOffset ).rgb * 0.038650411513543079;
	sum += texture( ark_TextureId, uv +  +7.0 * ark_SampleOffset ).rgb * 0.028855245532226279;
	sum += texture( ark_TextureId, uv +  +8.0 * ark_SampleOffset ).rgb * 0.020595286319257878;
	sum += texture( ark_TextureId, uv +  +9.0 * ark_SampleOffset ).rgb * 0.014053461291849008;
	sum += texture( ark_TextureId, uv + +10.0 * ark_SampleOffset ).rgb * 0.009167927656011385;

	vec4 tempColor = vec4(0.0, 0.0, 0.0, 0.0);
	tempColor.rgb = sum * ark_Attenuation;
	tempColor.a = 1.0;

	ark_FragColor = tempColor * ark_VertexColorOut;
}