varying vec2 v_texCoord;
varying vec4 v_fragmentColor;

uniform vec3 u_targetColor;
uniform vec3 u_changeColor;
uniform sampler2D u_texture;

void main()
{
    vec4 c = texture2D(u_texture, v_texCoord);
    if (c.r != u_targetColor.r && c.g != u_targetColor.g && c.b != u_targetColor.b) {
        vec4 changeColor = vec4(u_changeColor, c.a);
        changeColor.r = changeColor.r * c.a;
        changeColor.g = changeColor.g * c.a;
        changeColor.b = changeColor.b * c.a;
        gl_FragColor = changeColor;
    }else{
        gl_FragColor = v_fragmentColor * texture2D(u_texture, v_texCoord);
    }
}
