diff --git a/src/lib/evas/canvas/efl_canvas_vg_object.c b/src/lib/evas/canvas/efl_canvas_vg_object.c index 5beb30332b..de21469c5c 100644 --- a/src/lib/evas/canvas/efl_canvas_vg_object.c +++ b/src/lib/evas/canvas/efl_canvas_vg_object.c @@ -414,8 +414,8 @@ _evas_vg_render(Evas_Object_Protected_Data *obj, Efl_Canvas_Vg_Object_Data *pd, //renders a vg_tree to an offscreen buffer and push it to the cache. static void * _render_to_buffer(Evas_Object_Protected_Data *obj, Efl_Canvas_Vg_Object_Data *pd, - void *engine, Efl_VG *root, int w, int h, void *key, - void *buffer, Eina_Bool do_async) + void *engine, Efl_VG *root, int w, int h, void *buffer, + Eina_Bool do_async) { Ector_Surface *ector; RGBA_Draw_Context *context; @@ -458,7 +458,10 @@ _render_to_buffer(Evas_Object_Protected_Data *obj, Efl_Canvas_Vg_Object_Data *pd evas_common_draw_context_free(context); if (buffer_created) - ENFN->ector_surface_cache_set(engine, key, buffer); + { + //Use root as a cache key. + ENFN->ector_surface_cache_set(engine, root, buffer); + } return buffer; } @@ -510,8 +513,7 @@ _cache_vg_entry_render(Evas_Object_Protected_Data *obj, void *buffer = ENFN->ector_surface_cache_get(engine, root); if (!buffer) - buffer = _render_to_buffer(obj, pd, engine, root, w, h, root, NULL, - do_async); + buffer = _render_to_buffer(obj, pd, engine, root, w, h, NULL, do_async); else //cache reference was increased when we get the cache. ENFN->ector_surface_cache_drop(engine, root); @@ -547,8 +549,7 @@ _user_vg_entry_render(Evas_Object_Protected_Data *obj, { // render to the buffer buffer = _render_to_buffer(obj, pd, engine, user_entry->root, - w, h, user_entry->root, buffer, - do_async); + w, h, buffer, do_async); } else { @@ -557,7 +558,6 @@ _user_vg_entry_render(Evas_Object_Protected_Data *obj, buffer = _render_to_buffer(obj, pd, engine, user_entry->root, w, h, - user_entry->root, buffer, do_async); //cache reference was increased when we get the cache.