From ff268c8c4268d930fc337636302175d44e201448 Mon Sep 17 00:00:00 2001 From: Ian Douglas Scott Date: Tue, 9 Jan 2024 12:25:53 -0800 Subject: Update to `softbuffer` 0.3, tracking up to `age` sets of primitives --- renderer/src/compositor.rs | 1 + 1 file changed, 1 insertion(+) (limited to 'renderer/src') diff --git a/renderer/src/compositor.rs b/renderer/src/compositor.rs index 9d0ff9ab..f9afdea4 100644 --- a/renderer/src/compositor.rs +++ b/renderer/src/compositor.rs @@ -238,6 +238,7 @@ impl Candidate { default_font: settings.default_font, default_text_size: settings.default_text_size, }, + _compatible_window, ); Ok(Compositor::TinySkia(compositor)) -- cgit From 7289b6091b61b0aa448a756cfe32211c78a4cce0 Mon Sep 17 00:00:00 2001 From: Ian Douglas Scott Date: Tue, 9 Jan 2024 07:19:15 -0800 Subject: WIP raw-window-handle 0.6 --- renderer/src/compositor.rs | 51 ++++++++++++++++++++++++++-------------------- 1 file changed, 29 insertions(+), 22 deletions(-) (limited to 'renderer/src') diff --git a/renderer/src/compositor.rs b/renderer/src/compositor.rs index f9afdea4..17157c66 100644 --- a/renderer/src/compositor.rs +++ b/renderer/src/compositor.rs @@ -3,29 +3,36 @@ use crate::graphics::compositor::{Information, SurfaceError}; use crate::graphics::{Error, Viewport}; use crate::{Renderer, Settings}; -use raw_window_handle::{HasRawDisplayHandle, HasRawWindowHandle}; +use raw_window_handle::{HasDisplayHandle, HasWindowHandle}; use std::env; -pub enum Compositor { - TinySkia(iced_tiny_skia::window::Compositor), +pub enum Compositor { + TinySkia(iced_tiny_skia::window::Compositor), #[cfg(feature = "wgpu")] - Wgpu(iced_wgpu::window::Compositor), + Wgpu(iced_wgpu::window::Compositor), } -pub enum Surface { - TinySkia(iced_tiny_skia::window::Surface), +pub enum Surface { + TinySkia(iced_tiny_skia::window::Surface), #[cfg(feature = "wgpu")] - Wgpu(iced_wgpu::window::Surface), + Wgpu(iced_wgpu::window::Surface<'static>), } -impl crate::graphics::Compositor for Compositor { +// XXX Clone bound +// XXX Send/Sync? +// 'static? +impl< + W: Clone + Send + Sync + HasWindowHandle + HasDisplayHandle + 'static, + Theme, + > crate::graphics::Compositor for Compositor +{ type Settings = Settings; type Renderer = Renderer; - type Surface = Surface; + type Surface = Surface; - fn new( + fn new( settings: Self::Settings, - compatible_window: Option<&W>, + compatible_window: Option, ) -> Result { let candidates = Candidate::list_from_env().unwrap_or(Candidate::default_list()); @@ -33,7 +40,7 @@ impl crate::graphics::Compositor for Compositor { let mut error = Error::GraphicsAdapterNotFound; for candidate in candidates { - match candidate.build(settings, compatible_window) { + match candidate.build(settings, compatible_window.clone()) { Ok(compositor) => return Ok(compositor), Err(new_error) => { error = new_error; @@ -56,12 +63,12 @@ impl crate::graphics::Compositor for Compositor { } } - fn create_surface( + fn create_surface( &mut self, - window: &W, + window: W, width: u32, height: u32, - ) -> Surface { + ) -> Surface { match self { Self::TinySkia(compositor) => Surface::TinySkia( compositor.create_surface(window, width, height), @@ -75,7 +82,7 @@ impl crate::graphics::Compositor for Compositor { fn configure_surface( &mut self, - surface: &mut Surface, + surface: &mut Surface, width: u32, height: u32, ) { @@ -114,7 +121,7 @@ impl crate::graphics::Compositor for Compositor { ( Self::TinySkia(_compositor), crate::Renderer::TinySkia(renderer), - Surface::TinySkia(surface), + Surface::TinySkia(ref mut surface), ) => renderer.with_primitives(|backend, primitives| { iced_tiny_skia::window::compositor::present( backend, @@ -129,7 +136,7 @@ impl crate::graphics::Compositor for Compositor { ( Self::Wgpu(compositor), crate::Renderer::Wgpu(renderer), - Surface::Wgpu(surface), + Surface::Wgpu(ref mut surface), ) => renderer.with_primitives(|backend, primitives| { iced_wgpu::window::compositor::present( compositor, @@ -161,7 +168,7 @@ impl crate::graphics::Compositor for Compositor { ( Self::TinySkia(_compositor), Renderer::TinySkia(renderer), - Surface::TinySkia(surface), + Surface::TinySkia(ref mut surface), ) => renderer.with_primitives(|backend, primitives| { iced_tiny_skia::window::compositor::screenshot( surface, @@ -226,11 +233,11 @@ impl Candidate { ) } - fn build( + fn build( self, settings: Settings, - _compatible_window: Option<&W>, - ) -> Result, Error> { + _compatible_window: Option, + ) -> Result, Error> { match self { Self::TinySkia => { let compositor = iced_tiny_skia::window::compositor::new( -- cgit From 8bf238697226e827dc983f9d89afbd0e252c5254 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Thu, 18 Jan 2024 09:55:27 +0100 Subject: Remove `Compositor` window generic And update `glyphon` and `window_clipboard` --- renderer/src/compositor.rs | 36 ++++++++++++++---------------------- 1 file changed, 14 insertions(+), 22 deletions(-) (limited to 'renderer/src') diff --git a/renderer/src/compositor.rs b/renderer/src/compositor.rs index 17157c66..a7c63444 100644 --- a/renderer/src/compositor.rs +++ b/renderer/src/compositor.rs @@ -1,36 +1,28 @@ use crate::core::Color; -use crate::graphics::compositor::{Information, SurfaceError}; +use crate::graphics::compositor::{Information, SurfaceError, Window}; use crate::graphics::{Error, Viewport}; use crate::{Renderer, Settings}; -use raw_window_handle::{HasDisplayHandle, HasWindowHandle}; use std::env; -pub enum Compositor { - TinySkia(iced_tiny_skia::window::Compositor), +pub enum Compositor { + TinySkia(iced_tiny_skia::window::Compositor), #[cfg(feature = "wgpu")] - Wgpu(iced_wgpu::window::Compositor), + Wgpu(iced_wgpu::window::Compositor), } -pub enum Surface { - TinySkia(iced_tiny_skia::window::Surface), +pub enum Surface { + TinySkia(iced_tiny_skia::window::Surface), #[cfg(feature = "wgpu")] Wgpu(iced_wgpu::window::Surface<'static>), } -// XXX Clone bound -// XXX Send/Sync? -// 'static? -impl< - W: Clone + Send + Sync + HasWindowHandle + HasDisplayHandle + 'static, - Theme, - > crate::graphics::Compositor for Compositor -{ +impl crate::graphics::Compositor for Compositor { type Settings = Settings; type Renderer = Renderer; - type Surface = Surface; + type Surface = Surface; - fn new( + fn new( settings: Self::Settings, compatible_window: Option, ) -> Result { @@ -63,12 +55,12 @@ impl< } } - fn create_surface( + fn create_surface( &mut self, window: W, width: u32, height: u32, - ) -> Surface { + ) -> Surface { match self { Self::TinySkia(compositor) => Surface::TinySkia( compositor.create_surface(window, width, height), @@ -82,7 +74,7 @@ impl< fn configure_surface( &mut self, - surface: &mut Surface, + surface: &mut Surface, width: u32, height: u32, ) { @@ -233,11 +225,11 @@ impl Candidate { ) } - fn build( + fn build( self, settings: Settings, _compatible_window: Option, - ) -> Result, Error> { + ) -> Result, Error> { match self { Self::TinySkia => { let compositor = iced_tiny_skia::window::compositor::new( -- cgit From 1701ec815d3f25ea8097e806081e7a3ac9ba4d82 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Thu, 18 Jan 2024 10:02:50 +0100 Subject: Remove redundant `ref mut` in `iced_renderer::compositor` --- renderer/src/compositor.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'renderer/src') diff --git a/renderer/src/compositor.rs b/renderer/src/compositor.rs index a7c63444..0b56f101 100644 --- a/renderer/src/compositor.rs +++ b/renderer/src/compositor.rs @@ -113,7 +113,7 @@ impl crate::graphics::Compositor for Compositor { ( Self::TinySkia(_compositor), crate::Renderer::TinySkia(renderer), - Surface::TinySkia(ref mut surface), + Surface::TinySkia(surface), ) => renderer.with_primitives(|backend, primitives| { iced_tiny_skia::window::compositor::present( backend, @@ -128,7 +128,7 @@ impl crate::graphics::Compositor for Compositor { ( Self::Wgpu(compositor), crate::Renderer::Wgpu(renderer), - Surface::Wgpu(ref mut surface), + Surface::Wgpu(surface), ) => renderer.with_primitives(|backend, primitives| { iced_wgpu::window::compositor::present( compositor, @@ -160,7 +160,7 @@ impl crate::graphics::Compositor for Compositor { ( Self::TinySkia(_compositor), Renderer::TinySkia(renderer), - Surface::TinySkia(ref mut surface), + Surface::TinySkia(surface), ) => renderer.with_primitives(|backend, primitives| { iced_tiny_skia::window::compositor::screenshot( surface, -- cgit From 5fc49edc55a0e64c4c46ca55eddafe9d4e8232e1 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Thu, 18 Jan 2024 10:06:30 +0100 Subject: Make `compatible_window` mandatory in `Compositor` --- renderer/src/compositor.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'renderer/src') diff --git a/renderer/src/compositor.rs b/renderer/src/compositor.rs index 0b56f101..f10ed048 100644 --- a/renderer/src/compositor.rs +++ b/renderer/src/compositor.rs @@ -24,7 +24,7 @@ impl crate::graphics::Compositor for Compositor { fn new( settings: Self::Settings, - compatible_window: Option, + compatible_window: W, ) -> Result { let candidates = Candidate::list_from_env().unwrap_or(Candidate::default_list()); @@ -228,7 +228,7 @@ impl Candidate { fn build( self, settings: Settings, - _compatible_window: Option, + _compatible_window: W, ) -> Result, Error> { match self { Self::TinySkia => { -- cgit