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);

-- 


Reply via email to