efl_gfx_shape: Add stroke_miterlimit property

Summary:
Sets limit on ratio of miter value of the stroke join.
If a miter join exists, it must be supported.

Test Plan: N/A

Reviewers: Hermet, smohanty, kimcinoo

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9657
This commit is contained in:
junsu choi 2019-08-22 12:45:09 +09:00 committed by Hermet Park
parent ca8df7067c
commit fa8f20338d
3 changed files with 29 additions and 0 deletions

View File

@ -293,6 +293,7 @@ _efl_gfx_shape_efl_gfx_path_copy_from(Eo *obj, Efl_Gfx_Shape_Data *pd,
pd->public.stroke.color.g = from->public.stroke.color.g;
pd->public.stroke.color.b = from->public.stroke.color.b;
pd->public.stroke.color.a = from->public.stroke.color.a;
pd->public.stroke.miterlimit = from->public.stroke.miterlimit;
pd->fill_rule = from->fill_rule;
_efl_gfx_shape_stroke_dash_set(obj, pd, from->public.stroke.dash,
@ -301,4 +302,19 @@ _efl_gfx_shape_efl_gfx_path_copy_from(Eo *obj, Efl_Gfx_Shape_Data *pd,
efl_gfx_path_copy_from(efl_super(obj, MY_CLASS), dup_from);
}
EOLIAN static void
_efl_gfx_shape_stroke_miterlimit_set(Eo *obj EINA_UNUSED,
Efl_Gfx_Shape_Data *pd,
double miterlimit)
{
pd->public.stroke.miterlimit = miterlimit;
}
EOLIAN static double
_efl_gfx_shape_stroke_miterlimit_get(const Eo *obj EINA_UNUSED,
Efl_Gfx_Shape_Data *pd)
{
return pd->public.stroke.miterlimit;
}
#include "interfaces/efl_gfx_shape.eo.c"

View File

@ -97,6 +97,18 @@ mixin @beta Efl.Gfx.Shape extends Efl.Gfx.Path
j: Efl.Gfx.Join; [[Join style to use, default is @Efl.Gfx.Join.miter]]
}
}
@property stroke_miterlimit {
[[The stroke_miterlimit is a presentation defining a limit on the ratio of
the miter length to the stroke-width used to draw a miter join.
]]
set {
}
get {
}
values {
miterlimit: double; [[Limit value on the ratio of the miter.]]
}
}
@property fill_rule {
[[The fill rule of the given shape object.
@Efl.Gfx.Fill_Rule.winding or @Efl.Gfx.Fill_Rule.odd_even.

View File

@ -132,6 +132,7 @@ struct @beta Efl.Gfx.Stroke
dash_length: uint; [[Stroke dash length]]
cap: Efl.Gfx.Cap; [[Stroke cap]]
join: Efl.Gfx.Join; [[Stroke join]]
miterlimit: double; [[Stroke miterlimit]]
}
struct @beta Efl.Gfx.Shape_Public