[maemo-commits] [maemo-commits] r19137 - in projects/haf/trunk/clutter0.8: clutter debian
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Tue Aug 18 15:30:29 EEST 2009
- Previous message: [maemo-commits] r19135 - in projects/haf/trunk/gtk+: . gtk
- Next message: [maemo-commits] r19138 - projects/haf/trunk/clutter0.8/debian
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: gw Date: 2009-08-18 15:30:12 +0300 (Tue, 18 Aug 2009) New Revision: 19137 Modified: projects/haf/trunk/clutter0.8/clutter/clutter-actor.c projects/haf/trunk/clutter0.8/debian/changelog Log: * clutter/clutter-actor.c: Made allow_redraw act on children as well (so we can cut down redraws from hildon-desktop). Stop set_opacity and set_clip causing redraw if nothing has changed. Modified: projects/haf/trunk/clutter0.8/clutter/clutter-actor.c =================================================================== --- projects/haf/trunk/clutter0.8/clutter/clutter-actor.c 2009-08-18 11:14:31 UTC (rev 19136) +++ projects/haf/trunk/clutter0.8/clutter/clutter-actor.c 2009-08-18 12:30:12 UTC (rev 19137) @@ -396,6 +396,9 @@ ClutterRequestMode mode); static gboolean clutter_actor_is_on_stage(ClutterActor *self); +static ClutterActor * + clutter_actor_get_stage_if_allow_redraw (ClutterActor *actor); + G_DEFINE_ABSTRACT_TYPE_WITH_CODE (ClutterActor, clutter_actor, G_TYPE_INITIALLY_UNOWNED, @@ -3047,13 +3050,12 @@ g_return_if_fail (CLUTTER_IS_ACTOR (self)); - if (!self->priv->allow_redraw || - (CLUTTER_PRIVATE_FLAGS (self) & CLUTTER_ACTOR_IN_DESTRUCTION)) + if (CLUTTER_PRIVATE_FLAGS (self) & CLUTTER_ACTOR_IN_DESTRUCTION) return; clutter_actor_notify_modified( self ); - if ((stage = clutter_actor_get_stage (self)) != NULL) + if ((stage = clutter_actor_get_stage_if_allow_redraw (self)) != NULL) clutter_stage_queue_redraw (CLUTTER_STAGE (stage)); } @@ -4989,10 +4991,13 @@ { g_return_if_fail (CLUTTER_IS_ACTOR (self)); - self->priv->opacity = opacity; + if (self->priv->opacity != opacity) + { + self->priv->opacity = opacity; - if (CLUTTER_ACTOR_IS_VISIBLE (self)) - clutter_actor_queue_redraw (self); + if (CLUTTER_ACTOR_IS_VISIBLE (self)) + clutter_actor_queue_redraw (self); + } } /** @@ -5489,6 +5494,14 @@ priv = self->priv; + /* If there has been no change... */ + if (priv->has_clip && + priv->clip[0] == xoff && + priv->clip[1] == yoff && + priv->clip[2] == width && + priv->clip[3] == height) + return; + priv->clip[0] = xoff; priv->clip[1] = yoff; priv->clip[2] = width; @@ -7493,6 +7506,24 @@ return actor; } +/* Only return the stage if allow_redraw is set for all parents. + * Used in clutter_actor_queue_redraw to stop us redrawing if + * any parent doesn't have allow_redraw set... */ +static ClutterActor * +clutter_actor_get_stage_if_allow_redraw (ClutterActor *actor) +{ + g_return_val_if_fail (CLUTTER_IS_ACTOR (actor), NULL); + + while (actor && !(CLUTTER_PRIVATE_FLAGS (actor) & CLUTTER_ACTOR_IS_TOPLEVEL)) + { + if (!CLUTTER_ACTOR_GET_PRIVATE(actor)->allow_redraw) + return NULL; + actor = clutter_actor_get_parent (actor); + } + + return actor; +} + /** * clutter_actor_allocate_preferred_size: * @self: a #ClutterActor @@ -7674,8 +7705,8 @@ * @self: a #ClutterActor * * Sets whether to allow clutter_actor_queue_redraw to actually work - * when called on this actor. Used for optimisation of when to allow - * redrawing. + * when called on this actor OR ANY OF ITS CHILDREN. Used for optimisation + * of when to allow redrawing. * * Since: 0.8.2-maemo */ Modified: projects/haf/trunk/clutter0.8/debian/changelog =================================================================== --- projects/haf/trunk/clutter0.8/debian/changelog 2009-08-18 11:14:31 UTC (rev 19136) +++ projects/haf/trunk/clutter0.8/debian/changelog 2009-08-18 12:30:12 UTC (rev 19137) @@ -1,6 +1,8 @@ clutter (0.8.2-0maemo45~unreleased) unstable; urgency=low - * foo + * clutter/clutter-actor.c: Made allow_redraw act on children as well (so we + can cut down redraws from hildon-desktop). Stop set_opacity and set_clip + causing redraw if nothing has changed. -- Gordon Williams <gordon.williams at collabora.co.uk> Wed, 12 Aug 2009 16:25:48 +0300
- Previous message: [maemo-commits] r19135 - in projects/haf/trunk/gtk+: . gtk
- Next message: [maemo-commits] r19138 - projects/haf/trunk/clutter0.8/debian
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]