From 32d27493d697d53aa14f999ef6999b34cd95d992 Mon Sep 17 00:00:00 2001 From: cedric Date: Fri, 14 Aug 2009 17:17:01 +0000 Subject: [PATCH] * evas: Fix two render bugs : - Forgot to reset clip before drawing cleanup rect. - Always draw a rect to reset the background, just choose a correct color. Note: This will slow down software_x11 engine, as this engine always do memset, so it does it twice. Before only the alpha case was impacted, now both case are. Need time to fix it. If someone has, don't hesitate :-) You can use elementary windows state test, to see if thing is going correctly or not. For the record, SDL engine has a score around 500 under X11 on my computer, where the X11 engine does only have a score around 450. git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@41770 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- src/lib/canvas/evas_render.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/lib/canvas/evas_render.c b/src/lib/canvas/evas_render.c index 55bc090..bdb4be9 100644 --- a/src/lib/canvas/evas_render.c +++ b/src/lib/canvas/evas_render.c @@ -444,7 +444,7 @@ evas_render_updates_internal(Evas *e, unsigned char make_updates, unsigned char eina_array_push(&e->temporary_objects, obj); /* reset the background of the area if needed (using cutout and engine alpha flag to help) */ - if (alpha) +/* if (alpha) */ { if (evas_object_is_opaque(obj)) e->engine.func->context_cutout_add(e->engine.data.output, @@ -479,9 +479,12 @@ evas_render_updates_internal(Evas *e, unsigned char make_updates, unsigned char } } } - if (alpha) +/* if (alpha) */ { - e->engine.func->context_color_set(e->engine.data.output, e->engine.data.context, 0, 0, 0, 0); + e->engine.func->context_clip_set(e->engine.data.output, + e->engine.data.context, + ux, uy, uw, uh); + e->engine.func->context_color_set(e->engine.data.output, e->engine.data.context, 0, 0, 0, alpha ? 0 : 255); e->engine.func->context_multiplier_unset(e->engine.data.output, e->engine.data.context); e->engine.func->context_render_op_set(e->engine.data.output, e->engine.data.context, EVAS_RENDER_COPY); e->engine.func->rectangle_draw(e->engine.data.output, -- 2.7.4