evas vg: code refactoring. 06/259806/5
authorHermet Park <chuneon.park@samsung.com>
Tue, 15 Jun 2021 02:37:54 +0000 (11:37 +0900)
committerHermet Park <chuneon.park@samsung.com>
Tue, 15 Jun 2021 07:52:32 +0000 (07:52 +0000)
remove redundant code...

Change-Id: Icbe384b0768c24c2b37012571bfecc5bda6ee1a5

src/lib/evas/canvas/efl_canvas_vg_container.c
src/lib/evas/canvas/efl_canvas_vg_object.c
src/lib/evas/canvas/evas_vg_private.h
src/modules/evas/engines/gl_generic/evas_engine.c

index a16afe7..a28b350 100644 (file)
@@ -51,12 +51,7 @@ _efl_canvas_vg_container_render_pre(Evas_Object_Protected_Data *obj,
           cnd->render_pre(obj, child, cnd, cTransform, canvas, cd->scene);
      }
 
-   //We don't want to push composition sources
-   //FIX_TVG: when thorvg will be default, Vg_Comp structure with additional buffer and pixels
-   //will be removed. Then we can use only one boolean to verify if render_pre is called for
-   //composite object
-
-   //FIX_TVG: or maybe we can avoid to call render_pre for composite objects?
+   //we can avoid to call render_pre for composite objects.
    if (cd->comp.src) return;
 
    if (scene) tvg_scene_push(scene, cd->scene);
index eccd625..2e7ecef 100644 (file)
@@ -326,25 +326,9 @@ _efl_canvas_vg_object_efl_file_save_save(const Eo *obj, Efl_Canvas_Vg_Object_Dat
    return evas_cache_vg_file_save(pd->root, w, h, file, key, info);
 }
 
-static void
-_cleanup_reference(void *data, const Efl_Event *event EINA_UNUSED)
-{
-   Efl_Canvas_Vg_Object_Data *pd = data;
-   Eo *renderer;
-
-   /* unref all renderer and may also destroy them async */
-   while ((renderer = eina_array_pop(&pd->cleanup)))
-     efl_unref(renderer);
-}
-
 EOLIAN static void
 _efl_canvas_vg_object_efl_object_invalidate(Eo *eo_obj, Efl_Canvas_Vg_Object_Data *pd)
 {
-   Evas *e = evas_object_evas_get(eo_obj);
-
-   efl_event_callback_del(e, EFL_CANVAS_SCENE_EVENT_RENDER_POST, _cleanup_reference, pd);
-   eina_array_flush(&pd->cleanup);
-
    efl_unref(pd->root);
    pd->root = NULL;
 
@@ -362,7 +346,6 @@ _efl_canvas_vg_object_efl_object_invalidate(Eo *eo_obj, Efl_Canvas_Vg_Object_Dat
         free(pd->tvg_buffer);
         pd->tvg_buffer = NULL;
      }
-
    if (pd->tvg_canvas)
      {
         tvg_canvas_clear(pd->tvg_canvas, false);
@@ -388,31 +371,23 @@ _efl_canvas_vg_object_efl_object_constructor(Eo *eo_obj, Efl_Canvas_Vg_Object_Da
    /* default root node */
    pd->obj = obj;
    pd->root = efl_add_ref(EFL_CANVAS_VG_CONTAINER_CLASS, NULL);
-   pd->sync_render = EINA_FALSE;
-
    pd->tvg_canvas = tvg_swcanvas_create();
    pd->tvg_canvas_size.w = 0;
    pd->tvg_canvas_size.h = 0;
 
-   eina_array_step_set(&pd->cleanup, sizeof(pd->cleanup), 8);
+
    return eo_obj;
 }
 
 static Efl_Object *
 _efl_canvas_vg_object_efl_object_finalize(Eo *obj, Efl_Canvas_Vg_Object_Data *pd)
 {
-   Evas *e = evas_object_evas_get(obj);
-
    /* Container must have a set parent after construction.
       efl_add_ref() with a parent won't work this case
       because container needs some jobs in overriding parent_set()
       after proper intialization. */
    efl_parent_set(pd->root, obj);
 
-   // TODO: If we start to have to many Evas_Object_VG per canvas, it may be nice
-   // to actually have one event per canvas and one array per canvas to.
-   efl_event_callback_add(e, EFL_CANVAS_SCENE_EVENT_RENDER_POST, _cleanup_reference, pd);
-
    return obj;
 }
 
index fba4f61..77d3c2a 100644 (file)
@@ -54,14 +54,12 @@ struct _Efl_Canvas_Vg_Object_Data
    Eina_Rect                  fill;
    Eina_Rect                  viewbox;
    unsigned int               width, height;
-   Eina_Array                 cleanup;
    double                     align_x, align_y;
    Efl_Canvas_Vg_Fill_Mode    fill_mode;
    int                        frame_idx;
    void                      *ckeys[2];  //cache keys for first, last frames if animation
 
    Eina_Bool                  changed : 1;
-   Eina_Bool                  sync_render : 1;
 
    Tvg_Canvas *tvg_canvas;
    Eina_Size2D tvg_canvas_size;
@@ -90,11 +88,6 @@ struct _Efl_Canvas_Vg_Node_Data
 typedef struct _Vg_Composite
 {
    Evas_Object_Protected_Data *vg_pd;      //Vector Object (for accessing backend engine)
-   Ector_Buffer *buffer;                   //Composite Ector Buffer
-   void *pixels;                           //Composite pixel buffer (actual data)
-   unsigned int length;                    //pixel buffer data size
-   unsigned int stride;                    //pixel buffer stride
-   Eina_Size2D size;                       //Composite boundary
    Eina_List *src;                         //Composite Sources
    Efl_Gfx_Vg_Composite_Method method;     //Composite Method
 } Vg_Comp;
@@ -108,21 +101,11 @@ struct _Efl_Canvas_Vg_Container_Data
    Efl_Canvas_Vg_Node *comp_target; //Composite target
    Vg_Comp comp;                    //Composite target data
 
-   /* Layer transparency feature.
-      This buffer is only valid when the layer has transparency. */
-   struct {
-        Ector_Buffer *buffer;
-        void *pixels;
-        unsigned int length;                //blend buffer data size
-        unsigned int stride;                //blend buffer stride
-   } blend;
-
    Tvg_Paint *scene;
 };
 
 struct _Efl_Canvas_Vg_Gradient_Data
 {
-   // FIXME: Later on we should deduplicate it somehow (Using Ector ?).
    Evas_Vg_Gradient_Stop *colors;
    unsigned int colors_count;
    Efl_Gfx_Gradient_Spread spread;
index aab3cdc..c9fd544 100755 (executable)
@@ -2732,8 +2732,6 @@ eng_context_dup(void *engine EINA_UNUSED, void *context)
    return ctx;
 }
 
-static Eina_Bool use_gl = EINA_FALSE;
-
 static Ector_Buffer *
 eng_ector_buffer_wrap(void *engine EINA_UNUSED, Evas *evas, void *engine_image)
 {