EOLIAN static Efl_Canvas_Vg_Node *
_efl_canvas_vg_shape_efl_duplicate_duplicate(const Eo *obj, Efl_Canvas_Vg_Shape_Data *pd)
{
- //TODO: implement me!
+#ifndef HAVE_THORVG
Efl_Canvas_Vg_Node *node;
Efl_Canvas_Vg_Shape_Data *sd;
}
efl_gfx_path_copy_from(node, obj);
+
return node;
+#else
+ Efl_Canvas_Vg_Node *node = NULL;
+ Efl_Canvas_Vg_Shape_Data *sd = NULL;
+
+ node = efl_duplicate(efl_super(obj, MY_CLASS));
+ sd = efl_data_scope_get(node, MY_CLASS);
+
+ if (pd->shape)
+ {
+ if (sd->shape) tvg_paint_del(sd->shape);
+ sd->shape = tvg_paint_duplicate(pd->shape);
+ }
+
+ if (pd->fill)
+ {
+ Tvg_Gradient *grad = NULL;
+ Efl_Canvas_Vg_Gradient_Data *gd = NULL;
+
+ sd->fill = efl_duplicate(pd->fill);
+ tvg_shape_get_gradient(sd->shape, &grad);
+ gd = efl_data_scope_get(sd->fill, EFL_CANVAS_VG_GRADIENT_CLASS);
+ if (gd) gd->gradient = grad;
+ }
+
+ sd->curr_ctrl = pd->curr_ctrl;
+ sd->curr = pd->curr;
+ sd->start = pd->start;
+ sd->cmd_prev = pd->cmd_prev;
+
+ return node;
+#endif
}
EAPI double