From 47ffd0e184dd3886f9e810b9ec89e2a9942014a0 Mon Sep 17 00:00:00 2001
From: Ilia Bozhinov <ammen99@gmail.com>
Date: Fri, 18 May 2018 20:05:49 +0300
Subject: gles2: pre-multiply alpha and fix blending function

---
 render/gles2/shaders.c | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

(limited to 'render/gles2/shaders.c')

diff --git a/render/gles2/shaders.c b/render/gles2/shaders.c
index b940ee53..01410d87 100644
--- a/render/gles2/shaders.c
+++ b/render/gles2/shaders.c
@@ -63,8 +63,7 @@ const GLchar tex_fragment_src_rgba[] =
 "uniform float alpha;\n"
 "\n"
 "void main() {\n"
-"	gl_FragColor.rgb = texture2D(tex, v_texcoord).rgb;\n"
-"	gl_FragColor.a = alpha * texture2D(tex, v_texcoord).a;\n"
+"	gl_FragColor = texture2D(tex, v_texcoord) * alpha;\n"
 "}\n";
 
 const GLchar tex_fragment_src_rgbx[] =
@@ -74,8 +73,7 @@ const GLchar tex_fragment_src_rgbx[] =
 "uniform float alpha;\n"
 "\n"
 "void main() {\n"
-"	gl_FragColor.rgb = texture2D(tex, v_texcoord).rgb;\n"
-"	gl_FragColor.a = alpha;\n"
+"	gl_FragColor = vec4(texture2D(tex, v_texcoord).rgb, 1.0) * alpha;\n"
 "}\n";
 
 const GLchar tex_fragment_src_external[] =
@@ -86,6 +84,5 @@ const GLchar tex_fragment_src_external[] =
 "uniform float alpha;\n"
 "\n"
 "void main() {\n"
-"	vec4 col = texture2D(texture0, v_texcoord);\n"
-"	gl_FragColor = vec4(col.rgb, col.a * alpha);\n"
+"	gl_FragColor = texture2D(texture0, v_texcoord) * alpha;\n"
 "}\n";
-- 
cgit v1.2.3