mirror of
https://github.com/penpot/penpot.git
synced 2025-07-24 08:07:26 +02:00
🎉 Disable antialias for small shapes
This commit is contained in:
parent
a80f114d66
commit
85b24e1e8d
8 changed files with 119 additions and 64 deletions
|
@ -158,13 +158,13 @@ impl Fill {
|
|||
})
|
||||
}
|
||||
|
||||
pub fn to_paint(&self, rect: &Rect) -> skia::Paint {
|
||||
pub fn to_paint(&self, rect: &Rect, anti_alias: bool) -> skia::Paint {
|
||||
match self {
|
||||
Self::Solid(color) => {
|
||||
let mut p = skia::Paint::default();
|
||||
p.set_color(*color);
|
||||
p.set_style(skia::PaintStyle::Fill);
|
||||
p.set_anti_alias(true);
|
||||
p.set_anti_alias(anti_alias);
|
||||
p.set_blend_mode(skia::BlendMode::SrcOver);
|
||||
p
|
||||
}
|
||||
|
@ -173,7 +173,7 @@ impl Fill {
|
|||
p.set_shader(gradient.to_linear_shader(&rect));
|
||||
p.set_alpha((gradient.opacity * 255.) as u8);
|
||||
p.set_style(skia::PaintStyle::Fill);
|
||||
p.set_anti_alias(true);
|
||||
p.set_anti_alias(anti_alias);
|
||||
p.set_blend_mode(skia::BlendMode::SrcOver);
|
||||
p
|
||||
}
|
||||
|
@ -182,14 +182,14 @@ impl Fill {
|
|||
p.set_shader(gradient.to_radial_shader(&rect));
|
||||
p.set_alpha((gradient.opacity * 255.) as u8);
|
||||
p.set_style(skia::PaintStyle::Fill);
|
||||
p.set_anti_alias(true);
|
||||
p.set_anti_alias(anti_alias);
|
||||
p.set_blend_mode(skia::BlendMode::SrcOver);
|
||||
p
|
||||
}
|
||||
Self::Image(image_fill) => {
|
||||
let mut p = skia::Paint::default();
|
||||
p.set_style(skia::PaintStyle::Fill);
|
||||
p.set_anti_alias(true);
|
||||
p.set_anti_alias(anti_alias);
|
||||
p.set_blend_mode(skia::BlendMode::SrcOver);
|
||||
p.set_alpha(image_fill.opacity);
|
||||
p
|
||||
|
|
|
@ -62,7 +62,7 @@ impl Shadow {
|
|||
self.hidden
|
||||
}
|
||||
|
||||
pub fn to_paint(&self, scale: f32) -> skia::Paint {
|
||||
pub fn to_paint(&self, scale: f32, antialias: bool) -> skia::Paint {
|
||||
let mut paint = skia::Paint::default();
|
||||
|
||||
let image_filter = match self.style {
|
||||
|
@ -71,7 +71,7 @@ impl Shadow {
|
|||
};
|
||||
|
||||
paint.set_image_filter(image_filter);
|
||||
paint.set_anti_alias(true);
|
||||
paint.set_anti_alias(antialias);
|
||||
|
||||
paint
|
||||
}
|
||||
|
@ -128,13 +128,13 @@ impl Shadow {
|
|||
|
||||
// New methods for Drop Shadows
|
||||
|
||||
pub fn get_drop_shadow_paint(&self) -> skia::Paint {
|
||||
pub fn get_drop_shadow_paint(&self, antialias: bool) -> skia::Paint {
|
||||
let mut paint = skia::Paint::default();
|
||||
|
||||
let image_filter = self.get_drop_shadow_filter();
|
||||
|
||||
paint.set_image_filter(image_filter);
|
||||
paint.set_anti_alias(true);
|
||||
paint.set_anti_alias(antialias);
|
||||
|
||||
paint
|
||||
}
|
||||
|
@ -158,13 +158,13 @@ impl Shadow {
|
|||
|
||||
// New methods for Inner Shadows
|
||||
|
||||
pub fn get_inner_shadow_paint(&self) -> skia::Paint {
|
||||
pub fn get_inner_shadow_paint(&self, antialias: bool) -> skia::Paint {
|
||||
let mut paint = skia::Paint::default();
|
||||
|
||||
let image_filter = self.get_inner_shadow_filter();
|
||||
|
||||
paint.set_image_filter(image_filter);
|
||||
paint.set_anti_alias(true);
|
||||
paint.set_anti_alias(antialias);
|
||||
|
||||
paint
|
||||
}
|
||||
|
|
|
@ -160,8 +160,9 @@ impl Stroke {
|
|||
rect: &Rect,
|
||||
svg_attrs: &HashMap<String, String>,
|
||||
scale: f32,
|
||||
antialias: bool,
|
||||
) -> skia::Paint {
|
||||
let mut paint = self.fill.to_paint(rect);
|
||||
let mut paint = self.fill.to_paint(rect, antialias);
|
||||
paint.set_style(skia::PaintStyle::Stroke);
|
||||
|
||||
let width = match self.kind {
|
||||
|
@ -171,7 +172,7 @@ impl Stroke {
|
|||
};
|
||||
|
||||
paint.set_stroke_width(width);
|
||||
paint.set_anti_alias(true);
|
||||
paint.set_anti_alias(antialias);
|
||||
|
||||
if let Some("round") = svg_attrs.get("stroke-linecap").map(String::as_str) {
|
||||
paint.set_stroke_cap(skia::paint::Cap::Round);
|
||||
|
@ -225,8 +226,9 @@ impl Stroke {
|
|||
rect: &Rect,
|
||||
svg_attrs: &HashMap<String, String>,
|
||||
scale: f32,
|
||||
antialias: bool,
|
||||
) -> skia::Paint {
|
||||
let mut paint = self.to_paint(rect, svg_attrs, scale);
|
||||
let mut paint = self.to_paint(rect, svg_attrs, scale, antialias);
|
||||
match self.render_kind(is_open) {
|
||||
StrokeKind::InnerStroke => {
|
||||
paint.set_stroke_width(2. * paint.stroke_width());
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue