[maemo-commits] [maemo-commits] r18340 - in projects/haf/trunk/libmatchbox2: . matchbox/comp-mgr

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Tue May 12 18:42:08 EEST 2009
Author: gw
Date: 2009-05-12 18:42:02 +0300 (Tue, 12 May 2009)
New Revision: 18340

Modified:
   projects/haf/trunk/libmatchbox2/ChangeLog
   projects/haf/trunk/libmatchbox2/matchbox/comp-mgr/mb-wm-comp-mgr-clutter.c
Log:
	Fixes: NB#115698 - Windows not updating in some cases

	* matchbox/comp-mgr/mb-wm-comp-mgr-clutter.c: Removed usage of
	clutter GLX texture pixmaps as they currently don't work properly
	in scratchbox. Also disabled MBWMCompMgrClutterClientDontUpdate on
	scratchbox as this caused NB#115698 (It only existed as a minor
	performance improvement, and accuracy is more important in scratchbox)


Modified: projects/haf/trunk/libmatchbox2/ChangeLog
===================================================================
--- projects/haf/trunk/libmatchbox2/ChangeLog	2009-05-12 15:41:45 UTC (rev 18339)
+++ projects/haf/trunk/libmatchbox2/ChangeLog	2009-05-12 15:42:02 UTC (rev 18340)
@@ -1,3 +1,13 @@
+2009-05-12  Gordon Williams <gordon.williams at collabora.co.uk>
+
+	Fixes: NB#115698 - Windows not updating in some cases
+
+	* matchbox/comp-mgr/mb-wm-comp-mgr-clutter.c: Removed usage of
+	clutter GLX texture pixmaps as they currently don't work properly
+	in scratchbox. Also disabled MBWMCompMgrClutterClientDontUpdate on
+	scratchbox as this caused NB#115698 (It only existed as a minor
+	performance improvement, and accuracy is more important in scratchbox)
+
 2009-05-11  Kimmo Hämäläinen  <kimmo.hamalainen at nokia.com>
 
 	Release 0.2.38

Modified: projects/haf/trunk/libmatchbox2/matchbox/comp-mgr/mb-wm-comp-mgr-clutter.c
===================================================================
--- projects/haf/trunk/libmatchbox2/matchbox/comp-mgr/mb-wm-comp-mgr-clutter.c	2009-05-12 15:41:45 UTC (rev 18339)
+++ projects/haf/trunk/libmatchbox2/matchbox/comp-mgr/mb-wm-comp-mgr-clutter.c	2009-05-12 15:42:02 UTC (rev 18340)
@@ -20,11 +20,6 @@
 
 //#define DEBUG_ACTOR 1
 
-#ifndef HAVE_CLUTTER_EGLX
-/* Gordon says: */
-#define HAVE_CLUTTER_EGLX 0
-#endif
-
 #define SGX_CORRUPTION_WORKAROUND 0
 
 #include "mb-wm.h"
@@ -35,9 +30,7 @@
 
 #include <clutter/clutter.h>
 #include <clutter/x11/clutter-x11.h>
-#if HAVE_CLUTTER_GLX
-#include <clutter/glx/clutter-glx-texture-pixmap.h>
-#elif HAVE_CLUTTER_EGLX
+#if HAVE_CLUTTER_EGLX
 #include <clutter/clutter-eglx-texture-pixmap.h>
 #endif
 #include <X11/Xresource.h>
@@ -750,10 +743,7 @@
       return;
     }
 
-  /*
-   * Retrieve the damaged region and break it down into individual
-   * rectangles so we do not have to update the whole shebang.
-   */
+  /* Retrieve the damaged region and update just the bounding area */
   parts = XFixesCreateRegion (wm->xdpy, 0, 0);
   XDamageSubtract (wm->xdpy, damage, None, parts);
 
@@ -820,8 +810,20 @@
       MBWMCompMgrClutterClient *cclient =
 	MB_WM_COMP_MGR_CLUTTER_CLIENT (c->cm_client);
 
+/* We ignore the DontUpdate flag for i386, as it uses the X11 Texture Pixmap
+ * class, which requires damage events to keep its internal texture in sync.
+ * We could store damage events and hook onto actor->paint to make sure we
+ * update the texture correctly - but this is overkill as it only applies
+ * to scratchbox where we're more interested in correctness than speed
+ * in transitions. NOTE: This is useless in Rover anyway as the texture
+ * updates regardless. */
       if (!cclient->priv->actor ||
-	  (cclient->priv->flags & MBWMCompMgrClutterClientDontUpdate))
+#ifdef __i386__
+          FALSE
+#else
+	  (cclient->priv->flags & MBWMCompMgrClutterClientDontUpdate)
+#endif
+	  )
         {
           XDamageSubtract (wm->xdpy, cclient->priv->window_damage, None, None);
           return False;
@@ -1025,9 +1027,7 @@
   g_snprintf(actor_name, 64, "window_0x%lx", c->window->xwindow);
   clutter_actor_set_name(cclient->priv->actor, actor_name);
 
-#if HAVE_CLUTTER_GLX
-  texture = clutter_glx_texture_pixmap_new ();
-#elif HAVE_CLUTTER_EGLX
+#if HAVE_CLUTTER_EGLX
 
 #if SGX_CORRUPTION_WORKAROUND
   if (ctype == MBWMClientTypeMenu ||


More information about the maemo-commits mailing list