diff options
-rw-r--r-- | graphics/src/compositor.rs | 4 | ||||
-rw-r--r-- | renderer/src/compositor.rs | 47 | ||||
-rw-r--r-- | tiny_skia/src/window/compositor.rs | 28 | ||||
-rw-r--r-- | wgpu/src/window/compositor.rs | 21 | ||||
-rw-r--r-- | winit/src/application.rs | 4 | ||||
-rw-r--r-- | winit/src/multi_window.rs | 4 | ||||
-rw-r--r-- | winit/src/multi_window/windows.rs | 2 |
7 files changed, 35 insertions, 75 deletions
diff --git a/graphics/src/compositor.rs b/graphics/src/compositor.rs index 78731a98..b8b575b4 100644 --- a/graphics/src/compositor.rs +++ b/graphics/src/compositor.rs @@ -22,10 +22,10 @@ pub trait Compositor: Sized { fn new<W: HasRawWindowHandle + HasRawDisplayHandle>( settings: Self::Settings, compatible_window: Option<&W>, - ) -> Result<(Self, Self::Renderer), Error>; + ) -> Result<Self, Error>; /// Creates a [`Self::Renderer`] for the [`Compositor`]. - fn renderer(&self) -> Self::Renderer; + fn create_renderer(&self) -> Self::Renderer; /// Crates a new [`Surface`] for the given window. /// 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<Theme> crate::graphics::Compositor for Compositor<Theme> { fn new<W: HasRawWindowHandle + HasRawDisplayHandle>( settings: Self::Settings, compatible_window: Option<&W>, - ) -> Result<(Self, Self::Renderer), Error> { + ) -> Result<Self, Error> { let candidates = Candidate::list_from_env().unwrap_or(Candidate::default_list()); @@ -34,9 +34,7 @@ impl<Theme> crate::graphics::Compositor for Compositor<Theme> { 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<Theme> crate::graphics::Compositor for Compositor<Theme> { 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<Theme>, Renderer<Theme>), Error> { + ) -> Result<Compositor<Theme>, 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 => { diff --git a/tiny_skia/src/window/compositor.rs b/tiny_skia/src/window/compositor.rs index 32095e23..87ded746 100644 --- a/tiny_skia/src/window/compositor.rs +++ b/tiny_skia/src/window/compositor.rs @@ -28,20 +28,11 @@ impl<Theme> crate::graphics::Compositor for Compositor<Theme> { fn new<W: HasRawWindowHandle + HasRawDisplayHandle>( settings: Self::Settings, _compatible_window: Option<&W>, - ) -> Result<(Self, Self::Renderer), Error> { - let (compositor, backend) = new(settings); - - Ok(( - compositor, - Renderer::new( - backend, - settings.default_font, - settings.default_text_size, - ), - )) + ) -> Result<Self, Error> { + Ok(new(settings)) } - fn renderer(&self) -> Self::Renderer { + fn create_renderer(&self) -> Self::Renderer { Renderer::new( Backend::new(), self.settings.default_font, @@ -130,14 +121,11 @@ impl<Theme> crate::graphics::Compositor for Compositor<Theme> { } } -pub fn new<Theme>(settings: Settings) -> (Compositor<Theme>, Backend) { - ( - Compositor { - settings, - _theme: PhantomData, - }, - Backend::new(), - ) +pub fn new<Theme>(settings: Settings) -> Compositor<Theme> { + Compositor { + settings, + _theme: PhantomData, + } } pub fn present<T: AsRef<str>>( diff --git a/wgpu/src/window/compositor.rs b/wgpu/src/window/compositor.rs index 21406134..090e0e9f 100644 --- a/wgpu/src/window/compositor.rs +++ b/wgpu/src/window/compositor.rs @@ -139,16 +139,14 @@ impl<Theme> Compositor<Theme> { pub fn new<Theme, W: HasRawWindowHandle + HasRawDisplayHandle>( settings: Settings, compatible_window: Option<&W>, -) -> Result<(Compositor<Theme>, Backend), Error> { +) -> Result<Compositor<Theme>, Error> { let compositor = futures::executor::block_on(Compositor::request( settings, compatible_window, )) .ok_or(Error::GraphicsAdapterNotFound)?; - let backend = compositor.create_backend(); - - Ok((compositor, backend)) + Ok(compositor) } /// Presents the given primitives with the given [`Compositor`] and [`Backend`]. @@ -214,20 +212,11 @@ impl<Theme> graphics::Compositor for Compositor<Theme> { fn new<W: HasRawWindowHandle + HasRawDisplayHandle>( settings: Self::Settings, compatible_window: Option<&W>, - ) -> Result<(Self, Self::Renderer), Error> { - let (compositor, backend) = new(settings, compatible_window)?; - - Ok(( - compositor, - Renderer::new( - backend, - settings.default_font, - settings.default_text_size, - ), - )) + ) -> Result<Self, Error> { + new(settings, compatible_window) } - fn renderer(&self) -> Self::Renderer { + fn create_renderer(&self) -> Self::Renderer { Renderer::new( self.create_backend(), self.settings.default_font, diff --git a/winit/src/application.rs b/winit/src/application.rs index cc1db8cb..d9700075 100644 --- a/winit/src/application.rs +++ b/winit/src/application.rs @@ -181,8 +181,8 @@ where }; } - let (compositor, mut renderer) = - C::new(compositor_settings, Some(&window))?; + let compositor = C::new(compositor_settings, Some(&window))?; + let mut renderer = compositor.create_renderer(); for font in settings.fonts { use crate::core::text::Renderer; diff --git a/winit/src/multi_window.rs b/winit/src/multi_window.rs index aeb2c5e1..31c27a6d 100644 --- a/winit/src/multi_window.rs +++ b/winit/src/multi_window.rs @@ -181,8 +181,8 @@ where }; } - let (mut compositor, renderer) = - C::new(compositor_settings, Some(&main_window))?; + let mut compositor = C::new(compositor_settings, Some(&main_window))?; + let renderer = compositor.create_renderer(); let windows = Windows::new( &application, diff --git a/winit/src/multi_window/windows.rs b/winit/src/multi_window/windows.rs index a4841a45..5a33b7b4 100644 --- a/winit/src/multi_window/windows.rs +++ b/winit/src/multi_window/windows.rs @@ -97,7 +97,7 @@ where physical_size.width, physical_size.height, ); - let renderer = compositor.renderer(); + let renderer = compositor.create_renderer(); self.ids.push(id); self.raw.push(window); |