diff options
-rw-r--r-- | graphics/src/window/compositor.rs | 10 | ||||
-rw-r--r-- | wgpu/src/window/compositor.rs | 10 | ||||
-rw-r--r-- | 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<W: HasRawWindowHandle>( 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<T: AsRef<str>>( &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<W: HasRawWindowHandle>( 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<T: AsRef<str>>( &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<A, E, C>( 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<A, E, C>( .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<A, E, C>( match compositor.draw( &mut renderer, - &mut swap_chain, &mut surface, state.viewport(), state.background_color(), |