From 7320ae8dac457178254eb07bd1dff773290cfae6 Mon Sep 17 00:00:00 2001 From: Schmarni Date: Wed, 20 Nov 2024 10:04:49 +0100 Subject: [PATCH] update to bevy 0.15 rc Signed-off-by: Schmarni --- Cargo.lock | 1588 ++++++++++------- Cargo.toml | 9 +- crates/bevy_openxr/Cargo.toml | 24 +- crates/bevy_openxr/examples/3d_scene.rs | 57 +- crates/bevy_openxr/examples/actions.rs | 32 +- .../bevy_openxr/examples/android/Cargo.toml | 4 +- .../bevy_openxr/examples/android/src/lib.rs | 33 +- crates/bevy_openxr/examples/overlay.rs | 39 +- crates/bevy_openxr/examples/raw_actions.rs | 62 +- crates/bevy_openxr/examples/sessions.rs | 30 +- crates/bevy_openxr/examples/tracking_utils.rs | 77 +- .../bevy_openxr/examples/transform_utils.rs | 74 +- .../bevy_openxr/src/openxr/action_binding.rs | 4 +- .../src/openxr/action_set_attaching.rs | 2 +- .../src/openxr/features/handtracking.rs | 8 +- crates/bevy_openxr/src/openxr/graphics.rs | 31 +- .../bevy_openxr/src/openxr/graphics/vulkan.rs | 60 +- .../bevy_openxr/src/openxr/helper_traits.rs | 26 +- crates/bevy_openxr/src/openxr/init.rs | 21 +- .../bevy_openxr/src/openxr/layer_builder.rs | 14 +- crates/bevy_openxr/src/openxr/mod.rs | 4 +- crates/bevy_openxr/src/openxr/render.rs | 18 +- crates/bevy_openxr/src/openxr/resources.rs | 10 +- crates/bevy_openxr/src/openxr/spaces.rs | 28 +- crates/bevy_openxr/src/openxr/types.rs | 2 +- crates/bevy_webxr/Cargo.toml | 8 +- crates/bevy_xr/src/actions.rs | 4 +- crates/bevy_xr/src/camera.rs | 16 +- crates/bevy_xr/src/hands.rs | 15 +- crates/bevy_xr/src/session.rs | 6 +- crates/bevy_xr/src/types.rs | 28 +- crates/bevy_xr_utils/Cargo.toml | 6 +- crates/bevy_xr_utils/src/hand_gizmos.rs | 6 +- crates/bevy_xr_utils/src/tracking_utils.rs | 71 +- 34 files changed, 1338 insertions(+), 1079 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index fcf9449..34fb32f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,33 +2,17 @@ # It is not intended for manual editing. version = 3 -[[package]] -name = "ab_glyph" -version = "0.2.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79faae4620f45232f599d9bc7b290f88247a0834162c4495ab2f02d60004adfb" -dependencies = [ - "ab_glyph_rasterizer", - "owned_ttf_parser", -] - -[[package]] -name = "ab_glyph_rasterizer" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c71b1793ee61086797f5c80b6efa2b8ffa6d5dd703f118545808a7f2e27f7046" - [[package]] name = "accesskit" -version = "0.14.0" +version = "0.16.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6cf780eb737f2d4a49ffbd512324d53ad089070f813f7be7f99dbd5123a7f448" +checksum = "99b76d84ee70e30a4a7e39ab9018e2b17a6a09e31084176cc7c0b2dec036ba45" [[package]] name = "accesskit_consumer" -version = "0.22.0" +version = "0.24.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bdfa1638ddd6eb9c752def95568df8b3ad832df252e9156d2eb783b201ca8a9" +checksum = "7a12dc159d52233c43d9fe5415969433cbdd52c3d6e0df51bda7d447427b9986" dependencies = [ "accesskit", "immutable-chunkmap", @@ -36,9 +20,9 @@ dependencies = [ [[package]] name = "accesskit_macos" -version = "0.15.0" +version = "0.17.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c236a84ff1111defc280cee755eaa953d0b24398786851b9d28322c6d3bb1ebd" +checksum = "bfc6c1ecd82053d127961ad80a8beaa6004fb851a3a5b96506d7a6bd462403f6" dependencies = [ "accesskit", "accesskit_consumer", @@ -50,22 +34,23 @@ dependencies = [ [[package]] name = "accesskit_windows" -version = "0.20.0" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d7f43d24b16b3e76bef248124fbfd2493c3a9860edb5aae1010c890e826de5e" +checksum = "974e96c347384d9133427167fb8a58c340cb0496988dacceebdc1ed27071023b" dependencies = [ "accesskit", "accesskit_consumer", "paste", "static_assertions", - "windows 0.54.0", + "windows 0.58.0", + "windows-core 0.58.0", ] [[package]] name = "accesskit_winit" -version = "0.20.4" +version = "0.22.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "755535e6bf711a42dac28b888b884b10fc00ff4010d9d3bd871c5f5beae5aa78" +checksum = "aea3522719f1c44564d03e9469a8e2f3a98b3a8a880bd66d0789c6b9c4a669dd" dependencies = [ "accesskit", "accesskit_macos", @@ -113,6 +98,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" dependencies = [ "cfg-if", + "const-random", "getrandom", "once_cell", "version_check", @@ -174,7 +160,7 @@ dependencies = [ "ndk-context", "ndk-sys 0.6.0+11769913", "num_enum", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -198,6 +184,12 @@ dependencies = [ "libc", ] +[[package]] +name = "anyhow" +version = "1.0.93" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c95c10ba0b00a02636238b814946408b1322d5ac4760326e6fb8ec956d85775" + [[package]] name = "approx" version = "0.5.1" @@ -236,11 +228,22 @@ checksum = "175571dd1d178ced59193a6fc02dde1b972eb0bc56c892cde9beeceac5bf0f6b" [[package]] name = "ash" -version = "0.37.3+1.3.251" +version = "0.38.0+1.3.281" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e9c3835d686b0a6084ab4234fcd1b07dbf6e4767dce60874b12356a25ecd4a" +checksum = "0bb44936d800fea8f016d7f2311c6a4f97aebd5dc86f09906139ec848cf3a46f" dependencies = [ - "libloading 0.7.4", + "libloading", +] + +[[package]] +name = "assert_type_match" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f548ad2c4031f2902e3edc1f29c29e835829437de49562d8eb5dc5584d3a1043" +dependencies = [ + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -289,6 +292,25 @@ dependencies = [ "futures-lite", ] +[[package]] +name = "async-io" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a2b323ccce0a1d90b449fd71f2a06ca7faa7c54c2751f06c9bd851fc061059" +dependencies = [ + "async-lock", + "cfg-if", + "concurrent-queue", + "futures-io", + "futures-lite", + "parking", + "polling", + "rustix", + "slab", + "tracing", + "windows-sys 0.59.0", +] + [[package]] name = "async-lock" version = "3.4.0" @@ -312,6 +334,12 @@ version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" +[[package]] +name = "atomicow" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "467163b50876d3a4a44da5f4dbd417537e522fc059ede8d518d57941cfb3d745" + [[package]] name = "autocfg" version = "1.3.0" @@ -347,31 +375,33 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "bevy" -version = "0.14.1" +version = "0.15.0-rc.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8ece0d8dde51890fb52dcba5b04fd1c657617a4022908c327b2d6e83d173a32" +checksum = "ac8e850ce5420a008f058bc0edffad2c10480220708678d91df013854ba48624" dependencies = [ "bevy_internal", ] [[package]] name = "bevy_a11y" -version = "0.14.1" +version = "0.15.0-rc.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82d84e0ae7155afa21c4926fb8b89ebe0cbd66239ac817fdb834025327c4089b" +checksum = "5443a6ed74462023305a0dd799a88c5581df05f230ed9c6dc7debd92231aae7c" dependencies = [ "accesskit", "bevy_app", "bevy_derive", "bevy_ecs", + "bevy_reflect", ] [[package]] name = "bevy_animation" -version = "0.14.1" +version = "0.15.0-rc.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abec61c2d9d19329d8d9f0d7f1ce0188f6ed2c6d74d90412b238efc38c7d7794" +checksum = "9e02b9d777a4d1f71e480dcdc932c89b945a8945b2894397e52c30b543828a94" dependencies = [ + "bevy_animation_derive", "bevy_app", "bevy_asset", "bevy_color", @@ -387,20 +417,33 @@ dependencies = [ "bevy_transform", "bevy_utils", "blake3", - "fixedbitset 0.5.7", + "derive_more", + "either", "petgraph", "ron", "serde", - "thiserror", + "smallvec", "thread_local", "uuid", ] [[package]] -name = "bevy_app" -version = "0.14.1" +name = "bevy_animation_derive" +version = "0.15.0-rc.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0af99549f5de61cc91c8c23303b13aa07f97b73fbace39695dee0a0a32cec9d4" +checksum = "5d1dbda00d5c940a96993ca366cb489b00a3432d387b885442d391f7c420838b" +dependencies = [ + "bevy_macro_utils", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "bevy_app" +version = "0.15.0-rc.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f037ca5cd5fd455ec110cb17d096e842cad7230c3d489f2434c3022beff5583d" dependencies = [ "bevy_derive", "bevy_ecs", @@ -408,38 +451,44 @@ dependencies = [ "bevy_tasks", "bevy_utils", "console_error_panic_hook", + "ctrlc", + "derive_more", "downcast-rs", - "thiserror", "wasm-bindgen", "web-sys", ] [[package]] name = "bevy_asset" -version = "0.14.1" +version = "0.15.0-rc.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6533d17f13b44ea4fb5177f83b0900269ed13c0fd45772ccffd19a69980647ec" +checksum = "cdf65a1e047fb303c72bc3dc524ad0fc6d50858759934e1c34ba77452375e8f4" dependencies = [ "async-broadcast", "async-fs", "async-lock", + "atomicow", "bevy_app", "bevy_asset_macros", "bevy_ecs", "bevy_reflect", "bevy_tasks", "bevy_utils", - "bevy_winit", + "bevy_window", + "bitflags 2.6.0", "blake3", "crossbeam-channel", + "derive_more", + "disqualified", "downcast-rs", + "either", "futures-io", "futures-lite", "js-sys", "parking_lot", "ron", "serde", - "thiserror", + "stackfuture", "uuid", "wasm-bindgen", "wasm-bindgen-futures", @@ -448,21 +497,21 @@ dependencies = [ [[package]] name = "bevy_asset_macros" -version = "0.14.1" +version = "0.15.0-rc.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74b0e132a89e254c0f5c8bc8deebb0f2490f5662f4aa2215a6996701446d6a7b" +checksum = "850737671990e7d73d0cff461e246347d8207ea7fc8468e4fa0d388c30c96ac3" dependencies = [ "bevy_macro_utils", "proc-macro2", "quote", - "syn 2.0.77", + "syn", ] [[package]] name = "bevy_audio" -version = "0.14.1" +version = "0.15.0-rc.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3050cb7244560313800b284e4b5eafcf91e833464e44d8407b20ec6c65974fc" +checksum = "78b0af3841b62e88c3b965e3b38412b5a28476249bf05ef2d0edab1b81b5e498" dependencies = [ "bevy_app", "bevy_asset", @@ -479,24 +528,24 @@ dependencies = [ [[package]] name = "bevy_color" -version = "0.14.2" +version = "0.15.0-rc.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82c031f121b8d72e7637c94ef139097613bd32935784d36728f83e77cfdf26f4" +checksum = "2d916eabd2b5ed453e739b075b5cc9a07ff04d69b231974e6b2a050a38cc7db5" dependencies = [ "bevy_math", "bevy_reflect", "bytemuck", + "derive_more", "encase", "serde", - "thiserror", - "wgpu-types 0.20.0", + "wgpu-types", ] [[package]] name = "bevy_core" -version = "0.14.1" +version = "0.15.0-rc.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ccc7118a2865267136afb5e6a2c0aed30994e522f298b2ba0b088878e6ddf59" +checksum = "01967cdcbabb12beadc9fdebfb94edd629390b5e4ad0ad36602434363da9a24b" dependencies = [ "bevy_app", "bevy_ecs", @@ -508,9 +557,9 @@ dependencies = [ [[package]] name = "bevy_core_pipeline" -version = "0.14.1" +version = "0.15.0-rc.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "559ad1dc48c3fa6bbace503df2fe44a7de38c8dfe11bee911ec0ffaf93e3e57d" +checksum = "906e078fae9c6b3af37737ed5ba97f16a1f7cbc44b34144c701fcb43fe15439d" dependencies = [ "bevy_app", "bevy_asset", @@ -518,35 +567,37 @@ dependencies = [ "bevy_core", "bevy_derive", "bevy_ecs", + "bevy_image", "bevy_math", "bevy_reflect", "bevy_render", "bevy_transform", "bevy_utils", + "bevy_window", "bitflags 2.6.0", + "derive_more", "nonmax", "radsort", "serde", "smallvec", - "thiserror", ] [[package]] name = "bevy_derive" -version = "0.14.1" +version = "0.15.0-rc.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8675f337f374b2b8ae90539982b947d171f9adb302d00c032b823bd5231f8978" +checksum = "705ccd9cc85510faa67d0261e57b6fe196465f372ec9b6e9fe88642737fe652d" dependencies = [ "bevy_macro_utils", "quote", - "syn 2.0.77", + "syn", ] [[package]] name = "bevy_diagnostic" -version = "0.14.1" +version = "0.15.0-rc.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdcc1d7ba5797e4285a7867227134d4cabaaf8cabfb7cdc42eb697d3b3db0460" +checksum = "570e296eee8be3230059c8dc396f7be1bcba7cc01fb0a96d530389d14514a5fb" dependencies = [ "bevy_app", "bevy_core", @@ -560,9 +611,9 @@ dependencies = [ [[package]] name = "bevy_ecs" -version = "0.14.1" +version = "0.15.0-rc.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a3eed7f144811946ebfa1c740da9e3bcd6dd2dd4da844eda085249d29bc9fef" +checksum = "061d0e0972c55694ec8eb58a7a7345588a5f8cc77002cd39b0a1bed01d6bdefc" dependencies = [ "arrayvec", "bevy_ecs_macros", @@ -572,30 +623,32 @@ dependencies = [ "bevy_utils", "bitflags 2.6.0", "concurrent-queue", + "derive_more", + "disqualified", "fixedbitset 0.5.7", "nonmax", "petgraph", "serde", - "thiserror", + "smallvec", ] [[package]] name = "bevy_ecs_macros" -version = "0.14.1" +version = "0.15.0-rc.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d523630f2eb9fde6727e6c5ea48fa708079c5345da21ffeb1a4bd8ca761830da" +checksum = "cd7c1e5d04c7e51105d262775cab02518ea20e2d44e037af892e33fe2e7346a3" dependencies = [ "bevy_macro_utils", "proc-macro2", "quote", - "syn 2.0.77", + "syn", ] [[package]] name = "bevy_encase_derive" -version = "0.14.1" +version = "0.15.0-rc.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a20ec101b103f430481112591e280a8fc3f2db6741579f885595372073b749b" +checksum = "59449eb107c9354d2ba227f04889a2578b9f6f9d8eb26d81e3346b45137b86f2" dependencies = [ "bevy_macro_utils", "encase_derive_impl", @@ -603,24 +656,24 @@ dependencies = [ [[package]] name = "bevy_gilrs" -version = "0.14.1" +version = "0.15.0-rc.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a64d84c2cbc6a027ba2c293752f9508e6777607acb1d98d03c25eb2a80d55372" +checksum = "7fbc844d475260de2b2a7a4d25258e45a004b3130f5a59ca154de1a219f402e8" dependencies = [ "bevy_app", "bevy_ecs", "bevy_input", "bevy_time", "bevy_utils", + "derive_more", "gilrs", - "thiserror", ] [[package]] name = "bevy_gizmos" -version = "0.14.1" +version = "0.15.0-rc.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "248324352331d719071b0d1545a43e3d63470f4730e75312edee575f210d3a77" +checksum = "3d5fd067b32e6b6aefdfb5b239d547b0921c8c5f8c2fa4a7762349b151f919f9" dependencies = [ "bevy_app", "bevy_asset", @@ -641,21 +694,21 @@ dependencies = [ [[package]] name = "bevy_gizmos_macros" -version = "0.14.1" +version = "0.15.0-rc.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbe1708bb0e45a1d0fe0f32e998557689231dfe7bdae62083326e8008e97de23" +checksum = "3f70a1bcd58c4ca067738d66837a18b4a57c6b25c1cf2f0bd66cca98dfe87e5b" dependencies = [ "bevy_macro_utils", "proc-macro2", "quote", - "syn 2.0.77", + "syn", ] [[package]] name = "bevy_gltf" -version = "0.14.1" +version = "0.15.0-rc.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb57239cb4209e52354268062cd1973892af3a2077ccbdb4d19259cbbc2d2c2d" +checksum = "8efaa3887d9b1f7635fcc95109d1738573412b666065b86ae42cc21251c2399f" dependencies = [ "base64 0.22.1", "bevy_animation", @@ -666,6 +719,7 @@ dependencies = [ "bevy_core_pipeline", "bevy_ecs", "bevy_hierarchy", + "bevy_image", "bevy_math", "bevy_pbr", "bevy_reflect", @@ -674,48 +728,72 @@ dependencies = [ "bevy_tasks", "bevy_transform", "bevy_utils", + "derive_more", "gltf", "percent-encoding", "serde", "serde_json", "smallvec", - "thiserror", ] [[package]] name = "bevy_hierarchy" -version = "0.14.1" +version = "0.15.0-rc.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb332d2789442ca1577c765977bafefea1dcd4db29479713ec8c6932dfb82cdb" +checksum = "53dec1d455b8be41eb918e7bf081972d6e02ba5660502e11ed107ed25f7982b8" dependencies = [ "bevy_app", "bevy_core", "bevy_ecs", "bevy_reflect", "bevy_utils", + "disqualified", "smallvec", ] [[package]] -name = "bevy_input" -version = "0.14.1" +name = "bevy_image" +version = "0.15.0-rc.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9ce5f27a8729b473205b01927cd6a5c4898a004cb8fcffa7c896e19ba999d98" +checksum = "1ef230cdd23c883c0fc269093358d4dac0a0d339d493edc87b952f86149d0e60" +dependencies = [ + "bevy_asset", + "bevy_color", + "bevy_math", + "bevy_reflect", + "bevy_utils", + "bitflags 2.6.0", + "bytemuck", + "derive_more", + "futures-lite", + "image", + "ktx2", + "ruzstd", + "serde", + "wgpu", +] + +[[package]] +name = "bevy_input" +version = "0.15.0-rc.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dc505f1c055b711c08b80d37f10d98151aafca9fcb6b153ee00c7a4dcae3f75" dependencies = [ "bevy_app", + "bevy_core", "bevy_ecs", "bevy_math", "bevy_reflect", "bevy_utils", + "derive_more", "smol_str", - "thiserror", ] [[package]] name = "bevy_internal" -version = "0.14.1" +version = "0.15.0-rc.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2463102e46d7d67440dbfe3bc97d34bf529c93191c4f4bb41395f4982062ff3" +checksum = "e6ad66535730bc578a82aa7c006107c9027108ff76903acfd55c69c3ff365298" dependencies = [ "bevy_a11y", "bevy_animation", @@ -732,12 +810,15 @@ dependencies = [ "bevy_gizmos", "bevy_gltf", "bevy_hierarchy", + "bevy_image", "bevy_input", "bevy_log", "bevy_math", "bevy_pbr", + "bevy_picking", "bevy_ptr", "bevy_reflect", + "bevy_remote", "bevy_render", "bevy_scene", "bevy_sprite", @@ -754,50 +835,76 @@ dependencies = [ [[package]] name = "bevy_log" -version = "0.14.1" +version = "0.15.0-rc.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52f2c0c374af59007396793a51f747f6b10d74ca4acfb080ce0ade267118827b" +checksum = "b2d8a9f9f6875598e986ac8de8d17873871eb6e816d7842f32da204cd074b9f1" dependencies = [ "android_log-sys", "bevy_app", "bevy_ecs", "bevy_utils", "tracing-log", + "tracing-oslog", "tracing-subscriber", "tracing-wasm", ] [[package]] name = "bevy_macro_utils" -version = "0.14.1" +version = "0.15.0-rc.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ec4a585ec2a6dedd4f4143c07219d120ae142121929f0d83e68d82a452cdc9b" +checksum = "6c5594703cac7b78469f2691652c562f190b24a4f3cb78f862d9c98e98bfb804" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn", "toml_edit", ] [[package]] name = "bevy_math" -version = "0.14.1" +version = "0.15.0-rc.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40253578fe83a5ffe5f4fcb4dfa196b7d9c50f36dc8efaa231a53344bf4b3e57" +checksum = "a5a696cc7629ca5ce5ffb416ae5c868ae8e3cfcb0a51739296c91a776a355297" dependencies = [ "bevy_reflect", + "derive_more", "glam", + "itertools 0.13.0", "rand", + "rand_distr", "serde", "smallvec", - "thiserror", +] + +[[package]] +name = "bevy_mesh" +version = "0.15.0-rc.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e798db51029ff3f7f41eef55f77265ce4a77868acce1ef8c4d6fb8030410726d" +dependencies = [ + "bevy_asset", + "bevy_derive", + "bevy_ecs", + "bevy_image", + "bevy_math", + "bevy_mikktspace", + "bevy_reflect", + "bevy_transform", + "bevy_utils", + "bitflags 2.6.0", + "bytemuck", + "derive_more", + "hexasphere", + "serde", + "wgpu", ] [[package]] name = "bevy_mikktspace" -version = "0.14.1" +version = "0.15.0-rc.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24a1ad15685c6035e01bdc9d5ea082558ef1438e9d40d69fc552857dd7e83e71" +checksum = "4fa55db38ee370b8a01675e61ac7112d59ee2f31305cc7c7f0cfb3acab0d0354" dependencies = [ "glam", ] @@ -810,13 +917,12 @@ dependencies = [ "bevy", "bevy_mod_xr", "bevy_xr_utils", - "d3d12 0.20.0", "jni 0.20.0", "ndk-context", "openxr", - "thiserror", - "wgpu 0.20.1", - "wgpu-hal 0.21.1", + "thiserror 2.0.3", + "wgpu", + "wgpu-hal", "winapi", ] @@ -826,9 +932,9 @@ version = "0.0.0" dependencies = [ "bevy", "bevy_mod_xr", - "thiserror", - "wgpu 0.19.4", - "wgpu-hal 0.19.5", + "thiserror 2.0.3", + "wgpu", + "wgpu-hal", ] [[package]] @@ -851,9 +957,9 @@ dependencies = [ [[package]] name = "bevy_pbr" -version = "0.14.1" +version = "0.15.0-rc.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "588998ba295db4a14dec54e571f272490f2885e5aaac59191fb4fa32a25835d0" +checksum = "efbddf2fdeee2ed28a764210162ecac00e635a67f1b1d3235ba588699a4e53ca" dependencies = [ "bevy_app", "bevy_asset", @@ -869,6 +975,7 @@ dependencies = [ "bevy_window", "bitflags 2.6.0", "bytemuck", + "derive_more", "fixedbitset 0.5.7", "nonmax", "radsort", @@ -877,20 +984,47 @@ dependencies = [ ] [[package]] -name = "bevy_ptr" -version = "0.14.1" +name = "bevy_picking" +version = "0.15.0-rc.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ed72afbb6249a6803a3ed7bd2f68ff080d9392f550475e050b34c1e1c1e3e8f" +checksum = "71585d3e9cf557cf2b32190aa92b001d100144e1bed60e185c09790169f80bcb" +dependencies = [ + "bevy_app", + "bevy_asset", + "bevy_derive", + "bevy_ecs", + "bevy_hierarchy", + "bevy_input", + "bevy_math", + "bevy_mesh", + "bevy_reflect", + "bevy_render", + "bevy_time", + "bevy_transform", + "bevy_utils", + "bevy_window", + "crossbeam-channel", + "uuid", +] + +[[package]] +name = "bevy_ptr" +version = "0.15.0-rc.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7bba1b455f5a688bf70fd712c4e40068014287964b865a31080c6a8e6db5eecb" [[package]] name = "bevy_reflect" -version = "0.14.1" +version = "0.15.0-rc.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb37e8fc3c61d04da480c95cc8c303aa7781afed6be01dae333b336af493c38e" +checksum = "4a24644d96fcff7f1c141e87f08586c97dada3f7142552cb1d615631cf7f9d52" dependencies = [ + "assert_type_match", "bevy_ptr", "bevy_reflect_derive", "bevy_utils", + "derive_more", + "disqualified", "downcast-rs", "erased-serde", "glam", @@ -898,28 +1032,50 @@ dependencies = [ "serde", "smallvec", "smol_str", - "thiserror", "uuid", ] [[package]] name = "bevy_reflect_derive" -version = "0.14.1" +version = "0.15.0-rc.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fc00d5086f5bf534b4c2dbeba549a6b8d3223515f3cb5ba4fdaabe953ec6cea" +checksum = "e282d0186ac099a2cb91d9320dadd9fcdf52a8c3e565b9b6d86e7dc22fa11996" dependencies = [ "bevy_macro_utils", "proc-macro2", "quote", - "syn 2.0.77", + "syn", "uuid", ] [[package]] -name = "bevy_render" -version = "0.14.1" +name = "bevy_remote" +version = "0.15.0-rc.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f570f36154296ae5377587d5ef19e1feb4c5734923785c571f55a9fff091701" +checksum = "8557de19918af71897cef3dbe33d6cc6f400e818af4b8d9198e0b6bc555f3510" +dependencies = [ + "anyhow", + "async-channel", + "async-io", + "bevy_app", + "bevy_derive", + "bevy_ecs", + "bevy_hierarchy", + "bevy_reflect", + "bevy_tasks", + "bevy_utils", + "http-body-util", + "hyper", + "serde", + "serde_json", + "smol-hyper", +] + +[[package]] +name = "bevy_render" +version = "0.15.0-rc.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6d74663d2c95823d7b354fc01b9ce5eecd197c9191ff8f665c08c78f9d69942" dependencies = [ "async-channel", "bevy_app", @@ -931,8 +1087,9 @@ dependencies = [ "bevy_ecs", "bevy_encase_derive", "bevy_hierarchy", + "bevy_image", "bevy_math", - "bevy_mikktspace", + "bevy_mesh", "bevy_reflect", "bevy_render_macros", "bevy_tasks", @@ -940,46 +1097,44 @@ dependencies = [ "bevy_transform", "bevy_utils", "bevy_window", - "bitflags 2.6.0", "bytemuck", "codespan-reporting", + "derive_more", "downcast-rs", "encase", "futures-lite", - "hexasphere", "image", "js-sys", "ktx2", - "naga 0.20.0", + "naga", "naga_oil", "nonmax", - "ruzstd", + "offset-allocator", "send_wrapper", "serde", "smallvec", - "thiserror", "wasm-bindgen", "web-sys", - "wgpu 0.20.1", + "wgpu", ] [[package]] name = "bevy_render_macros" -version = "0.14.1" +version = "0.15.0-rc.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe2d5008c7b4a8a516ef7b58452b8e40e4c2317068fc7505398bedf34e8d45f7" +checksum = "7a66e09c0ea65f28b0b790690a588b74adbf89899f37531c7062a55805a1214a" dependencies = [ "bevy_macro_utils", "proc-macro2", "quote", - "syn 2.0.77", + "syn", ] [[package]] name = "bevy_scene" -version = "0.14.1" +version = "0.15.0-rc.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3910087f6fc45e7833fb62e4de282c36a7012ff381c0584eb2cc84dede02e72f" +checksum = "d0521c672d32480a789d8b00c950f4690336b38babc630a25fbd016c0e32c6d3" dependencies = [ "bevy_app", "bevy_asset", @@ -990,16 +1145,16 @@ dependencies = [ "bevy_render", "bevy_transform", "bevy_utils", + "derive_more", "serde", - "thiserror", "uuid", ] [[package]] name = "bevy_sprite" -version = "0.14.1" +version = "0.15.0-rc.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fffdfb9a18968c8606286b6be83c9323ff9008b5cc043a23a3ecc95ff72fb20c" +checksum = "8ec69e32c0bae51346de8a91ca0d7bb572967c2da0f924af14a174ebce1fd60d" dependencies = [ "bevy_app", "bevy_asset", @@ -1008,24 +1163,27 @@ dependencies = [ "bevy_derive", "bevy_ecs", "bevy_math", + "bevy_picking", "bevy_reflect", "bevy_render", "bevy_transform", "bevy_utils", + "bevy_window", "bitflags 2.6.0", "bytemuck", + "derive_more", "fixedbitset 0.5.7", "guillotiere", + "nonmax", "radsort", "rectangle-pack", - "thiserror", ] [[package]] name = "bevy_state" -version = "0.14.1" +version = "0.15.0-rc.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21066e7bb8014d1b1dd4f611f28c0f4ea9c7738cec2325281e4260a65072d509" +checksum = "4e127e147f4336bf12eeaade1dabc18f3473a9dd77c154f7a0478887384633ae" dependencies = [ "bevy_app", "bevy_ecs", @@ -1037,40 +1195,43 @@ dependencies = [ [[package]] name = "bevy_state_macros" -version = "0.14.1" +version = "0.15.0-rc.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8a449823c420d1cc1fa6cf3d484570b08358e5eeedc1b86de1efcf9c10399b5" +checksum = "20eba83d61d49d86904fa828bfbab2b37dd126f58c8a5f2e928d913484f9d18a" dependencies = [ "bevy_macro_utils", "proc-macro2", "quote", - "syn 2.0.77", + "syn", ] [[package]] name = "bevy_tasks" -version = "0.14.1" +version = "0.15.0-rc.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84f5414c3f49c96e02ceccf5fa12fb6cfbf8b271d2a820902d6f622e9c2fa681" +checksum = "35a350a7ffdd7150bd16f903780464b313b136ae6c17437e2f2b4c7c2bb9890e" dependencies = [ "async-channel", "async-executor", "concurrent-queue", + "futures-channel", "futures-lite", + "pin-project", "wasm-bindgen-futures", ] [[package]] name = "bevy_text" -version = "0.14.1" +version = "0.15.0-rc.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3e77dd86def15f5380e6e7c178ec54e5e356b3f464e2ad35794a08d5ecb82e4" +checksum = "c13f2e64593cb976b357d8134c2d17b1a25cad6b2a7f920d2ba6b6fc183a3f1d" dependencies = [ - "ab_glyph", "bevy_app", "bevy_asset", "bevy_color", + "bevy_derive", "bevy_ecs", + "bevy_hierarchy", "bevy_math", "bevy_reflect", "bevy_render", @@ -1078,46 +1239,49 @@ dependencies = [ "bevy_transform", "bevy_utils", "bevy_window", - "glyph_brush_layout", + "cosmic-text", + "derive_more", "serde", - "thiserror", + "smallvec", + "sys-locale", + "unicode-bidi", ] [[package]] name = "bevy_time" -version = "0.14.1" +version = "0.15.0-rc.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3fb18cfac62098e07786e422e84b4f45f469f27ccb5b572b409500bef465f33" +checksum = "812a471a73b4b25a8630f67b891f714f2fc8998e00a9987caad8916eba3e7294" dependencies = [ "bevy_app", "bevy_ecs", "bevy_reflect", "bevy_utils", "crossbeam-channel", - "thiserror", ] [[package]] name = "bevy_transform" -version = "0.14.1" +version = "0.15.0-rc.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ff09cea0dd0d4e6a3ed5f7dcbd4fbbcec07e518ceb64a4c8a75dedbe294ab60" +checksum = "5eef74f21fd938b63c8dcb4d582bb4fd96af9630d289f71624e72e426fe37db2" dependencies = [ "bevy_app", "bevy_ecs", "bevy_hierarchy", "bevy_math", "bevy_reflect", - "thiserror", + "derive_more", ] [[package]] name = "bevy_ui" -version = "0.14.1" +version = "0.15.0-rc.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50684629a03b7d4891b5953e84dd971c7a8bbd290751bab5ce06e119b692220b" +checksum = "7206ca33419b9745b6a9588a69cbb34cee6f6fe01a4df9dbe68860879449a0e0" dependencies = [ "bevy_a11y", + "bevy_animation", "bevy_app", "bevy_asset", "bevy_color", @@ -1127,6 +1291,7 @@ dependencies = [ "bevy_hierarchy", "bevy_input", "bevy_math", + "bevy_picking", "bevy_reflect", "bevy_render", "bevy_sprite", @@ -1135,17 +1300,17 @@ dependencies = [ "bevy_utils", "bevy_window", "bytemuck", + "derive_more", "nonmax", "smallvec", "taffy", - "thiserror", ] [[package]] name = "bevy_utils" -version = "0.14.1" +version = "0.15.0-rc.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6efbe5a621b56cc4ffa41074929eca84107e242302496b9bb7550675e6bf2e7" +checksum = "9e73bb014ee7754c8e6de9a89206139482a0aac29db0fa416f8fbcb640985314" dependencies = [ "ahash", "bevy_utils_proc_macros", @@ -1158,24 +1323,26 @@ dependencies = [ [[package]] name = "bevy_utils_proc_macros" -version = "0.14.1" +version = "0.15.0-rc.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36a1e91b4294cad2d08620ac062509395d4f65247b636946d6497eaeccf4dbfd" +checksum = "20ae93d5e25b072af3637f3e1c83865c59d8a8e77a5ab87465e4a00dd4766d0d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn", ] [[package]] name = "bevy_window" -version = "0.14.1" +version = "0.15.0-rc.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ba11880f05a3b267ecfa4149fe789b0c046c35fd8418dd8899fad3a4359c986" +checksum = "fc64e1a8acd775c78db7a1c6afb8f4ec31ffce7e61bd39bbc19a3177ac4276cc" dependencies = [ + "android-activity", "bevy_a11y", "bevy_app", "bevy_ecs", + "bevy_input", "bevy_math", "bevy_reflect", "bevy_utils", @@ -1185,17 +1352,19 @@ dependencies = [ [[package]] name = "bevy_winit" -version = "0.14.1" +version = "0.15.0-rc.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5aeb4b2e3b1ece189fcf37ea2de625ceab93e6ac2a14d4b15b0393351e4c18b" +checksum = "6e05f94f7b207237b9f5903946e5969ea01b70e8b557aa2126f7903ce14780db" dependencies = [ "accesskit_winit", "approx", "bevy_a11y", "bevy_app", + "bevy_asset", "bevy_derive", "bevy_ecs", "bevy_hierarchy", + "bevy_image", "bevy_input", "bevy_log", "bevy_math", @@ -1203,11 +1372,13 @@ dependencies = [ "bevy_tasks", "bevy_utils", "bevy_window", + "bytemuck", "cfg-if", "crossbeam-channel", "raw-window-handle", "wasm-bindgen", "web-sys", + "wgpu-types", "winit", ] @@ -1230,7 +1401,7 @@ dependencies = [ "bitflags 2.6.0", "cexpr", "clang-sys", - "itertools", + "itertools 0.12.1", "lazy_static", "lazycell", "proc-macro2", @@ -1238,7 +1409,27 @@ dependencies = [ "regex", "rustc-hash", "shlex", - "syn 2.0.77", + "syn", +] + +[[package]] +name = "bindgen" +version = "0.70.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f49d8fed880d473ea71efb9bf597651e77201bdd4893efe54c9e5d65ae04ce6f" +dependencies = [ + "bitflags 2.6.0", + "cexpr", + "clang-sys", + "itertools 0.12.1", + "log", + "prettyplease", + "proc-macro2", + "quote", + "regex", + "rustc-hash", + "shlex", + "syn", ] [[package]] @@ -1247,7 +1438,16 @@ version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" dependencies = [ - "bit-vec", + "bit-vec 0.6.3", +] + +[[package]] +name = "bit-set" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" +dependencies = [ + "bit-vec 0.8.0", ] [[package]] @@ -1256,6 +1456,12 @@ version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" +[[package]] +name = "bit-vec" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" + [[package]] name = "bitflags" version = "1.3.2" @@ -1329,9 +1535,9 @@ checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" [[package]] name = "bytemuck" -version = "1.17.1" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773d90827bc3feecfb67fab12e24de0749aad83c74b9504ecde46237b5cd24e2" +checksum = "8334215b81e418a0a7bdb8ef0849474f40bb10c8b71f1c4ed315cff49f32494d" dependencies = [ "bytemuck_derive", ] @@ -1344,7 +1550,7 @@ checksum = "0cc8b54b395f2fcfbb3d90c47b01c7f444d94d05bdeb775811dec868ac3bbc26" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn", ] [[package]] @@ -1397,7 +1603,7 @@ dependencies = [ "polling", "rustix", "slab", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -1462,7 +1668,7 @@ checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" dependencies = [ "glob", "libc", - "libloading 0.8.5", + "libloading", ] [[package]] @@ -1484,37 +1690,6 @@ dependencies = [ "unicode-width", ] -[[package]] -name = "com" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e17887fd17353b65b1b2ef1c526c83e26cd72e74f598a8dc1bee13a48f3d9f6" -dependencies = [ - "com_macros", -] - -[[package]] -name = "com_macros" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d375883580a668c7481ea6631fc1a8863e33cc335bf56bfad8d7e6d4b04b13a5" -dependencies = [ - "com_macros_support", - "proc-macro2", - "syn 1.0.109", -] - -[[package]] -name = "com_macros_support" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad899a1087a9296d5644792d7cb72b8e34c1bec8e7d4fbc002230169a6e8710c" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "combine" version = "4.6.7" @@ -1550,6 +1725,26 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32b13ea120a812beba79e34316b3942a857c86ec1593cb34f27bb28272ce2cca" +[[package]] +name = "const-random" +version = "0.1.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87e00182fe74b066627d63b85fd550ac2998d4b0bd86bfed477a0ae4c7c71359" +dependencies = [ + "const-random-macro", +] + +[[package]] +name = "const-random-macro" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e" +dependencies = [ + "getrandom", + "once_cell", + "tiny-keccak", +] + [[package]] name = "const_panic" version = "0.2.9" @@ -1587,6 +1782,16 @@ dependencies = [ "libc", ] +[[package]] +name = "core-foundation" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b55271e5c8c478ad3f38ad24ef34923091e0548492a266d19b3c0b4d82574c63" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "core-foundation-sys" version = "0.8.7" @@ -1600,7 +1805,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c07782be35f9e1140080c6b96f0d44b739e2278479f64e02fdab4e32dfd8b081" dependencies = [ "bitflags 1.3.2", - "core-foundation", + "core-foundation 0.9.4", "core-graphics-types", "foreign-types 0.5.0", "libc", @@ -1613,7 +1818,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf" dependencies = [ "bitflags 1.3.2", - "core-foundation", + "core-foundation 0.9.4", "libc", ] @@ -1634,7 +1839,30 @@ version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f01585027057ff5f0a5bf276174ae4c1594a2c5bde93d5f46a016d76270f5a9" dependencies = [ - "bindgen", + "bindgen 0.69.4", +] + +[[package]] +name = "cosmic-text" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59fd57d82eb4bfe7ffa9b1cec0c05e2fd378155b47f255a67983cb4afe0e80c2" +dependencies = [ + "bitflags 2.6.0", + "fontdb", + "log", + "rangemap", + "rayon", + "rustc-hash", + "rustybuzz", + "self_cell", + "swash", + "sys-locale", + "ttf-parser 0.21.1", + "unicode-bidi", + "unicode-linebreak", + "unicode-script", + "unicode-segmentation", ] [[package]] @@ -1702,12 +1930,37 @@ dependencies = [ "crossbeam-utils", ] +[[package]] +name = "crossbeam-deque" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +dependencies = [ + "crossbeam-utils", +] + [[package]] name = "crossbeam-utils" version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" +[[package]] +name = "crunchy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + [[package]] name = "crypto-common" version = "0.1.6" @@ -1718,34 +1971,22 @@ dependencies = [ "typenum", ] +[[package]] +name = "ctrlc" +version = "3.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90eeab0aa92f3f9b4e87f258c72b139c207d251f9cbc1080a0086b86a8870dd3" +dependencies = [ + "nix", + "windows-sys 0.59.0", +] + [[package]] name = "cursor-icon" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96a6ac251f4a2aca6b3f91340350eab87ae57c3f127ffeb585e92bd336717991" -[[package]] -name = "d3d12" -version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e3d747f100290a1ca24b752186f61f6637e1deffe3bf6320de6fcb29510a307" -dependencies = [ - "bitflags 2.6.0", - "libloading 0.8.5", - "winapi", -] - -[[package]] -name = "d3d12" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b28bfe653d79bd16c77f659305b195b82bb5ce0c0eb2a4846b82ddbd77586813" -dependencies = [ - "bitflags 2.6.0", - "libloading 0.8.5", - "winapi", -] - [[package]] name = "dasp_sample" version = "0.11.0" @@ -1781,7 +2022,28 @@ checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn", +] + +[[package]] +name = "derive_more" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05" +dependencies = [ + "derive_more-impl", +] + +[[package]] +name = "derive_more-impl" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "unicode-xid", ] [[package]] @@ -1809,16 +2071,22 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn", ] +[[package]] +name = "disqualified" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9c272297e804878a2a4b707cfcfc6d2328b5bb936944613b4fdf2b9269afdfd" + [[package]] name = "dlib" version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412" dependencies = [ - "libloading 0.8.5", + "libloading", ] [[package]] @@ -1850,34 +2118,34 @@ checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" [[package]] name = "encase" -version = "0.8.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a9299a95fa5671ddf29ecc22b00e121843a65cb9ff24911e394b4ae556baf36" +checksum = "b0a05902cf601ed11d564128448097b98ebe3c6574bd7b6a653a3d56d54aa020" dependencies = [ "const_panic", "encase_derive", "glam", - "thiserror", + "thiserror 1.0.69", ] [[package]] name = "encase_derive" -version = "0.8.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07e09decb3beb1fe2db6940f598957b2e1f7df6206a804d438ff6cb2a9cddc10" +checksum = "181d475b694e2dd56ae919ce7699d344d1fd259292d590c723a50d1189a2ea85" dependencies = [ "encase_derive_impl", ] [[package]] name = "encase_derive_impl" -version = "0.8.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd31dbbd9743684d339f907a87fe212cb7b51d75b9e8e74181fe363199ee9b47" +checksum = "f97b51c5cc57ef7c5f7a0c57c250251c49ee4c28f819f87ac32f4aceabc36792" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn", ] [[package]] @@ -1994,6 +2262,38 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "font-types" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3971f9a5ca983419cdc386941ba3b9e1feba01a0ab888adf78739feb2798492" +dependencies = [ + "bytemuck", +] + +[[package]] +name = "fontconfig-parser" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1fcfcd44ca6e90c921fee9fa665d530b21ef1327a4c1a6c5250ea44b776ada7" +dependencies = [ + "roxmltree", +] + +[[package]] +name = "fontdb" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0299020c3ef3f60f526a4f64ab4a3d4ce116b1acbf24cdd22da0068e5d81dc3" +dependencies = [ + "fontconfig-parser", + "log", + "memmap2", + "slotmap", + "tinyvec", + "ttf-parser 0.20.0", +] + [[package]] name = "foreign-types" version = "0.3.2" @@ -2021,7 +2321,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn", ] [[package]] @@ -2143,9 +2443,9 @@ dependencies = [ [[package]] name = "gilrs" -version = "0.10.9" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfb8c78963a8856a5b10015c9349176ff5edbc8095384d52aada467a848bc03a" +checksum = "bbb2c998745a3c1ac90f64f4f7b3a54219fd3612d7705e7798212935641ed18f" dependencies = [ "fnv", "gilrs-core", @@ -2156,11 +2456,11 @@ dependencies = [ [[package]] name = "gilrs-core" -version = "0.5.15" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "732dadc05170599ddec9a89653f10d7a2af54da9181b3fa6e2bd49907ec8f7e4" +checksum = "495af945e45efd6386227613cd9fb7bd7c43d3c095040e30c5304c489e6abed5" dependencies = [ - "core-foundation", + "core-foundation 0.10.0", "inotify", "io-kit-sys", "js-sys", @@ -2194,9 +2494,9 @@ dependencies = [ [[package]] name = "glam" -version = "0.27.0" +version = "0.29.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e05e7e6723e3455f4818c7b26e855439f7546cf617ef669d1adedb8669e5cb9" +checksum = "dc46dd3ec48fdd8e693a98d2b8bafae273a2d54c1de02a2a7e3d57d501f39677" dependencies = [ "bytemuck", "rand", @@ -2211,9 +2511,9 @@ checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" [[package]] name = "glow" -version = "0.13.1" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd348e04c43b32574f2de31c8bb397d96c9fcfa1371bd4ca6d8bdc464ab121b1" +checksum = "d51fa363f025f5c111e03f13eda21162faeacb6911fe8caa0c0349f9cf0c4483" dependencies = [ "js-sys", "slotmap", @@ -2242,7 +2542,7 @@ dependencies = [ "inflections", "proc-macro2", "quote", - "syn 2.0.77", + "syn", ] [[package]] @@ -2259,24 +2559,13 @@ dependencies = [ [[package]] name = "glutin_wgl_sys" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8098adac955faa2d31079b65dc48841251f69efd3ac25477903fc424362ead" +checksum = "0a4e1951bbd9434a81aa496fe59ccc2235af3820d27b85f9314e279609211e2c" dependencies = [ "gl_generator", ] -[[package]] -name = "glyph_brush_layout" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b1e288bfd2f6c0313f78bf5aa538356ad481a3bb97e9b7f93220ab0066c5992" -dependencies = [ - "ab_glyph", - "approx", - "xi-unicode", -] - [[package]] name = "gpu-alloc" version = "0.6.0" @@ -2298,26 +2587,14 @@ dependencies = [ [[package]] name = "gpu-allocator" -version = "0.25.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f56f6318968d03c18e1bcf4857ff88c61157e9da8e47c5f29055d60e1228884" +checksum = "c151a2a5ef800297b4e79efa4f4bec035c5f51d5ae587287c9b952bdf734cacd" dependencies = [ "log", "presser", - "thiserror", - "winapi", - "windows 0.52.0", -] - -[[package]] -name = "gpu-descriptor" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc11df1ace8e7e564511f53af41f3e42ddc95b56fd07b3f4445d2a6048bc682c" -dependencies = [ - "bitflags 2.6.0", - "gpu-descriptor-types 0.1.2", - "hashbrown", + "thiserror 1.0.69", + "windows 0.58.0", ] [[package]] @@ -2327,19 +2604,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c08c1f623a8d0b722b8b99f821eb0ba672a1618f0d3b16ddbee1cedd2dd8557" dependencies = [ "bitflags 2.6.0", - "gpu-descriptor-types 0.2.0", + "gpu-descriptor-types", "hashbrown", ] -[[package]] -name = "gpu-descriptor-types" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bf0b36e6f090b7e1d8a4b49c0cb81c1f8376f72198c65dd3ad9ff3556b8b78c" -dependencies = [ - "bitflags 2.6.0", -] - [[package]] name = "gpu-descriptor-types" version = "0.2.0" @@ -2395,21 +2663,6 @@ dependencies = [ "serde", ] -[[package]] -name = "hassle-rs" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af2a7e73e1f34c48da31fb668a907f250794837e08faa144fd24f0b8b741e890" -dependencies = [ - "bitflags 2.6.0", - "com", - "libc", - "libloading 0.8.5", - "thiserror", - "widestring", - "winapi", -] - [[package]] name = "hermit-abi" version = "0.3.9" @@ -2424,9 +2677,9 @@ checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc" [[package]] name = "hexasphere" -version = "12.0.0" +version = "15.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edd6b038160f086b0a7496edae34169ae22f328793cbe2b627a5a3d8373748ec" +checksum = "741ab88b8cc670443da777c3daab02cebf5a3caccfc04e3c052f55c94d1643fe" dependencies = [ "constgebra", "glam", @@ -2487,6 +2740,12 @@ version = "1.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9" +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + [[package]] name = "hyper" version = "1.4.1" @@ -2500,6 +2759,7 @@ dependencies = [ "http", "http-body", "httparse", + "httpdate", "itoa", "pin-project-lite", "smallvec", @@ -2609,11 +2869,11 @@ checksum = "a257582fdcde896fd96463bf2d40eefea0580021c0712a0e2b028b60b47a837a" [[package]] name = "inotify" -version = "0.10.2" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdd168d97690d0b8c412d6b6c10360277f4d7ee495c5d0d5d5fe0854923255cc" +checksum = "f37dccff2791ab604f9babef0ba14fbe0be30bd368dc541e2b08d07c8aa908f3" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.6.0", "inotify-sys", "libc", ] @@ -2661,6 +2921,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.11" @@ -2677,7 +2946,7 @@ dependencies = [ "combine", "jni-sys", "log", - "thiserror", + "thiserror 1.0.69", "walkdir", ] @@ -2692,7 +2961,7 @@ dependencies = [ "combine", "jni-sys", "log", - "thiserror", + "thiserror 1.0.69", "walkdir", "windows-sys 0.45.0", ] @@ -2714,9 +2983,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.70" +version = "0.3.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a" +checksum = "6a88f1bda2bd75b0452a14784937d796722fdebfe50df998aeb3f0b7603019a9" dependencies = [ "wasm-bindgen", ] @@ -2728,7 +2997,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6aae1df220ece3c0ada96b8153459b67eebe9ae9212258bb0134ae60416fdf76" dependencies = [ "libc", - "libloading 0.8.5", + "libloading", "pkg-config", ] @@ -2776,16 +3045,6 @@ version = "0.2.158" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439" -[[package]] -name = "libloading" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" -dependencies = [ - "cfg-if", - "winapi", -] - [[package]] name = "libloading" version = "0.8.5" @@ -2796,6 +3055,12 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "libm" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" + [[package]] name = "libredox" version = "0.0.2" @@ -2895,25 +3160,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] -name = "metal" -version = "0.27.0" +name = "memmap2" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c43f73953f8cbe511f021b58f18c3ce1c3d1ae13fe953293e13345bf83217f25" +checksum = "fd3f7eed9d3848f8b98834af67102b720745c4ec028fcd0aa0239277e7de374f" dependencies = [ - "bitflags 2.6.0", - "block", - "core-graphics-types", - "foreign-types 0.5.0", - "log", - "objc", - "paste", + "libc", ] [[package]] name = "metal" -version = "0.28.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5637e166ea14be6063a3f8ba5ccb9a4159df7d8f6d61c02fc3d480b1f90dcfcb" +checksum = "7ecfd3296f8c56b7c1f6fbac3c71cefa9d78ce009850c45000015f206dc7fa21" dependencies = [ "bitflags 2.6.0", "block", @@ -2975,62 +3234,42 @@ dependencies = [ [[package]] name = "naga" -version = "0.19.2" +version = "23.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50e3524642f53d9af419ab5e8dd29d3ba155708267667c2f3f06c88c9e130843" -dependencies = [ - "bit-set", - "bitflags 2.6.0", - "codespan-reporting", - "hexf-parse", - "indexmap", - "log", - "num-traits", - "rustc-hash", - "spirv", - "termcolor", - "thiserror", - "unicode-xid", -] - -[[package]] -name = "naga" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e536ae46fcab0876853bd4a632ede5df4b1c2527a58f6c5a4150fe86be858231" +checksum = "3d5941e45a15b53aad4375eedf02033adb7a28931eedc31117faffa52e6a857e" dependencies = [ "arrayvec", - "bit-set", + "bit-set 0.8.0", "bitflags 2.6.0", + "cfg_aliases 0.1.1", "codespan-reporting", "hexf-parse", "indexmap", "log", - "num-traits", "pp-rs", "rustc-hash", "spirv", "termcolor", - "thiserror", + "thiserror 1.0.69", "unicode-xid", ] [[package]] name = "naga_oil" -version = "0.14.0" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "275d9720a7338eedac966141089232514c84d76a246a58ef501af88c5edf402f" +checksum = "31ea1f080bb359927cd5404d0af1e5e6758f4f2d82ecfbebb0a0c434764e40f1" dependencies = [ - "bit-set", + "bit-set 0.5.3", "codespan-reporting", "data-encoding", "indexmap", - "naga 0.20.0", + "naga", "once_cell", "regex", "regex-syntax 0.8.4", "rustc-hash", - "thiserror", + "thiserror 1.0.69", "tracing", "unicode-ident", ] @@ -3063,7 +3302,7 @@ dependencies = [ "log", "ndk-sys 0.5.0+25.2.9519653", "num_enum", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -3078,7 +3317,7 @@ dependencies = [ "ndk-sys 0.6.0+11769913", "num_enum", "raw-window-handle", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -3166,7 +3405,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn", ] [[package]] @@ -3176,6 +3415,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", + "libm", ] [[package]] @@ -3196,7 +3436,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.77", + "syn", ] [[package]] @@ -3206,7 +3446,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" dependencies = [ "malloc_buf", - "objc_exception", ] [[package]] @@ -3412,15 +3651,6 @@ dependencies = [ "objc2-foundation", ] -[[package]] -name = "objc_exception" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad970fb455818ad6cba4c122ad012fae53ae8b4795f86378bce65e4f6bab2ca4" -dependencies = [ - "cc", -] - [[package]] name = "object" version = "0.36.4" @@ -3453,6 +3683,16 @@ dependencies = [ "cc", ] +[[package]] +name = "offset-allocator" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e234d535da3521eb95106f40f0b73483d80bfb3aacf27c40d7e2b72f1a3e00a2" +dependencies = [ + "log", + "nonmax", +] + [[package]] name = "ogg" version = "0.8.0" @@ -3464,9 +3704,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.19.0" +version = "1.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" +checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" [[package]] name = "openssl" @@ -3491,7 +3731,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn", ] [[package]] @@ -3514,21 +3754,21 @@ dependencies = [ [[package]] name = "openxr" -version = "0.18.0" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a03958eb34719625119448d483ebd2fe008a2128b6286f2a7138b7e48072053" +checksum = "2a2d6934d2508f94fd4cbda6c2a326f111f60ce59fd9136df6d478564397dd40" dependencies = [ "libc", - "libloading 0.8.5", + "libloading", "ndk-context", "openxr-sys", ] [[package]] name = "openxr-sys" -version = "0.10.0" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1534b2c14b56564e58b91f5015817e1d87bd43ca12a188eda6a9ea3859b0ec25" +checksum = "f10e7e38c47f2175fc39363713b656db899fa0b4a14341029702cbdfa6f44d05" dependencies = [ "cmake", "libc", @@ -3550,15 +3790,6 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" -[[package]] -name = "owned_ttf_parser" -version = "0.24.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "490d3a563d3122bf7c911a59b0add9389e5ec0f5f0c3ac6b91ff235a0e6a7f90" -dependencies = [ - "ttf-parser", -] - [[package]] name = "parking" version = "2.2.0" @@ -3639,7 +3870,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn", ] [[package]] @@ -3729,6 +3960,16 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8cf8e6a8aa66ce33f63993ffc4ea4271eb5b0530a9002db8455ea6050c77bfa" +[[package]] +name = "prettyplease" +version = "0.2.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64d1ec885c64d0457d564db4ec299b2dae3f9c02808b8ad9c3a089c591b18033" +dependencies = [ + "proc-macro2", + "syn", +] + [[package]] name = "proc-macro-crate" version = "3.2.0" @@ -3798,18 +4039,64 @@ dependencies = [ "getrandom", ] +[[package]] +name = "rand_distr" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31" +dependencies = [ + "num-traits", + "rand", +] + [[package]] name = "range-alloc" version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8a99fddc9f0ba0a85884b8d14e3592853e787d581ca1816c91349b10e4eeab" +[[package]] +name = "rangemap" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f60fcc7d6849342eff22c4350c8b9a989ee8ceabc4b481253e8946b9fe83d684" + [[package]] name = "raw-window-handle" version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539" +[[package]] +name = "rayon" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] + +[[package]] +name = "read-fonts" +version = "0.22.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a04b892cb6f91951f144c33321843790c8574c825aafdb16d815fd7183b5229" +dependencies = [ + "bytemuck", + "font-types", +] + [[package]] name = "rectangle-pack" version = "0.4.2" @@ -3945,13 +4232,13 @@ dependencies = [ [[package]] name = "rodio" -version = "0.18.1" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1fceb9d127d515af1586d8d0cc601e1245bdb0af38e75c865a156290184f5b3" +checksum = "6006a627c1a38d37f3d3a85c6575418cfe34a5392d60a686d0071e1c8d427acb" dependencies = [ "cpal", "lewton", - "thiserror", + "thiserror 1.0.69", ] [[package]] @@ -3966,6 +4253,12 @@ dependencies = [ "serde_derive", ] +[[package]] +name = "roxmltree" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c20b6793b5c2fa6553b250154b78d6d0db37e72700ae35fad9387a46f487c97" + [[package]] name = "rustc-demangle" version = "0.1.24" @@ -4031,6 +4324,23 @@ dependencies = [ "untrusted", ] +[[package]] +name = "rustybuzz" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfb9cf8877777222e4a3bc7eb247e398b56baba500c38c1c46842431adc8b55c" +dependencies = [ + "bitflags 2.6.0", + "bytemuck", + "libm", + "smallvec", + "ttf-parser 0.21.1", + "unicode-bidi-mirroring", + "unicode-ccc", + "unicode-properties", + "unicode-script", +] + [[package]] name = "ruzstd" version = "0.7.1" @@ -4078,7 +4388,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ "bitflags 2.6.0", - "core-foundation", + "core-foundation 0.9.4", "core-foundation-sys", "libc", "security-framework-sys", @@ -4094,6 +4404,12 @@ dependencies = [ "libc", ] +[[package]] +name = "self_cell" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d369a96f978623eb3dc28807c4852d6cc617fed53da5d3c400feff1ef34a714a" + [[package]] name = "send_wrapper" version = "0.6.0" @@ -4117,7 +4433,7 @@ checksum = "a5831b979fd7b5439637af1752d535ff49f4860c0f341d1baeb6faf0f4242170" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn", ] [[package]] @@ -4176,6 +4492,16 @@ version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" +[[package]] +name = "skrifa" +version = "0.22.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e1c44ad1f6c5bdd4eefed8326711b7dbda9ea45dfd36068c427d332aa382cbe" +dependencies = [ + "bytemuck", + "read-fonts", +] + [[package]] name = "slab" version = "0.4.9" @@ -4200,6 +4526,19 @@ version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" +[[package]] +name = "smol-hyper" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7428a49d323867702cd12b97b08a6b0104f39ec13b49117911f101271321bc1a" +dependencies = [ + "async-executor", + "async-io", + "futures-io", + "hyper", + "pin-project-lite", +] + [[package]] name = "smol_str" version = "0.2.2" @@ -4234,6 +4573,12 @@ dependencies = [ "bitflags 2.6.0", ] +[[package]] +name = "stackfuture" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6eae92052b72ef70dafa16eddbabffc77e5ca3574be2f7bc1127b36f0a7ad7f2" + [[package]] name = "static_assertions" version = "1.1.0" @@ -4253,21 +4598,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "20e16a0f46cf5fd675563ef54f26e83e20f2366bcf027bcb3cc3ed2b98aaf2ca" [[package]] -name = "syn" -version = "1.0.109" +name = "swash" +version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +checksum = "cbd59f3f359ddd2c95af4758c18270eddd9c730dde98598023cdabff472c2ca2" dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", + "skrifa", + "yazi", + "zeno", ] [[package]] name = "syn" -version = "2.0.77" +version = "2.0.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed" +checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d" dependencies = [ "proc-macro2", "quote", @@ -4284,17 +4629,25 @@ dependencies = [ ] [[package]] -name = "sysinfo" -version = "0.30.13" +name = "sys-locale" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a5b4ddaee55fb2bea2bf0e5000747e5f5c0de765e5a5ff87f4cd106439f4bb3" +checksum = "8eab9a99a024a169fe8a903cf9d4a3b3601109bcc13bd9e3c6fff259138626c4" +dependencies = [ + "libc", +] + +[[package]] +name = "sysinfo" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3b5ae3f4f7d64646c46c4cae4e3f01d1c5d255c7406fdd7c7f999a94e488791" dependencies = [ - "cfg-if", "core-foundation-sys", "libc", + "memchr", "ntapi", - "once_cell", - "windows 0.52.0", + "windows 0.54.0", ] [[package]] @@ -4304,7 +4657,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ "bitflags 2.6.0", - "core-foundation", + "core-foundation 0.9.4", "system-configuration-sys", ] @@ -4355,22 +4708,42 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.63" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" dependencies = [ - "thiserror-impl", + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c006c85c7651b3cf2ada4584faa36773bd07bac24acfb39f3c431b36d7e667aa" +dependencies = [ + "thiserror-impl 2.0.3", ] [[package]] name = "thiserror-impl" -version = "1.0.63" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f077553d607adc1caf65430528a576c757a71ed73944b66ebb58ef2bbd243568" +dependencies = [ + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -4402,6 +4775,15 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" +[[package]] +name = "tiny-keccak" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +dependencies = [ + "crunchy", +] + [[package]] name = "tinyvec" version = "1.8.0" @@ -4529,7 +4911,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn", ] [[package]] @@ -4553,6 +4935,21 @@ dependencies = [ "tracing-core", ] +[[package]] +name = "tracing-oslog" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "528bdd1f0e27b5dd9a4ededf154e824b0532731e4af73bb531de46276e0aab1e" +dependencies = [ + "bindgen 0.70.1", + "cc", + "cfg-if", + "once_cell", + "parking_lot", + "tracing-core", + "tracing-subscriber", +] + [[package]] name = "tracing-subscriber" version = "0.3.18" @@ -4590,9 +4987,15 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "ttf-parser" -version = "0.24.1" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5be21190ff5d38e8b4a2d3b6a3ae57f612cc39c96e83cedeaf7abc338a8bac4a" +checksum = "17f77d76d837a7830fe1d4f12b7b4ba4192c1888001c7164257e4bc6d21d96b4" + +[[package]] +name = "ttf-parser" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c591d83f69777866b9126b24c6dd9a18351f177e49d625920d19f989fd31cf8" [[package]] name = "twox-hash" @@ -4622,12 +5025,30 @@ version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" +[[package]] +name = "unicode-bidi-mirroring" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23cb788ffebc92c5948d0e997106233eeb1d8b9512f93f41651f52b6c5f5af86" + +[[package]] +name = "unicode-ccc" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1df77b101bcc4ea3d78dafc5ad7e4f58ceffe0b2b16bf446aeb50b6cb4157656" + [[package]] name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +[[package]] +name = "unicode-linebreak" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f" + [[package]] name = "unicode-normalization" version = "0.1.23" @@ -4637,6 +5058,18 @@ dependencies = [ "tinyvec", ] +[[package]] +name = "unicode-properties" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e70f2a8b45122e719eb623c01822704c4e0907e7e426a05927e1a1cfff5b75d0" + +[[package]] +name = "unicode-script" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fb421b350c9aff471779e262955939f565ec18b86c15364e6bdf0d662ca7c1f" + [[package]] name = "unicode-segmentation" version = "1.11.0" @@ -4651,9 +5084,9 @@ checksum = "0336d538f7abc86d282a4189614dfaa90810dfc2c6f6427eaf88e16311dd225d" [[package]] name = "unicode-xid" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "229730647fbc343e3a80e463c1db7f78f3855d3f3739bee0dda773c9a037c90a" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" [[package]] name = "untrusted" @@ -4733,9 +5166,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.93" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5" +checksum = "128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e" dependencies = [ "cfg-if", "once_cell", @@ -4744,24 +5177,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.93" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b" +checksum = "cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.77", + "syn", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.43" +version = "0.4.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61e9300f63a621e96ed275155c108eb6f843b6a26d053f122ab69724559dc8ed" +checksum = "cc7ec4f8827a71586374db3e87abdb5a2bb3a15afed140221307c3ec06b1f63b" dependencies = [ "cfg-if", "js-sys", @@ -4771,9 +5204,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.93" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf" +checksum = "e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -4781,28 +5214,28 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.93" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" +checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.93" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484" +checksum = "65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d" [[package]] name = "web-sys" -version = "0.3.70" +version = "0.3.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26fdeaafd9bd129f65e7c031593c24d62186301e0c72c8978fa1678be7d532c0" +checksum = "f6488b90108c040df0fe62fa815cbdee25124641df01814dd7282749234c6112" dependencies = [ "js-sys", "wasm-bindgen", @@ -4820,16 +5253,16 @@ dependencies = [ [[package]] name = "wgpu" -version = "0.19.4" +version = "23.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbd7311dbd2abcfebaabf1841a2824ed7c8be443a0f29166e5d3c6a53a762c01" +checksum = "76ab52f2d3d18b70d5ab8dd270a1cff3ebe6dbe4a7d13c1cc2557138a9777fdc" dependencies = [ "arrayvec", - "cfg-if", "cfg_aliases 0.1.1", + "document-features", "js-sys", "log", - "naga 0.19.2", + "naga", "parking_lot", "profiling", "raw-window-handle", @@ -4838,118 +5271,63 @@ dependencies = [ "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "wgpu-core 0.19.4", - "wgpu-hal 0.19.5", - "wgpu-types 0.19.2", -] - -[[package]] -name = "wgpu" -version = "0.20.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90e37c7b9921b75dfd26dd973fdcbce36f13dfa6e2dc82aece584e0ed48c355c" -dependencies = [ - "arrayvec", - "cfg-if", - "cfg_aliases 0.1.1", - "document-features", - "js-sys", - "log", - "naga 0.20.0", - "parking_lot", - "profiling", - "raw-window-handle", - "smallvec", - "static_assertions", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "wgpu-core 0.21.1", - "wgpu-hal 0.21.1", - "wgpu-types 0.20.0", + "wgpu-core", + "wgpu-hal", + "wgpu-types", ] [[package]] name = "wgpu-core" -version = "0.19.4" +version = "23.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28b94525fc99ba9e5c9a9e24764f2bc29bad0911a7446c12f446a8277369bf3a" +checksum = "0e0c68e7b6322a03ee5b83fcd92caeac5c2a932f6457818179f4652ad2a9c065" dependencies = [ "arrayvec", - "bit-vec", + "bit-vec 0.8.0", "bitflags 2.6.0", "cfg_aliases 0.1.1", - "codespan-reporting", + "document-features", "indexmap", "log", - "naga 0.19.2", + "naga", "once_cell", "parking_lot", "profiling", "raw-window-handle", "rustc-hash", "smallvec", - "thiserror", - "web-sys", - "wgpu-hal 0.19.5", - "wgpu-types 0.19.2", -] - -[[package]] -name = "wgpu-core" -version = "0.21.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d50819ab545b867d8a454d1d756b90cd5f15da1f2943334ca314af10583c9d39" -dependencies = [ - "arrayvec", - "bit-vec", - "bitflags 2.6.0", - "cfg_aliases 0.1.1", - "codespan-reporting", - "document-features", - "indexmap", - "log", - "naga 0.20.0", - "once_cell", - "parking_lot", - "profiling", - "raw-window-handle", - "rustc-hash", - "smallvec", - "thiserror", - "web-sys", - "wgpu-hal 0.21.1", - "wgpu-types 0.20.0", + "thiserror 1.0.69", + "wgpu-hal", + "wgpu-types", ] [[package]] name = "wgpu-hal" -version = "0.19.5" +version = "23.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfabcfc55fd86611a855816326b2d54c3b2fd7972c27ce414291562650552703" +checksum = "de6e7266b869de56c7e3ed72a954899f71d14fec6cc81c102b7530b92947601b" dependencies = [ "android_system_properties", "arrayvec", "ash", - "bit-set", + "bit-set 0.8.0", "bitflags 2.6.0", "block", + "bytemuck", "cfg_aliases 0.1.1", "core-graphics-types", - "d3d12 0.19.0", "glow", "glutin_wgl_sys", "gpu-alloc", "gpu-allocator", - "gpu-descriptor 0.2.4", - "hassle-rs", + "gpu-descriptor", "js-sys", "khronos-egl", "libc", - "libloading 0.8.5", + "libloading", "log", - "metal 0.27.0", - "naga 0.19.2", + "metal", + "naga", "ndk-sys 0.5.0+25.2.9519653", "objc", "once_cell", @@ -4960,86 +5338,25 @@ dependencies = [ "renderdoc-sys", "rustc-hash", "smallvec", - "thiserror", + "thiserror 1.0.69", "wasm-bindgen", "web-sys", - "wgpu-types 0.19.2", - "winapi", -] - -[[package]] -name = "wgpu-hal" -version = "0.21.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "172e490a87295564f3fcc0f165798d87386f6231b04d4548bca458cbbfd63222" -dependencies = [ - "android_system_properties", - "arrayvec", - "ash", - "bit-set", - "bitflags 2.6.0", - "block", - "cfg_aliases 0.1.1", - "core-graphics-types", - "d3d12 0.20.0", - "glow", - "glutin_wgl_sys", - "gpu-alloc", - "gpu-allocator", - "gpu-descriptor 0.3.0", - "hassle-rs", - "js-sys", - "khronos-egl", - "libc", - "libloading 0.8.5", - "log", - "metal 0.28.0", - "naga 0.20.0", - "ndk-sys 0.5.0+25.2.9519653", - "objc", - "once_cell", - "parking_lot", - "profiling", - "range-alloc", - "raw-window-handle", - "renderdoc-sys", - "rustc-hash", - "smallvec", - "thiserror", - "wasm-bindgen", - "web-sys", - "wgpu-types 0.20.0", - "winapi", + "wgpu-types", + "windows 0.58.0", + "windows-core 0.58.0", ] [[package]] name = "wgpu-types" -version = "0.19.2" +version = "23.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b671ff9fb03f78b46ff176494ee1ebe7d603393f42664be55b64dc8d53969805" +checksum = "610f6ff27778148c31093f3b03abc4840f9636d58d597ca2f5977433acfe0068" dependencies = [ "bitflags 2.6.0", "js-sys", "web-sys", ] -[[package]] -name = "wgpu-types" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1353d9a46bff7f955a680577f34c69122628cc2076e1d6f3a9be6ef00ae793ef" -dependencies = [ - "bitflags 2.6.0", - "js-sys", - "web-sys", -] - -[[package]] -name = "widestring" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7219d36b6eac893fa81e84ebe06485e7dcbb616177469b142df14f1f4deb1311" - [[package]] name = "winapi" version = "0.3.9" @@ -5071,16 +5388,6 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" -[[package]] -name = "windows" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be" -dependencies = [ - "windows-core 0.52.0", - "windows-targets 0.52.6", -] - [[package]] name = "windows" version = "0.54.0" @@ -5088,8 +5395,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9252e5725dbed82865af151df558e754e4a3c2c30818359eb17465f1346a1b49" dependencies = [ "windows-core 0.54.0", - "windows-implement 0.53.0", - "windows-interface 0.53.0", "windows-targets 0.52.6", ] @@ -5103,15 +5408,6 @@ dependencies = [ "windows-targets 0.52.6", ] -[[package]] -name = "windows-core" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" -dependencies = [ - "windows-targets 0.52.6", -] - [[package]] name = "windows-core" version = "0.54.0" @@ -5128,24 +5424,13 @@ version = "0.58.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99" dependencies = [ - "windows-implement 0.58.0", - "windows-interface 0.58.0", + "windows-implement", + "windows-interface", "windows-result 0.2.0", "windows-strings", "windows-targets 0.52.6", ] -[[package]] -name = "windows-implement" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "942ac266be9249c84ca862f0a164a39533dc2f6f33dc98ec89c8da99b82ea0bd" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.77", -] - [[package]] name = "windows-implement" version = "0.58.0" @@ -5154,18 +5439,7 @@ checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", -] - -[[package]] -name = "windows-interface" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da33557140a288fae4e1d5f8873aaf9eb6613a9cf82c3e070223ff177f598b60" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.77", + "syn", ] [[package]] @@ -5176,7 +5450,7 @@ checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn", ] [[package]] @@ -5437,7 +5711,7 @@ dependencies = [ "calloop", "cfg_aliases 0.2.1", "concurrent-queue", - "core-foundation", + "core-foundation 0.9.4", "core-graphics", "cursor-icon", "dpi", @@ -5496,7 +5770,7 @@ dependencies = [ "as-raw-xcb-connection", "gethostname", "libc", - "libloading 0.8.5", + "libloading", "once_cell", "rustix", "x11rb-protocol", @@ -5508,12 +5782,6 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec107c4503ea0b4a98ef47356329af139c0a4f7750e621cf2973cd3385ebcb3d" -[[package]] -name = "xi-unicode" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a67300977d3dc3f8034dae89778f502b6ba20b269527b3223ba59c0cf393bb8a" - [[package]] name = "xkbcommon-dl" version = "0.4.2" @@ -5539,6 +5807,18 @@ version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "539a77ee7c0de333dcc6da69b177380a0b81e0dacfa4f7344c465a36871ee601" +[[package]] +name = "yazi" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c94451ac9513335b5e23d7a8a2b61a7102398b8cca5160829d313e84c9d98be1" + +[[package]] +name = "zeno" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd15f8e0dbb966fd9245e7498c7e9e5055d9e5c8b676b95bd67091cd11a1e697" + [[package]] name = "zerocopy" version = "0.7.35" @@ -5557,7 +5837,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn", ] [[package]] @@ -5577,7 +5857,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.77", + "syn", ] [[package]] @@ -5602,7 +5882,7 @@ dependencies = [ "pbkdf2", "rand", "sha1", - "thiserror", + "thiserror 1.0.69", "time", "zeroize", "zopfli", diff --git a/Cargo.toml b/Cargo.toml index 6f11ce4..aa68360 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,10 +10,17 @@ resolver = "2" members = ["crates/*", "crates/bevy_openxr/examples/android"] [workspace.dependencies] -bevy = { version = "0.14.0", default-features = false, features = [ +bevy = { version = "0.15.0-rc.3", default-features = false, features = [ "bevy_render", "bevy_core_pipeline", "bevy_winit", "bevy_pbr", "x11", ] } +bevy_mod_xr.path = "crates/bevy_xr" +bevy_mod_openxr.path = "crates/bevy_openxr" +bevy_xr_utils.path = "crates/bevy_xr_utils" +openxr = "0.19.0" +thiserror = "2.0.3" +wgpu = "23" +wgpu-hal = "23" diff --git a/crates/bevy_openxr/Cargo.toml b/crates/bevy_openxr/Cargo.toml index 514ee8d..8e93909 100644 --- a/crates/bevy_openxr/Cargo.toml +++ b/crates/bevy_openxr/Cargo.toml @@ -10,11 +10,11 @@ keywords = ["gamedev", "bevy", "Xr", "Vr", "OpenXR"] [features] default = ["vulkan", "d3d12", "passthrough"] vulkan = ["dep:ash"] -d3d12 = ["wgpu/dx12", "wgpu-hal/dx12", "dep:winapi", "dep:d3d12"] +d3d12 = ["wgpu/dx12", "wgpu-hal/dx12", "dep:winapi"] passthrough = [] [dev-dependencies] -bevy_xr_utils.path = "../bevy_xr_utils" +bevy_xr_utils.workspace = true bevy = { workspace = true, default-features = true } [target.'cfg(target_os = "android")'.dependencies] @@ -27,22 +27,20 @@ bevy.workspace = true # all other dependencies are placed under this since on wasm, this crate is completely empty [target.'cfg(not(target_family = "wasm"))'.dependencies] -openxr = "0.18.0" -thiserror = "1.0.57" -wgpu = "0.20" -wgpu-hal = "0.21" -bevy_mod_xr = { path = "../bevy_xr", version = "0.1.0-rc1" } - -ash = { version = "0.37.3", optional = true } +bevy_mod_xr.workspace = true +openxr.workspace = true +thiserror.workspace = true +wgpu.workspace = true +wgpu-hal.workspace = true +ash = { version = "0.38", optional = true } [target.'cfg(target_family = "unix")'.dependencies] -openxr = { version = "0.18.0", features = ["mint"] } -wgpu = { version = "0.20", features = ["vulkan-portability"] } +openxr = { workspace = true, features = ["mint"] } +wgpu = { workspace = true, features = ["vulkan-portability"] } [target.'cfg(target_family = "windows")'.dependencies] -openxr = { version = "0.18.0", features = ["mint", "static"] } +openxr = { workspace=true, features = ["mint", "static"] } winapi = { version = "0.3.9", optional = true } -d3d12 = { version = "0.20", features = ["libloading"], optional = true } [lints.clippy] too_many_arguments = "allow" diff --git a/crates/bevy_openxr/examples/3d_scene.rs b/crates/bevy_openxr/examples/3d_scene.rs index 9eefd92..ee6c2ad 100644 --- a/crates/bevy_openxr/examples/3d_scene.rs +++ b/crates/bevy_openxr/examples/3d_scene.rs @@ -1,13 +1,25 @@ //! A simple 3D scene with light shining over a cube sitting on a plane. -use bevy::prelude::*; -use bevy_mod_openxr::add_xr_plugins; +use bevy::{prelude::*, render::pipelined_rendering::PipelinedRenderingPlugin}; +use bevy_mod_openxr::{add_xr_plugins, init::OxrInitPlugin}; +use openxr::EnvironmentBlendMode; fn main() { App::new() - .add_plugins(add_xr_plugins(DefaultPlugins)) + .add_plugins( + add_xr_plugins(DefaultPlugins.build().disable::()).set( + OxrInitPlugin { + blend_modes: Some(vec![ + EnvironmentBlendMode::ALPHA_BLEND, + EnvironmentBlendMode::ADDITIVE, + ]), + ..Default::default() + }, + ), + ) .add_plugins(bevy_xr_utils::hand_gizmos::HandGizmosPlugin) .add_systems(Startup, setup) + .insert_resource(ClearColor(Color::NONE)) .run(); } @@ -18,30 +30,27 @@ fn setup( mut materials: ResMut>, ) { // circular base - commands.spawn(PbrBundle { - mesh: meshes.add(Circle::new(4.0)), - material: materials.add(Color::WHITE), - transform: Transform::from_rotation(Quat::from_rotation_x(-std::f32::consts::FRAC_PI_2)), - ..default() - }); + commands.spawn(( + Mesh3d(meshes.add(Circle::new(4.0))), + MeshMaterial3d(materials.add(Color::WHITE)), + Transform::from_rotation(Quat::from_rotation_x(-std::f32::consts::FRAC_PI_2)), + )); // cube - commands.spawn(PbrBundle { - mesh: meshes.add(Cuboid::new(1.0, 1.0, 1.0)), - material: materials.add(Color::srgb_u8(124, 144, 255)), - transform: Transform::from_xyz(0.0, 0.5, 0.0), - ..default() - }); + commands.spawn(( + Mesh3d(meshes.add(Cuboid::new(1.0, 1.0, 1.0))), + MeshMaterial3d(materials.add(Color::srgb_u8(124, 144, 255))), + Transform::from_xyz(0.0, 0.5, 0.0), + )); // light - commands.spawn(PointLightBundle { - point_light: PointLight { + commands.spawn(( + PointLight { shadows_enabled: true, ..default() }, - transform: Transform::from_xyz(4.0, 8.0, 4.0), - ..default() - }); - commands.spawn(Camera3dBundle { - transform: Transform::from_xyz(-2.5, 4.5, 9.0).looking_at(Vec3::ZERO, Vec3::Y), - ..default() - }); + Transform::from_xyz(4.0, 8.0, 4.0), + )); + commands.spawn(( + Camera3d::default(), + Transform::from_xyz(-2.5, 4.5, 9.0).looking_at(Vec3::ZERO, Vec3::Y), + )); } diff --git a/crates/bevy_openxr/examples/actions.rs b/crates/bevy_openxr/examples/actions.rs index ad328ee..eb7c6d9 100644 --- a/crates/bevy_openxr/examples/actions.rs +++ b/crates/bevy_openxr/examples/actions.rs @@ -34,24 +34,22 @@ fn setup_scene( mut materials: ResMut>, ) { // circular base - commands.spawn(PbrBundle { - mesh: meshes.add(Circle::new(4.0)), - material: materials.add(Color::WHITE), - transform: Transform::from_rotation(Quat::from_rotation_x(-std::f32::consts::FRAC_PI_2)), - ..default() - }); + commands.spawn(( + Mesh3d(meshes.add(Circle::new(4.0))), + MeshMaterial3d(materials.add(Color::WHITE)), + Transform::from_rotation(Quat::from_rotation_x(-std::f32::consts::FRAC_PI_2)), + )); // cube - commands.spawn(PbrBundle { - mesh: meshes.add(Cuboid::new(1.0, 1.0, 1.0)), - material: materials.add(Color::srgb_u8(124, 144, 255)), - transform: Transform::from_xyz(0.0, 0.5, 0.0), - ..default() - }); + commands.spawn(( + Mesh3d(meshes.add(Cuboid::new(1.0, 1.0, 1.0))), + MeshMaterial3d(materials.add(Color::srgb_u8(124, 144, 255))), + Transform::from_xyz(0.0, 0.5, 0.0), + )); - commands.spawn(Camera3dBundle { - transform: Transform::from_xyz(-2.5, 4.5, 9.0).looking_at(Vec3::ZERO, Vec3::Y), - ..default() - }); + commands.spawn(( + Camera3d::default(), + Transform::from_xyz(-2.5, 4.5, 9.0).looking_at(Vec3::ZERO, Vec3::Y), + )); } #[derive(Component)] @@ -145,7 +143,7 @@ fn handle_flight_input( let locomotion_vector = reference_quat.mul_vec3(input_vector); root_position.translation += - locomotion_vector * speed * time.delta_seconds(); + locomotion_vector * speed * time.delta_secs(); } None => return, } diff --git a/crates/bevy_openxr/examples/android/Cargo.toml b/crates/bevy_openxr/examples/android/Cargo.toml index e1838cb..cc00df3 100644 --- a/crates/bevy_openxr/examples/android/Cargo.toml +++ b/crates/bevy_openxr/examples/android/Cargo.toml @@ -7,9 +7,9 @@ publish = false # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -bevy_mod_openxr.path = "../.." +bevy_mod_openxr.workspace = true bevy = { workspace = true, default-features = true } -bevy_xr_utils.path = "../../../bevy_xr_utils" +bevy_xr_utils.workspace = true [build-dependencies] reqwest = { version = "0.12", features = ["blocking"] } diff --git a/crates/bevy_openxr/examples/android/src/lib.rs b/crates/bevy_openxr/examples/android/src/lib.rs index d29979d..68a656f 100644 --- a/crates/bevy_openxr/examples/android/src/lib.rs +++ b/crates/bevy_openxr/examples/android/src/lib.rs @@ -21,8 +21,8 @@ fn main() { synchronous_pipeline_compilation: default(), })) .add_plugins(bevy_xr_utils::hand_gizmos::HandGizmosPlugin) - .insert_resource(Msaa::Off) .add_systems(Startup, setup) + .add_systems(Update, modify_msaa) .insert_resource(AmbientLight { color: Default::default(), brightness: 500.0, @@ -31,6 +31,15 @@ fn main() { .run(); } +#[derive(Component)] +struct MsaaModified; + +fn modify_msaa(cams: Query, Without)>, mut commands: Commands) { + for cam in &cams { + commands.entity(cam).insert(Msaa::Off).insert(MsaaModified); + } +} + /// set up a simple 3D scene fn setup( mut commands: Commands, @@ -40,19 +49,17 @@ fn setup( let mut white: StandardMaterial = Color::WHITE.into(); white.unlit = true; // circular base - commands.spawn(PbrBundle { - mesh: meshes.add(Circle::new(4.0)), - material: materials.add(white), - transform: Transform::from_rotation(Quat::from_rotation_x(-std::f32::consts::FRAC_PI_2)), - ..default() - }); + commands.spawn(( + Mesh3d(meshes.add(Circle::new(4.0))), + MeshMaterial3d(materials.add(white)), + Transform::from_rotation(Quat::from_rotation_x(-std::f32::consts::FRAC_PI_2)), + )); let mut cube_mat: StandardMaterial = Color::srgb_u8(124, 144, 255).into(); cube_mat.unlit = true; // cube - commands.spawn(PbrBundle { - mesh: meshes.add(Cuboid::new(1.0, 1.0, 1.0)), - material: materials.add(cube_mat), - transform: Transform::from_xyz(0.0, 0.5, 0.0), - ..default() - }); + commands.spawn(( + Mesh3d(meshes.add(Cuboid::new(1.0, 1.0, 1.0))), + MeshMaterial3d(materials.add(cube_mat)), + Transform::from_xyz(0.0, 0.5, 0.0), + )); } diff --git a/crates/bevy_openxr/examples/overlay.rs b/crates/bevy_openxr/examples/overlay.rs index 7372c71..d19b235 100644 --- a/crates/bevy_openxr/examples/overlay.rs +++ b/crates/bevy_openxr/examples/overlay.rs @@ -79,30 +79,27 @@ fn setup( mut materials: ResMut>, ) { // circular base - // commands.spawn(PbrBundle { - // mesh: meshes.add(Circle::new(4.0)), - // material: materials.add(Color::WHITE), - // transform: Transform::from_rotation(Quat::from_rotation_x(-std::f32::consts::FRAC_PI_2)), - // ..default() - // }); + // commands.spawn(( + // Mesh3d(meshes.add(Circle::new(4.0))), + // MeshMaterial3d(materials.add(Color::WHITE)), + // Transform::from_rotation(Quat::from_rotation_x(-std::f32::consts::FRAC_PI_2)), + // )); // cube - commands.spawn(PbrBundle { - mesh: meshes.add(Cuboid::new(1.0, 1.0, 1.0)), - material: materials.add(Color::srgb_u8(124, 144, 255)), - transform: Transform::from_xyz(0.0, 2.5, 0.0), - ..default() - }); + commands.spawn(( + Mesh3d(meshes.add(Cuboid::new(1.0, 1.0, 1.0))), + MeshMaterial3d(materials.add(Color::srgb_u8(124, 144, 255))), + Transform::from_xyz(0.0, 2.5, 0.0), + )); // light - commands.spawn(PointLightBundle { - point_light: PointLight { + commands.spawn(( + PointLight { shadows_enabled: true, ..default() }, - transform: Transform::from_xyz(4.0, 8.0, 4.0), - ..default() - }); - commands.spawn(Camera3dBundle { - transform: Transform::from_xyz(-2.5, 4.5, 9.0).looking_at(Vec3::ZERO, Vec3::Y), - ..default() - }); + Transform::from_xyz(4.0, 8.0, 4.0), + )); + commands.spawn(( + Camera3d::default(), + Transform::from_xyz(-2.5, 4.5, 9.0).looking_at(Vec3::ZERO, Vec3::Y), + )); } diff --git a/crates/bevy_openxr/examples/raw_actions.rs b/crates/bevy_openxr/examples/raw_actions.rs index 2cb9888..c706a0e 100644 --- a/crates/bevy_openxr/examples/raw_actions.rs +++ b/crates/bevy_openxr/examples/raw_actions.rs @@ -13,7 +13,6 @@ use bevy_mod_openxr::{ use bevy_mod_xr::{ session::{session_available, session_running, XrSessionCreated, XrTrackingRoot}, spaces::XrSpace, - types::XrPose, }; use openxr::Posef; @@ -55,32 +54,29 @@ fn setup( mut materials: ResMut>, ) { // circular base - commands.spawn(PbrBundle { - mesh: meshes.add(Circle::new(4.0)), - material: materials.add(Color::WHITE), - transform: Transform::from_rotation(Quat::from_rotation_x(-std::f32::consts::FRAC_PI_2)), - ..default() - }); + commands.spawn(( + Mesh3d(meshes.add(Circle::new(4.0))), + MeshMaterial3d(materials.add(Color::WHITE)), + Transform::from_rotation(Quat::from_rotation_x(-std::f32::consts::FRAC_PI_2)), + )); // cube - commands.spawn(PbrBundle { - mesh: meshes.add(Cuboid::new(1.0, 1.0, 1.0)), - material: materials.add(Color::srgb_u8(124, 144, 255)), - transform: Transform::from_xyz(0.0, 0.5, 0.0), - ..default() - }); + commands.spawn(( + Mesh3d(meshes.add(Cuboid::new(1.0, 1.0, 1.0))), + MeshMaterial3d(materials.add(Color::srgb_u8(124, 144, 255))), + Transform::from_xyz(0.0, 0.5, 0.0), + )); // light - commands.spawn(PointLightBundle { - point_light: PointLight { + commands.spawn(( + PointLight { shadows_enabled: true, ..default() }, - transform: Transform::from_xyz(4.0, 8.0, 4.0), - ..default() - }); - commands.spawn(Camera3dBundle { - transform: Transform::from_xyz(-2.5, 4.5, 9.0).looking_at(Vec3::ZERO, Vec3::Y), - ..default() - }); + Transform::from_xyz(4.0, 8.0, 4.0), + )); + commands.spawn(( + Camera3d::default(), + Transform::from_xyz(-2.5, 4.5, 9.0).looking_at(Vec3::ZERO, Vec3::Y), + )); } fn suggest_action_bindings( actions: Res, @@ -130,34 +126,28 @@ fn spawn_hands( .unwrap(), ); let right_space = session - .create_action_space(&actions.right, openxr::Path::NULL, XrPose::IDENTITY) + .create_action_space(&actions.right, openxr::Path::NULL, Isometry3d::IDENTITY) .unwrap(); let left = cmds .spawn(( - PbrBundle { - mesh: meshes.add(Cuboid::new(0.1, 0.1, 0.05)), - material: materials.add(Color::srgb_u8(124, 144, 255)), - transform: Transform::from_xyz(0.0, 0.5, 0.0), - ..default() - }, + Mesh3d(meshes.add(Cuboid::new(0.1, 0.1, 0.05))), + MeshMaterial3d(materials.add(Color::srgb_u8(124, 144, 255))), + Transform::from_xyz(0.0, 0.5, 0.0), left_space, Controller, )) .id(); let right = cmds .spawn(( - PbrBundle { - mesh: meshes.add(Cuboid::new(0.1, 0.1, 0.05)), - material: materials.add(Color::srgb_u8(124, 144, 255)), - transform: Transform::from_xyz(0.0, 0.5, 0.0), - ..default() - }, + Mesh3d(meshes.add(Cuboid::new(0.1, 0.1, 0.05))), + MeshMaterial3d(materials.add(Color::srgb_u8(124, 144, 255))), + Transform::from_xyz(0.0, 0.5, 0.0), right_space, Controller, )) .id(); - cmds.entity(root.single()).push_children(&[left, right]); + cmds.entity(root.single()).add_children(&[left, right]); } #[derive(Component)] diff --git a/crates/bevy_openxr/examples/sessions.rs b/crates/bevy_openxr/examples/sessions.rs index 3861930..27e718c 100644 --- a/crates/bevy_openxr/examples/sessions.rs +++ b/crates/bevy_openxr/examples/sessions.rs @@ -55,21 +55,19 @@ fn setup( mut materials: ResMut>, ) { // circular base - commands.spawn(PbrBundle { - mesh: meshes.add(Circle::new(4.0)), - material: materials.add(Color::WHITE), - transform: Transform::from_rotation(Quat::from_rotation_x(-std::f32::consts::FRAC_PI_2)), - ..default() - }); + commands.spawn(( + Mesh3d(meshes.add(Circle::new(4.0))), + MeshMaterial3d(materials.add(Color::WHITE)), + Transform::from_rotation(Quat::from_rotation_x(-std::f32::consts::FRAC_PI_2)), + )); // cube - commands.spawn(PbrBundle { - mesh: meshes.add(Cuboid::new(1.0, 1.0, 1.0)), - material: materials.add(Color::srgb_u8(124, 144, 255)), - transform: Transform::from_xyz(0.0, 0.5, 0.0), - ..default() - }); - commands.spawn(Camera3dBundle { - transform: Transform::from_xyz(-2.5, 4.5, 9.0).looking_at(Vec3::ZERO, Vec3::Y), - ..default() - }); + commands.spawn(( + Mesh3d(meshes.add(Cuboid::new(1.0, 1.0, 1.0))), + MeshMaterial3d(materials.add(Color::srgb_u8(124, 144, 255))), + Transform::from_xyz(0.0, 0.5, 0.0), + )); + commands.spawn(( + Camera3d::default(), + Transform::from_xyz(-2.5, 4.5, 9.0).looking_at(Vec3::ZERO, Vec3::Y), + )); } diff --git a/crates/bevy_openxr/examples/tracking_utils.rs b/crates/bevy_openxr/examples/tracking_utils.rs index 7f79a54..7e9cf82 100644 --- a/crates/bevy_openxr/examples/tracking_utils.rs +++ b/crates/bevy_openxr/examples/tracking_utils.rs @@ -2,7 +2,7 @@ use bevy::prelude::*; use bevy_mod_openxr::add_xr_plugins; -use bevy_mod_xr::session::{XrSessionCreated, XrTrackingRoot}; +use bevy_mod_xr::session::XrSessionCreated; use bevy_xr_utils::tracking_utils::{ TrackingUtilitiesPlugin, XrTrackedLeftGrip, XrTrackedLocalFloor, XrTrackedRightGrip, XrTrackedStage, XrTrackedView, @@ -29,25 +29,23 @@ fn setup( mut materials: ResMut>, ) { // circular base - commands.spawn(PbrBundle { - mesh: meshes.add(Circle::new(4.0)), - material: materials.add(Color::WHITE), - transform: Transform::from_rotation(Quat::from_rotation_x(-std::f32::consts::FRAC_PI_2)), - ..default() - }); + commands.spawn(( + Mesh3d(meshes.add(Circle::new(4.0))), + MeshMaterial3d(materials.add(Color::WHITE)), + Transform::from_rotation(Quat::from_rotation_x(-std::f32::consts::FRAC_PI_2)), + )); // light - commands.spawn(PointLightBundle { - point_light: PointLight { + commands.spawn(( + PointLight { shadows_enabled: true, ..default() }, - transform: Transform::from_xyz(4.0, 8.0, 4.0), - ..default() - }); - commands.spawn(Camera3dBundle { - transform: Transform::from_xyz(-2.5, 4.5, 9.0).looking_at(Vec3::ZERO, Vec3::Y), - ..default() - }); + Transform::from_xyz(4.0, 8.0, 4.0), + )); + commands.spawn(( + Camera3d::default(), + Transform::from_xyz(-2.5, 4.5, 9.0).looking_at(Vec3::ZERO, Vec3::Y), + )); } fn spawn_hands( @@ -57,22 +55,16 @@ fn spawn_hands( ) { let left = cmds .spawn(( - PbrBundle { - mesh: meshes.add(Cuboid::new(0.1, 0.1, 0.05)), - material: materials.add(Color::srgb_u8(124, 144, 255)), - transform: Transform::from_xyz(0.0, 0.5, 0.0), - ..default() - }, + Mesh3d(meshes.add(Cuboid::new(0.1, 0.1, 0.05))), + MeshMaterial3d(materials.add(Color::srgb_u8(124, 144, 255))), + Transform::from_xyz(0.0, 0.5, 0.0), XrTrackedLeftGrip, )) .id(); let bundle = ( - PbrBundle { - mesh: meshes.add(Cuboid::new(0.1, 0.1, 0.05)), - material: materials.add(Color::srgb_u8(124, 144, 255)), - transform: Transform::from_xyz(0.0, 0.5, 0.0), - ..default() - }, + Mesh3d(meshes.add(Cuboid::new(0.1, 0.1, 0.05))), + MeshMaterial3d(materials.add(Color::srgb_u8(124, 144, 255))), + Transform::from_xyz(0.0, 0.5, 0.0), XrTrackedRightGrip, ); let right = cmds.spawn(bundle).id(); @@ -80,40 +72,31 @@ fn spawn_hands( let head = cmds .spawn(( - PbrBundle { - mesh: meshes.add(Cuboid::new(0.2, 0.2, 0.2)), - material: materials.add(Color::srgb_u8(255, 144, 144)), - transform: Transform::from_xyz(0.0, 0.0, 0.0), - ..default() - }, + Mesh3d(meshes.add(Cuboid::new(0.2, 0.2, 0.2))), + MeshMaterial3d(materials.add(Color::srgb_u8(255, 144, 144))), + Transform::from_xyz(0.0, 0.0, 0.0), XrTrackedView, )) .id(); //local_floor emulated let local_floor = cmds .spawn(( - PbrBundle { - mesh: meshes.add(Cuboid::new(0.5, 0.1, 0.5)), - material: materials.add(Color::srgb_u8(144, 255, 144)), - transform: Transform::from_xyz(0.0, 0.0, 0.0), - ..default() - }, + Mesh3d(meshes.add(Cuboid::new(0.5, 0.1, 0.5))), + MeshMaterial3d(materials.add(Color::srgb_u8(144, 255, 144))), + Transform::from_xyz(0.0, 0.0, 0.0), XrTrackedLocalFloor, )) .id(); let stage = cmds .spawn(( - PbrBundle { - mesh: meshes.add(Cuboid::new(0.5, 0.1, 0.5)), - material: materials.add(Color::srgb_u8(144, 255, 255)), - transform: Transform::from_xyz(0.0, 0.0, 0.0), - ..default() - }, + Mesh3d(meshes.add(Cuboid::new(0.5, 0.1, 0.5))), + MeshMaterial3d(materials.add(Color::srgb_u8(144, 255, 255))), + Transform::from_xyz(0.0, 0.0, 0.0), XrTrackedStage, )) .id(); cmds.entity(stage) - .push_children(&[left, right, head, local_floor]); + .add_children(&[left, right, head, local_floor]); } diff --git a/crates/bevy_openxr/examples/transform_utils.rs b/crates/bevy_openxr/examples/transform_utils.rs index b578062..08b6161 100644 --- a/crates/bevy_openxr/examples/transform_utils.rs +++ b/crates/bevy_openxr/examples/transform_utils.rs @@ -41,52 +41,46 @@ fn setup( mut materials: ResMut>, ) { // circular base - commands.spawn(PbrBundle { - mesh: meshes.add(Circle::new(4.0)), - material: materials.add(Color::WHITE), - transform: Transform::from_rotation(Quat::from_rotation_x(-std::f32::consts::FRAC_PI_2)), - ..default() - }); + commands.spawn(( + Mesh3d(meshes.add(Circle::new(4.0))), + MeshMaterial3d(materials.add(Color::WHITE)), + Transform::from_rotation(Quat::from_rotation_x(-std::f32::consts::FRAC_PI_2)), + )); // red cube - commands.spawn(PbrBundle { - mesh: meshes.add(Cuboid::new(1.0, 1.0, 1.0)), - material: materials.add(Color::srgb_u8(252, 44, 3)), - transform: Transform::from_xyz(4.0, 0.5, 0.0).with_scale(Vec3::splat(0.5)), - ..default() - }); + commands.spawn(( + Mesh3d(meshes.add(Cuboid::new(1.0, 1.0, 1.0))), + MeshMaterial3d(materials.add(Color::srgb_u8(252, 44, 3))), + Transform::from_xyz(4.0, 0.5, 0.0).with_scale(Vec3::splat(0.5)), + )); // blue cube - commands.spawn(PbrBundle { - mesh: meshes.add(Cuboid::new(1.0, 1.0, 1.0)), - material: materials.add(Color::srgb_u8(3, 28, 252)), - transform: Transform::from_xyz(-4.0, 0.5, 0.0).with_scale(Vec3::splat(0.5)), - ..default() - }); + commands.spawn(( + Mesh3d(meshes.add(Cuboid::new(1.0, 1.0, 1.0))), + MeshMaterial3d(materials.add(Color::srgb_u8(3, 28, 252))), + Transform::from_xyz(-4.0, 0.5, 0.0).with_scale(Vec3::splat(0.5)), + )); // green cube - commands.spawn(PbrBundle { - mesh: meshes.add(Cuboid::new(1.0, 1.0, 1.0)), - material: materials.add(Color::srgb_u8(3, 252, 32)), - transform: Transform::from_xyz(0.0, 0.5, 4.0).with_scale(Vec3::splat(0.5)), - ..default() - }); + commands.spawn(( + Mesh3d(meshes.add(Cuboid::new(1.0, 1.0, 1.0))), + MeshMaterial3d(materials.add(Color::srgb_u8(3, 252, 32))), + Transform::from_xyz(0.0, 0.5, 4.0).with_scale(Vec3::splat(0.5)), + )); // white cube - commands.spawn(PbrBundle { - mesh: meshes.add(Cuboid::new(1.0, 1.0, 1.0)), - material: materials.add(Color::srgb_u8(250, 250, 250)), - transform: Transform::from_xyz(0.0, 0.5, -4.0).with_scale(Vec3::splat(0.5)), - ..default() - }); + commands.spawn(( + Mesh3d(meshes.add(Cuboid::new(1.0, 1.0, 1.0))), + MeshMaterial3d(materials.add(Color::srgb_u8(250, 250, 250))), + Transform::from_xyz(0.0, 0.5, -4.0).with_scale(Vec3::splat(0.5)), + )); // black cube - commands.spawn(PbrBundle { - mesh: meshes.add(Cuboid::new(1.0, 1.0, 1.0)), - material: materials.add(Color::srgb_u8(0, 0, 0)), - transform: Transform::from_xyz(0.0, 0.1, 0.0).with_scale(Vec3::splat(0.2)), - ..default() - }); + commands.spawn(( + Mesh3d(meshes.add(Cuboid::new(1.0, 1.0, 1.0))), + MeshMaterial3d(materials.add(Color::srgb_u8(0, 0, 0))), + Transform::from_xyz(0.0, 0.1, 0.0).with_scale(Vec3::splat(0.2)), + )); - commands.spawn(Camera3dBundle { - transform: Transform::from_xyz(-2.5, 4.5, 9.0).looking_at(Vec3::ZERO, Vec3::Y), - ..default() - }); + commands.spawn(( + Camera3d::default(), + Transform::from_xyz(-2.5, 4.5, 9.0).looking_at(Vec3::ZERO, Vec3::Y), + )); } #[derive(Component)] diff --git a/crates/bevy_openxr/src/openxr/action_binding.rs b/crates/bevy_openxr/src/openxr/action_binding.rs index fb53eee..b571d9d 100644 --- a/crates/bevy_openxr/src/openxr/action_binding.rs +++ b/crates/bevy_openxr/src/openxr/action_binding.rs @@ -16,7 +16,7 @@ impl Plugin for OxrActionBindingPlugin { app.add_event::(); app.add_systems( Update, - run_action_binding_sugestion.run_if(on_event::()), + run_action_binding_sugestion.run_if(on_event::), ); } } @@ -25,7 +25,7 @@ impl Plugin for OxrActionBindingPlugin { // Event to allow requesting binding suggestion for new actions pub(crate) fn run_action_binding_sugestion(world: &mut World) { world.run_schedule(OxrSendActionBindings); - world.run_system_once(bind_actions); + _ = world.run_system_once(bind_actions); } fn bind_actions(instance: Res, mut actions: EventReader) { diff --git a/crates/bevy_openxr/src/openxr/action_set_attaching.rs b/crates/bevy_openxr/src/openxr/action_set_attaching.rs index f8c1618..2072ba5 100644 --- a/crates/bevy_openxr/src/openxr/action_set_attaching.rs +++ b/crates/bevy_openxr/src/openxr/action_set_attaching.rs @@ -8,7 +8,7 @@ impl Plugin for OxrActionAttachingPlugin { app.add_systems( PostUpdate, attach_sets - .run_if(on_event::()) + .run_if(on_event::) .after(run_action_binding_sugestion), ); } diff --git a/crates/bevy_openxr/src/openxr/features/handtracking.rs b/crates/bevy_openxr/src/openxr/features/handtracking.rs index 6c0cff6..702ed19 100644 --- a/crates/bevy_openxr/src/openxr/features/handtracking.rs +++ b/crates/bevy_openxr/src/openxr/features/handtracking.rs @@ -90,14 +90,14 @@ fn spawn_default_hands(mut cmds: Commands, root: Query Result<(WgpuGraphics, Self::SessionCreateInfo)>; - unsafe fn create_session( + unsafe fn create_session( instance: &openxr::Instance, system_id: openxr::SystemId, info: &Self::SessionCreateInfo, @@ -74,8 +77,8 @@ impl GraphicsBackend { const ALL: &'static [Self] = &[ #[cfg(feature = "vulkan")] Self::Vulkan(()), - #[cfg(all(feature = "d3d12", windows))] - Self::D3D12(()), + // #[cfg(all(feature = "d3d12", windows))] + // Self::D3D12(()), ]; pub fn available_backends(exts: &OxrExtensions) -> Vec { @@ -103,8 +106,8 @@ impl GraphicsBackend { pub enum GraphicsWrap { #[cfg(feature = "vulkan")] Vulkan(T::Inner), - #[cfg(all(feature = "d3d12", windows))] - D3D12(T::Inner), + // #[cfg(all(feature = "d3d12", windows))] + // D3D12(T::Inner), } impl GraphicsWrap { @@ -173,12 +176,12 @@ macro_rules! graphics_match { type Api = openxr::Vulkan; graphics_match!(@arm_impl Vulkan; $expr $(=> $($return)*)?) }, - #[cfg(all(feature = "d3d12", windows))] - $crate::graphics::GraphicsWrap::D3D12($var) => { - #[allow(unused)] - type Api = openxr::D3D12; - graphics_match!(@arm_impl D3D12; $expr $(=> $($return)*)?) - }, + // #[cfg(all(feature = "d3d12", windows))] + // $crate::graphics::GraphicsWrap::D3D12($var) => { + // #[allow(unused)] + // type Api = openxr::D3D12; + // graphics_match!(@arm_impl D3D12; $expr $(=> $($return)*)?) + // }, } }; diff --git a/crates/bevy_openxr/src/openxr/graphics/vulkan.rs b/crates/bevy_openxr/src/openxr/graphics/vulkan.rs index da1d733..7214220 100644 --- a/crates/bevy_openxr/src/openxr/graphics/vulkan.rs +++ b/crates/bevy_openxr/src/openxr/graphics/vulkan.rs @@ -21,7 +21,7 @@ const VK_TARGET_VERSION_ASH: u32 = ash::vk::make_api_version( 0, VK_TARGET_VERSION.major() as u32, VK_TARGET_VERSION.minor() as u32, - VK_TARGET_VERSION.patch() as u32, + VK_TARGET_VERSION.patch(), ); unsafe impl GraphicsExt for openxr::Vulkan { @@ -63,7 +63,7 @@ unsafe impl GraphicsExt for openxr::Vulkan { mip_level_count: 1, sample_count: 1, dimension: wgpu::TextureDimension::D2, - format: format, + format, usage: wgpu_hal::TextureUses::COLOR_TARGET | wgpu_hal::TextureUses::COPY_DST, memory_flags: wgpu_hal::MemoryFlags::empty(), view_formats: vec![], @@ -84,7 +84,7 @@ unsafe impl GraphicsExt for openxr::Vulkan { mip_level_count: 1, sample_count: 1, dimension: wgpu::TextureDimension::D2, - format: format, + format, usage: wgpu::TextureUsages::RENDER_ATTACHMENT | wgpu::TextureUsages::COPY_DST, view_formats: &[], }, @@ -113,20 +113,20 @@ unsafe impl GraphicsExt for openxr::Vulkan { let flags = wgpu::InstanceFlags::empty(); let extensions = ::Instance::desired_extensions(&vk_entry, VK_TARGET_VERSION_ASH, flags)?; - let device_extensions = vec![ - ash::extensions::khr::Swapchain::name(), - ash::extensions::khr::DrawIndirectCount::name(), - #[cfg(target_os = "android")] - ash::extensions::khr::TimelineSemaphore::name(), - ash::vk::KhrImagelessFramebufferFn::name(), - ash::vk::KhrImageFormatListFn::name(), + let device_extensions = [ + ash::khr::swapchain::NAME, + ash::khr::draw_indirect_count::NAME, + // #[cfg(target_os = "android")] + ash::khr::timeline_semaphore::NAME, + ash::khr::imageless_framebuffer::NAME, + ash::khr::image_format_list::NAME, ]; let vk_instance = unsafe { let extensions_cchar: Vec<_> = extensions.iter().map(|s| s.as_ptr()).collect(); let app_name = CString::new(app_info.name.clone().into_owned())?; - let vk_app_info = ash::vk::ApplicationInfo::builder() + let vk_app_info = ash::vk::ApplicationInfo::default() .application_name(&app_name) .application_version(1) .engine_name(&app_name) @@ -136,8 +136,9 @@ unsafe impl GraphicsExt for openxr::Vulkan { let vk_instance = instance .create_vulkan_instance( system_id, + #[allow(clippy::missing_transmute_annotations)] std::mem::transmute(vk_entry.static_fn().get_instance_proc_addr), - &ash::vk::InstanceCreateInfo::builder() + &ash::vk::InstanceCreateInfo::default() .application_info(&vk_app_info) .enabled_extension_names(&extensions_cchar) as *const _ as *const _, @@ -181,7 +182,7 @@ unsafe impl GraphicsExt for openxr::Vulkan { extensions, flags, false, - Some(Box::new(())), + None, )? }; @@ -205,26 +206,26 @@ unsafe impl GraphicsExt for openxr::Vulkan { .adapter .physical_device_features(&enabled_extensions, wgpu_features); let family_index = 0; - let family_info = ash::vk::DeviceQueueCreateInfo::builder() + let family_info = ash::vk::DeviceQueueCreateInfo::default() .queue_family_index(family_index) - .queue_priorities(&[1.0]) - .build(); + .queue_priorities(&[1.0]); let family_infos = [family_info]; + let mut physical_device_multiview_features = ash::vk::PhysicalDeviceMultiviewFeatures { + multiview: ash::vk::TRUE, + ..Default::default() + }; let info = enabled_phd_features - .add_to_device_create_builder( - ash::vk::DeviceCreateInfo::builder() + .add_to_device_create( + ash::vk::DeviceCreateInfo::default() .queue_create_infos(&family_infos) - .push_next(&mut ash::vk::PhysicalDeviceMultiviewFeatures { - multiview: ash::vk::TRUE, - ..Default::default() - }), + .push_next(&mut physical_device_multiview_features), ) - .enabled_extension_names(&extensions_cchar) - .build(); + .enabled_extension_names(&extensions_cchar); let vk_device = unsafe { let vk_device = instance .create_vulkan_device( system_id, + #[allow(clippy::missing_transmute_annotations)] std::mem::transmute(vk_entry.static_fn().get_instance_proc_addr), vk_physical_device.as_raw() as _, &info as *const _ as *const _, @@ -241,9 +242,10 @@ unsafe impl GraphicsExt for openxr::Vulkan { let wgpu_open_device = unsafe { wgpu_exposed_adapter.adapter.device_from_raw( vk_device, - true, + None, &enabled_extensions, wgpu_features, + &wgpu::MemoryHints::Performance, family_info.queue_family_index, 0, ) @@ -273,6 +275,7 @@ unsafe impl GraphicsExt for openxr::Vulkan { max_push_constant_size: 4, ..Default::default() }, + memory_hints: wgpu::MemoryHints::Performance, }, None, ) @@ -320,7 +323,7 @@ unsafe impl GraphicsExt for openxr::Vulkan { ty: sys::SessionCreateInfo::TYPE, next: &binding as *const _ as *const _, create_flags: Default::default(), - system_id: system_id, + system_id, }; let mut out = sys::Session::NULL; cvt((instance.fp().create_session)( @@ -379,7 +382,7 @@ fn vulkan_to_wgpu(format: ash::vk::Format) -> Option { F::R8G8B8A8_SINT => Tf::Rgba8Sint, F::A2B10G10R10_UINT_PACK32 => Tf::Rgb10a2Uint, F::A2B10G10R10_UNORM_PACK32 => Tf::Rgb10a2Unorm, - F::B10G11R11_UFLOAT_PACK32 => Tf::Rg11b10Float, + F::B10G11R11_UFLOAT_PACK32 => Tf::Rg11b10Ufloat, F::R32G32_UINT => Tf::Rg32Uint, F::R32G32_SINT => Tf::Rg32Sint, F::R32G32_SFLOAT => Tf::Rg32Float, @@ -630,7 +633,7 @@ fn wgpu_to_vulkan(format: wgpu::TextureFormat) -> Option { Tf::Rgba8Sint => F::R8G8B8A8_SINT, Tf::Rgb10a2Uint => F::A2B10G10R10_UINT_PACK32, Tf::Rgb10a2Unorm => F::A2B10G10R10_UNORM_PACK32, - Tf::Rg11b10Float => F::B10G11R11_UFLOAT_PACK32, + Tf::Rg11b10Ufloat => F::B10G11R11_UFLOAT_PACK32, Tf::Rg32Uint => F::R32G32_UINT, Tf::Rg32Sint => F::R32G32_SINT, Tf::Rg32Float => F::R32G32_SFLOAT, @@ -724,4 +727,3 @@ fn wgpu_to_vulkan(format: wgpu::TextureFormat) -> Option { }, }) } - diff --git a/crates/bevy_openxr/src/openxr/helper_traits.rs b/crates/bevy_openxr/src/openxr/helper_traits.rs index 996f5a4..01ef1c6 100644 --- a/crates/bevy_openxr/src/openxr/helper_traits.rs +++ b/crates/bevy_openxr/src/openxr/helper_traits.rs @@ -1,5 +1,4 @@ -use bevy::prelude::*; -use bevy_mod_xr::types::XrPose; +use bevy::{math::Vec3A, prelude::*}; pub trait ToPosef { fn to_posef(&self) -> openxr::Posef; @@ -7,8 +6,8 @@ pub trait ToPosef { pub trait ToTransform { fn to_transform(&self) -> Transform; } -pub trait ToXrPose { - fn to_xr_pose(&self) -> XrPose; +pub trait ToIsometry3d { + fn to_xr_pose(&self) -> Isometry3d; } pub trait ToQuaternionf { fn to_quaternionf(&self) -> openxr::Quaternionf; @@ -42,15 +41,15 @@ impl ToTransform for openxr::Posef { .with_rotation(self.orientation.to_quat()) } } -impl ToXrPose for openxr::Posef { - fn to_xr_pose(&self) -> XrPose { - XrPose { - translation: self.position.to_vec3(), +impl ToIsometry3d for openxr::Posef { + fn to_xr_pose(&self) -> Isometry3d { + Isometry3d { + translation: self.position.to_vec3().into(), rotation: self.orientation.to_quat(), } } } -impl ToPosef for XrPose { +impl ToPosef for Isometry3d { fn to_posef(&self) -> openxr::Posef { openxr::Posef { orientation: self.rotation.to_quaternionf(), @@ -90,6 +89,15 @@ impl ToVector3f for Vec3 { } } } +impl ToVector3f for Vec3A { + fn to_vector3f(&self) -> openxr::Vector3f { + openxr::Vector3f { + x: self.x, + y: self.y, + z: self.z, + } + } +} impl ToVec3 for openxr::Vector3f { fn to_vec3(&self) -> Vec3 { Vec3 { diff --git a/crates/bevy_openxr/src/openxr/init.rs b/crates/bevy_openxr/src/openxr/init.rs index 5567746..8840c7b 100644 --- a/crates/bevy_openxr/src/openxr/init.rs +++ b/crates/bevy_openxr/src/openxr/init.rs @@ -113,7 +113,7 @@ impl Plugin for OxrInitPlugin { ( create_xr_session .run_if(state_equals(XrState::Available)) - .run_if(on_event::()), + .run_if(on_event::), ( destroy_xr_session, (|v: Res| { @@ -122,16 +122,16 @@ impl Plugin for OxrInitPlugin { }), ) .run_if(state_matches!(XrState::Exiting { .. })) - .run_if(on_event::()), + .run_if(on_event::), begin_xr_session .run_if(state_equals(XrState::Ready)) - .run_if(on_event::()), + .run_if(on_event::), end_xr_session .run_if(state_equals(XrState::Stopping)) - .run_if(on_event::()), + .run_if(on_event::), request_exit_xr_session .run_if(session_created) - .run_if(on_event::()), + .run_if(on_event::), ) .in_set(XrHandleEvents::SessionStateUpdateEvents), ) @@ -146,9 +146,6 @@ impl Plugin for OxrInitPlugin { .insert_non_send_resource(session_create_info) .init_non_send_resource::(); - app.world_mut() - .spawn((SpatialBundle::default(), XrTrackingRoot)); - app.world_mut() .resource_mut::>() .send(XrStateChanged(XrState::Available)); @@ -178,7 +175,7 @@ impl Plugin for OxrInitPlugin { }) .run_if( resource_exists:: - .and_then(|v: Res| v.0.load(Ordering::Relaxed)), + .and(|v: Res| v.0.load(Ordering::Relaxed)), ) .chain(), ); @@ -467,7 +464,7 @@ pub fn create_xr_session(world: &mut World) { let system_id = world.resource::(); match init_xr_session( device.wgpu_device(), - &instance, + instance, **system_id, &mut chain, create_info.clone(), @@ -475,8 +472,8 @@ pub fn create_xr_session(world: &mut World) { Ok((session, frame_waiter, frame_stream, swapchain, images, graphics_info)) => { world.insert_resource(session.clone()); world.insert_resource(frame_waiter); - world.insert_resource(images.clone()); - world.insert_resource(graphics_info.clone()); + world.insert_resource(images); + world.insert_resource(graphics_info); world.insert_resource(OxrRenderResources { session, frame_stream, diff --git a/crates/bevy_openxr/src/openxr/layer_builder.rs b/crates/bevy_openxr/src/openxr/layer_builder.rs index 7bab5d4..acb9edb 100644 --- a/crates/bevy_openxr/src/openxr/layer_builder.rs +++ b/crates/bevy_openxr/src/openxr/layer_builder.rs @@ -37,14 +37,14 @@ impl LayerProvider for ProjectionLayer { Some(Box::new( CompositionLayerProjection::new() .layer_flags(CompositionLayerFlags::BLEND_TEXTURE_SOURCE_ALPHA) - .space(&stage) + .space(stage) .views(&[ CompositionLayerProjectionView::new() .pose(openxr_views.0[0].pose) .fov(openxr_views.0[0].fov) .sub_image( SwapchainSubImage::new() - .swapchain(&swapchain) + .swapchain(swapchain) .image_array_index(0) .image_rect(rect), ), @@ -53,7 +53,7 @@ impl LayerProvider for ProjectionLayer { .fov(openxr_views.0[1].fov) .sub_image( SwapchainSubImage::new() - .swapchain(&swapchain) + .swapchain(swapchain) .image_array_index(1) .image_rect(rect), ), @@ -235,9 +235,15 @@ impl<'a> Default for CompositionLayerProjection<'a> { pub struct CompositionLayerPassthrough { inner: sys::CompositionLayerPassthroughFB, } +impl Default for CompositionLayerPassthrough { + fn default() -> Self { + Self::new() + } +} + impl CompositionLayerPassthrough { #[inline] - pub fn new() -> Self { + pub const fn new() -> Self { Self { inner: openxr::sys::CompositionLayerPassthroughFB { ty: openxr::sys::CompositionLayerPassthroughFB::TYPE, diff --git a/crates/bevy_openxr/src/openxr/mod.rs b/crates/bevy_openxr/src/openxr/mod.rs index 85c5c81..6e4cb7d 100644 --- a/crates/bevy_openxr/src/openxr/mod.rs +++ b/crates/bevy_openxr/src/openxr/mod.rs @@ -60,8 +60,8 @@ pub fn add_xr_plugins(plugins: G) -> PluginGroupBuilder { .build() .disable::() // .disable::() - .add_before::(XrSessionPlugin { auto_handle: true }) - .add_before::(OxrInitPlugin::default()) + .add_before::(XrSessionPlugin { auto_handle: true }) + .add_before::(OxrInitPlugin::default()) .add(OxrEventsPlugin) .add(OxrReferenceSpacePlugin::default()) .add(OxrRenderPlugin) diff --git a/crates/bevy_openxr/src/openxr/render.rs b/crates/bevy_openxr/src/openxr/render.rs index 3bc154b..0d5441d 100644 --- a/crates/bevy_openxr/src/openxr/render.rs +++ b/crates/bevy_openxr/src/openxr/render.rs @@ -150,16 +150,18 @@ pub fn init_views( info!("{}", graphics_info.resolution); let view_handle = add_texture_view(&mut manual_texture_views, temp_tex, &graphics_info, index); - let cam = commands - .spawn((XrCameraBundle { - camera: Camera { - target: RenderTarget::TextureView(view_handle), + .spawn( + (XrCameraBundle { + camera: Camera { + target: RenderTarget::TextureView(view_handle), + ..Default::default() + }, + view: XrCamera(index), ..Default::default() - }, - view: XrCamera(index), - ..Default::default() - },)) + }), + ) + .remove::() .id(); match root.get_single() { Ok(root) => { diff --git a/crates/bevy_openxr/src/openxr/resources.rs b/crates/bevy_openxr/src/openxr/resources.rs index 7681f5c..c41528c 100644 --- a/crates/bevy_openxr/src/openxr/resources.rs +++ b/crates/bevy_openxr/src/openxr/resources.rs @@ -43,6 +43,7 @@ impl OxrEntry { application_version: app_info.version.to_u32(), engine_name: "Bevy", engine_version: Version::BEVY.to_u32(), + api_version: openxr::Version::new(1, 1, 36), }, &required_exts.into(), layers, @@ -108,7 +109,7 @@ impl OxrInstance { graphics_match!( self.1; _ => { - let (graphics, session_info) = Api::init_graphics(&self.2, &self, system_id)?; + let (graphics, session_info) = Api::init_graphics(&self.2, self, system_id)?; Ok((graphics, SessionCreateInfo(Api::wrap(session_info)))) } @@ -185,7 +186,7 @@ impl OxrFrameStream { stream => { let mut new_layers = vec![]; - for (i, layer) in layers.into_iter().enumerate() { + for (i, layer) in layers.iter().enumerate() { if let Some(swapchain) = layer.swapchain() { if !swapchain.0.using_graphics::() { error!( @@ -196,7 +197,10 @@ impl OxrFrameStream { continue; } } - new_layers.push(unsafe { std::mem::transmute(layer.header()) }); + new_layers.push(unsafe { + #[allow(clippy::missing_transmute_annotations)] + std::mem::transmute(layer.header()) + }); } Ok(stream.end(display_time, environment_blend_mode, new_layers.as_slice())?) diff --git a/crates/bevy_openxr/src/openxr/spaces.rs b/crates/bevy_openxr/src/openxr/spaces.rs index 91c74a2..cf0d2f4 100644 --- a/crates/bevy_openxr/src/openxr/spaces.rs +++ b/crates/bevy_openxr/src/openxr/spaces.rs @@ -7,7 +7,6 @@ use bevy_mod_xr::{ XrDestroySpace, XrPrimaryReferenceSpace, XrReferenceSpace, XrSpace, XrSpaceLocationFlags, XrSpaceVelocityFlags, XrVelocity, }, - types::XrPose, }; use openxr::{ sys, HandJointLocation, HandJointLocations, HandJointVelocities, HandJointVelocity, @@ -51,28 +50,11 @@ impl Plugin for OxrSpatialPlugin { .in_set(OxrSpaceSyncSet) .run_if(openxr_session_running), ) - .observe(add_location_flags) - .observe(add_velocity_flags); + .register_required_components::() + .register_required_components::(); } } -fn add_velocity_flags(event: Trigger, mut cmds: Commands) { - if event.entity() == Entity::PLACEHOLDER { - error!("called add_location_flags observer without entity"); - return; - } - cmds.entity(event.entity()) - .insert(OxrSpaceLocationFlags(openxr::SpaceLocationFlags::default())); -} -fn add_location_flags(event: Trigger, mut cmds: Commands) { - if event.entity() == Entity::PLACEHOLDER { - error!("called add_location_flags observer without entity"); - return; - } - cmds.entity(event.entity()) - .insert(OxrSpaceLocationFlags(openxr::SpaceLocationFlags::default())); -} - fn destroy_space_event(instance: Res, mut events: EventReader) { for space in events.read() { match instance.destroy_space(space.0) { @@ -119,7 +101,7 @@ unsafe extern "system" fn patched_destroy_space(space: openxr::sys::Space) -> op } } -#[derive(Clone, Copy, Component)] +#[derive(Clone, Copy, Component, Default)] pub struct OxrSpaceLocationFlags(pub openxr::SpaceLocationFlags); impl OxrSpaceLocationFlags { pub fn pos_valid(&self) -> bool { @@ -135,7 +117,7 @@ impl OxrSpaceLocationFlags { self.0.contains(SpaceLocationFlags::ORIENTATION_TRACKED) } } -#[derive(Clone, Copy, Component)] +#[derive(Clone, Copy, Component, Default)] pub struct OxrSpaceVelocityFlags(pub openxr::SpaceVelocityFlags); impl OxrSpaceVelocityFlags { pub fn linear_valid(&self) -> bool { @@ -231,7 +213,7 @@ impl OxrSession { &self, action: &openxr::Action, subaction_path: openxr::Path, - pose_in_space: XrPose, + pose_in_space: Isometry3d, ) -> openxr::Result { let info = sys::ActionSpaceCreateInfo { ty: sys::ActionSpaceCreateInfo::TYPE, diff --git a/crates/bevy_openxr/src/openxr/types.rs b/crates/bevy_openxr/src/openxr/types.rs index 32aaab6..b70e4bd 100644 --- a/crates/bevy_openxr/src/openxr/types.rs +++ b/crates/bevy_openxr/src/openxr/types.rs @@ -24,7 +24,7 @@ pub struct Version(pub u8, pub u8, pub u16); impl Version { /// Bevy's version number - pub const BEVY: Self = Self(0, 13, 0); + pub const BEVY: Self = Self(0, 15, 0); pub const fn to_u32(self) -> u32 { let major = (self.0 as u32) << 24; diff --git a/crates/bevy_webxr/Cargo.toml b/crates/bevy_webxr/Cargo.toml index 7e47cca..621a673 100644 --- a/crates/bevy_webxr/Cargo.toml +++ b/crates/bevy_webxr/Cargo.toml @@ -12,11 +12,11 @@ bevy.workspace = true # all dependencies are placed under this since on anything but wasm, this crate is completely empty [target.'cfg(target_family = "wasm")'.dependencies] -thiserror = "1.0.57" -wgpu = "0.19.3" -wgpu-hal = "0.19.3" +thiserror.workspace = true +wgpu.workspace = true +wgpu-hal.workspace = true -bevy_mod_xr = { path = "../bevy_xr", version = "0.1.0-rc1" } +bevy_mod_xr.workspace = true [lints.clippy] too_many_arguments = "allow" diff --git a/crates/bevy_xr/src/actions.rs b/crates/bevy_xr/src/actions.rs index 4c25eb2..6bbc3e4 100644 --- a/crates/bevy_xr/src/actions.rs +++ b/crates/bevy_xr/src/actions.rs @@ -94,11 +94,11 @@ impl> ActionState { } pub fn just_pressed(&self) -> bool { - self.previous_state == false && self.current_state == true + !self.previous_state && self.current_state } pub fn just_released(&self) -> bool { - self.previous_state == true && self.current_state == false + self.previous_state && !self.current_state } pub fn press(&mut self) { diff --git a/crates/bevy_xr/src/camera.rs b/crates/bevy_xr/src/camera.rs index 5f64fc1..f616634 100644 --- a/crates/bevy_xr/src/camera.rs +++ b/crates/bevy_xr/src/camera.rs @@ -1,3 +1,5 @@ +use core::panic; + use bevy::app::{App, Plugin, PostUpdate}; use bevy::core_pipeline::core_3d::graph::Core3d; use bevy::core_pipeline::core_3d::Camera3d; @@ -7,7 +9,9 @@ use bevy::ecs::component::Component; use bevy::ecs::reflect::ReflectComponent; use bevy::ecs::schedule::IntoSystemConfigs; use bevy::math::{Mat4, Vec3A}; -use bevy::pbr::{build_directional_light_cascades, clear_directional_light_cascades, SimulationLightSystems}; +use bevy::pbr::{ + build_directional_light_cascades, clear_directional_light_cascades, SimulationLightSystems, +}; use bevy::reflect::std_traits::ReflectDefault; use bevy::reflect::Reflect; use bevy::render::camera::{ @@ -68,10 +72,8 @@ impl CameraProjection for XrProjection { fn update(&mut self, _width: f32, _height: f32) {} fn far(&self) -> f32 { - let far = self.projection_matrix.to_cols_array()[14] - / (self.projection_matrix.to_cols_array()[10] + 1.0); - - far + self.projection_matrix.to_cols_array()[14] + / (self.projection_matrix.to_cols_array()[10] + 1.0) } // TODO calculate this properly @@ -99,6 +101,10 @@ impl CameraProjection for XrProjection { fn get_clip_from_view(&self) -> Mat4 { self.projection_matrix } + + fn get_clip_from_view_for_sub(&self, _sub_view: &bevy::render::camera::SubCameraView) -> Mat4 { + panic!("sub view not supported for xr camera"); + } } #[derive(Bundle)] diff --git a/crates/bevy_xr/src/hands.rs b/crates/bevy_xr/src/hands.rs index 7f222ab..d5e9a68 100644 --- a/crates/bevy_xr/src/hands.rs +++ b/crates/bevy_xr/src/hands.rs @@ -1,15 +1,11 @@ use bevy::{ ecs::{component::Component, entity::Entity, world::Command}, - hierarchy::BuildWorldChildren, log::{error, warn}, math::bool, - prelude::{Bundle, Commands, Deref, DerefMut, Resource, SpatialBundle, With, World}, + prelude::{BuildChildren, Bundle, Commands, Deref, DerefMut, Resource, Transform, Visibility, With, World}, }; -use crate::{ - session:: XrTrackingRoot, - spaces::XrSpaceLocationFlags, -}; +use crate::{session::XrTrackingRoot, spaces::XrSpaceLocationFlags}; pub const HAND_JOINT_COUNT: usize = 26; pub fn spawn_hand_bones( @@ -20,7 +16,8 @@ pub fn spawn_hand_bones( for bone in HandBone::get_all_bones().into_iter() { bones[bone as usize] = cmds .spawn(( - SpatialBundle::default(), + Transform::default(), + Visibility::default(), bone, HandBoneRadius(0.0), XrSpaceLocationFlags::default(), @@ -205,9 +202,9 @@ impl Command for SpawnHandTracker { HandSide::Right => tracker.insert(LeftHand), }; let tracker = tracker.id(); - world.entity_mut(root).push_children(&[tracker]); + world.entity_mut(root).add_children(&[tracker]); executor.0(world, tracker, self.side); - if let Some(mut tracker) = world.get_entity_mut(tracker) { + if let Ok(mut tracker) = world.get_entity_mut(tracker) { tracker.insert(self.side); tracker.insert(self.tracker_bundle); } diff --git a/crates/bevy_xr/src/session.rs b/crates/bevy_xr/src/session.rs index 4b9df83..64d1aad 100644 --- a/crates/bevy_xr/src/session.rs +++ b/crates/bevy_xr/src/session.rs @@ -121,7 +121,7 @@ impl Plugin for XrSessionPlugin { .add_systems( XrFirst, exits_session_on_app_exit - .run_if(on_event::()) + .run_if(on_event::) .run_if(session_created) .in_set(XrHandleEvents::ExitEvents), ); @@ -129,6 +129,8 @@ impl Plugin for XrSessionPlugin { .resource_mut::() .labels .insert(0, XrFirst.intern()); + app.world_mut() + .spawn((Transform::default(), Visibility::default(), XrTrackingRoot)); if self.auto_handle { app.add_systems(PreUpdate, auto_handle_session); @@ -153,7 +155,7 @@ impl Plugin for XrSessionPlugin { XrFirst, exits_session_on_app_exit .before(XrHandleEvents::ExitEvents) - .run_if(on_event::().and_then(session_running)), + .run_if(on_event::.and(session_running)), ); let render_app = app.sub_app_mut(RenderApp); diff --git a/crates/bevy_xr/src/types.rs b/crates/bevy_xr/src/types.rs index 822f486..2ca073b 100644 --- a/crates/bevy_xr/src/types.rs +++ b/crates/bevy_xr/src/types.rs @@ -1,26 +1,4 @@ -use bevy::{ - math::{Quat, Vec3}, - reflect::Reflect, - transform::components::Transform, -}; +use bevy::math::Isometry3d; -#[derive(Clone, Copy, PartialEq, Reflect, Debug)] -pub struct XrPose { - pub translation: Vec3, - pub rotation: Quat, -} - -impl Default for XrPose { - fn default() -> Self { - Self::IDENTITY - } -} -impl XrPose { - pub const IDENTITY: XrPose = XrPose { - translation: Vec3::ZERO, - rotation: Quat::IDENTITY, - }; - pub const fn to_transform(self) -> Transform { - Transform::from_translation(self.translation).with_rotation(self.rotation) - } -} +#[deprecated = "Use Isometry3d instead"] +pub type XrPose = Isometry3d; diff --git a/crates/bevy_xr_utils/Cargo.toml b/crates/bevy_xr_utils/Cargo.toml index ff299fa..00d6107 100644 --- a/crates/bevy_xr_utils/Cargo.toml +++ b/crates/bevy_xr_utils/Cargo.toml @@ -10,11 +10,11 @@ description = "utils for bevy_mod_xr and bevy_mod_openxr" [dependencies] bevy = { workspace = true, features = ["bevy_gizmos"] } -bevy_mod_xr = { path = "../bevy_xr", version = "0.1.0-rc1" } -bevy_mod_openxr = { path = "../bevy_openxr", version = "0.1.0-rc1" } +bevy_mod_xr.workspace = true +bevy_mod_openxr.workspace = true [target.'cfg(not(target_family = "wasm"))'.dependencies] -openxr = "0.18.0" +openxr.workspace = true [lints.clippy] too_many_arguments = "allow" diff --git a/crates/bevy_xr_utils/src/hand_gizmos.rs b/crates/bevy_xr_utils/src/hand_gizmos.rs index e159af9..c84aa6b 100644 --- a/crates/bevy_xr_utils/src/hand_gizmos.rs +++ b/crates/bevy_xr_utils/src/hand_gizmos.rs @@ -16,7 +16,11 @@ fn draw_hand_gizmos( ) { for (transform, bone, radius) in &query { let pose = transform.compute_transform(); - gizmos.sphere(pose.translation, pose.rotation, **radius, gizmo_color(bone)); + let pose = Isometry3d { + translation: pose.translation.into(), + rotation: pose.rotation, + }; + gizmos.sphere(pose, **radius, gizmo_color(bone)); } } diff --git a/crates/bevy_xr_utils/src/tracking_utils.rs b/crates/bevy_xr_utils/src/tracking_utils.rs index e5a77ed..ad808bc 100644 --- a/crates/bevy_xr_utils/src/tracking_utils.rs +++ b/crates/bevy_xr_utils/src/tracking_utils.rs @@ -1,11 +1,17 @@ use bevy::prelude::*; use bevy_mod_openxr::{ - action_binding::{OxrSendActionBindings, OxrSuggestActionBinding}, action_set_attaching::OxrAttachActionSet, action_set_syncing::{OxrActionSetSyncSet, OxrSyncActionSet}, helper_traits::{ToQuat, ToVec3}, openxr_session_available, openxr_session_running, resources::{OxrFrameState, OxrInstance, Pipelined}, session::OxrSession, spaces::{OxrSpaceLocationFlags, OxrSpaceSyncSet} + action_binding::{OxrSendActionBindings, OxrSuggestActionBinding}, + action_set_attaching::OxrAttachActionSet, + action_set_syncing::{OxrActionSetSyncSet, OxrSyncActionSet}, + helper_traits::{ToQuat, ToVec3}, + openxr_session_available, openxr_session_running, + resources::{OxrFrameState, OxrInstance, Pipelined}, + session::OxrSession, + spaces::{OxrSpaceLocationFlags, OxrSpaceSyncSet}, }; use bevy_mod_xr::{ - session::{session_available, session_running, XrSessionCreated, XrTrackingRoot}, + session::{XrSessionCreated, XrTrackingRoot}, spaces::{XrPrimaryReferenceSpace, XrReferenceSpace}, - types::XrPose, }; use openxr::Posef; @@ -78,13 +84,10 @@ fn update_stage( mut stage_query: Query<&mut Transform, (With, Without)>, ) { let tracking_root_transform = root_query.get_single_mut(); - match tracking_root_transform { - Ok(root) => { - for (mut transform) in &mut stage_query { - *transform = root.clone(); - } + if let Ok(root) = tracking_root_transform { + for mut transform in &mut stage_query { + *transform = *root; } - Err(_) => (), } } @@ -128,13 +131,10 @@ fn update_view( mut view_query: Query<&mut Transform, (With, Without)>, ) { let head_transform = head_query.get_single_mut(); - match head_transform { - Ok(root) => { - for (mut transform) in &mut view_query { - *transform = root.clone(); - } + if let Ok(root) = head_transform { + for mut transform in &mut view_query { + *transform = *root; } - Err(_) => (), } } @@ -144,19 +144,16 @@ fn update_local_floor_transforms( mut local_floor: Query<&mut Transform, (With, Without)>, ) { let head_transform = head_space.get_single_mut(); - match head_transform { - Ok(head) => { - let mut calc_floor = head.clone(); - calc_floor.translation.y = 0.0; - //TODO: use yaw - let (y, x, z) = calc_floor.rotation.to_euler(EulerRot::YXZ); - let new_rot = Quat::from_rotation_y(y); - calc_floor.rotation = new_rot; - for (mut transform) in &mut local_floor { - *transform = calc_floor; - } + if let Ok(head) = head_transform { + let mut calc_floor = *head; + calc_floor.translation.y = 0.0; + //TODO: use yaw + let (y, x, z) = calc_floor.rotation.to_euler(EulerRot::YXZ); + let new_rot = Quat::from_rotation_y(y); + calc_floor.rotation = new_rot; + for (mut transform) in &mut local_floor { + *transform = calc_floor; } - Err(_) => (), } } @@ -222,20 +219,30 @@ fn spawn_tracking_rig( // let local_floor = cmds.spawn((SpatialBundle::default(), LocalFloor)).id(); let left_space = session - .create_action_space(&actions.left, openxr::Path::NULL, XrPose::IDENTITY) + .create_action_space(&actions.left, openxr::Path::NULL, Isometry3d::IDENTITY) .unwrap(); let right_space = session - .create_action_space(&actions.right, openxr::Path::NULL, XrPose::IDENTITY) + .create_action_space(&actions.right, openxr::Path::NULL, Isometry3d::IDENTITY) .unwrap(); let left = cmds - .spawn((SpatialBundle::default(), left_space, LeftGrip)) + .spawn(( + Transform::default(), + Visibility::default(), + left_space, + LeftGrip, + )) .id(); let right = cmds - .spawn((SpatialBundle::default(), right_space, RightGrip)) + .spawn(( + Transform::default(), + Visibility::default(), + right_space, + RightGrip, + )) .id(); cmds.entity(root.single()) - .push_children(&[head, left, right]); + .add_children(&[head, left, right]); } //bindings