pub struct StrokeStyle {
pub width: f64,
pub cap: LineCap,
pub join: LineJoin,
}Expand description
logical-unit stroke style, with explicit caps, joins and dash geometry.
Defaults to width one, butt caps and a miter join with limit four. Width must be finite and nonnegative; zero emits no outline. This bounded first slice accepts paths of at most MAX_STROKE_VERBS verbs. Curves expand directly into fill outlines; Styled trim/dash use exact source-curve splitting first. Nonzero widths and segment lengths require 1e-30..=1e30; coordinates require absolute magnitude at most 1e30, and the width must exceed local rounding noise. Round outlines use kurbo’s cubic circular approximation, not exact circles. Move-only and zero-length subpaths emit no dot, including with round caps.
use motion_core::prelude::*;
use motion_core::{
DisplayList, RasterLimits, ResourcePool, ValidatedDisplayList, MAX_PATH_VERBS,
MAX_STROKE_VERBS, MAX_SVG_PATH_BYTES, sample_offsets,
};
let outline = Rect::new(1.0, 1.0, 7.0, 7.0)
.fill(Color::WHITE)
.stroke(2.0, Color::BLACK)
.stroke_style(StrokeStyle {
width: 2.0,
cap: LineCap::Round,
join: LineJoin::Round,
});
let list = Node::from(outline).opacity(0.5).compile(
Size::new(8.0, 8.0),
PixelSize::new(8, 8),
ValidationLimits::default(),
)?;
let frame = list;Fields§
§width: f64Full logical width; zero preserves layout but draws no stroke.
cap: LineCapThe same cap for both ends of each open subpath.
join: LineJoinConnection at each nondegenerate corner, including closed seams.