diff options
-rw-r--r-- | graphics/src/renderer.rs | 10 | ||||
-rw-r--r-- | native/src/renderer.rs | 13 | ||||
-rw-r--r-- | native/src/renderer/null.rs | 2 |
3 files changed, 24 insertions, 1 deletions
diff --git a/graphics/src/renderer.rs b/graphics/src/renderer.rs index 91f6b550..7ed06151 100644 --- a/graphics/src/renderer.rs +++ b/graphics/src/renderer.rs @@ -70,6 +70,16 @@ where }); } + fn fill_rectangle(&mut self, quad: renderer::Quad) { + self.primitives.push(Primitive::Quad { + bounds: quad.bounds, + background: quad.background, + border_radius: quad.border_radius, + border_width: quad.border_width, + border_color: quad.border_color, + }); + } + fn clear(&mut self) { self.primitives.clear(); } diff --git a/native/src/renderer.rs b/native/src/renderer.rs index 5a7a0067..382edb61 100644 --- a/native/src/renderer.rs +++ b/native/src/renderer.rs @@ -29,7 +29,7 @@ mod null; pub use null::Null; use crate::layout; -use crate::{Element, Rectangle, Vector}; +use crate::{Background, Color, Element, Rectangle, Vector}; /// A component that can take the state of a user interface and produce an /// output for its users. @@ -59,4 +59,15 @@ pub trait Renderer: Sized { ); fn clear(&mut self); + + fn fill_rectangle(&mut self, quad: Quad); +} + +#[derive(Debug, Clone, Copy, PartialEq)] +pub struct Quad { + pub bounds: Rectangle, + pub background: Background, + pub border_radius: f32, + pub border_width: f32, + pub border_color: Color, } diff --git a/native/src/renderer/null.rs b/native/src/renderer/null.rs index b8e01b80..1c026fde 100644 --- a/native/src/renderer/null.rs +++ b/native/src/renderer/null.rs @@ -37,6 +37,8 @@ impl Renderer for Null { } fn clear(&mut self) {} + + fn fill_rectangle(&mut self, _quad: renderer::Quad) {} } impl renderer::Text for Null { |