Add new join and cap features to SVG, fixing the demo
This commit is contained in:
parent
95f3337c6f
commit
48f825077c
|
@ -139,7 +139,8 @@ impl BuiltSVG {
|
||||||
let stroke_style = StrokeStyle {
|
let stroke_style = StrokeStyle {
|
||||||
line_width: f32::max(stroke.width.value() as f32, HAIRLINE_STROKE_WIDTH),
|
line_width: f32::max(stroke.width.value() as f32, HAIRLINE_STROKE_WIDTH),
|
||||||
line_cap: LineCap::from_usvg_line_cap(stroke.linecap),
|
line_cap: LineCap::from_usvg_line_cap(stroke.linecap),
|
||||||
line_join: LineJoin::from_usvg_line_join(stroke.linejoin),
|
line_join: LineJoin::from_usvg_line_join(stroke.linejoin,
|
||||||
|
stroke.miterlimit as f32),
|
||||||
};
|
};
|
||||||
|
|
||||||
let path = UsvgPathToSegments::new(path.segments.iter().cloned());
|
let path = UsvgPathToSegments::new(path.segments.iter().cloned());
|
||||||
|
@ -393,28 +394,22 @@ impl LineCapExt for LineCap {
|
||||||
fn from_usvg_line_cap(usvg_line_cap: UsvgLineCap) -> LineCap {
|
fn from_usvg_line_cap(usvg_line_cap: UsvgLineCap) -> LineCap {
|
||||||
match usvg_line_cap {
|
match usvg_line_cap {
|
||||||
UsvgLineCap::Butt => LineCap::Butt,
|
UsvgLineCap::Butt => LineCap::Butt,
|
||||||
UsvgLineCap::Round => {
|
UsvgLineCap::Round => LineCap::Round,
|
||||||
// TODO(pcwalton)
|
|
||||||
LineCap::Square
|
|
||||||
}
|
|
||||||
UsvgLineCap::Square => LineCap::Square,
|
UsvgLineCap::Square => LineCap::Square,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
trait LineJoinExt {
|
trait LineJoinExt {
|
||||||
fn from_usvg_line_join(usvg_line_join: UsvgLineJoin) -> Self;
|
fn from_usvg_line_join(usvg_line_join: UsvgLineJoin, miter_limit: f32) -> Self;
|
||||||
}
|
}
|
||||||
|
|
||||||
impl LineJoinExt for LineJoin {
|
impl LineJoinExt for LineJoin {
|
||||||
#[inline]
|
#[inline]
|
||||||
fn from_usvg_line_join(usvg_line_join: UsvgLineJoin) -> LineJoin {
|
fn from_usvg_line_join(usvg_line_join: UsvgLineJoin, miter_limit: f32) -> LineJoin {
|
||||||
match usvg_line_join {
|
match usvg_line_join {
|
||||||
UsvgLineJoin::Miter => LineJoin::Miter,
|
UsvgLineJoin::Miter => LineJoin::Miter(miter_limit),
|
||||||
UsvgLineJoin::Round => {
|
UsvgLineJoin::Round => LineJoin::Round,
|
||||||
// TODO(pcwalton)
|
|
||||||
LineJoin::Miter
|
|
||||||
}
|
|
||||||
UsvgLineJoin::Bevel => LineJoin::Bevel,
|
UsvgLineJoin::Bevel => LineJoin::Bevel,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue