jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=ae69b10455f5def3416a04dd528e1c44a767a0b4
commit ae69b10455f5def3416a04dd528e1c44a767a0b4 Author: Jean-Philippe Andre <jp.an...@samsung.com> Date: Wed Dec 14 16:28:42 2016 +0900 evas: Avoid calling efl_isa in proxy_subrender It's not necessary. --- src/lib/evas/canvas/evas_object_image.c | 6 +++--- src/lib/evas/canvas/evas_render.c | 6 +----- src/lib/evas/filters/evas_filter.c | 2 +- src/lib/evas/include/evas_private.h | 2 +- 4 files changed, 6 insertions(+), 10 deletions(-) diff --git a/src/lib/evas/canvas/evas_object_image.c b/src/lib/evas/canvas/evas_object_image.c index 9fd263b..2a38074 100644 --- a/src/lib/evas/canvas/evas_object_image.c +++ b/src/lib/evas/canvas/evas_object_image.c @@ -920,7 +920,7 @@ _efl_canvas_image_internal_efl_file_save(const Eo *eo_obj, Evas_Image_Data *o, c Eina_Rectangle region = { 0, 0, 0, 0 }; o->proxyrendering = EINA_TRUE; evas_render_proxy_subrender(obj->layer->evas->evas, o->cur->source, - (Eo *) eo_obj, obj, region, EINA_FALSE); + (Eo *) eo_obj, obj, region, o->proxy_src_clip, EINA_FALSE); pixels = source->proxy->surface; imagew = source->proxy->w; imageh = source->proxy->h; @@ -1935,7 +1935,7 @@ _evas_image_render(Eo *eo_obj, Evas_Object_Protected_Data *obj, } o->proxyrendering = EINA_TRUE; evas_render_proxy_subrender(obj->layer->evas->evas, o->cur->source, - eo_obj, obj, region, EINA_FALSE); + eo_obj, obj, region, o->proxy_src_clip, EINA_FALSE); pixels = source->proxy->surface; imagew = source->proxy->w; imageh = source->proxy->h; @@ -2970,7 +2970,7 @@ evas_object_image_is_inside(Evas_Object *eo_obj, } o->proxyrendering = EINA_TRUE; evas_render_proxy_subrender(obj->layer->evas->evas, o->cur->source, - eo_obj, obj, region, EINA_FALSE); + eo_obj, obj, region, o->proxy_src_clip, EINA_FALSE); pixels = source->proxy->surface; imagew = source->proxy->w; imageh = source->proxy->h; diff --git a/src/lib/evas/canvas/evas_render.c b/src/lib/evas/canvas/evas_render.c index 66d82f4..075cb10 100644 --- a/src/lib/evas/canvas/evas_render.c +++ b/src/lib/evas/canvas/evas_render.c @@ -2255,11 +2255,10 @@ evas_render_mapped(Evas_Public_Data *evas, Evas_Object *eo_obj, void evas_render_proxy_subrender(Evas *eo_e, Evas_Object *eo_source, Evas_Object *eo_proxy, Evas_Object_Protected_Data *proxy_obj, Eina_Rectangle region, - Eina_Bool do_async) + Eina_Bool source_clip, Eina_Bool do_async) { Evas_Public_Data *evas = efl_data_scope_get(eo_e, EVAS_CANVAS_CLASS); Evas_Object_Protected_Data *source; - Eina_Bool source_clip = EINA_FALSE; int level = 1; void *ctx; int x, y, w, h, W, H; @@ -2323,9 +2322,6 @@ evas_render_proxy_subrender(Evas *eo_e, Evas_Object *eo_source, Evas_Object *eo_ ENFN->context_free(ENDT, ctx); eina_evlog("-proxy_fill", eo_proxy, 0.0, NULL); - if (efl_isa(eo_proxy, EFL_CANVAS_IMAGE_INTERNAL_CLASS)) - source_clip = _evas_image_proxy_source_clip_get(eo_proxy); - Evas_Proxy_Render_Data proxy_render_data = { .eo_proxy = eo_proxy, .proxy_obj = proxy_obj, diff --git a/src/lib/evas/filters/evas_filter.c b/src/lib/evas/filters/evas_filter.c index 0f799a5..eaec9a7 100644 --- a/src/lib/evas/filters/evas_filter.c +++ b/src/lib/evas/filters/evas_filter.c @@ -125,7 +125,7 @@ evas_filter_context_proxy_render_all(Evas_Filter_Context *ctx, Eo *eo_obj, XDBG("Source needs to be rendered: '%s' of type '%s' (%s)", fb->source_name, efl_class_name_get(efl_class_get(fb->source)), source->proxy->redraw ? "redraw" : "no surface"); - evas_render_proxy_subrender(ctx->evas->evas, fb->source, eo_obj, obj, region, do_async); + evas_render_proxy_subrender(ctx->evas->evas, fb->source, eo_obj, obj, region, EINA_FALSE, do_async); } _filter_buffer_backing_free(fb); XDBG("Source #%d '%s' has dimensions %dx%d", fb->id, fb->source_name, fb->w, fb->h); diff --git a/src/lib/evas/include/evas_private.h b/src/lib/evas/include/evas_private.h index 8f8f63b..329c724 100644 --- a/src/lib/evas/include/evas_private.h +++ b/src/lib/evas/include/evas_private.h @@ -1984,7 +1984,7 @@ Eina_Bool evas_render_mapped(Evas_Public_Data *e, Evas_Object *obj, int level, Eina_Bool use_mapped_ctx, Eina_Bool do_async); void evas_render_invalidate(Evas *e); void evas_render_object_recalc(Evas_Object *obj); -void evas_render_proxy_subrender(Evas *eo_e, Evas_Object *eo_source, Evas_Object *eo_proxy, Evas_Object_Protected_Data *proxy_obj, Eina_Rectangle region, Eina_Bool do_async); +void evas_render_proxy_subrender(Evas *eo_e, Evas_Object *eo_source, Evas_Object *eo_proxy, Evas_Object_Protected_Data *proxy_obj, Eina_Rectangle region, Eina_Bool source_clip, Eina_Bool do_async); void evas_render_mask_subrender(Evas_Public_Data *e, Evas_Object_Protected_Data *mask, Evas_Object_Protected_Data *prev_mask, int level); Eina_Bool evas_map_inside_get(const Evas_Map *m, Evas_Coord x, Evas_Coord y); --