diff options
Diffstat (limited to 'wgpu/src/window')
-rw-r--r-- | wgpu/src/window/backend.rs | 12 | ||||
-rw-r--r-- | wgpu/src/window/swap_chain.rs | 6 |
2 files changed, 14 insertions, 4 deletions
diff --git a/wgpu/src/window/backend.rs b/wgpu/src/window/backend.rs index 4c9f289b..5b269f36 100644 --- a/wgpu/src/window/backend.rs +++ b/wgpu/src/window/backend.rs @@ -8,6 +8,7 @@ use raw_window_handle::HasRawWindowHandle; pub struct Backend { device: wgpu::Device, queue: wgpu::Queue, + format: wgpu::TextureFormat, } impl iced_native::window::Backend for Backend { @@ -37,7 +38,14 @@ impl iced_native::window::Backend for Backend { let renderer = Renderer::new(&mut device, settings); - (Backend { device, queue }, renderer) + ( + Backend { + device, + queue, + format: settings.format, + }, + renderer, + ) } fn create_surface<W: HasRawWindowHandle>( @@ -53,7 +61,7 @@ impl iced_native::window::Backend for Backend { width: u32, height: u32, ) -> SwapChain { - SwapChain::new(&self.device, surface, width, height) + SwapChain::new(&self.device, surface, self.format, width, height) } fn draw<T: AsRef<str>>( diff --git a/wgpu/src/window/swap_chain.rs b/wgpu/src/window/swap_chain.rs index 6f545fce..4ca2901b 100644 --- a/wgpu/src/window/swap_chain.rs +++ b/wgpu/src/window/swap_chain.rs @@ -18,11 +18,12 @@ impl SwapChain { pub fn new( device: &wgpu::Device, surface: &wgpu::Surface, + format: wgpu::TextureFormat, width: u32, height: u32, ) -> SwapChain { SwapChain { - raw: new_swap_chain(surface, width, height, device), + raw: new_swap_chain(surface, format, width, height, device), viewport: Viewport::new(width, height), } } @@ -38,6 +39,7 @@ impl SwapChain { fn new_swap_chain( surface: &wgpu::Surface, + format: wgpu::TextureFormat, width: u32, height: u32, device: &wgpu::Device, @@ -46,7 +48,7 @@ fn new_swap_chain( &surface, &wgpu::SwapChainDescriptor { usage: wgpu::TextureUsage::OUTPUT_ATTACHMENT, - format: wgpu::TextureFormat::Bgra8UnormSrgb, + format, width, height, present_mode: wgpu::PresentMode::Vsync, |