#version 140

uniform sampler2D sampler;
uniform vec4 modulation;
uniform float saturation;

in vec2 varyingTexCoords;

out vec4 fragColor;

void main()
{
    vec4 tex = texture(sampler, varyingTexCoords);

    if (saturation != 1.0) {
        tex.rgb = mix(vec3(dot(vec3(0.30, 0.59, 0.11), tex.rgb)), tex.rgb, saturation);
    }

    tex *= modulation;

#ifdef KWIN_SHADER_DEBUG
    tex.g = min(tex.g + 0.5, 1.0);
#endif

    fragColor = tex;
}