
#version 130


uniform sampler2D SamplerBGRA;
//uniform sampler2D SamplerTableTex1;
//uniform sampler2D SamplerTableTex2;
//uniform sampler2D SamplerBackTex1;
//uniform sampler2D SamplerBackTex2;

out     vec4 		outText;	// output sampler

uniform  float saturate;
uniform  float bound_l;
uniform  float strength; // effect strength, blend with source, 0 -- 1, default is 1

void main(void)
{
	 vec2 v_texCoord = gl_TexCoord[0].st;

     vec3 src, dst;
     vec3 tmp_s;
     float alpha;    
        
    src.rgb = texture2D(SamplerBGRA, v_texCoord).rgb;
    dst = src;    
        
        float lum = dst.r*0.299 + dst.g*0.587 + dst.b*0.114;
        
        lum = (lum - bound_l)/saturate;
        //set low bound to 0;
        lum = max(0.0,lum);
        lum = min(1.0,lum);

    dst = vec3(lum,lum,lum);
    outText = vec4(mix(src, dst, strength),1.0);
}