[clutter] clutter-actor: Store the queue_redraw_entry when queueing a redraw
- From: Neil Roberts <nroberts src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [clutter] clutter-actor: Store the queue_redraw_entry when queueing a redraw
- Date: Fri, 13 May 2011 14:35:13 +0000 (UTC)
commit d95258e987178a9d1a2316db60bd89685e030929
Author: Neil Roberts <neil linux intel com>
Date: Fri May 13 15:29:50 2011 +0100
clutter-actor: Store the queue_redraw_entry when queueing a redraw
_clutter_stage_queue_actor_redraw returns a pointer to the
ClutterStageQueueRedrawEntry struct which it allocates. The actor is
expected to store a pointer to this so that it doesn't need to search
the list of queued redraws next time a queue redraw is called. However
_clutter_actor_queue_redraw_full wasn't storing this pointer which
meant that it thought every queue redraw was the first queue
redraw. That meant that queueing a redraw with a clip or an effect
would override any previous attempts to queue a redraw instead of
trying to combine them.
I think this happened because the old queue_redraw_with_clip also
didn't store the pointer and queue_redraw_full was based on that.
clutter/clutter-actor.c | 9 +++++----
1 files changed, 5 insertions(+), 4 deletions(-)
---
diff --git a/clutter/clutter-actor.c b/clutter/clutter-actor.c
index 919888c..49ef0aa 100644
--- a/clutter/clutter-actor.c
+++ b/clutter/clutter-actor.c
@@ -5511,10 +5511,11 @@ _clutter_actor_queue_redraw_full (ClutterActor *self,
was_dirty = priv->queue_redraw_entry != NULL;
- _clutter_stage_queue_actor_redraw (CLUTTER_STAGE (stage),
- priv->queue_redraw_entry,
- self,
- pv);
+ self->priv->queue_redraw_entry =
+ _clutter_stage_queue_actor_redraw (CLUTTER_STAGE (stage),
+ priv->queue_redraw_entry,
+ self,
+ pv);
if (should_free_pv)
clutter_paint_volume_free (pv);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]