[clutter/clutter-1.16] stage-cogl: Fix buffer_age code path



commit 6665f47d66a871b6e1a5f4200282f42da043a0e8
Author: Adel Gadllah <adel gadllah gmail com>
Date:   Sun Feb 16 22:07:43 2014 +0100

    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

 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 86546b1..cff8444 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++;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]