Enlightenment CVS committal

Author  : kwo
Project : e16
Module  : e

Dir     : e16/e/src


Modified Files:
        desktops.c desktops.h ecompmgr.c 


Log Message:
Go back to using single unredirected root background window (speeds up
 composite considerably).

===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/desktops.c,v
retrieving revision 1.216
retrieving revision 1.217
diff -u -3 -r1.216 -r1.217
--- desktops.c  7 Jan 2006 07:20:57 -0000       1.216
+++ desktops.c  8 Jan 2006 23:44:13 -0000       1.217
@@ -449,7 +449,7 @@
    if (desk == 0)
      {
        desks.current = dsk;
-#if 0                          /* TBD - Use per virtual root bg window? */
+#if !USE_BG_WIN_ON_ALL_DESKS   /* TBD - Use per virtual root bg window? */
        /* Add background window */
        eo = EobjWindowCreate(EOBJ_TYPE_MISC_NR, 0, 0, VRoot.w, VRoot.h,
                              0, "Root-bg");
@@ -474,6 +474,7 @@
        HintsSetRootInfo(EoGetWin(dsk), None, 0);
      }
 
+#if USE_BG_WIN_ON_ALL_DESKS    /* TBD - Use per virtual root bg window? */
    /* Add background window */
    Esnprintf(buf, sizeof(buf), "Desk-bg-%d", desk);
    eo = EobjWindowCreate(EOBJ_TYPE_MISC, 0, 0, VRoot.w, VRoot.h, 0, buf);
@@ -481,9 +482,9 @@
    eo->fade = eo->shadow = 0;
    EobjReparent(eo, EoObj(dsk), 0, 0);
    EobjSetLayer(eo, 0);
-   EobjMap(eo, 1);
    dsk->bg.o = eo;
    EventCallbackRegister(EobjGetWin(eo), 0, DeskHandleEvents, dsk);
+#endif
 
    HintsSetRootHints(EoGetWin(dsk));
 
