raster pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=8f69d5202a19ead2558b8fea83c1ced4519bb1df

commit 8f69d5202a19ead2558b8fea83c1ced4519bb1df
Author: Carsten Haitzler (Rasterman) <ras...@rasterman.com>
Date:   Mon Oct 5 18:30:34 2015 +0900

    evas rectangle - ensure centers of rects that just move/resize dont rend
    
    calculating updates has been re-rendering centers fo solid rects if
    the solid rects moves/resizes with a lot of overlap and objects
    underneath changes - their changes show through. this fixes that
    
    @fix
---
 src/lib/evas/canvas/evas_object_rectangle.c | 54 ++++++++++++++---------------
 1 file changed, 27 insertions(+), 27 deletions(-)

diff --git a/src/lib/evas/canvas/evas_object_rectangle.c 
b/src/lib/evas/canvas/evas_object_rectangle.c
index b154bb5..a22c990 100644
--- a/src/lib/evas/canvas/evas_object_rectangle.c
+++ b/src/lib/evas/canvas/evas_object_rectangle.c
@@ -277,33 +277,6 @@ evas_object_rectangle_render_pre(Evas_Object *eo_obj,
        evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes, 
eo_obj, obj);
        goto done;
      }
-   /* if it changed geometry - and obviously not visibility or color */
-   /* calculate differences since we have a constant color fill */
-   /* we really only need to update the differences */
-   if ((obj->cur->geometry.x != obj->prev->geometry.x) ||
-       (obj->cur->geometry.y != obj->prev->geometry.y) ||
-       (obj->cur->geometry.w != obj->prev->geometry.w) ||
-       (obj->cur->geometry.h != obj->prev->geometry.h))
-     {
-       evas_rects_return_difference_rects(&obj->layer->evas->clip_changes,
-                                          obj->cur->geometry.x,
-                                          obj->cur->geometry.y,
-                                          obj->cur->geometry.w,
-                                          obj->cur->geometry.h,
-                                          obj->prev->geometry.x,
-                                          obj->prev->geometry.y,
-                                          obj->prev->geometry.w,
-                                          obj->prev->geometry.h);
-////   rl = evas_rects_return_difference_rects(obj->cur->cache.geometry.x,
-////                                           obj->cur->cache.geometry.y,
-////                                           obj->cur->cache.geometry.w,
-////                                           obj->cur->cache.geometry.h,
-////                                           obj->prev->cache.geometry.x,
-////                                           obj->prev->cache.geometry.y,
-////                                           obj->prev->cache.geometry.w,
-////                                           obj->prev->cache.geometry.h);
-       goto done;
-     }
    /* it obviously didn't change - add a NO obscure - this "unupdates"  this */
    /* area so if there were updates for it they get wiped. don't do it if we */
    /* arent fully opaque and we are visible */
@@ -331,6 +304,33 @@ evas_object_rectangle_render_pre(Evas_Object *eo_obj,
          y + obj->layer->evas->framespace.y,
          w, h);
      }
+   /* if it changed geometry - and obviously not visibility or color */
+   /* calculate differences since we have a constant color fill */
+   /* we really only need to update the differences */
+   if ((obj->cur->geometry.x != obj->prev->geometry.x) ||
+       (obj->cur->geometry.y != obj->prev->geometry.y) ||
+       (obj->cur->geometry.w != obj->prev->geometry.w) ||
+       (obj->cur->geometry.h != obj->prev->geometry.h))
+     {
+       evas_rects_return_difference_rects(&obj->layer->evas->clip_changes,
+                                          obj->cur->geometry.x,
+                                          obj->cur->geometry.y,
+                                          obj->cur->geometry.w,
+                                          obj->cur->geometry.h,
+                                          obj->prev->geometry.x,
+                                          obj->prev->geometry.y,
+                                          obj->prev->geometry.w,
+                                          obj->prev->geometry.h);
+////   rl = evas_rects_return_difference_rects(obj->cur->cache.geometry.x,
+////                                           obj->cur->cache.geometry.y,
+////                                           obj->cur->cache.geometry.w,
+////                                           obj->cur->cache.geometry.h,
+////                                           obj->prev->cache.geometry.x,
+////                                           obj->prev->cache.geometry.y,
+////                                           obj->prev->cache.geometry.w,
+////                                           obj->prev->cache.geometry.h);
+       goto done;
+     }
    done:
    evas_object_render_pre_effect_updates(&obj->layer->evas->clip_changes, 
eo_obj, is_v, was_v);
 }

-- 


Reply via email to