#ifdef GL_ES
    precision lowp float;
#endif

varying vec4 v_fragmentColor;
varying vec2 v_texCoord;

void main()
{
    vec4 texColor = texture2D(CC_Texture0, v_texCoord);
    texColor.a = texture2D(CC_Texture1, v_texCoord).r;
    texColor.rgb *= texColor.a; // premultiply alpha channel
    
    texColor = v_fragmentColor * texColor;
    
    float grey = dot(texColor.rgb, vec3(0.299, 0.587, 0.114));
	float alpha = v_fragmentColor.a;
	gl_FragColor = vec4(grey * alpha, grey * alpha, grey * alpha, texColor.a * alpha);
}

