Bug 1415 - short-circuit setting same clip again

There is some GL work and a repaint anytime the clip is set
or unset, so avoid that if it isn't really changed.

Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
This commit is contained in:
Havoc Pennington 2009-01-26 16:22:39 +00:00 committed by Emmanuele Bassi
parent 54f4ed775c
commit 9ccae46bc1

View File

@ -5539,6 +5539,13 @@ clutter_actor_set_clipu (ClutterActor *self,
priv = self->priv; priv = self->priv;
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[0] = xoff;
priv->clip[1] = yoff; priv->clip[1] = yoff;
priv->clip[2] = width; priv->clip[2] = width;
@ -5591,6 +5598,9 @@ clutter_actor_remove_clip (ClutterActor *self)
{ {
g_return_if_fail (CLUTTER_IS_ACTOR (self)); g_return_if_fail (CLUTTER_IS_ACTOR (self));
if (!self->priv->has_clip)
return;
self->priv->has_clip = FALSE; self->priv->has_clip = FALSE;
clutter_actor_queue_redraw (self); clutter_actor_queue_redraw (self);