summaryrefslogtreecommitdiffstats
path: root/wgpu/src/window
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón <hector0193@gmail.com>2023-04-13 06:15:03 +0200
committerLibravatar GitHub <noreply@github.com>2023-04-13 06:15:03 +0200
commitcf35c85f8cb16fb3c02f1eeb27b9a7736d35ef59 (patch)
tree8113e7980fa54e76d6cb3f7ce8d341b4c619b395 /wgpu/src/window
parent2be79d7b6be377c26f2d328058177179377fba46 (diff)
parentdb4b899fd215f0607474006a9aef0361e74d481f (diff)
downloadiced-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.rs26
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![],
},
);
}