summaryrefslogtreecommitdiffstats
path: root/renderer/src/lib.rs
diff options
context:
space:
mode:
authorLibravatar Bingus <shankern@protonmail.com>2023-09-14 13:58:36 -0700
committerLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2023-11-14 11:31:44 +0100
commit781ef1f94c4859aeeb852f801b72be095b8ff82b (patch)
tree63e2678eca11dd41c26a40633c04341fd795d733 /renderer/src/lib.rs
parent817f72868746461891ca4e74473c555f3b5c5703 (diff)
downloadiced-781ef1f94c4859aeeb852f801b72be095b8ff82b.tar.gz
iced-781ef1f94c4859aeeb852f801b72be095b8ff82b.tar.bz2
iced-781ef1f94c4859aeeb852f801b72be095b8ff82b.zip
Added support for custom shader widget for iced_wgpu backend.
Diffstat (limited to 'renderer/src/lib.rs')
-rw-r--r--renderer/src/lib.rs21
1 files changed, 21 insertions, 0 deletions
diff --git a/renderer/src/lib.rs b/renderer/src/lib.rs
index 78dec847..8c5ee2f0 100644
--- a/renderer/src/lib.rs
+++ b/renderer/src/lib.rs
@@ -7,6 +7,7 @@ pub mod compositor;
pub mod geometry;
mod settings;
+pub mod widget;
pub use iced_graphics as graphics;
pub use iced_graphics::core;
@@ -59,6 +60,26 @@ impl<T> Renderer<T> {
}
}
}
+
+ pub fn draw_custom<P: widget::shader::Primitive>(
+ &mut self,
+ bounds: Rectangle,
+ primitive: P,
+ ) {
+ match self {
+ Renderer::TinySkia(_) => {
+ log::warn!(
+ "Custom shader primitive is unavailable with tiny-skia."
+ );
+ }
+ #[cfg(feature = "wgpu")]
+ Renderer::Wgpu(renderer) => {
+ renderer.draw_primitive(iced_wgpu::Primitive::Custom(
+ iced_wgpu::primitive::Custom::shader(bounds, primitive),
+ ))
+ }
+ }
+ }
}
impl<T> core::Renderer for Renderer<T> {