raster pushed a commit to branch master.

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

commit f169d7ed2711a5cbab0a3511e5f082bd7142d225
Author: Carsten Haitzler (Rasterman) <ras...@rasterman.com>
Date:   Mon Oct 5 15:51:02 2015 +0900

    evas - cutouts - use less cpu by skipping non-intersecting cutout objs
    
    @feature
---
 src/lib/evas/canvas/evas_render.c | 17 ++++++++++++++---
 1 file changed, 14 insertions(+), 3 deletions(-)

diff --git a/src/lib/evas/canvas/evas_render.c 
b/src/lib/evas/canvas/evas_render.c
index 31b8635..3fe93a0 100644
--- a/src/lib/evas/canvas/evas_render.c
+++ b/src/lib/evas/canvas/evas_render.c
@@ -2328,10 +2328,21 @@ evas_render_updates_internal_loop(Evas *eo_e, 
Evas_Public_Data *e,
 
                        obj2 = (Evas_Object_Protected_Data *)eina_array_data_get
                          (&e->temporary_objects, j);
-
                        if (obj2 == top) break;
-
-                       _evas_render_cutout_add(e, context, obj2, off_x + fx, 
off_y + fy);
+#if 1
+                       if (
+                           RECTS_INTERSECT
+                           (obj->cur->cache.clip.x, obj->cur->cache.clip.y,
+                            obj->cur->cache.clip.w, obj->cur->cache.clip.h,
+                            obj2->cur->cache.clip.x, obj2->cur->cache.clip.y,
+                            obj2->cur->cache.clip.w, obj2->cur->cache.clip.h) 
&&
+                           RECTS_INTERSECT
+                           (obj2->cur->cache.clip.x, obj2->cur->cache.clip.y,
+                            obj2->cur->cache.clip.w, obj2->cur->cache.clip.h,
+                            ux, uy, uw, uh)
+                          )
+#endif
+                         _evas_render_cutout_add(e, context, obj2, off_x + fx, 
off_y + fy);
                     }
 #endif
                   clean_them |= evas_render_mapped(e, eo_obj, obj, context,

-- 


Reply via email to