[mutter] meta-window-group: Use clutter_actor_has_effects if available
- From: Jasper St. Pierre <jstpierre src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter] meta-window-group: Use clutter_actor_has_effects if available
- Date: Fri, 21 Oct 2011 13:20:56 +0000 (UTC)
commit 359991712355ce68a86724a9de302870f04688b1
Author: Jasper St. Pierre <jstpierre mecheye net>
Date: Thu Oct 20 15:23:28 2011 -0400
meta-window-group: Use clutter_actor_has_effects if available
This avoids a potentially costly allocation on every pixmap update.
https://bugzilla.gnome.org/show_bug.cgi?id=662225
src/compositor/meta-window-group.c | 28 ++++++++++++++++++++++------
1 files changed, 22 insertions(+), 6 deletions(-)
---
diff --git a/src/compositor/meta-window-group.c b/src/compositor/meta-window-group.c
index 8889503..a24c378 100644
--- a/src/compositor/meta-window-group.c
+++ b/src/compositor/meta-window-group.c
@@ -101,6 +101,25 @@ actor_is_untransformed (ClutterActor *actor,
return TRUE;
}
+#if CLUTTER_CHECK_VERSION(1, 9, 0)
+#define has_effects clutter_actor_has_effects
+#else
+
+static gboolean
+has_effects(ClutterActor *actor)
+{
+ GList *list;
+ gboolean ret;
+
+ list = clutter_actor_get_effects (actor);
+ ret = list != NULL;
+ g_list_free (list);
+
+ return ret;
+}
+
+#endif
+
static void
meta_window_group_paint (ClutterActor *actor)
{
@@ -108,7 +127,7 @@ meta_window_group_paint (ClutterActor *actor)
cairo_region_t *unredirected_window_region = NULL;
ClutterActor *stage;
cairo_rectangle_int_t visible_rect, unredirected_rect;
- GList *children, *l, *effects;
+ GList *children, *l;
MetaWindowGroup *window_group = META_WINDOW_GROUP (actor);
MetaCompScreen *info = meta_screen_get_compositor_data (window_group->screen);
@@ -161,11 +180,8 @@ meta_window_group_paint (ClutterActor *actor)
* as well for the same reason, but omitted for simplicity in the
* hopes that no-one will do that.
*/
- if ((effects = clutter_actor_get_effects (l->data)) != NULL)
- {
- g_list_free (effects);
- continue;
- }
+ if (has_effects (l->data))
+ continue;
if (META_IS_WINDOW_ACTOR (l->data))
{
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]