summaryrefslogtreecommitdiff
path: root/src/lib/evas/canvas
diff options
context:
space:
mode:
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>2015-10-05 15:51:02 +0900
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>2015-10-05 15:51:02 +0900
commitf169d7ed2711a5cbab0a3511e5f082bd7142d225 (patch)
treeb63043b69ae7c30da87856c01519e3f58b210798 /src/lib/evas/canvas
parent77a732eb8b1378b1b5c9794b05c61319bf6603ea (diff)
evas - cutouts - use less cpu by skipping non-intersecting cutout objs
@feature
Diffstat (limited to 'src/lib/evas/canvas')
-rw-r--r--src/lib/evas/canvas/evas_render.c17
1 files changed, 14 insertions, 3 deletions
diff --git a/src/lib/evas/canvas/evas_render.c b/src/lib/evas/canvas/evas_render.c
index 31b8635109..3fe93a0cf6 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,
2328 2328
2329 obj2 = (Evas_Object_Protected_Data *)eina_array_data_get 2329 obj2 = (Evas_Object_Protected_Data *)eina_array_data_get
2330 (&e->temporary_objects, j); 2330 (&e->temporary_objects, j);
2331
2332 if (obj2 == top) break; 2331 if (obj2 == top) break;
2333 2332#if 1
2334 _evas_render_cutout_add(e, context, obj2, off_x + fx, off_y + fy); 2333 if (
2334 RECTS_INTERSECT
2335 (obj->cur->cache.clip.x, obj->cur->cache.clip.y,
2336 obj->cur->cache.clip.w, obj->cur->cache.clip.h,
2337 obj2->cur->cache.clip.x, obj2->cur->cache.clip.y,
2338 obj2->cur->cache.clip.w, obj2->cur->cache.clip.h) &&
2339 RECTS_INTERSECT
2340 (obj2->cur->cache.clip.x, obj2->cur->cache.clip.y,
2341 obj2->cur->cache.clip.w, obj2->cur->cache.clip.h,
2342 ux, uy, uw, uh)
2343 )
2344#endif
2345 _evas_render_cutout_add(e, context, obj2, off_x + fx, off_y + fy);
2335 } 2346 }
2336#endif 2347#endif
2337 clean_them |= evas_render_mapped(e, eo_obj, obj, context, 2348 clean_them |= evas_render_mapped(e, eo_obj, obj, context,