[maemo-commits] [maemo-commits] r17087 - in projects/haf/branches/clutter/clutter-shaped-mode: clutter debian

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Mon Jan 12 12:37:11 EET 2009
Author: kihamala
Date: 2009-01-12 12:37:10 +0200 (Mon, 12 Jan 2009)
New Revision: 17087

Modified:
   projects/haf/branches/clutter/clutter-shaped-mode/clutter/clutter-stage.c
   projects/haf/branches/clutter/clutter-shaped-mode/clutter/clutter-stage.h
   projects/haf/branches/clutter/clutter-shaped-mode/debian/changelog
Log:
selective compositing support


Modified: projects/haf/branches/clutter/clutter-shaped-mode/clutter/clutter-stage.c
===================================================================
--- projects/haf/branches/clutter/clutter-shaped-mode/clutter/clutter-stage.c	2009-01-12 10:34:10 UTC (rev 17086)
+++ projects/haf/branches/clutter/clutter-shaped-mode/clutter/clutter-stage.c	2009-01-12 10:37:10 UTC (rev 17087)
@@ -87,6 +87,7 @@
   ClutterActor       *key_focused_actor;
 
   guint               update_idle;	       /* repaint idler id */
+  int		      shaped_mode; /* TODO: three states */
 
   /* if this is invalid, everything will be repainted */
   ClutterGeometry     damaged_area;
@@ -211,6 +212,17 @@
     }
 }
 
+/* 0 - no shape
+ * 1 - shape (non-fullscreen)
+ * 2 - shape (fullscreen)
+ */
+void
+clutter_stage_set_shaped_mode (ClutterActor *self, int mode)
+{
+  ClutterStagePrivate *priv = CLUTTER_STAGE (self)->priv;
+  priv->shaped_mode = mode;
+}
+
 static void
 clutter_stage_paint (ClutterActor *self)
 {
@@ -237,7 +249,7 @@
       priv->damaged_area.height>=height)
     update_area = FALSE;
 
-  if (update_area)
+  if (priv->shaped_mode || update_area)
     {
       CLUTTER_NOTE (PAINT,
           "Rendering ONLY the area x: %d, y: %d, width: %d, height: %d",
@@ -251,13 +263,20 @@
       CLUTTER_SET_PRIVATE_FLAGS (self, CLUTTER_ACTOR_SYNC_MATRICES);
       _clutter_stage_maybe_setup_viewport(CLUTTER_STAGE(self));
 
-      /* We hope that clutter_redraw has set up the matrices correctly */
-      cogl_clip_set(
+      if (update_area)
+        /* We hope that clutter_redraw has set up the matrices correctly */
+        cogl_clip_set(
           CLUTTER_INT_TO_FIXED( priv->damaged_area.x ),
           CLUTTER_INT_TO_FIXED( priv->damaged_area.y ),
           CLUTTER_INT_TO_FIXED( priv->damaged_area.width ),
           CLUTTER_INT_TO_FIXED( priv->damaged_area.height ));
 
+      if (priv->shaped_mode)
+        cogl_clip_set (CLUTTER_INT_TO_FIXED(0),
+		       CLUTTER_INT_TO_FIXED(0),
+		       CLUTTER_INT_TO_FIXED(800),
+		       CLUTTER_INT_TO_FIXED(56));
+
       cogl_pop_matrix();
     }
 
@@ -280,7 +299,7 @@
   /* this will take care of painting every child */
   CLUTTER_ACTOR_CLASS (clutter_stage_parent_class)->paint (self);
 
-  if (update_area)
+  if (priv->shaped_mode || update_area)
     {
       cogl_clip_unset();
     }

Modified: projects/haf/branches/clutter/clutter-shaped-mode/clutter/clutter-stage.h
===================================================================
--- projects/haf/branches/clutter/clutter-shaped-mode/clutter/clutter-stage.h	2009-01-12 10:34:10 UTC (rev 17086)
+++ projects/haf/branches/clutter/clutter-shaped-mode/clutter/clutter-stage.h	2009-01-12 10:37:10 UTC (rev 17087)
@@ -235,7 +235,10 @@
 
 void                  clutter_stage_set_damaged_area   (ClutterActor *self,
                                                         ClutterGeometry area);
+void                  clutter_stage_set_shaped_mode    (ClutterActor *self,
+		                                        int mode);
 
+
 /* Commodity macro */
 #define clutter_stage_add(stage,actor)                  G_STMT_START {  \
   if (CLUTTER_IS_STAGE ((stage)) && CLUTTER_IS_ACTOR ((actor)))         \

Modified: projects/haf/branches/clutter/clutter-shaped-mode/debian/changelog
===================================================================
--- projects/haf/branches/clutter/clutter-shaped-mode/debian/changelog	2009-01-12 10:34:10 UTC (rev 17086)
+++ projects/haf/branches/clutter/clutter-shaped-mode/debian/changelog	2009-01-12 10:37:10 UTC (rev 17087)
@@ -5,6 +5,7 @@
     application windows and should avoid some surprises in libmatchbox2 side.
   * Do not alter XComposite redirections in clutter-x11-texture-pixmap.c, that
     belongs to the window manager.
+  * Support for selective compositing (shaped mode).
 
  -- Gordon Williams <gordon.williams at collabora.co.uk>  Mon, 29 Dec 2008 15:25:59 +0200
 


More information about the maemo-commits mailing list