summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2021-08-20 20:32:04 +0700
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2021-08-20 20:32:04 +0700
commitfe0de182c57e3a434026b1937b9a02597263afc3 (patch)
treed0512e3eeef34312641c7795e3c2d761901d3c1c
parent8a7c91bcb2867e751819d780eb5c46546da18d9a (diff)
downloadiced-fe0de182c57e3a434026b1937b9a02597263afc3.tar.gz
iced-fe0de182c57e3a434026b1937b9a02597263afc3.tar.bz2
iced-fe0de182c57e3a434026b1937b9a02597263afc3.zip
Remove `SwapChain` associated type from `Compositor`
-rw-r--r--graphics/src/window/compositor.rs10
-rw-r--r--wgpu/src/window/compositor.rs10
-rw-r--r--winit/src/application.rs20
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(),