diff options
| author | 2021-10-14 16:07:22 +0700 | |
|---|---|---|
| committer | 2021-10-14 16:07:22 +0700 | |
| commit | 03b34931383e701c39c653a7662a616fe21a0947 (patch) | |
| tree | 8c0773d50b615dbc62210db8919ecb97ca912bd9 /wgpu/src | |
| parent | 3aae45c1913e6a6f60b009f19d00d10add7ad11e (diff) | |
| download | iced-03b34931383e701c39c653a7662a616fe21a0947.tar.gz iced-03b34931383e701c39c653a7662a616fe21a0947.tar.bz2 iced-03b34931383e701c39c653a7662a616fe21a0947.zip | |
Remove trait-specific draw logic in `iced_native`
Diffstat (limited to '')
| -rw-r--r-- | wgpu/src/backend.rs | 11 | ||||
| -rw-r--r-- | wgpu/src/window/compositor.rs | 29 | 
2 files changed, 20 insertions, 20 deletions
| 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<T: AsRef<str>>( +    pub fn present<T: AsRef<str>>(          &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( diff --git a/wgpu/src/window/compositor.rs b/wgpu/src/window/compositor.rs index eca54b6f..f29a50f5 100644 --- a/wgpu/src/window/compositor.rs +++ b/wgpu/src/window/compositor.rs @@ -1,7 +1,7 @@  use crate::{Backend, Color, Error, Renderer, Settings, Viewport};  use futures::task::SpawnExt; -use iced_native::{futures, mouse}; +use iced_native::futures;  use raw_window_handle::HasRawWindowHandle;  /// A window graphics backend for iced powered by `wgpu`. @@ -132,15 +132,14 @@ impl iced_graphics::window::Compositor for Compositor {          );      } -    fn draw<T: AsRef<str>>( +    fn present<T: AsRef<str>>(          &mut self,          renderer: &mut Self::Renderer,          surface: &mut Self::Surface,          viewport: &Viewport,          background_color: Color, -        output: &<Self::Renderer as iced_native::Renderer>::Output,          overlay: &[T], -    ) -> Result<mouse::Interaction, iced_graphics::window::SurfaceError> { +    ) -> Result<(), iced_graphics::window::SurfaceError> {          match surface.get_current_frame() {              Ok(frame) => {                  let mut encoder = self.device.create_command_encoder( @@ -180,15 +179,17 @@ impl iced_graphics::window::Compositor for Compositor {                          depth_stencil_attachment: None,                      }); -                let mouse_interaction = renderer.backend_mut().draw( -                    &mut self.device, -                    &mut self.staging_belt, -                    &mut encoder, -                    view, -                    viewport, -                    output, -                    overlay, -                ); +                renderer.present(|backend, primitive| { +                    backend.present( +                        &mut self.device, +                        &mut self.staging_belt, +                        &mut encoder, +                        view, +                        primitive, +                        viewport, +                        overlay, +                    ); +                });                  // Submit work                  self.staging_belt.finish(); @@ -202,7 +203,7 @@ impl iced_graphics::window::Compositor for Compositor {                  self.local_pool.run_until_stalled(); -                Ok(mouse_interaction) +                Ok(())              }              Err(error) => match error {                  wgpu::SurfaceError::Timeout => { | 
