summaryrefslogtreecommitdiffstats
path: root/graphics
diff options
context:
space:
mode:
Diffstat (limited to 'graphics')
-rw-r--r--graphics/src/damage.rs14
-rw-r--r--graphics/src/primitive.rs14
-rw-r--r--graphics/src/renderer.rs5
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,
});
}