diff --git a/ChangeLog b/ChangeLog index ec37b2ac40..6bcd3a67fb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2013-05-10 ChunEon Park (Hermet) + + * Evas: don't try blend on gl backened if the render option is COPY + 2013-05-08 Mike Blumenkrantz * Edje: fix custom states for proxy parts diff --git a/NEWS b/NEWS index 9531e032ed..1f5c49a85e 100644 --- a/NEWS +++ b/NEWS @@ -264,3 +264,4 @@ Fixes: * Evas: Fix gif loader can't load image which has normal frames and error frames * Ecore_Input_Evas: Fix ecore_input_evas didn't check the device id of mouse event * Edje: fix custom states for proxy parts + * Evas: Don't try blend on gl backened if the render option is COPY diff --git a/src/modules/evas/engines/gl_common/evas_gl_context.c b/src/modules/evas/engines/gl_common/evas_gl_context.c index 4634aa91ac..6c9d4efa08 100644 --- a/src/modules/evas/engines/gl_common/evas_gl_context.c +++ b/src/modules/evas/engines/gl_common/evas_gl_context.c @@ -1537,12 +1537,12 @@ evas_gl_common_context_image_push(Evas_Engine_GL_Context *gc, { int pnum, nv, nc, nu, ns, i; GLfloat tx1, tx2, ty1, ty2; - Eina_Bool blend = 1; + Eina_Bool blend = EINA_TRUE; GLuint prog = gc->shared->shader[SHADER_IMG].prog; int pn = 0, sam = 0; - if (!tex->alpha) blend = 0; - if (a < 255) blend = 1; + if ((gc->dc->render_op == EVAS_RENDER_COPY) || + ((a == 255) && (!tex->alpha))) blend = EINA_FALSE; if (gc->filter_prog) { @@ -2288,7 +2288,7 @@ evas_gl_common_context_image_map_push(Evas_Engine_GL_Context *gc, const int points[6] = { 0, 1, 2, 0, 2, 3 }; int x = 0, y = 0, w = 0, h = 0, px = 0, py = 0; GLfloat tx[4], ty[4], t2x[4], t2y[4]; - Eina_Bool blend = 1; + Eina_Bool blend = EINA_TRUE; DATA32 cmul; GLuint prog = gc->shared->shader[SHADER_IMG].prog; Eina_Bool utexture = EINA_FALSE; @@ -2296,8 +2296,9 @@ evas_gl_common_context_image_map_push(Evas_Engine_GL_Context *gc, int pn = 0; int flat = 0; - if (!tex->alpha) blend = 0; - if (a < 255) blend = 1; + if ((gc->dc->render_op == EVAS_RENDER_COPY) || + ((a == 255) && (!tex->alpha))) blend = EINA_FALSE; + if (npoints != 4) { // FIXME: nash - you didn't fix this for n points. its still all