From: Hermet Park Date: Thu, 14 Jun 2018 14:28:48 +0000 (+0900) Subject: evas vg: code refactoring. X-Git-Tag: upstream/1.21.0~331 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ba46a291742dbdc45f07065bfdff531ff624cf9f;p=platform%2Fupstream%2Fefl.git evas vg: code refactoring. No logic changes. I know this is not a good case in alpha freeze. but code was too dirty, need more polishing. --- diff --git a/src/lib/evas/canvas/efl_canvas_vg_object.c b/src/lib/evas/canvas/efl_canvas_vg_object.c index f45db22..c39fc5b 100644 --- a/src/lib/evas/canvas/efl_canvas_vg_object.c +++ b/src/lib/evas/canvas/efl_canvas_vg_object.c @@ -173,15 +173,13 @@ _efl_canvas_vg_object_root_node_set(Eo *obj, Efl_Canvas_Vg_Object_Data *pd, Efl_ // set the parent so that vg canvas can render it. efl_parent_set(pd->user_entry->root, pd->root); } - else + else if (pd->user_entry) { - if (pd->user_entry) - { - // drop any surface cache attached to it. - Evas_Object_Protected_Data *eobj = efl_data_scope_get(obj, EFL_CANVAS_OBJECT_CLASS); - eobj->layer->evas->engine.func->ector_surface_cache_drop(_evas_engine_context(eobj->layer->evas), pd->user_entry); - free(pd->user_entry); - } + // drop any surface cache attached to it. + Evas_Object_Protected_Data *eobj = efl_data_scope_get(obj, EFL_CANVAS_OBJECT_CLASS); + eobj->layer->evas->engine.func->ector_surface_cache_drop(_evas_engine_context(eobj->layer->evas), + pd->user_entry); + free(pd->user_entry); pd->user_entry = NULL; } @@ -389,11 +387,8 @@ _evas_vg_render(Evas_Object_Protected_Data *obj, Efl_Canvas_Vg_Object_Data *vd, else { Efl_Canvas_Vg_Node_Data *nd; - nd = efl_data_scope_get(n, EFL_CANVAS_VG_NODE_CLASS); - obj->layer->evas->engine.func->ector_renderer_draw(engine, output, context, surface, nd->renderer, clips, do_async); - if (do_async) eina_array_push(&vd->cleanup, efl_ref(nd->renderer)); } @@ -444,6 +439,7 @@ _render_to_buffer(Evas_Object_Protected_Data *obj, Efl_Canvas_Vg_Object_Data *vd context, surface, root, NULL, do_async); + obj->layer->evas->engine.func->image_dirty_region(engine, buffer, 0, 0, 0, 0); obj->layer->evas->engine.func->ector_end(engine, buffer, context, surface, diff --git a/src/lib/evas/canvas/evas_vg_node.c b/src/lib/evas/canvas/evas_vg_node.c index 4037fa8..ac054d4 100644 --- a/src/lib/evas/canvas/evas_vg_node.c +++ b/src/lib/evas/canvas/evas_vg_node.c @@ -212,31 +212,17 @@ _efl_canvas_vg_node_parent_checked_get(Eo *obj, *parent = efl_parent_get(obj); if (efl_isa(*parent, EFL_CANVAS_VG_CONTAINER_CLASS)) - { - *cd = efl_data_scope_get(*parent, EFL_CANVAS_VG_CONTAINER_CLASS); - if (!*cd) - { - ERR("Can't get EFL_CANVAS_VG_CONTAINER_CLASS data."); - goto on_error; - } - } + *cd = efl_data_scope_get(*parent, EFL_CANVAS_VG_CONTAINER_CLASS); else if (efl_isa(*parent, EFL_CANVAS_VG_OBJECT_CLASS)) - { - *cd = NULL; - *parent = NULL; - } - else if (*parent != NULL) + *parent = NULL; + else if (*parent) { ERR("Parent of unauthorized class '%s'.", efl_class_name_get(efl_class_get(*parent))); - goto on_error; + *parent = NULL; + return EINA_FALSE; } return EINA_TRUE; - - on_error: - *parent = NULL; - *cd = NULL; - return EINA_FALSE; } static Eo * @@ -336,13 +322,13 @@ _efl_canvas_vg_node_efl_object_parent_set(Eo *obj, { Efl_Canvas_Vg_Container_Data *cd = NULL; Efl_Canvas_Vg_Container_Data *old_cd; - Eo *old_parent; + Efl_VG *old_parent; Eina_Bool parent_container = EINA_TRUE; if (efl_isa(parent, EFL_CANVAS_VG_CONTAINER_CLASS)) - cd = efl_data_scope_get(parent, EFL_CANVAS_VG_CONTAINER_CLASS); + cd = efl_data_scope_get(parent, EFL_CANVAS_VG_CONTAINER_CLASS); else if (efl_isa(parent, EFL_CANVAS_VG_OBJECT_CLASS)) - parent_container = EINA_FALSE; + parent_container = EINA_FALSE; else if (parent) { ERR("parent(%p, class = %s) is not allowed by vg node(%p).",