diff options
Diffstat (limited to 'graphics/src')
-rw-r--r-- | graphics/src/damage.rs | 14 | ||||
-rw-r--r-- | graphics/src/primitive.rs | 14 | ||||
-rw-r--r-- | graphics/src/renderer.rs | 5 |
3 files changed, 23 insertions, 10 deletions
diff --git a/graphics/src/damage.rs b/graphics/src/damage.rs index 59e9f5b4..ba9192ef 100644 --- a/graphics/src/damage.rs +++ b/graphics/src/damage.rs @@ -78,6 +78,20 @@ impl<T: Damage> Damage for Primitive<T> { // damage bounds (?) raw.clip_bounds.expand(1.5) } + Self::Quad { bounds, shadow, .. } if shadow.color.a > 0.0 => { + 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::Quad { bounds, .. } | Self::Image { bounds, .. } | Self::Svg { bounds, .. } => bounds.expand(1.0), diff --git a/graphics/src/primitive.rs b/graphics/src/primitive.rs index 20affaaf..aed59e1a 100644 --- a/graphics/src/primitive.rs +++ b/graphics/src/primitive.rs @@ -3,7 +3,9 @@ use crate::core::alignment; use crate::core::image; use crate::core::svg; use crate::core::text; -use crate::core::{Background, Color, Font, Pixels, Point, Rectangle, Vector}; +use crate::core::{ + Background, Border, Color, Font, Pixels, Point, Rectangle, Shadow, Vector, +}; use crate::text::editor; use crate::text::paragraph; @@ -65,12 +67,10 @@ pub enum Primitive<T> { bounds: Rectangle, /// The background of the quad background: Background, - /// The border radii of the quad - border_radius: [f32; 4], - /// The border width of the quad - border_width: f32, - /// The border color of the quad - border_color: Color, + /// The [`Border`] of the quad + border: Border, + /// The [`Shadow`] of the quad + shadow: Shadow, }, /// An image primitive Image { diff --git a/graphics/src/renderer.rs b/graphics/src/renderer.rs index 1b0f5c5b..3ba41c3f 100644 --- a/graphics/src/renderer.rs +++ b/graphics/src/renderer.rs @@ -124,9 +124,8 @@ impl<B: Backend, T> iced_core::Renderer for Renderer<B, T> { self.primitives.push(Primitive::Quad { bounds: quad.bounds, background: background.into(), - border_radius: quad.border_radius.into(), - border_width: quad.border_width, - border_color: quad.border_color, + border: quad.border, + shadow: quad.shadow, }); } |