tvg_shape_get_stroke_join(sd_to->shape, &join_to);
(pos_map < 0.5) ? tvg_shape_set_stroke_join(sd->shape, join) : tvg_shape_set_stroke_join(sd->shape, join_to);
+ // Current points
+ sd->curr.x = _interpolate(sd_from->curr.x, sd_to->curr.x, pos_map);
+ sd->curr.y = _interpolate(sd_from->curr.y, sd_to->curr.y, pos_map);
+ sd->curr_ctrl.x = _interpolate(sd_from->curr_ctrl.x, sd_to->curr_ctrl.x, pos_map);
+ sd->curr_ctrl.y = _interpolate(sd_from->curr_ctrl.y, sd_to->curr_ctrl.y, pos_map);
+
return EINA_TRUE;
}
if (!sd || !sd->shape) return;
tvg_shape_append_rect(sd->shape, x, y, w, h, rx, ry);
- tvg_shape_move_to(sd->shape, x, y + ry);
- _assign_current_point(sd, NULL, x, y + ry);
+ if (rx <= 0 || ry <= 0)
+ {
+ _assign_current_point(sd, NULL, x + w, y);
+ }
+ else
+ {
+ ry = 2 * ry > h ? h / 2 : ry;
+ _assign_current_point(sd, NULL, x, y + ry);
+ tvg_shape_move_to(sd->shape, x, y + h/2);
+ }
#else
efl_gfx_path_append_rect(obj, x, y, w, h, rx, ry);
#endif