diff options
author | 2023-04-12 23:38:21 +0300 | |
---|---|---|
committer | 2023-04-13 05:40:23 +0200 | |
commit | d5453c62e9bdbf0cea030b009c41b892b700496d (patch) | |
tree | 2a093144f1e4bad10550e3f0c081f6f990a23493 /examples | |
parent | adb70d232ac00b3cba459374b3b1c5359970030f (diff) | |
download | iced-d5453c62e9bdbf0cea030b009c41b892b700496d.tar.gz iced-d5453c62e9bdbf0cea030b009c41b892b700496d.tar.bz2 iced-d5453c62e9bdbf0cea030b009c41b892b700496d.zip |
Update `wgpu` to `0.15`
Diffstat (limited to 'examples')
-rw-r--r-- | examples/integration_wgpu/src/main.rs | 37 |
1 files changed, 23 insertions, 14 deletions
diff --git a/examples/integration_wgpu/src/main.rs b/examples/integration_wgpu/src/main.rs index 2a56b6fa..6e868332 100644 --- a/examples/integration_wgpu/src/main.rs +++ b/examples/integration_wgpu/src/main.rs @@ -23,18 +23,17 @@ use web_sys::HtmlCanvasElement; #[cfg(target_arch = "wasm32")] use winit::platform::web::WindowBuilderExtWebSys; -pub fn main() { +pub fn main() -> Result<(), Box<dyn std::error::Error>> { #[cfg(target_arch = "wasm32")] let canvas_element = { - console_log::init_with_level(log::Level::Debug) - .expect("could not initialize logger"); + console_log::init_with_level(log::Level::Debug)?; + std::panic::set_hook(Box::new(console_error_panic_hook::hook)); web_sys::window() .and_then(|win| win.document()) .and_then(|doc| doc.get_element_by_id("iced_canvas")) - .and_then(|element| element.dyn_into::<HtmlCanvasElement>().ok()) - .expect("Canvas with id `iced_canvas` is missing") + .and_then(|element| element.dyn_into::<HtmlCanvasElement>().ok())? }; #[cfg(not(target_arch = "wasm32"))] env_logger::init(); @@ -45,11 +44,10 @@ pub fn main() { #[cfg(target_arch = "wasm32")] let window = winit::window::WindowBuilder::new() .with_canvas(Some(canvas_element)) - .build(&event_loop) - .expect("Failed to build winit window"); + .build(&event_loop)?; #[cfg(not(target_arch = "wasm32"))] - let window = winit::window::Window::new(&event_loop).unwrap(); + let window = winit::window::Window::new(&event_loop)?; let physical_size = window.inner_size(); let mut viewport = Viewport::with_physical_size( @@ -61,7 +59,6 @@ pub fn main() { let mut clipboard = Clipboard::connect(&window); // Initialize wgpu - #[cfg(target_arch = "wasm32")] let default_backend = wgpu::Backends::GL; #[cfg(not(target_arch = "wasm32"))] @@ -70,8 +67,12 @@ pub fn main() { let backend = wgpu::util::backend_bits_from_env().unwrap_or(default_backend); - let instance = wgpu::Instance::new(backend); - let surface = unsafe { instance.create_surface(&window) }; + let instance = wgpu::Instance::new(wgpu::InstanceDescriptor { + backends: backend, + ..Default::default() + }); + + let surface = unsafe { instance.create_surface(&window) }?; let (format, (device, queue)) = futures::executor::block_on(async { let adapter = wgpu::util::initialize_adapter_from_env_or_default( @@ -93,9 +94,15 @@ pub fn main() { ( surface - .get_supported_formats(&adapter) - .first() + .get_capabilities(&adapter) + .formats + .iter() + .filter(|format| format.describe().srgb) .copied() + .next() + .or_else(|| { + surface.get_capabilities(&adapter).formats.first().copied() + }) .expect("Get preferred format"), adapter .request_device( @@ -120,6 +127,7 @@ pub fn main() { height: physical_size.height, present_mode: wgpu::PresentMode::AutoVsync, alpha_mode: wgpu::CompositeAlphaMode::Auto, + view_formats: vec![], }, ); @@ -214,7 +222,8 @@ pub fn main() { width: size.width, height: size.height, present_mode: wgpu::PresentMode::AutoVsync, - alpha_mode: wgpu::CompositeAlphaMode::Auto + alpha_mode: wgpu::CompositeAlphaMode::Auto, + view_formats: vec![] }, ); |