diff options
author | 2024-12-17 17:28:46 +0100 | |
---|---|---|
committer | 2024-12-17 17:28:46 +0100 | |
commit | f2c9b6b2ffc50d67d9789e77cb55eeb2a0ebe470 (patch) | |
tree | 4941905adf134468acc079610bb6f25d7461d543 /renderer/src | |
parent | a687a837653a576cb0599f7bc8ecd9c6054213a9 (diff) | |
parent | e5545aaa579f428e45853d125ac86155d8395104 (diff) | |
download | iced-f2c9b6b2ffc50d67d9789e77cb55eeb2a0ebe470.tar.gz iced-f2c9b6b2ffc50d67d9789e77cb55eeb2a0ebe470.tar.bz2 iced-f2c9b6b2ffc50d67d9789e77cb55eeb2a0ebe470.zip |
Merge pull request #2698 from iced-rs/feature/test-crate
Headless Mode Testing
Diffstat (limited to 'renderer/src')
-rw-r--r-- | renderer/src/lib.rs | 28 |
1 files changed, 28 insertions, 0 deletions
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")))] |