#version 100
precision mediump int;
precision mediump float;

//-------------------------------
//BrightBloom_ps20.glsles
// High-pass filter for obtaining luminance
// We use an approximation formula that is pretty fast:
//   f(x) = ( -3 * ( x - 1 )^2 + 1 ) * 2
//   Color += Grayscale( f(Color) ) + 0.6
//
// Special thanks to ATI for their great HLSL2GLSL utility
//     http://sourceforge.net/projects/hlsl2glsl
//-------------------------------

uniform sampler2D RT;
varying vec2 uv0;

void main()
{
    vec4 tex;
    vec4 bright4;
    float bright;

    tex = texture2D(RT, uv0);
    tex -= 1.00000;
    bright4 = -6.00000 * tex * tex + 2.00000;
    bright = dot( bright4, vec4( 0.333333, 0.333333, 0.333333, 0.000000) );
    tex += (bright + 0.600000);

    gl_FragColor = tex;
}
