Merge pull request #6077 from penpot/elenatorro-10516-fix-shadow-rendering

🐛 Fix drop shadows viewport clipping
This commit is contained in:
Alejandro 2025-03-19 08:48:03 +01:00 committed by GitHub
commit b727f2fe1f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 174 additions and 63 deletions

View file

@ -123,4 +123,33 @@ impl Shadow {
filter
}
// New methods for DropShadow
pub fn get_drop_shadow_paint(&self) -> 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
}
fn get_drop_shadow_filter(&self) -> Option<ImageFilter> {
let mut filter = image_filters::drop_shadow_only(
(self.offset.0, self.offset.1),
(self.blur, self.blur),
self.color,
None,
None,
None,
);
if self.spread > 0. {
filter = image_filters::dilate((self.spread, self.spread), filter, None);
}
filter
}
}