From d53ccc857da4d4cda769904342aeb5a82a64f146 Mon Sep 17 00:00:00 2001 From: Bingus Date: Wed, 12 Jul 2023 19:21:05 -0700 Subject: refactored window storage; new helper window events (Destroyed, Created); clippy + fmt; --- renderer/src/compositor.rs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'renderer/src/compositor.rs') diff --git a/renderer/src/compositor.rs b/renderer/src/compositor.rs index 8b17a4b0..b5da31bf 100644 --- a/renderer/src/compositor.rs +++ b/renderer/src/compositor.rs @@ -46,6 +46,22 @@ impl crate::graphics::Compositor for Compositor { Err(error) } + fn renderer(&self) -> Self::Renderer { + match self { + Compositor::TinySkia(compositor) => { + Renderer::TinySkia(compositor.renderer()) + } + #[cfg(feature = "wgpu")] + Compositor::Wgpu(compositor) => { + Renderer::Wgpu(compositor.renderer()) + } + #[cfg(not(feature = "wgpu"))] + Self::Wgpu => { + panic!("`wgpu` feature was not enabled in `iced_renderer`") + } + } + } + fn create_surface( &mut self, window: &W, -- cgit From 8c4e7d80a1ba128864ee82770a4670b8dbba619a Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Wed, 29 Nov 2023 22:47:46 +0100 Subject: Fix `renderer` method in `iced_renderer::Compositor` --- renderer/src/compositor.rs | 4 ---- 1 file changed, 4 deletions(-) (limited to 'renderer/src/compositor.rs') diff --git a/renderer/src/compositor.rs b/renderer/src/compositor.rs index 5fc5a459..5bec1639 100644 --- a/renderer/src/compositor.rs +++ b/renderer/src/compositor.rs @@ -55,10 +55,6 @@ impl crate::graphics::Compositor for Compositor { Compositor::Wgpu(compositor) => { Renderer::Wgpu(compositor.renderer()) } - #[cfg(not(feature = "wgpu"))] - Self::Wgpu => { - panic!("`wgpu` feature was not enabled in `iced_renderer`") - } } } -- cgit From b152ecda63238136f77b6eda3c582fa1eff99737 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Sat, 2 Dec 2023 20:49:47 +0100 Subject: Separate `Compositor::new` from `Compositor::create_renderer` --- renderer/src/compositor.rs | 47 +++++++++++++++------------------------------- 1 file changed, 15 insertions(+), 32 deletions(-) (limited to 'renderer/src/compositor.rs') diff --git a/renderer/src/compositor.rs b/renderer/src/compositor.rs index 5bec1639..9d0ff9ab 100644 --- a/renderer/src/compositor.rs +++ b/renderer/src/compositor.rs @@ -26,7 +26,7 @@ impl crate::graphics::Compositor for Compositor { fn new( settings: Self::Settings, compatible_window: Option<&W>, - ) -> Result<(Self, Self::Renderer), Error> { + ) -> Result { let candidates = Candidate::list_from_env().unwrap_or(Candidate::default_list()); @@ -34,9 +34,7 @@ impl crate::graphics::Compositor for Compositor { for candidate in candidates { match candidate.build(settings, compatible_window) { - Ok((compositor, renderer)) => { - return Ok((compositor, renderer)) - } + Ok(compositor) => return Ok(compositor), Err(new_error) => { error = new_error; } @@ -46,14 +44,14 @@ impl crate::graphics::Compositor for Compositor { Err(error) } - fn renderer(&self) -> Self::Renderer { + fn create_renderer(&self) -> Self::Renderer { match self { Compositor::TinySkia(compositor) => { - Renderer::TinySkia(compositor.renderer()) + Renderer::TinySkia(compositor.create_renderer()) } #[cfg(feature = "wgpu")] Compositor::Wgpu(compositor) => { - Renderer::Wgpu(compositor.renderer()) + Renderer::Wgpu(compositor.create_renderer()) } } } @@ -232,29 +230,21 @@ impl Candidate { self, settings: Settings, _compatible_window: Option<&W>, - ) -> Result<(Compositor, Renderer), Error> { + ) -> Result, Error> { match self { Self::TinySkia => { - 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, - }, - ); + let compositor = iced_tiny_skia::window::compositor::new( + iced_tiny_skia::Settings { + default_font: settings.default_font, + default_text_size: settings.default_text_size, + }, + ); - Ok(( - Compositor::TinySkia(compositor), - Renderer::TinySkia(iced_tiny_skia::Renderer::new( - backend, - settings.default_font, - settings.default_text_size, - )), - )) + Ok(Compositor::TinySkia(compositor)) } #[cfg(feature = "wgpu")] Self::Wgpu => { - let (compositor, backend) = iced_wgpu::window::compositor::new( + let compositor = iced_wgpu::window::compositor::new( iced_wgpu::Settings { default_font: settings.default_font, default_text_size: settings.default_text_size, @@ -264,14 +254,7 @@ impl Candidate { _compatible_window, )?; - Ok(( - Compositor::Wgpu(compositor), - Renderer::Wgpu(iced_wgpu::Renderer::new( - backend, - settings.default_font, - settings.default_text_size, - )), - )) + Ok(Compositor::Wgpu(compositor)) } #[cfg(not(feature = "wgpu"))] Self::Wgpu => { -- cgit 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/compositor.rs') 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/compositor.rs') 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/compositor.rs') 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/compositor.rs') 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/compositor.rs') 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