summaryrefslogtreecommitdiffstats
path: root/wgpu/src/window/compositor.rs
diff options
context:
space:
mode:
authorLibravatar Elham Aryanpur <elhamaryanpur5@gmail.com>2023-04-12 23:38:21 +0300
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2023-04-13 05:40:23 +0200
commitd5453c62e9bdbf0cea030b009c41b892b700496d (patch)
tree2a093144f1e4bad10550e3f0c081f6f990a23493 /wgpu/src/window/compositor.rs
parentadb70d232ac00b3cba459374b3b1c5359970030f (diff)
downloadiced-d5453c62e9bdbf0cea030b009c41b892b700496d.tar.gz
iced-d5453c62e9bdbf0cea030b009c41b892b700496d.tar.bz2
iced-d5453c62e9bdbf0cea030b009c41b892b700496d.zip
Update `wgpu` to `0.15`
Diffstat (limited to 'wgpu/src/window/compositor.rs')
-rw-r--r--wgpu/src/window/compositor.rs25
1 files changed, 21 insertions, 4 deletions
diff --git a/wgpu/src/window/compositor.rs b/wgpu/src/window/compositor.rs
index 6d0c36f6..d66aca71 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,18 @@ 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()
+ surface
+ .get_capabilities(&adapter)
+ .formats
+ .iter()
+ .filter(|format| format.describe().srgb)
+ .copied()
+ .next()
+ .or_else(|| {
+ log::warn!("No sRGB format found!");
+
+ surface.get_capabilities(&adapter).formats.first().copied()
+ })
})?;
log::info!("Selected format: {:?}", format);
@@ -144,7 +158,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 +179,7 @@ impl<Theme> iced_graphics::window::Compositor for Compositor<Theme> {
width,
height,
alpha_mode: wgpu::CompositeAlphaMode::Auto,
+ view_formats: vec![],
},
);
}