#version 330

in vec2 fragTexCoord;
in vec4 fragColor;

uniform sampler2D texture0;
uniform float uSat;   // 0 = grayscale, 1 = original, >1 = boosted

out vec4 finalColor;

void main() {
    vec4 c = texture(texture0, fragTexCoord) * fragColor;

    // luminance (perceptual-ish)
    float l = dot(c.rgb, vec3(0.2126, 0.7152, 0.0722));
    vec3 gray = vec3(l);

    c.rgb = mix(gray, c.rgb, uSat);
    finalColor = c; // preserves alpha
}

