From fe0de182c57e3a434026b1937b9a02597263afc3 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Fri, 20 Aug 2021 20:32:04 +0700 Subject: Remove `SwapChain` associated type from `Compositor` --- graphics/src/window/compositor.rs | 10 +++------- wgpu/src/window/compositor.rs | 10 ++++------ winit/src/application.rs | 20 +++++++++----------- 3 files changed, 16 insertions(+), 24 deletions(-) diff --git a/graphics/src/window/compositor.rs b/graphics/src/window/compositor.rs index 20df8c8b..0cf11f31 100644 --- a/graphics/src/window/compositor.rs +++ b/graphics/src/window/compositor.rs @@ -16,9 +16,6 @@ pub trait Compositor: Sized { /// The surface of the backend. type Surface; - /// The swap chain of the backend. - type SwapChain; - /// Creates a new [`Compositor`]. fn new( settings: Self::Settings, @@ -37,12 +34,12 @@ pub trait Compositor: Sized { /// /// [`SwapChain`]: Self::SwapChain /// [`Surface`]: Self::Surface - fn create_swap_chain( + fn configure_surface( &mut self, - surface: &Self::Surface, + surface: &mut Self::Surface, width: u32, height: u32, - ) -> Self::SwapChain; + ); /// Draws the output primitives to the next frame of the given [`SwapChain`]. /// @@ -50,7 +47,6 @@ pub trait Compositor: Sized { fn draw>( &mut self, renderer: &mut Self::Renderer, - swap_chain: &mut Self::SwapChain, surface: &mut Self::Surface, viewport: &Viewport, background_color: Color, diff --git a/wgpu/src/window/compositor.rs b/wgpu/src/window/compositor.rs index 0e4a014a..2aa703e7 100644 --- a/wgpu/src/window/compositor.rs +++ b/wgpu/src/window/compositor.rs @@ -88,7 +88,6 @@ impl iced_graphics::window::Compositor for Compositor { type Settings = Settings; type Renderer = Renderer; type Surface = wgpu::Surface; - type SwapChain = (); fn new( settings: Self::Settings, @@ -115,12 +114,12 @@ impl iced_graphics::window::Compositor for Compositor { } } - fn create_swap_chain( + fn configure_surface( &mut self, - surface: &Self::Surface, + surface: &mut Self::Surface, width: u32, height: u32, - ) -> Self::SwapChain { + ) { surface.configure( &self.device, &wgpu::SurfaceConfiguration { @@ -130,13 +129,12 @@ impl iced_graphics::window::Compositor for Compositor { width, height, }, - ) + ); } fn draw>( &mut self, renderer: &mut Self::Renderer, - _swap_chain: &mut Self::SwapChain, surface: &mut Self::Surface, viewport: &Viewport, background_color: Color, diff --git a/winit/src/application.rs b/winit/src/application.rs index 0b0139e6..9a86644c 100644 --- a/winit/src/application.rs +++ b/winit/src/application.rs @@ -232,15 +232,14 @@ async fn run_instance( let mut state = State::new(&application, &window); let mut viewport_version = state.viewport_version(); - let mut swap_chain = { - let physical_size = state.physical_size(); - compositor.create_swap_chain( - &surface, - physical_size.width, - physical_size.height, - ) - }; + let physical_size = state.physical_size(); + + compositor.configure_surface( + &mut surface, + physical_size.width, + physical_size.height, + ); let mut user_interface = ManuallyDrop::new(build_user_interface( &mut application, @@ -358,8 +357,8 @@ async fn run_instance( .draw(&mut renderer, state.cursor_position()); debug.draw_finished(); - swap_chain = compositor.create_swap_chain( - &surface, + compositor.configure_surface( + &mut surface, physical_size.width, physical_size.height, ); @@ -369,7 +368,6 @@ async fn run_instance( match compositor.draw( &mut renderer, - &mut swap_chain, &mut surface, state.viewport(), state.background_color(), -- cgit