diff options
author | 2023-04-26 16:09:36 +0200 | |
---|---|---|
committer | 2023-04-26 16:09:36 +0200 | |
commit | 435b54e57ecdaf08b1f36626f0000438895c909d (patch) | |
tree | 275ba7f0cbca7bc882de9cf1509ee97c19db51de /tiny_skia | |
parent | 619ba9294d5e0f7913f82838d78018fc6714d26a (diff) | |
download | iced-435b54e57ecdaf08b1f36626f0000438895c909d.tar.gz iced-435b54e57ecdaf08b1f36626f0000438895c909d.tar.bz2 iced-435b54e57ecdaf08b1f36626f0000438895c909d.zip |
Revert "Use `pixels` for presentation in `iced_tiny_skia` when possible"
This reverts commit 16e6efe020e75d51958875fa198196534679af8d.
Diffstat (limited to 'tiny_skia')
-rw-r--r-- | tiny_skia/Cargo.toml | 6 | ||||
-rw-r--r-- | tiny_skia/src/window/compositor.rs | 76 |
2 files changed, 13 insertions, 69 deletions
diff --git a/tiny_skia/Cargo.toml b/tiny_skia/Cargo.toml index a8342e5f..f629dab9 100644 --- a/tiny_skia/Cargo.toml +++ b/tiny_skia/Cargo.toml @@ -4,8 +4,6 @@ version = "0.1.0" edition = "2021" [features] -default = ["gpu"] -gpu = ["pixels"] image = ["iced_graphics/image"] svg = ["resvg"] geometry = ["iced_graphics/geometry"] @@ -33,10 +31,6 @@ default-features = false version = "1.6.1" features = ["std"] -[dependencies.pixels] -version = "0.12" -optional = true - [dependencies.resvg] version = "0.29" optional = true diff --git a/tiny_skia/src/window/compositor.rs b/tiny_skia/src/window/compositor.rs index 5a0097df..6e4bb6ef 100644 --- a/tiny_skia/src/window/compositor.rs +++ b/tiny_skia/src/window/compositor.rs @@ -11,13 +11,9 @@ pub struct Compositor<Theme> { _theme: PhantomData<Theme>, } -pub enum Surface { - Cpu { - window: softbuffer::GraphicsContext, - buffer: Vec<u32>, - }, - #[cfg(feature = "gpu")] - Gpu { pixels: pixels::Pixels }, +pub struct Surface { + window: softbuffer::GraphicsContext, + buffer: Vec<u32>, } impl<Theme> crate::graphics::Compositor for Compositor<Theme> { @@ -40,29 +36,11 @@ impl<Theme> crate::graphics::Compositor for Compositor<Theme> { width: u32, height: u32, ) -> Surface { - #[cfg(feature = "gpu")] - { - let surface_texture = - pixels::SurfaceTexture::new(width, height, window); - - if let Ok(pixels) = - pixels::PixelsBuilder::new(width, height, surface_texture) - .texture_format(pixels::wgpu::TextureFormat::Bgra8UnormSrgb) - .build() - { - log::info!("GPU surface created"); - - return Surface::Gpu { pixels }; - } - } - let window = unsafe { softbuffer::GraphicsContext::new(window, window) } .expect("Create softbuffer for window"); - log::info!("CPU surface created"); - - Surface::Cpu { + Surface { window, buffer: vec![0; width as usize * height as usize], } @@ -74,19 +52,7 @@ impl<Theme> crate::graphics::Compositor for Compositor<Theme> { width: u32, height: u32, ) { - match surface { - Surface::Cpu { buffer, .. } => { - buffer.resize((width * height) as usize, 0); - } - #[cfg(feature = "gpu")] - Surface::Gpu { pixels } => { - pixels - .resize_surface(width, height) - .expect("Resize surface"); - - pixels.resize_buffer(width, height).expect("Resize buffer"); - } - } + surface.buffer.resize((width * height) as usize, 0); } fn fetch_information(&self) -> Information { @@ -140,15 +106,9 @@ pub fn present<Theme, T: AsRef<str>>( ) -> Result<(), compositor::SurfaceError> { let physical_size = viewport.physical_size(); - let buffer = match surface { - Surface::Cpu { buffer, .. } => bytemuck::cast_slice_mut(buffer), - #[cfg(feature = "gpu")] - Surface::Gpu { pixels } => pixels.frame_mut(), - }; - let drawn = backend.draw( &mut tiny_skia::PixmapMut::from_bytes( - buffer, + bytemuck::cast_slice_mut(&mut surface.buffer), physical_size.width, physical_size.height, ) @@ -161,22 +121,12 @@ pub fn present<Theme, T: AsRef<str>>( ); if drawn { - match surface { - Surface::Cpu { window, buffer } => { - window.set_buffer( - buffer, - physical_size.width as u16, - physical_size.height as u16, - ); - - Ok(()) - } - #[cfg(feature = "gpu")] - Surface::Gpu { pixels } => { - pixels.render().map_err(|_| compositor::SurfaceError::Lost) - } - } - } else { - Ok(()) + surface.window.set_buffer( + &surface.buffer, + physical_size.width as u16, + physical_size.height as u16, + ); } + + Ok(()) } |