varying vec2 v_texCoord;
uniform vec4 u_overlayColor;
uniform sampler2D u_texture;

void main()
{
    vec4 c = texture2D(u_texture, v_texCoord);
    vec3 overlay = vec3(u_overlayColor.rgb * u_overlayColor.a);
    vec4 newColor = vec4(c.rgb * (1.0 - u_overlayColor.a) + overlay.rgb, c.a);
    newColor.rgb = newColor.rgb * c.a;
    if (c.a == 0.0) {
        gl_FragColor = c;
    }else{
        gl_FragColor = newColor;
    }
}
