diff options
author | 2023-04-13 06:15:03 +0200 | |
---|---|---|
committer | 2023-04-13 06:15:03 +0200 | |
commit | cf35c85f8cb16fb3c02f1eeb27b9a7736d35ef59 (patch) | |
tree | 8113e7980fa54e76d6cb3f7ce8d341b4c619b395 /wgpu/src/window | |
parent | 2be79d7b6be377c26f2d328058177179377fba46 (diff) | |
parent | db4b899fd215f0607474006a9aef0361e74d481f (diff) | |
download | iced-cf35c85f8cb16fb3c02f1eeb27b9a7736d35ef59.tar.gz iced-cf35c85f8cb16fb3c02f1eeb27b9a7736d35ef59.tar.bz2 iced-cf35c85f8cb16fb3c02f1eeb27b9a7736d35ef59.zip |
Merge pull request #1789 from ElhamAryanpur/master
Update `wgpu` to `0.15`
Diffstat (limited to 'wgpu/src/window')
-rw-r--r-- | wgpu/src/window/compositor.rs | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/wgpu/src/window/compositor.rs b/wgpu/src/window/compositor.rs index 6d0c36f6..d4a59471 100644 --- a/wgpu/src/window/compositor.rs +++ b/wgpu/src/window/compositor.rs @@ -31,7 +31,10 @@ impl<Theme> Compositor<Theme> { settings: Settings, compatible_window: Option<&W>, ) -> Option<Self> { - let instance = wgpu::Instance::new(settings.internal_backend); + let instance = wgpu::Instance::new(wgpu::InstanceDescriptor { + backends: settings.internal_backend, + ..Default::default() + }); log::info!("{:#?}", settings); @@ -46,7 +49,7 @@ impl<Theme> Compositor<Theme> { #[allow(unsafe_code)] let compatible_surface = compatible_window - .map(|window| unsafe { instance.create_surface(window) }); + .and_then(|window| unsafe { instance.create_surface(window).ok() }); let adapter = instance .request_adapter(&wgpu::RequestAdapterOptions { @@ -63,7 +66,19 @@ impl<Theme> Compositor<Theme> { log::info!("Selected: {:#?}", adapter.get_info()); let format = compatible_surface.as_ref().and_then(|surface| { - surface.get_supported_formats(&adapter).first().copied() + let capabilities = surface.get_capabilities(&adapter); + + capabilities + .formats + .iter() + .filter(|format| format.describe().srgb) + .copied() + .next() + .or_else(|| { + log::warn!("No sRGB format found!"); + + capabilities.formats.first().copied() + }) })?; log::info!("Selected format: {:?}", format); @@ -144,7 +159,9 @@ impl<Theme> iced_graphics::window::Compositor for Compositor<Theme> { ) -> wgpu::Surface { #[allow(unsafe_code)] unsafe { - self.instance.create_surface(window) + self.instance + .create_surface(window) + .expect("Create surface") } } @@ -163,6 +180,7 @@ impl<Theme> iced_graphics::window::Compositor for Compositor<Theme> { width, height, alpha_mode: wgpu::CompositeAlphaMode::Auto, + view_formats: vec![], }, ); } |