#import "Common/ShaderLib/Hdr.glsllib"

varying vec2 texCoord;

uniform sampler2D m_Texture;
uniform sampler2D m_Lum;
uniform sampler2D m_Lum2;

uniform float m_A;
uniform float m_White;
uniform float m_BlendFactor;
uniform float m_Gamma;

void main() {
    float avgLumA = HDR_DecodeLum( texture2D(m_Lum, vec2(0.0)) );
    float avgLumB = HDR_DecodeLum( texture2D(m_Lum2, vec2(0.0)) );
    float lerpedLum = mix(avgLumA, avgLumB, m_BlendFactor);

    vec4 color = texture2D(m_Texture, texCoord);
    vec3 c1 = HDR_ToneMap(color.rgb, lerpedLum, m_A, m_White);
    //vec3 c2 = HDR_ToneMap2(color.rgb, lerpedLum, m_A * vec2(0.25), m_White);

    //float l1 = HDR_GetLuminance(c1);
    //float l2 = HDR_GetLuminance(c2);

    //vec3 final = mix(c2, c1, clamp(l1, 0.0, 1.0));

    //tonedColor = pow(tonedColor, vec3(m_Gamma));
    gl_FragColor = vec4(c1, color.a);
}

