diff --git a/legacy/evas/src/lib/canvas/evas_object_image.c b/legacy/evas/src/lib/canvas/evas_object_image.c index 66157c6efb..08baae69ea 100644 --- a/legacy/evas/src/lib/canvas/evas_object_image.c +++ b/legacy/evas/src/lib/canvas/evas_object_image.c @@ -2231,8 +2231,16 @@ _proxy_subrender(Evas *e, Evas_Object *source) source->proxy.w = w; source->proxy.h = h; } - + ctx = e->engine.func->context_new(e->engine.data.output); + evas_render_mapped(e, source, ctx, source->proxy.surface, + -source->cur.geometry.x, + -source->cur.geometry.y, + 1, 0, 0, e->output.w, e->output.h); + e->engine.func->context_free(e->engine.data.output, ctx); + source->proxy.surface = e->engine.func->image_dirty_region + (e->engine.data.output, source->proxy.surface, 0, 0, w, h); +/* e->engine.func->context_color_set(e->engine.data.output, ctx, 0, 0, 0, 0); e->engine.func->context_render_op_set(e->engine.data.output, ctx, EVAS_RENDER_COPY); e->engine.func->rectangle_draw(e->engine.data.output, ctx, @@ -2265,6 +2273,7 @@ _proxy_subrender(Evas *e, Evas_Object *source) e->engine.func->context_free(e->engine.data.output, ctx); source->proxy.surface = e->engine.func->image_dirty_region (e->engine.data.output, source->proxy.surface, 0, 0, w, h); + */ } #if 0 // filtering disabled diff --git a/legacy/evas/src/lib/canvas/evas_render.c b/legacy/evas/src/lib/canvas/evas_render.c index a3540fc1fe..41ea0f5688 100644 --- a/legacy/evas/src/lib/canvas/evas_render.c +++ b/legacy/evas/src/lib/canvas/evas_render.c @@ -647,7 +647,7 @@ pending_change(void *data, void *gdata __UNUSED__) } */ -static Eina_Bool +Eina_Bool evas_render_mapped(Evas *e, Evas_Object *obj, void *context, void *surface, int off_x, int off_y, int mapped, int ecx, int ecy, int ecw, int ech diff --git a/legacy/evas/src/lib/include/evas_private.h b/legacy/evas/src/lib/include/evas_private.h index afaa05e059..d20d0f5e29 100644 --- a/legacy/evas/src/lib/include/evas_private.h +++ b/legacy/evas/src/lib/include/evas_private.h @@ -989,6 +989,10 @@ void _evas_unwalk(Evas *e); // expose for use in engines EAPI int _evas_module_engine_inherit(Evas_Func *funcs, char *name); +Eina_Bool evas_render_mapped(Evas *e, Evas_Object *obj, + void *context, void *surface, + int off_x, int off_y, int mapped, + int ecx, int ecy, int ecw, int ech); void evas_render_invalidate(Evas *e); void evas_render_object_recalc(Evas_Object *obj);