X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=accelerator%2Fogl%2Fimage%2Fblending_glsl.h;h=326e6f7153044b4afaaf84e67882ea2a89592107;hb=0eab6d7ef8ee618924b4aac7c86f6f1b78d19fc5;hp=7d82f7c6d383aca7aa7e1f90035f6cb103065b0a;hpb=91d1217ae51579f9a2cd298d4395ae49bbe911d3;p=casparcg diff --git a/accelerator/ogl/image/blending_glsl.h b/accelerator/ogl/image/blending_glsl.h index 7d82f7c6d..326e6f715 100644 --- a/accelerator/ogl/image/blending_glsl.h +++ b/accelerator/ogl/image/blending_glsl.h @@ -30,7 +30,7 @@ static std::string get_adjustement_glsl() ** http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?t=21057 */ - vec3 ContrastSaturationBrightness(vec3 color, float brt, float sat, float con) + vec3 ContrastSaturationBrightness(vec4 color, float brt, float sat, float con) { const float AvgLumR = 0.5; const float AvgLumG = 0.5; @@ -40,11 +40,17 @@ static std::string get_adjustement_glsl() ? vec3(0.0722, 0.7152, 0.2126) : vec3(0.114, 0.587, 0.299); + if (color.a > 0.0) + color.rgb /= color.a; + vec3 AvgLumin = vec3(AvgLumR, AvgLumG, AvgLumB); - vec3 brtColor = color * brt; + vec3 brtColor = color.rgb * brt; vec3 intensity = vec3(dot(brtColor, LumCoeff)); vec3 satColor = mix(intensity, brtColor, sat); vec3 conColor = mix(AvgLumin, satColor, con); + + conColor.rgb *= color.a; + return conColor; }