diff options
author | Adel Gadllah <adel.gadllah@gmail.com> | 2014-02-16 22:07:43 +0100 |
---|---|---|
committer | Adel Gadllah <adel.gadllah@gmail.com> | 2014-02-20 12:03:02 +0100 |
commit | 6665f47d66a871b6e1a5f4200282f42da043a0e8 (patch) | |
tree | 0eb65dce84dd29ef92c5347a645d47e01375edc2 | |
parent | 6417debe10795115d3ff3f78251c3585741d353e (diff) | |
download | clutter-6665f47d66a871b6e1a5f4200282f42da043a0e8.tar.gz |
stage-cogl: Fix buffer_age code path
Currently we where checking whether the damage_history list contains
more or equal then buffer_age entries. This is wrong because we prepend
our current clip to the list just before the check.
Fix that to check whether we have more entries instead of more or equal.
https://bugzilla.gnome.org/show_bug.cgi?id=724788
-rw-r--r-- | clutter/cogl/clutter-stage-cogl.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/clutter/cogl/clutter-stage-cogl.c b/clutter/cogl/clutter-stage-cogl.c index 86546b1ec..cff84445e 100644 --- a/clutter/cogl/clutter-stage-cogl.c +++ b/clutter/cogl/clutter-stage-cogl.c @@ -483,11 +483,12 @@ clutter_stage_cogl_redraw (ClutterStageWindow *stage_window) stage_cogl->damage_history = g_slist_prepend (stage_cogl->damage_history, current_damage); - if (age != 0 && !stage_cogl->dirty_backbuffer && g_slist_length (stage_cogl->damage_history) >= age) + if (age != 0 && !stage_cogl->dirty_backbuffer && g_slist_length (stage_cogl->damage_history) > age) { int i = 0; GSList *tmp = NULL; - for (tmp = stage_cogl->damage_history; tmp; tmp = tmp->next) + /* We skip the first entry because it is the clip_region itself */ + for (tmp = stage_cogl->damage_history->next; tmp; tmp = tmp->next) { _clutter_util_rectangle_union (clip_region, tmp->data, clip_region); i++; |