Enlightenment CVS committal
Author : raster
Project : e17
Module : libs/edje
Dir : e17/libs/edje/src/lib
Modified Files:
Edje.h edje_load.c edje_private.h edje_smart.c edje_text.c
edje_util.c
Log Message:
global freeze/thaw. much more optimial for COMPLEX edjed that take a fair bit
of grunt to re-calculate. avoid caclulations until idle time by freezing and
thawing appropriately pre/post render
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/Edje.h,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -3 -r1.12 -r1.13
--- Edje.h 15 Jul 2003 08:26:06 -0000 1.12
+++ Edje.h 16 Jul 2003 05:15:14 -0000 1.13
@@ -10,6 +10,8 @@
void edje_init (void);
void edje_frametime_set (double t);
double edje_frametime_get (void);
+ void edje_freeze (void);
+ void edje_thaw (void);
Evas_Object *edje_object_add (Evas *evas);
void edje_object_file_set (Evas_Object *o, const char *file,
const char *part);
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_load.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -3 -r1.10 -r1.11
--- edje_load.c 15 Jul 2003 08:26:06 -0000 1.10
+++ edje_load.c 16 Jul 2003 05:15:15 -0000 1.11
@@ -32,7 +32,6 @@
Edje_Real_Part *rp;
char buf[256];
- printf("PART!\n");
ep = l->data;
rp = calloc(1, sizeof(Edje_Real_Part));
if (!rp) return;
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_private.h,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -3 -r1.30 -r1.31
--- edje_private.h 15 Jul 2003 08:26:06 -0000 1.30
+++ edje_private.h 16 Jul 2003 05:15:15 -0000 1.31
@@ -533,5 +533,6 @@
extern Ecore_Timer *_edje_timer;
extern Evas_List *_edje_animators;
extern Ejde_Text_Style _edje_text_styles[EDJE_TEXT_EFFECT_LAST];
+extern Evas_List *_edje_edjes;
#endif
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_smart.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -3 -r1.5 -r1.6
--- edje_smart.c 13 Jul 2003 06:19:09 -0000 1.5
+++ edje_smart.c 16 Jul 2003 05:15:15 -0000 1.6
@@ -18,6 +18,8 @@
static Evas_Smart *_edje_smart = NULL;
+Evas_List *_edje_edjes = NULL;
+
/* API Routines */
Evas_Object *
edje_object_add(Evas *evas)
@@ -56,6 +58,7 @@
evas_object_smart_data_set(obj, ed);
ed->obj = obj;
evas_object_smart_member_add(ed->clipper, ed->obj);
+ _edje_edjes = evas_list_append(_edje_edjes, obj);
}
static void
@@ -67,6 +70,7 @@
if (!ed) return;
_edje_clean_objects(ed);
_edje_unref(ed);
+ _edje_edjes = evas_list_remove(_edje_edjes, obj);
}
static void
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_text.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
--- edje_text.c 15 Jul 2003 02:21:58 -0000 1.3
+++ edje_text.c 16 Jul 2003 05:15:15 -0000 1.4
@@ -339,7 +339,7 @@
dif = (th - sh) / 4;
if (dif < 1) dif = 1;
- while ((th < sh) && (sw >= 0.0))
+ while ((th > sh) && (sw >= 0.0))
{
size -= dif;
evas_object_text_font_set(ep->object, font, size);
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_util.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -3 -r1.10 -r1.11
--- edje_util.c 15 Jul 2003 08:26:06 -0000 1.10
+++ edje_util.c 16 Jul 2003 05:15:15 -0000 1.11
@@ -1,6 +1,24 @@
#include "Edje.h"
#include "edje_private.h"
+void
+edje_freeze(void)
+{
+ Evas_List *l;
+
+ for (l = _edje_edjes; l; l = l->next)
+ edje_object_freeze((Evas_Object *)(l->data));
+}
+
+void
+edje_thaw(void)
+{
+ Evas_List *l;
+
+ for (l = _edje_edjes; l; l = l->next)
+ edje_object_thaw((Evas_Object *)(l->data));
+}
+
int
edje_object_freeze(Evas_Object *obj)
{
@@ -424,7 +442,8 @@
_edje_thaw(Edje *ed)
{
ed->freeze--;
- if ((ed->freeze <= 0) && (ed->recalc))
+ if (ed->freeze < 0) ed->freeze = 0;
+ if ((ed->freeze == 0) && (ed->recalc))
_edje_recalc(ed);
return ed->freeze;
}
-------------------------------------------------------
This SF.net email is sponsored by: VM Ware
With VMware you can run multiple operating systems on a single machine.
WITHOUT REBOOTING! Mix Linux / Windows / Novell virtual machines at the
same time. Free trial click here: http://www.vmware.com/wl/offer/345/0
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs