From: ronag Date: Wed, 9 Nov 2011 14:29:17 +0000 (+0000) Subject: 2.0.2: image_mixer: Fixed blending modes. Use straight alpha in calculations. X-Git-Tag: 2.0.0.2~2 X-Git-Url: https://git.sesse.net/?p=casparcg;a=commitdiff_plain;h=bb950f407ae396399427f3d35af388dfc666d7b5 2.0.2: image_mixer: Fixed blending modes. Use straight alpha in calculations. git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/branches/2.0.0.2@1551 362d55ac-95cf-4e76-9f9a-cbaa9c17b72d --- diff --git a/core/mixer/image/image_shader.cpp b/core/mixer/image/image_shader.cpp index 6d89630c2..f6a81cb83 100644 --- a/core/mixer/image/image_shader.cpp +++ b/core/mixer/image/image_shader.cpp @@ -69,16 +69,14 @@ std::string get_blend_color_func() " \n" "vec4 blend(vec4 fore) \n" "{ \n" - " vec4 back = texture2D(background, gl_TexCoord[1].st).bgra; \n" - " fore.rgb = get_blend_color(back.rgb, fore.rgb); \n" - " \n" - " switch(keyer) \n" - " { \n" - " case 0: return fore + (1.0-fore.a)*back; // linear \n" - " case 1: return fore + back; // additive \n" + " vec4 back = texture2D(background, gl_TexCoord[1].st).bgra; \n" + " if(blend_mode != 0) \n" + " fore.rgb = get_blend_color(back.rgb/(back.a+0.0000001), fore.rgb/(fore.a+0.0000001))*fore.a;\n" + " switch(keyer) \n" + " { \n" + " case 1: return fore + back; // additive \n" + " default: return fore + (1.0-fore.a)*back; // linear \n" " } \n" - " \n" - " return fore + (1.0-fore.a)*back; \n" "} \n"; }