From ae5e2c6c734894d71b2034a498a858b7997c5d3d Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Thu, 21 May 2020 04:27:31 +0200 Subject: Introduce `Program` and `State` --- wgpu/src/window/compositor.rs | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) (limited to 'wgpu') diff --git a/wgpu/src/window/compositor.rs b/wgpu/src/window/compositor.rs index 7eba8924..600bc81c 100644 --- a/wgpu/src/window/compositor.rs +++ b/wgpu/src/window/compositor.rs @@ -18,8 +18,8 @@ impl iced_graphics::window::Compositor for Compositor { type Surface = wgpu::Surface; type SwapChain = wgpu::SwapChain; - fn new(settings: Self::Settings) -> Self { - let (device, queue) = futures::executor::block_on(async { + fn new(settings: Self::Settings) -> (Self, Renderer) { + let (mut device, queue) = futures::executor::block_on(async { let adapter = wgpu::Adapter::request( &wgpu::RequestAdapterOptions { power_preference: if settings.antialiasing.is_none() { @@ -44,15 +44,17 @@ impl iced_graphics::window::Compositor for Compositor { .await }); - Self { - device, - queue, - format: settings.format, - } - } + let renderer = + Renderer::new(crate::Backend::new(&mut device, settings)); - fn create_renderer(&mut self, settings: Settings) -> Renderer { - Renderer::new(crate::Backend::new(&mut self.device, settings)) + ( + Self { + device, + queue, + format: settings.format, + }, + renderer, + ) } fn create_surface( -- cgit