diff options
Diffstat (limited to 'renderer/src')
| -rw-r--r-- | renderer/src/fallback.rs | 41 | ||||
| -rw-r--r-- | renderer/src/lib.rs | 28 | 
2 files changed, 45 insertions, 24 deletions
| diff --git a/renderer/src/fallback.rs b/renderer/src/fallback.rs index 8cb18bde..52b8317f 100644 --- a/renderer/src/fallback.rs +++ b/renderer/src/fallback.rs @@ -353,34 +353,27 @@ where      fn screenshot<T: AsRef<str>>(          &mut self,          renderer: &mut Self::Renderer, -        surface: &mut Self::Surface,          viewport: &graphics::Viewport,          background_color: Color,          overlay: &[T],      ) -> Vec<u8> { -        match (self, renderer, surface) { -            ( -                Self::Primary(compositor), -                Renderer::Primary(renderer), -                Surface::Primary(surface), -            ) => compositor.screenshot( -                renderer, -                surface, -                viewport, -                background_color, -                overlay, -            ), -            ( -                Self::Secondary(compositor), -                Renderer::Secondary(renderer), -                Surface::Secondary(surface), -            ) => compositor.screenshot( -                renderer, -                surface, -                viewport, -                background_color, -                overlay, -            ), +        match (self, renderer) { +            (Self::Primary(compositor), Renderer::Primary(renderer)) => { +                compositor.screenshot( +                    renderer, +                    viewport, +                    background_color, +                    overlay, +                ) +            } +            (Self::Secondary(compositor), Renderer::Secondary(renderer)) => { +                compositor.screenshot( +                    renderer, +                    viewport, +                    background_color, +                    overlay, +                ) +            }              _ => unreachable!(),          }      } diff --git a/renderer/src/lib.rs b/renderer/src/lib.rs index 220542e1..ee20a458 100644 --- a/renderer/src/lib.rs +++ b/renderer/src/lib.rs @@ -23,6 +23,9 @@ pub type Compositor = renderer::Compositor;  #[cfg(all(feature = "wgpu", feature = "tiny-skia"))]  mod renderer { +    use crate::core::renderer; +    use crate::core::{Color, Font, Pixels, Size}; +      pub type Renderer = crate::fallback::Renderer<          iced_wgpu::Renderer,          iced_tiny_skia::Renderer, @@ -32,6 +35,31 @@ mod renderer {          iced_wgpu::window::Compositor,          iced_tiny_skia::window::Compositor,      >; + +    impl renderer::Headless for Renderer { +        fn new(default_font: Font, default_text_size: Pixels) -> Self { +            Self::Secondary(iced_tiny_skia::Renderer::new( +                default_font, +                default_text_size, +            )) +        } + +        fn screenshot( +            &mut self, +            size: Size<u32>, +            scale_factor: f32, +            background_color: Color, +        ) -> Vec<u8> { +            match self { +                crate::fallback::Renderer::Primary(_) => unreachable!( +                    "iced_wgpu does not support headless mode yet!" +                ), +                crate::fallback::Renderer::Secondary(renderer) => { +                    renderer.screenshot(size, scale_factor, background_color) +                } +            } +        } +    }  }  #[cfg(all(feature = "wgpu", not(feature = "tiny-skia")))] | 
