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