evas - cutouts - use less cpu by skipping non-intersecting cutout objs

@feature
This commit is contained in:
Carsten Haitzler 2015-10-05 15:51:02 +09:00
parent 77a732eb8b
commit f169d7ed27
1 changed files with 14 additions and 3 deletions

View File

@ -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,