diff --git a/legacy/evas/src/modules/engines/gl_common/evas_gl_context.c b/legacy/evas/src/modules/engines/gl_common/evas_gl_context.c index d9c74ee103..5fe6961fa3 100644 --- a/legacy/evas/src/modules/engines/gl_common/evas_gl_context.c +++ b/legacy/evas/src/modules/engines/gl_common/evas_gl_context.c @@ -703,13 +703,6 @@ shader_array_flush(Evas_GL_Context *gc) glActiveTexture(GL_TEXTURE0); glBindTexture(GL_TEXTURE_2D, gc->shader.cur_tex); } - if (gc->shader.blend != gc->shader.current.blend) - { - if (gc->shader.blend) - glEnable(GL_BLEND); - else - glDisable(GL_BLEND); - } if (gc->shader.render_op != gc->shader.current.render_op) { switch (gc->shader.render_op) @@ -718,7 +711,7 @@ shader_array_flush(Evas_GL_Context *gc) glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA); break; case EVAS_RENDER_COPY: /**< d = s */ - glDisable(GL_BLEND); + gc->shader.blend = 0; glBlendFunc(GL_ONE, GL_ONE); break; // FIXME: fix blend funcs below! @@ -737,6 +730,13 @@ shader_array_flush(Evas_GL_Context *gc) break; } } + if (gc->shader.blend != gc->shader.current.blend) + { + if (gc->shader.blend) + glEnable(GL_BLEND); + else + glDisable(GL_BLEND); + } if (gc->shader.smooth != gc->shader.current.smooth) { if (gc->shader.smooth)