#ifdef GL_ES
precision lowp float;
#endif

varying vec2 v_texCoord;
uniform vec3 hightlight_color;

vec4 composite(vec4 over, vec4 under){
     return over + (1.0 - over.a)*under;
}

void main(){
    vec2 shadowOffset =vec2(-0.16, -0.04);
    vec4 textureColor = texture2D(CC_Texture0,v_texCoord );
    float shadowMask = texture2D(CC_Texture0,v_texCoord +shadowOffset ).a;
    const float shadowOpacity = 0.3;
    vec4 shadowColor = vec4(0,0,0,shadowMask*shadowOpacity);
    gl_FragColor = composite(textureColor,shadowColor);

    if(hightlight_color.r == 0.0)
    if(hightlight_color.g == 0.0)
    if(hightlight_color.b == 0.0)
    	return;

	vec4 normalColor = gl_FragColor;
//	float grey = dot(normalColor.rgb, vec3(0.299, 0.587, 0.114));
//	gl_FragColor = vec4(grey * hightlight_color, normalColor.a);

    gl_FragColor = vec4(normalColor.rgb * hightlight_color, normalColor.a);
}