diff options
author | 2023-04-13 06:15:03 +0200 | |
---|---|---|
committer | 2023-04-13 06:15:03 +0200 | |
commit | cf35c85f8cb16fb3c02f1eeb27b9a7736d35ef59 (patch) | |
tree | 8113e7980fa54e76d6cb3f7ce8d341b4c619b395 /examples | |
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 'examples')
-rw-r--r-- | examples/integration_wgpu/Cargo.toml | 2 | ||||
-rw-r--r-- | examples/integration_wgpu/src/main.rs | 35 |
2 files changed, 23 insertions, 14 deletions
diff --git a/examples/integration_wgpu/Cargo.toml b/examples/integration_wgpu/Cargo.toml index eaa1df7e..c0e4fd81 100644 --- a/examples/integration_wgpu/Cargo.toml +++ b/examples/integration_wgpu/Cargo.toml @@ -8,7 +8,7 @@ publish = false [dependencies] iced_winit = { path = "../../winit" } iced_wgpu = { path = "../../wgpu", features = ["webgl"] } -env_logger = "0.8" +env_logger = "0.10" [target.'cfg(target_arch = "wasm32")'.dependencies] console_error_panic_hook = "0.1.7" diff --git a/examples/integration_wgpu/src/main.rs b/examples/integration_wgpu/src/main.rs index 2a56b6fa..3ac458b3 100644 --- a/examples/integration_wgpu/src/main.rs +++ b/examples/integration_wgpu/src/main.rs @@ -23,11 +23,11 @@ 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() @@ -45,11 +45,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 +60,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 +68,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( @@ -91,11 +93,16 @@ pub fn main() { #[cfg(not(target_arch = "wasm32"))] let needed_limits = wgpu::Limits::default(); + let capabilities = surface.get_capabilities(&adapter); + ( - surface - .get_supported_formats(&adapter) - .first() + capabilities + .formats + .iter() + .filter(|format| format.describe().srgb) .copied() + .next() + .or_else(|| capabilities.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![] }, ); |