varying vec2 v_texCoord;
uniform float u_CurrentTime;
uniform float u_ChangeTime;
uniform vec4 u_overlayColor;
uniform float u_frameInterval;
uniform int u_CurrentFrame;
uniform int CC_TotalFrame;
uniform sampler2D u_texture;

void main()
{
    vec4 c = texture2D(u_texture, v_texCoord);
    int pastFrame = CC_TotalFrame - u_CurrentFrame;
    if(pastFrame < 0){
        pastFrame = 0;
    }
    float pastFrameF = float(pastFrame);
    float pastSec = pastFrameF * u_frameInterval;
    float per = pastSec / u_ChangeTime;
//    float per = (CC_Time[1] - u_CurrentTime) / u_ChangeTime;
    float alpha = u_overlayColor.a;
    vec3 blue = u_overlayColor.rgb;
    alpha = alpha + per;
    if(alpha > 1.0){
        alpha = 1.0;
    }
    vec4 newColor = vec4(alpha * c.rgb + (1.0 - alpha) * blue.rgb, c.a);
    newColor.rgb = newColor.rgb * c.a;
    if (c.a > 0.0) {
        gl_FragColor = newColor;
    }else{
        gl_FragColor = c;
    }
}
