#version 330 core

out vec4 fragColor;

in vec2 texCoord;

uniform sampler2D tex;
uniform sampler2D prev_pass_tex;

uniform bool vertical = false;

void main()
{
    vec2 offset = 1.0 / textureSize(tex, 0);
    if (vertical) offset.x = 0.0;
    else offset.y = 0.0;

    vec4 sum = texture(prev_pass_tex, texCoord);

    sum += texture(tex, texCoord - 4.0 * offset) * 0.0162162162;
    sum += texture(tex, texCoord - 3.0 * offset) * 0.0540540541;
    sum += texture(tex, texCoord - 2.0 * offset) * 0.1216216216;
    sum += texture(tex, texCoord - 1.0 * offset) * 0.1945945946;

    sum += texture(tex, texCoord) * 0.2270270270;

    sum += texture(tex, texCoord + 1.0 * offset) * 0.1945945946;
	sum += texture(tex, texCoord + 2.0 * offset) * 0.1216216216;
	sum += texture(tex, texCoord + 3.0 * offset) * 0.0540540541;
	sum += texture(tex, texCoord + 4.0 * offset) * 0.0162162162;

    fragColor = sum;
}