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

Reply via email to