From daf12fef10a7dfecd76ab3f87faf3c1dd6070485 Mon Sep 17 00:00:00 2001 From: Taylor Richards Date: Thu, 30 Jun 2016 13:35:05 -0400 Subject: [PATCH] fix aabitmap blending issues in GL2 --- src/graphics/grgl2.cpp | 2 +- src/graphics/grgl2shader.cpp | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/graphics/grgl2.cpp b/src/graphics/grgl2.cpp index 23eadf9..c11c613 100644 --- a/src/graphics/grgl2.cpp +++ b/src/graphics/grgl2.cpp @@ -50,7 +50,7 @@ void opengl2_set_state(gr_texture_source ts, gr_alpha_blend ab, gr_zbuffer_type glBlendFunc(GL_SRC_ALPHA, GL_ONE); break; case ALPHA_BLEND_ALPHA_BLEND_ALPHA: // Alpha*SrcPixel + (1-Alpha)*DestPixel - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ONE_MINUS_SRC_ALPHA); break; case ALPHA_BLEND_ALPHA_BLEND_SRC_COLOR: // Alpha*SrcPixel + (1-SrcPixel)*DestPixel glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_COLOR); diff --git a/src/graphics/grgl2shader.cpp b/src/graphics/grgl2shader.cpp index 02ffe02..0da9626 100644 --- a/src/graphics/grgl2shader.cpp +++ b/src/graphics/grgl2shader.cpp @@ -118,7 +118,8 @@ static const char f_aabitmap_src[] = "varying vec2 texCoordVar;\n" "void main()\n" "{\n" - " gl_FragColor = colorVar * texture2D(texture, texCoordVar).a;\n" + " float alpha1 = texture2D(texture, texCoordVar).a;\n" + " gl_FragColor = vec4(colorVar.rgb, mix(0.0, colorVar.a, alpha1));\n" "}\n"; static const char f_color_src[] = -- 2.39.2