From 03b34931383e701c39c653a7662a616fe21a0947 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Thu, 14 Oct 2021 16:07:22 +0700 Subject: Remove trait-specific draw logic in `iced_native` --- wgpu/src/backend.rs | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'wgpu/src/backend.rs') diff --git a/wgpu/src/backend.rs b/wgpu/src/backend.rs index 73fa5c5f..56de553f 100644 --- a/wgpu/src/backend.rs +++ b/wgpu/src/backend.rs @@ -8,7 +8,6 @@ use iced_graphics::font; use iced_graphics::layer::Layer; use iced_graphics::{Primitive, Viewport}; use iced_native::alignment; -use iced_native::mouse; use iced_native::{Font, Size}; #[cfg(any(feature = "image_rs", feature = "svg"))] @@ -28,6 +27,7 @@ pub struct Backend { image_pipeline: image::Pipeline, default_text_size: u16, + primitive: Primitive, } impl Backend { @@ -60,6 +60,7 @@ impl Backend { image_pipeline, default_text_size: settings.default_text_size, + primitive: Primitive::None, } } @@ -67,16 +68,16 @@ impl Backend { /// /// The text provided as overlay will be rendered on top of the primitives. /// This is useful for rendering debug information. - pub fn draw>( + pub fn present>( &mut self, device: &wgpu::Device, staging_belt: &mut wgpu::util::StagingBelt, encoder: &mut wgpu::CommandEncoder, frame: &wgpu::TextureView, + primitive: &Primitive, viewport: &Viewport, - (primitive, mouse_interaction): &(Primitive, mouse::Interaction), overlay_text: &[T], - ) -> mouse::Interaction { + ) { log::debug!("Drawing"); let target_size = viewport.physical_size(); @@ -102,8 +103,6 @@ impl Backend { #[cfg(any(feature = "image_rs", feature = "svg"))] self.image_pipeline.trim_cache(); - - *mouse_interaction } fn flush( -- cgit From 3a0c503db99eb3d45ac971132904df419ee566b6 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Thu, 14 Oct 2021 16:59:19 +0700 Subject: Implement `Widget::draw` for `Text` --- wgpu/src/backend.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'wgpu/src/backend.rs') diff --git a/wgpu/src/backend.rs b/wgpu/src/backend.rs index 56de553f..2597cef3 100644 --- a/wgpu/src/backend.rs +++ b/wgpu/src/backend.rs @@ -74,7 +74,7 @@ impl Backend { staging_belt: &mut wgpu::util::StagingBelt, encoder: &mut wgpu::CommandEncoder, frame: &wgpu::TextureView, - primitive: &Primitive, + primitives: &[Primitive], viewport: &Viewport, overlay_text: &[T], ) { @@ -84,7 +84,7 @@ impl Backend { let scale_factor = viewport.scale_factor() as f32; let transformation = viewport.projection(); - let mut layers = Layer::generate(primitive, viewport); + let mut layers = Layer::generate(primitives, viewport); layers.push(Layer::overlay(overlay_text, viewport)); for layer in layers { -- cgit From 687c35e052a1057042fc8ddf4968c3fa35cc6bcf Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Mon, 25 Oct 2021 16:24:26 +0700 Subject: Avoid flushing empty layers in `iced_wgpu` and `iced_glow` --- wgpu/src/backend.rs | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'wgpu/src/backend.rs') diff --git a/wgpu/src/backend.rs b/wgpu/src/backend.rs index 2597cef3..bb84cc8f 100644 --- a/wgpu/src/backend.rs +++ b/wgpu/src/backend.rs @@ -119,6 +119,10 @@ impl Backend { ) { let bounds = (layer.bounds * scale_factor).snap(); + if bounds.width < 1 || bounds.height < 1 { + return; + } + if !layer.quads.is_empty() { self.quad_pipeline.draw( device, -- cgit From 0aafcde0ef1533c9eeba0379de8c0082e30c7504 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Sun, 31 Oct 2021 15:35:12 +0700 Subject: Remove `widget` module re-exports in `iced_native` --- wgpu/src/backend.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'wgpu/src/backend.rs') diff --git a/wgpu/src/backend.rs b/wgpu/src/backend.rs index bb84cc8f..7d7a26f4 100644 --- a/wgpu/src/backend.rs +++ b/wgpu/src/backend.rs @@ -302,7 +302,10 @@ impl backend::Text for Backend { #[cfg(feature = "image_rs")] impl backend::Image for Backend { - fn dimensions(&self, handle: &iced_native::image::Handle) -> (u32, u32) { + fn dimensions( + &self, + handle: &iced_native::widget::image::Handle, + ) -> (u32, u32) { self.image_pipeline.dimensions(handle) } } @@ -311,7 +314,7 @@ impl backend::Image for Backend { impl backend::Svg for Backend { fn viewport_dimensions( &self, - handle: &iced_native::svg::Handle, + handle: &iced_native::widget::svg::Handle, ) -> (u32, u32) { self.image_pipeline.viewport_dimensions(handle) } -- cgit From c4186a71b746b603984e5fe1926a8cef6e8dcfcb Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Sun, 31 Oct 2021 16:20:50 +0700 Subject: Introduce first-class `image` module in `iced_native` --- wgpu/src/backend.rs | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) (limited to 'wgpu/src/backend.rs') diff --git a/wgpu/src/backend.rs b/wgpu/src/backend.rs index 7d7a26f4..0f4c35c3 100644 --- a/wgpu/src/backend.rs +++ b/wgpu/src/backend.rs @@ -302,10 +302,7 @@ impl backend::Text for Backend { #[cfg(feature = "image_rs")] impl backend::Image for Backend { - fn dimensions( - &self, - handle: &iced_native::widget::image::Handle, - ) -> (u32, u32) { + fn dimensions(&self, handle: &iced_native::image::Handle) -> (u32, u32) { self.image_pipeline.dimensions(handle) } } -- cgit From 9a3c81f336b8e29c64471026860f3c9d8b56348c Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Sun, 31 Oct 2021 16:24:31 +0700 Subject: Introduce first-class `svg` module in `iced_native` --- wgpu/src/backend.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'wgpu/src/backend.rs') diff --git a/wgpu/src/backend.rs b/wgpu/src/backend.rs index 0f4c35c3..bb84cc8f 100644 --- a/wgpu/src/backend.rs +++ b/wgpu/src/backend.rs @@ -311,7 +311,7 @@ impl backend::Image for Backend { impl backend::Svg for Backend { fn viewport_dimensions( &self, - handle: &iced_native::widget::svg::Handle, + handle: &iced_native::svg::Handle, ) -> (u32, u32) { self.image_pipeline.viewport_dimensions(handle) } -- cgit