diff options
| author | 2023-02-25 15:38:25 +0100 | |
|---|---|---|
| committer | 2023-02-25 15:38:25 +0100 | |
| commit | 8c373cd497e370d356b480380482779397bdb510 (patch) | |
| tree | f640a1161e702cbb981d3b89f3e7a11ee390923c /renderer/src/window | |
| parent | a01bc865a0561ff1daf255c4746746acf67524f0 (diff) | |
| download | iced-8c373cd497e370d356b480380482779397bdb510.tar.gz iced-8c373cd497e370d356b480380482779397bdb510.tar.bz2 iced-8c373cd497e370d356b480380482779397bdb510.zip  | |
Scaffold `iced_tiny_skia` and connect it to `iced_renderer`
Diffstat (limited to '')
| -rw-r--r-- | renderer/src/window/compositor.rs | 54 | 
1 files changed, 44 insertions, 10 deletions
diff --git a/renderer/src/window/compositor.rs b/renderer/src/window/compositor.rs index ad78d8bf..42afddc4 100644 --- a/renderer/src/window/compositor.rs +++ b/renderer/src/window/compositor.rs @@ -6,10 +6,12 @@ pub use iced_graphics::window::compositor::{Information, SurfaceError};  pub enum Compositor<Theme> {      Wgpu(iced_wgpu::window::Compositor<Theme>), +    TinySkia(iced_tiny_skia::window::Compositor<Theme>),  }  pub enum Surface {      Wgpu(iced_wgpu::window::Surface), +    TinySkia(iced_tiny_skia::window::Surface),  }  impl<Theme> iced_graphics::window::Compositor for Compositor<Theme> { @@ -19,21 +21,31 @@ impl<Theme> iced_graphics::window::Compositor for Compositor<Theme> {      fn new<W: HasRawWindowHandle + HasRawDisplayHandle>(          settings: Self::Settings, -        compatible_window: Option<&W>, +        _compatible_window: Option<&W>,      ) -> Result<(Self, Self::Renderer), Error> { -        let (compositor, backend) = iced_wgpu::window::compositor::new( -            iced_wgpu::Settings { +        //let (compositor, backend) = iced_wgpu::window::compositor::new( +        //    iced_wgpu::Settings { +        //        default_font: settings.default_font, +        //        default_text_size: settings.default_text_size, +        //        antialiasing: settings.antialiasing, +        //        ..iced_wgpu::Settings::from_env() +        //    }, +        //    compatible_window, +        //)?; + +        //Ok(( +        //    Self::Wgpu(compositor), +        //    Renderer::new(Backend::Wgpu(backend)), +        //)) +        let (compositor, backend) = +            iced_tiny_skia::window::compositor::new(iced_tiny_skia::Settings {                  default_font: settings.default_font,                  default_text_size: settings.default_text_size, -                antialiasing: settings.antialiasing, -                ..iced_wgpu::Settings::from_env() -            }, -            compatible_window, -        )?; +            });          Ok(( -            Self::Wgpu(compositor), -            Renderer::new(Backend::Wgpu(backend)), +            Self::TinySkia(compositor), +            Renderer::new(Backend::TinySkia(backend)),          ))      } @@ -45,6 +57,9 @@ impl<Theme> iced_graphics::window::Compositor for Compositor<Theme> {              Self::Wgpu(compositor) => {                  Surface::Wgpu(compositor.create_surface(window))              } +            Self::TinySkia(compositor) => { +                Surface::TinySkia(compositor.create_surface(window)) +            }          }      } @@ -58,12 +73,17 @@ impl<Theme> iced_graphics::window::Compositor for Compositor<Theme> {              (Self::Wgpu(compositor), Surface::Wgpu(surface)) => {                  compositor.configure_surface(surface, width, height);              } +            (Self::TinySkia(compositor), Surface::TinySkia(surface)) => { +                compositor.configure_surface(surface, width, height); +            } +            _ => unreachable!(),          }      }      fn fetch_information(&self) -> Information {          match self {              Self::Wgpu(compositor) => compositor.fetch_information(), +            Self::TinySkia(compositor) => compositor.fetch_information(),          }      } @@ -90,6 +110,20 @@ impl<Theme> iced_graphics::window::Compositor for Compositor<Theme> {                      background_color,                      overlay,                  ), +                ( +                    Self::TinySkia(compositor), +                    Backend::TinySkia(backend), +                    Surface::TinySkia(surface), +                ) => iced_tiny_skia::window::compositor::present( +                    compositor, +                    backend, +                    surface, +                    primitives, +                    viewport, +                    background_color, +                    overlay, +                ), +                _ => unreachable!(),              }          })      }  | 
