feat: quad shadows

This commit is contained in:
Nick Senger 2023-11-08 19:12:53 -08:00 committed by Héctor Ramón Jiménez
parent b3e3f6e3c9
commit cc906c83cd
No known key found for this signature in database
GPG key ID: 7CC46565708259A7
33 changed files with 305 additions and 25 deletions

View file

@ -78,9 +78,28 @@ impl<T: Damage> Damage for Primitive<T> {
// damage bounds (?)
raw.clip_bounds.expand(1.5)
}
Self::Quad { bounds, .. }
| Self::Image { bounds, .. }
| Self::Svg { bounds, .. } => bounds.expand(1.0),
Self::Quad {
bounds,
shadow_offset,
shadow_blur_radius,
..
} => {
let bounds_with_shadow = Rectangle {
x: bounds.x + shadow_offset.x.min(0.0) - shadow_blur_radius,
y: bounds.y + shadow_offset.y.min(0.0) - shadow_blur_radius,
width: bounds.width
+ shadow_offset.x.abs()
+ shadow_blur_radius * 2.0,
height: bounds.height
+ shadow_offset.y.abs()
+ shadow_blur_radius * 2.0,
};
bounds_with_shadow.expand(1.0)
}
Self::Image { bounds, .. } | Self::Svg { bounds, .. } => {
bounds.expand(1.0)
}
Self::Clip { bounds, .. } => bounds.expand(1.0),
Self::Group { primitives } => primitives
.iter()