@@ -552,6 +553,11 @@
 {
    Window              win;
 
+   if (EventDebug(EDBUG_TYPE_DESKS))
+      Eprintf("DeskBackgroundConfigure %d %#lx v=%d - %#lx %#lx %#lx\n",
+             dsk->num, EoGetWin(dsk), dsk->viewable,
+             EobjGetWin(dsk->bg.o), dsk->bg.pmap, dsk->bg.pixel);
+
    if (dsk->bg.o != EoObj(dsk))
      {
        if (dsk->bg.bg)
@@ -569,7 +575,7 @@
 
    if (dsk->viewable)
      {
-#if 0                          /* FIXME - Remove? */
+#if !USE_BG_WIN_ON_ALL_DESKS
        if (ECompMgrDeskConfigure(dsk))
          {
             ESetWindowBackgroundPixmap(win, None);
@@ -1325,6 +1331,9 @@
    ActionsResume();
 
    ModulesSignal(ESIGNAL_DESK_SWITCH_DONE, NULL);
+
+   if (EventDebug(EDBUG_TYPE_DESKS))
+      Eprintf("DeskGoto %d done\n", dsk->num);
 }
 
 static void
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/desktops.h,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -3 -r1.20 -r1.21
--- desktops.h  7 Jan 2006 07:20:57 -0000       1.20
+++ desktops.h  8 Jan 2006 23:44:13 -0000       1.21
@@ -24,6 +24,8 @@
 #ifndef _DESKTOPS_H_
 #define _DESKTOPS_H_
 
+#define USE_BG_WIN_ON_ALL_DESKS 0
+
 #include "eobj.h"
 
 typedef struct _desk Desk;
===================================================================
RCS file: /cvsroot/enlightenment/e16/e/src/ecompmgr.c,v
retrieving revision 1.92
retrieving revision 1.93
diff -u -3 -r1.92 -r1.93
--- ecompmgr.c  7 Jan 2006 07:20:57 -0000       1.92
+++ ecompmgr.c  8 Jan 2006 23:44:14 -0000       1.93
@@ -478,7 +478,7 @@
    XRenderFreePicture(disp, pict);
 }
 
-#if 0                          /* FIXME - Remove? */
+#if !USE_BG_WIN_ON_ALL_DESKS
 /*
  * Desk background
  */
@@ -501,16 +501,6 @@
       return 1;
    cw = eo->cmhook;
 
-#if 0
-   if (!cw)
-     {
-       ECompMgrWinNew(eo);
-       cw = eo->cmhook;
-       if (!cw)
-          return 0;
-     }
-#endif
-
    if (!dsk->viewable)
      {
        ECompMgrWinInvalidate(eo, INV_PICTURE);
@@ -1590,23 +1580,20 @@
 
    EventCallbackUnregister(eo->win, 0, ECompMgrHandleWindowEvent, eo);
 
-   if (!eo->noredir)
-     {
-       if (!eo->gone && Conf_compmgr.mode == ECM_MODE_WINDOW)
-          XCompositeUnredirectWindow(disp, eo->win, CompositeRedirectManual);
-     }
-
-   ECompMgrWinInvalidate(eo, INV_ALL);
-
    if (!eo->gone)
-     {
-       if (cw->picture != None)
-          XRenderFreePicture(disp, cw->picture);
+      ECompMgrWinInvalidate(eo, INV_PICTURE);
 
+   if (!eo->noredir && !eo->gone)
+     {
        if (cw->damage != None)
           XDamageDestroy(disp, cw->damage);
+
+       if (Conf_compmgr.mode == ECM_MODE_WINDOW)
+          XCompositeUnredirectWindow(disp, eo->win, CompositeRedirectManual);
      }
 
+   ECompMgrWinInvalidate(eo, INV_ALL);
+
    _EFREE(eo->cmhook);
 
    _ECM_SET_STACK_CHANGED();
@@ -1776,7 +1763,7 @@
                  eo_prev = eo2;
               }
 
-#if 1                          /* TBD - Only if using per desk bg overlay */
+#if USE_BG_WIN_ON_ALL_DESKS    /* Only if using per desk bg overlay */
             /* FIXME - We should break when the clip region becomes empty */
             if (eo->x == 0 && eo->y == 0)
                stop = 1;
@@ -1823,7 +1810,7 @@
             break;
          }
 
-#if 0                          /* TBD - Not if using per desk bg overlay */
+#if !USE_BG_WIN_ON_ALL_DESKS   /* Not if using per desk bg overlay */
        /* FIXME - We should break when the clip region becomes empty */
        if (eo->type == EOBJ_TYPE_DESK && eo->x == 0 && eo->y == 0)
           stop = 1;
@@ -1973,7 +1960,7 @@
 
    D2printf("ECompMgrRepaint rootBuffer=%#lx rootPicture=%#lx\n",
            rootBuffer, rootPicture);
-   if (EventDebug(EDBUG_TYPE_COMPMGR3))
+   if (EventDebug(EDBUG_TYPE_COMPMGR))
       ERegionShow("allDamage", region);
 
    if (!rootBuffer)
@@ -2148,6 +2135,8 @@
       return;
    Conf_compmgr.enable = Mode_compmgr.active = 1;
 
+   EGrabServer();
+
    pa.subwindow_mode = IncludeInferiors;
    pictfmt = XRenderFindVisualFormat(disp, VRoot.vis);
    rootPicture =
@@ -2186,10 +2175,12 @@
           ECompMgrWinMap(lst[i]);
      }
 
-#if 0                          /* FIXME - Remove? */
+#if !USE_BG_WIN_ON_ALL_DESKS
    DesksBackgroundRefresh(NULL);
-   _ECM_SET_CLIP_CHANGED();
 #endif
+   _ECM_SET_CLIP_CHANGED();
+   EUngrabServer();
+   ESync();
 }
 
 static void
@@ -2202,6 +2193,8 @@
       return;
    Conf_compmgr.enable = Mode_compmgr.active = 0;
 
+   EGrabServer();
+
    if (rootPicture)
       XRenderFreePicture(disp, rootPicture);
    rootPicture = None;
@@ -2243,9 +2236,11 @@
 
    EventCallbackUnregister(VRoot.win, 0, ECompMgrHandleRootEvent, NULL);
 
-#if 0                          /* FIXME - Remove? */
+#if !USE_BG_WIN_ON_ALL_DESKS
    DesksBackgroundRefresh(NULL);
 #endif
+   EUngrabServer();
+   ESync();
 }
 
 void




-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to