evas: Avoid calling efl_isa in proxy_subrender

It's not necessary.
This commit is contained in:
Jean-Philippe Andre 2016-12-14 16:28:42 +09:00
parent 4e110a34bf
commit ae69b10455
4 changed files with 6 additions and 10 deletions

View File

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

View File

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

View File

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

View File

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