summaryrefslogtreecommitdiffstats
path: root/wgpu/src/renderer
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--wgpu/src/renderer.rs4
-rw-r--r--wgpu/src/renderer/widget/button.rs28
-rw-r--r--wgpu/src/renderer/widget/button/style.rs1
3 files changed, 17 insertions, 16 deletions
diff --git a/wgpu/src/renderer.rs b/wgpu/src/renderer.rs
index 365ef1ef..4984d4fe 100644
--- a/wgpu/src/renderer.rs
+++ b/wgpu/src/renderer.rs
@@ -22,7 +22,7 @@ pub struct Renderer {
device: Device,
queue: Queue,
quad_pipeline: quad::Pipeline,
- image_pipeline: crate::image::Pipeline,
+ image_pipeline: image::Pipeline,
text_pipeline: text::Pipeline,
}
@@ -63,7 +63,7 @@ impl Renderer {
let text_pipeline = text::Pipeline::new(&mut device);
let quad_pipeline = quad::Pipeline::new(&mut device);
- let image_pipeline = crate::image::Pipeline::new(&mut device);
+ let image_pipeline = image::Pipeline::new(&mut device);
Self {
device,
diff --git a/wgpu/src/renderer/widget/button.rs b/wgpu/src/renderer/widget/button.rs
index 86963053..f3817374 100644
--- a/wgpu/src/renderer/widget/button.rs
+++ b/wgpu/src/renderer/widget/button.rs
@@ -1,50 +1,50 @@
-use crate::{Primitive, Renderer};
-use iced_native::{button, Background, MouseCursor, Point, Rectangle};
+use crate::{button::StyleSheet, Primitive, Renderer};
+use iced_native::{Background, MouseCursor, Point, Rectangle};
+
+impl iced_native::button::Renderer for Renderer {
+ type Style = Box<dyn StyleSheet>;
-impl button::Renderer for Renderer {
fn draw(
&mut self,
bounds: Rectangle,
cursor_position: Point,
is_pressed: bool,
- background: Option<Background>,
- border_radius: u16,
+ style: &Box<dyn StyleSheet>,
(content, _): Self::Output,
) -> Self::Output {
let is_mouse_over = bounds.contains(cursor_position);
// TODO: Render proper shadows
- // TODO: Make hovering and pressed styles configurable
- let shadow_offset = if is_mouse_over {
+ let styling = if is_mouse_over {
if is_pressed {
- 0.0
+ style.pressed()
} else {
- 2.0
+ style.hovered()
}
} else {
- 1.0
+ style.active()
};
(
- match background {
+ match styling.background {
None => content,
Some(background) => Primitive::Group {
primitives: vec![
Primitive::Quad {
bounds: Rectangle {
x: bounds.x + 1.0,
- y: bounds.y + shadow_offset,
+ y: bounds.y + styling.shadow_offset,
..bounds
},
background: Background::Color(
[0.0, 0.0, 0.0, 0.5].into(),
),
- border_radius,
+ border_radius: styling.border_radius,
},
Primitive::Quad {
bounds,
background,
- border_radius,
+ border_radius: styling.border_radius,
},
content,
],
diff --git a/wgpu/src/renderer/widget/button/style.rs b/wgpu/src/renderer/widget/button/style.rs
new file mode 100644
index 00000000..8b137891
--- /dev/null
+++ b/wgpu/src/renderer/widget/button/style.rs
@@ -0,0 +1 @@
+