Enlightenment CVS committal Author : raster Project : e17 Module : libs/ecore
Dir : e17/libs/ecore/src/lib/ecore_evas Modified Files: Tag: SPLIT Ecore_Evas.h ecore_evas.c ecore_evas_private.h Log Message: optimize this.... BIATCH! =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore_evas/Attic/Ecore_Evas.h,v retrieving revision 1.1.2.8 retrieving revision 1.1.2.9 diff -u -3 -r1.1.2.8 -r1.1.2.9 --- Ecore_Evas.h 9 Feb 2003 00:41:46 -0000 1.1.2.8 +++ Ecore_Evas.h 9 Feb 2003 02:27:49 -0000 1.1.2.9 @@ -27,7 +27,7 @@ void ecore_evas_callback_delete_request_set(Ecore_Evas *ee, void (*func) (Ecore_Evas *ee)); void ecore_evas_callback_destroy_set(Ecore_Evas *ee, void (*func) (Ecore_Evas *ee)); void ecore_evas_callback_focus_in_set(Ecore_Evas *ee, void (*func) (Ecore_Evas *ee)); - void fecore_evas_callback_focus_out_set(Ecore_Evas *ee, void (*func) (Ecore_Evas *ee)); + void ecore_evas_callback_focus_out_set(Ecore_Evas *ee, void (*func) +(Ecore_Evas *ee)); void ecore_evas_callback_mouse_in_set(Ecore_Evas *ee, void (*func) (Ecore_Evas *ee)); void ecore_evas_callback_mouse_out_set(Ecore_Evas *ee, void (*func) (Ecore_Evas *ee)); Evas *ecore_evas_get(Ecore_Evas *ee); =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore_evas/Attic/ecore_evas.c,v retrieving revision 1.1.2.8 retrieving revision 1.1.2.9 diff -u -3 -r1.1.2.8 -r1.1.2.9 --- ecore_evas.c 9 Feb 2003 00:41:46 -0000 1.1.2.8 +++ ecore_evas.c 9 Feb 2003 02:27:50 -0000 1.1.2.9 @@ -227,8 +227,18 @@ if (!ee) return 1; /* pass on event */ if (ee->prop.avoid_damage) { - ecore_x_pixmap_paste(ee->x11.pmap, ee->x11.win, ee->x11.gc, - e->x, e->y, e->w, e->h, e->x, e->y); + XRectangle xr; + Region tmpr; + + if (!ee->x11.damages) ee->x11.damages = XCreateRegion(); + tmpr = XCreateRegion(); + xr.x = e->x; + xr.y = e->y; + xr.width = e->w; + xr.height = e->h; + XUnionRectWithRegion(&xr, ee->x11.damages, tmpr); + XDestroyRegion(ee->x11.damages); + ee->x11.damages = tmpr; } else evas_damage_rectangle_add(ee->evas, e->x, e->y, e->w, e->h); @@ -349,14 +359,27 @@ Evas_List *updates, *l; updates = evas_render_updates(ee->evas); + if (!ee->x11.damages) ee->x11.damages = XCreateRegion(); for (l = updates; l; l = l->next) { Evas_Rectangle *r; + XRectangle xr; + Region tmpr; r = l->data; - ecore_x_pixmap_paste(ee->x11.pmap, ee->x11.win, ee->x11.gc, - r->x, r->y, r->w, r->h, r->x, r->y); + tmpr = XCreateRegion(); + xr.x = r->x; + xr.y = r->y; + xr.width = r->w; + xr.height = r->h; + XUnionRectWithRegion(&xr, ee->x11.damages, tmpr); + ee->x11.damages = tmpr; } + XSetRegion(ecore_x_display_get(), ee->x11.gc, ee->x11.damages); + ecore_x_pixmap_paste(ee->x11.pmap, ee->x11.win, ee->x11.gc, + 0, 0, ee->w, ee->h, 0, 0); + XDestroyRegion(ee->x11.damages); + ee->x11.damages = 0; if ((ee->shaped) && (updates)) { if (ee->prop.fullscreen) @@ -399,6 +422,7 @@ if (ee->x11.pmap) ecore_x_pixmap_del(ee->x11.pmap); if (ee->x11.mask) ecore_x_pixmap_del(ee->x11.mask); if (ee->x11.gc) ecore_x_gc_del(ee->x11.gc); + if (ee->x11.damages) XDestroyRegion(ee->x11.damages); } /** @@ -659,7 +683,6 @@ else { if (ee->x11.mask) ecore_x_pixmap_del(ee->x11.mask); - if (ee->x11.gcm) ecore_x_gc_del(ee->x11.gcm); ee->x11.mask = 0; einfo->info.mask = 0; evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo); =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore_evas/Attic/ecore_evas_private.h,v retrieving revision 1.1.2.6 retrieving revision 1.1.2.7 diff -u -3 -r1.1.2.6 -r1.1.2.7 --- ecore_evas_private.h 9 Feb 2003 00:41:46 -0000 1.1.2.6 +++ ecore_evas_private.h 9 Feb 2003 02:27:50 -0000 1.1.2.7 @@ -3,6 +3,7 @@ #include <Evas.h> #include <Evas_Engine_Software_X11.h> +#include <X11/Xutil.h> typedef struct _Ecore_Evas Ecore_Evas; @@ -66,7 +67,7 @@ Pixmap pmap; Pixmap mask; GC gc; - GC gcm; + Region damages; } x11; }; ------------------------------------------------------- This SF.NET email is sponsored by: SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See! http://www.vasoftware.com _______________________________________________ enlightenment-cvs mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs