diff --git a/Cargo.lock b/Cargo.lock index bc52fef..55b389b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -316,6 +316,9 @@ name = "bitflags" version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1be3f42a67d6d345ecd59f675f3f012d6974981560836e938c22b424b85ce1be" +dependencies = [ + "serde", +] [[package]] name = "bitstream-io" @@ -505,6 +508,12 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" +[[package]] +name = "cfg_aliases" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" + [[package]] name = "cgmath" version = "0.18.0" @@ -1078,9 +1087,9 @@ checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" [[package]] name = "glow" -version = "0.14.2" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d51fa363f025f5c111e03f13eda21162faeacb6911fe8caa0c0349f9cf0c4483" +checksum = "c5e5ea60d70410161c8bf5da3fdfeaa1c72ed2c15f8bbb9d19fe3a4fad085f08" dependencies = [ "js-sys", "slotmap", @@ -1564,9 +1573,9 @@ dependencies = [ [[package]] name = "metal" -version = "0.29.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ecfd3296f8c56b7c1f6fbac3c71cefa9d78ce009850c45000015f206dc7fa21" +checksum = "f569fb946490b5743ad69813cb19629130ce9374034abe31614a36402d18f99e" dependencies = [ "bitflags 2.7.0", "block", @@ -1595,22 +1604,23 @@ dependencies = [ [[package]] name = "naga" -version = "23.1.0" +version = "24.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "364f94bc34f61332abebe8cad6f6cd82a5b65cff22c828d05d0968911462ca4f" +checksum = "e380993072e52eef724eddfcde0ed013b0c023c3f0417336ed041aa9f076994e" dependencies = [ "arrayvec", "bit-set", "bitflags 2.7.0", - "cfg_aliases", + "cfg_aliases 0.2.1", "codespan-reporting", "hexf-parse", "indexmap", "log", "rustc-hash", "spirv", + "strum", "termcolor", - "thiserror 1.0.69", + "thiserror 2.0.11", "unicode-xid", ] @@ -1891,6 +1901,15 @@ dependencies = [ "libredox", ] +[[package]] +name = "ordered-float" +version = "4.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7bb71e1b3fa6ca1c61f383464aaf2bb0e2f8e772a1f01d486832464de363b951" +dependencies = [ + "num-traits", +] + [[package]] name = "owned_ttf_parser" version = "0.25.0" @@ -2558,6 +2577,28 @@ version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" +[[package]] +name = "strum" +version = "0.26.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" +dependencies = [ + "strum_macros", +] + +[[package]] +name = "strum_macros" +version = "0.26.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "rustversion", + "syn", +] + [[package]] name = "svg" version = "0.18.0" @@ -3100,12 +3141,13 @@ checksum = "53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082" [[package]] name = "wgpu" -version = "23.0.1" +version = "24.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80f70000db37c469ea9d67defdc13024ddf9a5f1b89cb2941b812ad7cde1735a" +checksum = "e41253fc7b660735e2a2d9a58c563f2a047d3cc3445293d8f4095538c9e8afbe" dependencies = [ "arrayvec", - "cfg_aliases", + "bitflags 2.7.0", + "cfg_aliases 0.2.1", "document-features", "js-sys", "log", @@ -3125,14 +3167,14 @@ dependencies = [ [[package]] name = "wgpu-core" -version = "23.0.1" +version = "24.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d63c3c478de8e7e01786479919c8769f62a22eec16788d8c2ac77ce2c132778a" +checksum = "82a39b8842dc9ffcbe34346e3ab6d496b32a47f6497e119d762c97fcaae3cb37" dependencies = [ "arrayvec", "bit-vec", "bitflags 2.7.0", - "cfg_aliases", + "cfg_aliases 0.2.1", "document-features", "indexmap", "log", @@ -3143,16 +3185,16 @@ dependencies = [ "raw-window-handle", "rustc-hash", "smallvec", - "thiserror 1.0.69", + "thiserror 2.0.11", "wgpu-hal", "wgpu-types", ] [[package]] name = "wgpu-hal" -version = "23.0.1" +version = "24.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89364b8a0b211adc7b16aeaf1bd5ad4a919c1154b44c9ce27838213ba05fd821" +checksum = "5a782e5056b060b0b4010881d1decddd059e44f2ecd01e2db2971b48ad3627e5" dependencies = [ "android_system_properties", "arrayvec", @@ -3161,7 +3203,7 @@ dependencies = [ "bitflags 2.7.0", "block", "bytemuck", - "cfg_aliases", + "cfg_aliases 0.2.1", "core-graphics-types", "glow", "glutin_wgl_sys", @@ -3178,6 +3220,7 @@ dependencies = [ "ndk-sys", "objc", "once_cell", + "ordered-float", "parking_lot", "profiling", "range-alloc", @@ -3185,7 +3228,7 @@ dependencies = [ "renderdoc-sys", "rustc-hash", "smallvec", - "thiserror 1.0.69", + "thiserror 2.0.11", "wasm-bindgen", "web-sys", "wgpu-types", @@ -3195,12 +3238,13 @@ dependencies = [ [[package]] name = "wgpu-types" -version = "23.0.0" +version = "24.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "610f6ff27778148c31093f3b03abc4840f9636d58d597ca2f5977433acfe0068" +checksum = "50ac044c0e76c03a0378e7786ac505d010a873665e2d51383dcff8dd227dc69c" dependencies = [ "bitflags 2.7.0", "js-sys", + "log", "web-sys", ] @@ -3510,7 +3554,7 @@ dependencies = [ "bitflags 2.7.0", "bytemuck", "calloop", - "cfg_aliases", + "cfg_aliases 0.1.1", "core-foundation", "core-graphics", "cursor-icon", diff --git a/Cargo.toml b/Cargo.toml index ae8a533..b1d7ec3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,7 +14,7 @@ resolver = "2" [workspace.dependencies] thiserror = "2.0" -wgpu = "23.0.0" +wgpu = "24.0.0" # fork元は winit = "0.29.x" ブランチ。いくつかのパッチを当てたものを使っている。 # patch-1 # wasm で ime support が十分でないのでパッチを当てている。 diff --git a/font_rasterizer/src/screen_texture.rs b/font_rasterizer/src/screen_texture.rs index bf3c355..0a9349c 100644 --- a/font_rasterizer/src/screen_texture.rs +++ b/font_rasterizer/src/screen_texture.rs @@ -85,14 +85,14 @@ impl BackgroundImageTexture { }); queue.write_texture( - wgpu::ImageCopyTexture { + wgpu::TexelCopyTextureInfo { texture: &texture, mip_level: 0, origin: wgpu::Origin3d::ZERO, aspect: wgpu::TextureAspect::All, }, &diffuse_rgba, - wgpu::ImageDataLayout { + wgpu::TexelCopyBufferLayout { offset: 0, bytes_per_row: Some(4 * width), rows_per_image: Some(height), diff --git a/ui_support/src/lib.rs b/ui_support/src/lib.rs index 470a2cc..702ba5f 100644 --- a/ui_support/src/lib.rs +++ b/ui_support/src/lib.rs @@ -278,6 +278,9 @@ pub async fn run_support(support: SimpleStateSupport) { Err(wgpu::SurfaceError::Timeout) => { log::warn!("Surface timeout") } + Err(wgpu::SurfaceError::Other) => { + log::warn!("Surface Other error") + } } // 1 フレームごとに時計を更新する(時計のモードが StepByStep の場合のみ意味がある) increment_fixed_clock(Duration::ZERO); diff --git a/ui_support/src/render_state.rs b/ui_support/src/render_state.rs index 61bd583..70bc2a4 100644 --- a/ui_support/src/render_state.rs +++ b/ui_support/src/render_state.rs @@ -96,15 +96,15 @@ impl RenderTarget { let size = context.window_size; let u32_size = std::mem::size_of::() as u32; encoder.copy_texture_to_buffer( - wgpu::ImageCopyTexture { + wgpu::TexelCopyTextureInfo { aspect: wgpu::TextureAspect::All, texture: surface_texture, mip_level: 0, origin: wgpu::Origin3d::ZERO, }, - wgpu::ImageCopyBuffer { + wgpu::TexelCopyBufferInfo { buffer: output_buffer, - layout: wgpu::ImageDataLayout { + layout: wgpu::TexelCopyBufferLayout { offset: 0, bytes_per_row: Some(u32_size * size.width), rows_per_image: Some(size.height), @@ -191,7 +191,7 @@ impl RenderState { // The instance is a handle to our GPU // BackendBit::PRIMARY => Vulkan + Metal + DX12 + Browser WebGPU - let instance = wgpu::Instance::new(InstanceDescriptor::default()); + let instance = wgpu::Instance::new(&InstanceDescriptor::default()); let surface = match &render_target_request { RenderTargetRequest::Window { window } => {