Fix paths with negative coordinates in iced_tiny_skia
This commit is contained in:
parent
4cb53a6e22
commit
acee3b030b
3 changed files with 21 additions and 18 deletions
|
|
@ -543,7 +543,6 @@ impl Backend {
|
|||
path,
|
||||
paint,
|
||||
rule,
|
||||
transform,
|
||||
}) => {
|
||||
let bounds = path.bounds();
|
||||
|
||||
|
|
@ -566,9 +565,11 @@ impl Backend {
|
|||
path,
|
||||
paint,
|
||||
*rule,
|
||||
transform
|
||||
.post_translate(translation.x, translation.y)
|
||||
.post_scale(scale_factor, scale_factor),
|
||||
tiny_skia::Transform::from_translate(
|
||||
translation.x,
|
||||
translation.y,
|
||||
)
|
||||
.post_scale(scale_factor, scale_factor),
|
||||
clip_mask,
|
||||
);
|
||||
}
|
||||
|
|
@ -576,7 +577,6 @@ impl Backend {
|
|||
path,
|
||||
paint,
|
||||
stroke,
|
||||
transform,
|
||||
}) => {
|
||||
let bounds = path.bounds();
|
||||
|
||||
|
|
@ -599,9 +599,11 @@ impl Backend {
|
|||
path,
|
||||
paint,
|
||||
stroke,
|
||||
transform
|
||||
.post_translate(translation.x, translation.y)
|
||||
.post_scale(scale_factor, scale_factor),
|
||||
tiny_skia::Transform::from_translate(
|
||||
translation.x,
|
||||
translation.y,
|
||||
)
|
||||
.post_scale(scale_factor, scale_factor),
|
||||
clip_mask,
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -40,9 +40,12 @@ impl Frame {
|
|||
}
|
||||
|
||||
pub fn fill(&mut self, path: &Path, fill: impl Into<Fill>) {
|
||||
let Some(path) = convert_path(path) else {
|
||||
let Some(path) =
|
||||
convert_path(path).and_then(|path| path.transform(self.transform))
|
||||
else {
|
||||
return;
|
||||
};
|
||||
|
||||
let fill = fill.into();
|
||||
|
||||
self.primitives
|
||||
|
|
@ -50,7 +53,6 @@ impl Frame {
|
|||
path,
|
||||
paint: into_paint(fill.style),
|
||||
rule: into_fill_rule(fill.rule),
|
||||
transform: self.transform,
|
||||
}));
|
||||
}
|
||||
|
||||
|
|
@ -60,9 +62,12 @@ impl Frame {
|
|||
size: Size,
|
||||
fill: impl Into<Fill>,
|
||||
) {
|
||||
let Some(path) = convert_path(&Path::rectangle(top_left, size)) else {
|
||||
let Some(path) = convert_path(&Path::rectangle(top_left, size))
|
||||
.and_then(|path| path.transform(self.transform))
|
||||
else {
|
||||
return;
|
||||
};
|
||||
|
||||
let fill = fill.into();
|
||||
|
||||
self.primitives
|
||||
|
|
@ -73,12 +78,13 @@ impl Frame {
|
|||
..into_paint(fill.style)
|
||||
},
|
||||
rule: into_fill_rule(fill.rule),
|
||||
transform: self.transform,
|
||||
}));
|
||||
}
|
||||
|
||||
pub fn stroke<'a>(&mut self, path: &Path, stroke: impl Into<Stroke<'a>>) {
|
||||
let Some(path) = convert_path(path) else {
|
||||
let Some(path) =
|
||||
convert_path(path).and_then(|path| path.transform(self.transform))
|
||||
else {
|
||||
return;
|
||||
};
|
||||
|
||||
|
|
@ -90,7 +96,6 @@ impl Frame {
|
|||
path,
|
||||
paint: into_paint(stroke.style),
|
||||
stroke: skia_stroke,
|
||||
transform: self.transform,
|
||||
}));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -13,8 +13,6 @@ pub enum Custom {
|
|||
paint: tiny_skia::Paint<'static>,
|
||||
/// The fill rule to follow.
|
||||
rule: tiny_skia::FillRule,
|
||||
/// The transform to apply to the path.
|
||||
transform: tiny_skia::Transform,
|
||||
},
|
||||
/// A path stroked with some paint.
|
||||
Stroke {
|
||||
|
|
@ -24,8 +22,6 @@ pub enum Custom {
|
|||
paint: tiny_skia::Paint<'static>,
|
||||
/// The stroke settings.
|
||||
stroke: tiny_skia::Stroke,
|
||||
/// The transform to apply to the path.
|
||||
transform: tiny_skia::Transform,
|
||||
},
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue