diff --git a/Cargo.lock b/Cargo.lock index 47fd4f1..b35a9b1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,69 +1,58 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 - -[[package]] -name = "ab_glyph" -version = "0.2.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80179d7dd5d7e8c285d67c4a1e652972a92de7475beddfb92028c76463b13225" -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" +version = 4 [[package]] name = "accesskit" -version = "0.12.3" +version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74a4b14f3d99c1255dcba8f45621ab1a2e7540a0009652d33989005a4d0bfc6b" +checksum = "d3d3b8f9bae46a948369bc4a03e815d4ed6d616bd00de4051133a5019dc31c5a" [[package]] name = "accesskit_consumer" -version = "0.16.1" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c17cca53c09fbd7288667b22a201274b9becaa27f0b91bf52a526db95de45e6" +checksum = "f47983a1084940ba9a39c077a8c63e55c619388be5476ac04c804cfbd1e63459" dependencies = [ "accesskit", + "hashbrown 0.15.2", + "immutable-chunkmap", ] [[package]] name = "accesskit_macos" -version = "0.10.1" +version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd3b6ae1eabbfbced10e840fd3fce8a93ae84f174b3e4ba892ab7bcb42e477a7" +checksum = "7329821f3bd1101e03a7d2e03bd339e3ac0dc64c70b4c9f9ae1949e3ba8dece1" dependencies = [ "accesskit", "accesskit_consumer", - "objc2 0.3.0-beta.3.patch-leaks.3", - "once_cell", + "hashbrown 0.15.2", + "objc2", + "objc2-app-kit", + "objc2-foundation", ] [[package]] name = "accesskit_windows" -version = "0.15.1" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afcae27ec0974fc7c3b0b318783be89fd1b2e66dd702179fe600166a38ff4a0b" +checksum = "24fcd5d23d70670992b823e735e859374d694a3d12bfd8dd32bd3bd8bedb5d81" dependencies = [ "accesskit", "accesskit_consumer", - "once_cell", + "hashbrown 0.15.2", "paste", "static_assertions", - "windows 0.48.0", + "windows 0.58.0", + "windows-core 0.58.0", ] [[package]] name = "accesskit_winit" -version = "0.17.0" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45f8f7c9f66d454d5fd8e344c8c8c7324b57194e1041b955519fc58a01e77a25" +checksum = "6a6a48dad5530b6deb9fc7a52cc6c3bf72cdd9eb8157ac9d32d69f2427a5e879" dependencies = [ "accesskit", "accesskit_macos", @@ -85,6 +74,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" dependencies = [ "cfg-if", + "const-random", "getrandom", "once_cell", "version_check", @@ -113,7 +103,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "37fe60779335388a88c01ac6c3be40304d1e349de3ada3b15f7808bb90fa9dce" dependencies = [ "alsa-sys", - "bitflags 2.4.2", + "bitflags 2.8.0", "libc", ] @@ -129,21 +119,21 @@ dependencies = [ [[package]] name = "android-activity" -version = "0.5.2" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee91c0c2905bae44f84bfa4e044536541df26b7703fd0888deeb9060fcc44289" +checksum = "ef6978589202a00cd7e118380c448a08b6ed394c3a8df3a430d0898e3a42d046" dependencies = [ "android-properties", - "bitflags 2.4.2", + "bitflags 2.8.0", "cc", "cesu8", "jni", "jni-sys", "libc", "log", - "ndk", + "ndk 0.9.0", "ndk-context", - "ndk-sys", + "ndk-sys 0.6.0+11769913", "num_enum", "thiserror", ] @@ -198,11 +188,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]] @@ -217,24 +218,22 @@ dependencies = [ [[package]] name = "async-channel" -version = "2.2.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f28243a43d821d11341ab73c80bed182dc015c514b951616cf79bd4af39af0c3" +checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a" dependencies = [ "concurrent-queue", - "event-listener 5.2.0", - "event-listener-strategy 0.5.0", + "event-listener-strategy 0.5.3", "futures-core", "pin-project-lite", ] [[package]] name = "async-executor" -version = "1.8.0" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17ae5ebefcc48e7452b4987947920dac9450be1110cadf34d1b8c116bdbaf97c" +checksum = "30ca9a001c1e8ba5149f91a74362376cc6bc5b919d92d988668657bd570bdcec" dependencies = [ - "async-lock", "async-task", "concurrent-queue", "fastrand", @@ -276,6 +275,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.1.0" @@ -288,57 +293,80 @@ version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + [[package]] name = "bevy" -version = "0.13.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "611dd99f412e862610adb43e2243b16436c6d8009f6d9dbe8ce3d6d840b34029" +checksum = "bb2a21c9f3306676077a88700bb8f354be779cf9caba9c21e94da9e696751af4" dependencies = [ "bevy_internal", ] [[package]] name = "bevy_a11y" -version = "0.13.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bf80cd6d0dca4073f9b34b16f1d187a4caa035fd841892519431783bbc9e287" +checksum = "f96642402d2cd7c8e58c5994bbd14a2e44ca72dd7e460a2edad82aa3bf0348f9" dependencies = [ "accesskit", "bevy_app", "bevy_derive", "bevy_ecs", + "bevy_reflect", ] [[package]] name = "bevy_animation" -version = "0.13.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa4ef4c35533df3f0c4e938cf6a831456ea563775bab799336f74331140c7665" +checksum = "03064ab96e15b2fda5bd58eac2055692d731c1fba3e211fd1ba48472cced75c3" dependencies = [ "bevy_app", "bevy_asset", + "bevy_color", "bevy_core", + "bevy_derive", "bevy_ecs", "bevy_hierarchy", + "bevy_log", "bevy_math", "bevy_reflect", "bevy_render", "bevy_time", "bevy_transform", "bevy_utils", + "blake3", + "derive_more", + "downcast-rs", + "either", + "petgraph", + "ron", + "serde", + "smallvec", + "thread_local", + "uuid", ] [[package]] name = "bevy_app" -version = "0.13.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bce3544afc010ffed39c136f6d5a9322d20d38df1394d468ba9106caa0434cb" +checksum = "454a8cfd134864dcdcba6ee56fb958531b981021bba6bb2037c9e3df6046603c" dependencies = [ "bevy_derive", "bevy_ecs", "bevy_reflect", "bevy_tasks", "bevy_utils", + "console_error_panic_hook", + "ctrlc", + "derive_more", "downcast-rs", "wasm-bindgen", "web-sys", @@ -346,31 +374,36 @@ dependencies = [ [[package]] name = "bevy_asset" -version = "0.13.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac185d8e29c7eb0194f8aae7af3f7234f7ca7a448293be1d3d0d8fef435f65ec" +checksum = "2d762dd4422fb6219fd904e514a4a5d1d451711a0a8e1d6495dea15a545f04f3" dependencies = [ "async-broadcast", "async-fs", "async-lock", + "atomicow", "bevy_app", "bevy_asset_macros", "bevy_ecs", - "bevy_log", "bevy_reflect", "bevy_tasks", "bevy_utils", - "bevy_winit", + "bevy_window", + "bitflags 2.8.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", "web-sys", @@ -378,92 +411,112 @@ dependencies = [ [[package]] name = "bevy_asset_macros" -version = "0.13.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb82d1aac8251378c45a8d0ad788d1bf75f54db28c1750f84f1fd7c00127927a" +checksum = "8db6957e3f9649d415ee613901cf487898d0339455aa9c3a2525fc37facee920" dependencies = [ "bevy_macro_utils", "proc-macro2", "quote", - "syn 2.0.52", + "syn", ] [[package]] name = "bevy_audio" -version = "0.13.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4fe7f952e5e0a343fbde43180db7b8e719ad78594480c91b26876623944a3a1" +checksum = "13d13715401172d7616b376362a46bba125ec9ccc73ab262153a43a2402537ca" dependencies = [ "bevy_app", "bevy_asset", "bevy_derive", "bevy_ecs", + "bevy_hierarchy", "bevy_math", "bevy_reflect", "bevy_transform", "bevy_utils", - "oboe 0.5.0", + "cpal", "rodio", ] +[[package]] +name = "bevy_color" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f00aa2966c7ca0c7dd39f5ba8f3b1eaa5c2005a93ffdefb7a4090150d8327678" +dependencies = [ + "bevy_math", + "bevy_reflect", + "bytemuck", + "derive_more", + "encase", + "serde", + "wgpu-types", +] + [[package]] name = "bevy_core" -version = "0.13.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7b1b340b8d08f48ecd51b97589d261f5023a7b073d25e300382c49146524103" +checksum = "0ff28118f5ae3193f7f6cab30d4fd4246ba1802776910ab256dc7c20e8696381" dependencies = [ "bevy_app", "bevy_ecs", - "bevy_math", "bevy_reflect", "bevy_tasks", "bevy_utils", - "bytemuck", + "uuid", ] [[package]] name = "bevy_core_pipeline" -version = "0.13.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "626a5aaadbdd69eae020c5856575d2d0113423ae1ae1351377e20956d940052c" +checksum = "c0c0eea548a55fd04acf01d351bd16da4d1198037cb9c7b98dea6519f5d7dade" dependencies = [ "bevy_app", "bevy_asset", + "bevy_color", "bevy_core", "bevy_derive", "bevy_ecs", - "bevy_log", + "bevy_image", "bevy_math", "bevy_reflect", "bevy_render", "bevy_transform", "bevy_utils", - "bitflags 2.4.2", + "bevy_window", + "bitflags 2.8.0", + "derive_more", + "nonmax", "radsort", "serde", + "smallvec", ] [[package]] name = "bevy_derive" -version = "0.13.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "028ae2a34678055185d7f1beebb1ebe6a8dcf3733e139e4ee1383a7f29ae8ba6" +checksum = "b962df2a1bef274ae76ec75279eb6f8ef0ffd85b5e4c43433f5d08ba57b3d071" dependencies = [ "bevy_macro_utils", "quote", - "syn 2.0.52", + "syn", ] [[package]] name = "bevy_diagnostic" -version = "0.13.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01a104acfdc5280accd01a3524810daf3bda72924e3da0c8a9ec816a57eef4e3" +checksum = "21fe41b22fdf47bf11f0a3ca3e61975b003e86fa44d87e070f2dc7e752dd99f5" dependencies = [ "bevy_app", "bevy_core", "bevy_ecs", - "bevy_log", + "bevy_tasks", "bevy_time", "bevy_utils", "const-fnv1a-hash", @@ -472,41 +525,44 @@ dependencies = [ [[package]] name = "bevy_ecs" -version = "0.13.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b85406d5febbbdbcac4444ef61cd9a816f2f025ed692a3fc5439a32153070304" +checksum = "b747210d7db09dfacc237707d4fd31c8b43d7744cd5e5829e2c4ca86b9e47baf" dependencies = [ - "async-channel", + "arrayvec", "bevy_ecs_macros", "bevy_ptr", "bevy_reflect", "bevy_tasks", "bevy_utils", - "downcast-rs", - "fixedbitset", - "rustc-hash", + "bitflags 2.8.0", + "concurrent-queue", + "derive_more", + "disqualified", + "fixedbitset 0.5.7", + "nonmax", + "petgraph", "serde", - "thiserror", - "thread_local", + "smallvec", ] [[package]] name = "bevy_ecs_macros" -version = "0.13.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a3ce4b65d7c5f1990e729df75cec2ea6e2241b4a0c37b31c281a04c59c11b7b" +checksum = "0d36ba5874ee278d20f17b8934d2969f8fbab90f3ea3fcf8d3583814b3661ada" dependencies = [ "bevy_macro_utils", "proc-macro2", "quote", - "syn 2.0.52", + "syn", ] [[package]] name = "bevy_encase_derive" -version = "0.13.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c3d301922e76b16819e17c8cc43b34e92c13ccd06ad19dfa3e52a91a0e13e5c" +checksum = "46db3d4ebc2ab23045a7d32fa1afb4be78894ec3fbe2f52b28f6cd6e4011e400" dependencies = [ "bevy_macro_utils", "encase_derive_impl", @@ -514,69 +570,71 @@ dependencies = [ [[package]] name = "bevy_gilrs" -version = "0.13.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96364a1875ee4545fcf825c78dc065ddb9a3b2a509083ef11142f9de0eb8aa17" +checksum = "a20320bd21f379ba4ec885b8217cb7c2c57eb0be014ba29509959e252480c3e9" dependencies = [ "bevy_app", "bevy_ecs", "bevy_input", - "bevy_log", "bevy_time", "bevy_utils", + "derive_more", "gilrs", - "thiserror", ] [[package]] name = "bevy_gizmos" -version = "0.13.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdca80b7b4db340eb666d69374a0195b3935759120d0b990fcef8b27d0fb3680" +checksum = "ca821905afffe1f3aaf33b496903a24a0c980e4c83fa7523fb41eac16892a57a" dependencies = [ "bevy_app", "bevy_asset", - "bevy_core", + "bevy_color", "bevy_core_pipeline", "bevy_ecs", "bevy_gizmos_macros", - "bevy_log", + "bevy_image", "bevy_math", "bevy_pbr", "bevy_reflect", "bevy_render", "bevy_sprite", + "bevy_time", "bevy_transform", "bevy_utils", + "bytemuck", ] [[package]] name = "bevy_gizmos_macros" -version = "0.13.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a949eb8b4538a6e4d875321cda2b63dc0fb0317cf18c8245ca5a32f24f6d26d" +checksum = "19843a638c93364950ca54a879832f325be7fa9b89f226fced3b4105594afb70" dependencies = [ "bevy_macro_utils", "proc-macro2", "quote", - "syn 2.0.52", + "syn", ] [[package]] name = "bevy_gltf" -version = "0.13.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "031d0c2a7c0353bb9ac08a5130e58b9a2de3cdaa3c31b5da00b22a9e4732a155" +checksum = "c38b79c0e43c6387699d6a332d12f98ed895bcf69dd70c462d5e49ad76d44d1f" dependencies = [ - "base64", + "base64 0.22.1", "bevy_animation", "bevy_app", "bevy_asset", + "bevy_color", "bevy_core", "bevy_core_pipeline", "bevy_ecs", "bevy_hierarchy", - "bevy_log", + "bevy_image", "bevy_math", "bevy_pbr", "bevy_reflect", @@ -585,53 +643,79 @@ dependencies = [ "bevy_tasks", "bevy_transform", "bevy_utils", + "derive_more", "gltf", "percent-encoding", "serde", "serde_json", - "thiserror", + "smallvec", ] [[package]] name = "bevy_hierarchy" -version = "0.13.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9f9f843e43d921f07658c24eae74285efc7a335c87998596f3f365155320c69" +checksum = "bd9aab2cd1684d30f2eedf953b6377a6416fd6b482f8145b6c05f4684bd60c3e" dependencies = [ "bevy_app", "bevy_core", "bevy_ecs", - "bevy_log", "bevy_reflect", "bevy_utils", + "disqualified", + "smallvec", +] + +[[package]] +name = "bevy_image" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c5942a7d681b81aa9723bb1d918135c2f88e7871331f5676119c86c01984759" +dependencies = [ + "bevy_asset", + "bevy_color", + "bevy_math", + "bevy_reflect", + "bevy_utils", + "bitflags 2.8.0", + "bytemuck", + "derive_more", + "futures-lite", + "image", + "ktx2", + "ruzstd", + "serde", + "wgpu", ] [[package]] name = "bevy_input" -version = "0.13.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9cb5b2f3747ffb00cf7e3d6b52f7384476921cd31f0cfd3d1ddff31f83d9252" +checksum = "a9bbf39c1d2d33350e03354a67bebee5c21973c5203b1456a9a4b90a5e6f8e75" dependencies = [ "bevy_app", + "bevy_core", "bevy_ecs", "bevy_math", "bevy_reflect", "bevy_utils", + "derive_more", "smol_str", - "thiserror", ] [[package]] name = "bevy_internal" -version = "0.13.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7af89c7083830b1d65fcf0260c3d2537c397fe8ce871471b6e97198a4704f23e" +checksum = "fd7fc4db9a1793ee71f79abb15e7a8fcfe4e2081e5f18ed91b802bf6cf30e088" dependencies = [ "bevy_a11y", "bevy_animation", "bevy_app", "bevy_asset", "bevy_audio", + "bevy_color", "bevy_core", "bevy_core_pipeline", "bevy_derive", @@ -641,15 +725,18 @@ dependencies = [ "bevy_gizmos", "bevy_gltf", "bevy_hierarchy", + "bevy_image", "bevy_input", "bevy_log", "bevy_math", "bevy_pbr", + "bevy_picking", "bevy_ptr", "bevy_reflect", "bevy_render", "bevy_scene", "bevy_sprite", + "bevy_state", "bevy_tasks", "bevy_text", "bevy_time", @@ -662,138 +749,200 @@ dependencies = [ [[package]] name = "bevy_log" -version = "0.13.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfd5bcc3531f8008897fb03cc8751b86d0d29ef94f8fd38b422f9603b7ae80d0" +checksum = "774238dcf70a0ef4d82aa2860b24b1cffdd4633f3694d3bcbfbb05c4f17ae4fe" dependencies = [ "android_log-sys", "bevy_app", "bevy_ecs", "bevy_utils", - "console_error_panic_hook", - "tracing-log 0.1.4", + "tracing-log", + "tracing-oslog", "tracing-subscriber", "tracing-wasm", ] [[package]] name = "bevy_macro_utils" -version = "0.13.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac4401c25b197e7c1455a4875a90b61bba047a9e8d290ce029082c818ab1a21c" +checksum = "9bdb3a681c24abace65bf18ed467ad8befbedb42468b32e459811bfdb01e506c" dependencies = [ "proc-macro2", "quote", - "rustc-hash", - "syn 2.0.52", - "toml_edit", + "syn", + "toml_edit 0.22.12", ] [[package]] name = "bevy_math" -version = "0.13.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f312b1b8aa6d3965b65040b08e33efac030db3071f20b44f9da9c4c3dfcaf76" +checksum = "edec18d90e6bab27b5c6131ee03172ece75b7edd0abe4e482a26d6db906ec357" dependencies = [ + "bevy_reflect", + "derive_more", "glam", + "itertools 0.13.0", + "rand", + "rand_distr", "serde", + "smallvec", +] + +[[package]] +name = "bevy_mesh" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "183abae7c6695a80d7408c860bd737410cd66d2a9f910dafc914485da06e43dc" +dependencies = [ + "bevy_asset", + "bevy_derive", + "bevy_ecs", + "bevy_image", + "bevy_math", + "bevy_mikktspace", + "bevy_reflect", + "bevy_transform", + "bevy_utils", + "bitflags 2.8.0", + "bytemuck", + "derive_more", + "hexasphere", + "serde", + "wgpu", ] [[package]] name = "bevy_mikktspace" -version = "0.13.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3075c01f2b1799945892d5310fc1836e47c045dfe6af5878a304a475931a0c5f" +checksum = "b53f0cf879a0682280937f515ecf00ab2140f7224881d6a621f40093a36a2ef6" dependencies = [ "glam", ] [[package]] name = "bevy_pbr" -version = "0.13.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31c72bf12e50ff76c9ed9a7c51ceb88bfea9865d00f24d95b12344fffe1e270" +checksum = "f7f17067399cf00f4441e93d39fb4c391a16cc223e0d35346ac388e66712c418" dependencies = [ "bevy_app", "bevy_asset", + "bevy_color", "bevy_core_pipeline", "bevy_derive", "bevy_ecs", + "bevy_image", "bevy_math", "bevy_reflect", "bevy_render", "bevy_transform", "bevy_utils", "bevy_window", - "bitflags 2.4.2", + "bitflags 2.8.0", "bytemuck", - "fixedbitset", + "derive_more", + "fixedbitset 0.5.7", + "nonmax", "radsort", "smallvec", - "thread_local", + "static_assertions", +] + +[[package]] +name = "bevy_picking" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "125e0c7327ec155c566c044c6eefd1a02e904134fa5dc0ba54665e06a35297b0" +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.13.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86afa4a88ee06b10fe1e6f28a796ba2eedd16804717cbbb911df0cbb0cd6677b" +checksum = "aa65df6a190b7dfc84d79f09cf02d47ae046fa86a613e202c31559e06d8d3710" [[package]] name = "bevy_quickmenu" -version = "0.4.0" +version = "0.6.0" dependencies = [ "bevy", ] [[package]] name = "bevy_reflect" -version = "0.13.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "133dfab8d403d0575eeed9084e85780bbb449dcf75dd687448439117789b40a2" +checksum = "bab3264acc3b6f48bc23fbd09fdfea6e5d9b7bfec142e4f3333f532acf195bca" dependencies = [ - "bevy_math", + "assert_type_match", "bevy_ptr", "bevy_reflect_derive", "bevy_utils", + "derive_more", + "disqualified", "downcast-rs", "erased-serde", "glam", + "petgraph", "serde", + "smallvec", "smol_str", - "thiserror", + "uuid", ] [[package]] name = "bevy_reflect_derive" -version = "0.13.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce1679a4dfdb2c9ff24ca590914c3cec119d7c9e1b56fa637776913acc030386" +checksum = "42f83876a322130ab38a47d5dcf75258944bf76b3387d1acdb3750920fda63e2" dependencies = [ "bevy_macro_utils", "proc-macro2", "quote", - "syn 2.0.52", + "syn", "uuid", ] [[package]] name = "bevy_render" -version = "0.13.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3b194b7029b7541ef9206ac3cb696d3cb37f70bd3260d293fc00d378547e892" +checksum = "5b14d77d8ff589743237c98502c0e47fd31059cf348ab86a265c4f90bb5e2a22" dependencies = [ "async-channel", "bevy_app", "bevy_asset", + "bevy_color", "bevy_core", "bevy_derive", + "bevy_diagnostic", "bevy_ecs", "bevy_encase_derive", "bevy_hierarchy", - "bevy_log", + "bevy_image", "bevy_math", - "bevy_mikktspace", + "bevy_mesh", "bevy_reflect", "bevy_render_macros", "bevy_tasks", @@ -801,22 +950,22 @@ dependencies = [ "bevy_transform", "bevy_utils", "bevy_window", - "bitflags 2.4.2", "bytemuck", "codespan-reporting", + "derive_more", "downcast-rs", "encase", "futures-lite", - "hexasphere", "image", "js-sys", "ktx2", "naga", "naga_oil", - "ruzstd", + "nonmax", + "offset-allocator", + "send_wrapper", "serde", - "thiserror", - "thread_local", + "smallvec", "wasm-bindgen", "web-sys", "wgpu", @@ -824,21 +973,21 @@ dependencies = [ [[package]] name = "bevy_render_macros" -version = "0.13.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4aa6d99b50375bb7f63be2c3055dfe2f926f7b3c4db108bb0b1181b4f02766aa" +checksum = "285769c193b832d67c5742a716c6063db573573d5df5ce0c41aa7584ef0e348e" dependencies = [ "bevy_macro_utils", "proc-macro2", "quote", - "syn 2.0.52", + "syn", ] [[package]] name = "bevy_scene" -version = "0.13.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c3c82eaff0b22949183a75a7e2d7fc4ece808235918b34c5b282aab52c3563a" +checksum = "cd00a08d01a190a826a5f6ad0fcb3dbf7bd1bd4f64ebe6108c38384691a21111" dependencies = [ "bevy_app", "bevy_asset", @@ -849,61 +998,95 @@ dependencies = [ "bevy_render", "bevy_transform", "bevy_utils", + "derive_more", "serde", - "thiserror", "uuid", ] [[package]] name = "bevy_sprite" -version = "0.13.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ea977d7d7c48fc4ba283d449f09528c4e70db17c9048e32e99ecd9890d72223" +checksum = "84c7d22da88e562fb2ae8fe7f8cc749d3024caa4dcb57a777d070ef9141577aa" dependencies = [ "bevy_app", "bevy_asset", + "bevy_color", "bevy_core_pipeline", "bevy_derive", "bevy_ecs", - "bevy_log", + "bevy_image", "bevy_math", + "bevy_picking", "bevy_reflect", "bevy_render", "bevy_transform", "bevy_utils", - "bitflags 2.4.2", + "bevy_window", + "bitflags 2.8.0", "bytemuck", - "fixedbitset", + "derive_more", + "fixedbitset 0.5.7", "guillotiere", + "nonmax", "radsort", "rectangle-pack", - "thiserror", +] + +[[package]] +name = "bevy_state" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd10c8b01a982642596406fc4486fcd52239aa9c4aa47fed27abab93a69fba59" +dependencies = [ + "bevy_app", + "bevy_ecs", + "bevy_hierarchy", + "bevy_reflect", + "bevy_state_macros", + "bevy_utils", +] + +[[package]] +name = "bevy_state_macros" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23773797bf8077a6ad9299f10b063b6947f22dad311d855c4b3523102ab4381b" +dependencies = [ + "bevy_macro_utils", + "proc-macro2", + "quote", + "syn", ] [[package]] name = "bevy_tasks" -version = "0.13.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b20f243f6fc4c4ba10c2dbff891e947ddae947bb20b263f43e023558b35294bd" +checksum = "5c28f2db2619203aa82342dbbe77e49aeea4f933212c0b7a1f285e94c4008e5b" dependencies = [ "async-channel", "async-executor", - "async-task", "concurrent-queue", + "futures-channel", "futures-lite", + "pin-project", "wasm-bindgen-futures", ] [[package]] name = "bevy_text" -version = "0.13.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "006990d27551dbc339774178e833290952511621662fd5ca23a4e6e922ab2d9f" +checksum = "17ee0b5f52946d222521f93773a6230f42e868548f881c4c5bddb1393a96298b" dependencies = [ - "ab_glyph", "bevy_app", "bevy_asset", + "bevy_color", + "bevy_derive", "bevy_ecs", + "bevy_hierarchy", + "bevy_image", "bevy_math", "bevy_reflect", "bevy_render", @@ -911,55 +1094,60 @@ 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.13.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9738901b6b251d2c9250542af7002d6f671401fc3b74504682697c5ec822f210" +checksum = "bb3108ed1ef864bc40bc859ba4c9c3844213c7be3674f982203cf5d87c656848" dependencies = [ "bevy_app", "bevy_ecs", "bevy_reflect", "bevy_utils", "crossbeam-channel", - "thiserror", ] [[package]] name = "bevy_transform" -version = "0.13.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba73744a95bc4b8683e91cea3e79b1ad0844c1d677f31fbbc1814c79a5b4f8f0" +checksum = "056fabcedbf0503417af69447d47a983e18c7cfb5e6b6728636be3ec285cbcfa" dependencies = [ "bevy_app", "bevy_ecs", "bevy_hierarchy", "bevy_math", "bevy_reflect", - "thiserror", + "derive_more", ] [[package]] name = "bevy_ui" -version = "0.13.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fafe872906bac6d7fc8ecff166f56b4253465b2895ed88801499aa113548ccc6" +checksum = "4556fc2202c6339f95e0c24ca4c96ee959854b702e23ecf73e05fb20e67d67b0" dependencies = [ + "accesskit", "bevy_a11y", "bevy_app", "bevy_asset", + "bevy_color", "bevy_core_pipeline", "bevy_derive", "bevy_ecs", "bevy_hierarchy", + "bevy_image", "bevy_input", - "bevy_log", "bevy_math", + "bevy_picking", "bevy_reflect", "bevy_render", "bevy_sprite", @@ -968,46 +1156,45 @@ dependencies = [ "bevy_utils", "bevy_window", "bytemuck", + "derive_more", + "nonmax", + "smallvec", "taffy", - "thiserror", ] [[package]] name = "bevy_utils" -version = "0.13.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94a06aca1c1863606416b892f4c79e300dbc6211b6690953269051a431c2cca0" +checksum = "4f01088c048960ea50ee847c3f668942ecf49ed26be12a1585a5e59b6a941d9a" dependencies = [ "ahash", "bevy_utils_proc_macros", "getrandom", - "hashbrown", - "nonmax", - "petgraph", - "smallvec", - "thiserror", + "hashbrown 0.14.3", + "thread_local", "tracing", - "uuid", "web-time", ] [[package]] name = "bevy_utils_proc_macros" -version = "0.13.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31ae98e9c0c08b0f5c90e22cd713201f759b98d4fd570b99867a695f8641859a" +checksum = "4a0c3244d543cc964545b7aa074f6fb18a915a7121cf3de5d7ed37a4aae8662d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn", ] [[package]] name = "bevy_window" -version = "0.13.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb627efd7622a61398ac0d3674f93c997cffe16f13c59fb8ae8a05c9e28de961" +checksum = "36139955777cc9e7a40a97833ff3a95b7401ce525a3dbac05fc52557968b31a7" dependencies = [ + "android-activity", "bevy_a11y", "bevy_app", "bevy_ecs", @@ -1021,26 +1208,34 @@ dependencies = [ [[package]] name = "bevy_winit" -version = "0.13.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55105324a201941ae587790f83f6d9caa327e0baa0205558ec41e5ee05a1f703" +checksum = "36e84e7f94583cac93de4ba641029eb0b6551d35e559c829209f2b1b9fe532d8" dependencies = [ + "accesskit", "accesskit_winit", "approx", "bevy_a11y", "bevy_app", + "bevy_asset", "bevy_derive", "bevy_ecs", "bevy_hierarchy", + "bevy_image", "bevy_input", + "bevy_log", "bevy_math", + "bevy_reflect", "bevy_tasks", "bevy_utils", "bevy_window", + "bytemuck", + "cfg-if", "crossbeam-channel", "raw-window-handle", "wasm-bindgen", "web-sys", + "wgpu-types", "winit", ] @@ -1050,10 +1245,10 @@ version = "0.69.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a00dc851838a2120612785d195287475a3ac45514741da670b735818822129a0" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.8.0", "cexpr", "clang-sys", - "itertools", + "itertools 0.12.1", "lazy_static", "lazycell", "proc-macro2", @@ -1061,7 +1256,27 @@ dependencies = [ "regex", "rustc-hash", "shlex", - "syn 2.0.52", + "syn", +] + +[[package]] +name = "bindgen" +version = "0.70.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f49d8fed880d473ea71efb9bf597651e77201bdd4893efe54c9e5d65ae04ce6f" +dependencies = [ + "bitflags 2.8.0", + "cexpr", + "clang-sys", + "itertools 0.12.1", + "log", + "prettyplease", + "proc-macro2", + "quote", + "regex", + "rustc-hash", + "shlex", + "syn", ] [[package]] @@ -1070,7 +1285,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]] @@ -1079,6 +1303,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" @@ -1087,9 +1317,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36" dependencies = [ "serde", ] @@ -1113,42 +1343,13 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" -[[package]] -name = "block-sys" -version = "0.1.0-beta.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa55741ee90902547802152aaf3f8e5248aab7e21468089560d4c8840561146" -dependencies = [ - "objc-sys 0.2.0-beta.2", -] - -[[package]] -name = "block-sys" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae85a0696e7ea3b835a453750bf002770776609115e6d25c6d2ff28a8200f7e7" -dependencies = [ - "objc-sys 0.3.2", -] - [[package]] name = "block2" -version = "0.2.0-alpha.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8dd9e63c1744f755c2f60332b88de39d341e5e86239014ad839bd71c106dec42" -dependencies = [ - "block-sys 0.1.0-beta.1", - "objc2-encode 2.0.0-pre.2", -] - -[[package]] -name = "block2" -version = "0.3.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15b55663a85f33501257357e6421bb33e769d5c9ffb5ba0921c975a123e35e68" +checksum = "2c132eebf10f5cad5289222520a4a058514204aed6d791f1cf4fe8088b82d15f" dependencies = [ - "block-sys 0.2.1", - "objc2 0.4.1", + "objc2", ] [[package]] @@ -1175,9 +1376,9 @@ checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa" [[package]] name = "bytemuck" -version = "1.14.3" +version = "1.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2ef034f05691a48569bd920a96c81b9d91bbad1ab5ac7c4616c1f6ef36cb79f" +checksum = "ef657dfab802224e671f5818e9a4935f9b1957ed18e58292690cc39e7a4092a3" dependencies = [ "bytemuck_derive", ] @@ -1190,7 +1391,7 @@ checksum = "4da9a32f3fed317401fa3c862968128267c3106685286e15d5aaa3d7389c2f60" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn", ] [[package]] @@ -1199,6 +1400,12 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" +[[package]] +name = "byteorder-lite" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f1fe948ff07f4bd06c30984e69f5b4899c516a3ef74f34df92a2df2ab535495" + [[package]] name = "bytes" version = "1.5.0" @@ -1207,11 +1414,11 @@ checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" [[package]] name = "calloop" -version = "0.12.4" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fba7adb4dd5aa98e5553510223000e7148f621165ec5f9acd7113f6ca4995298" +checksum = "b99da2f8558ca23c71f4fd15dc57c906239752dd27ff3c00a1d56b685b7cbfec" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.8.0", "log", "polling", "rustix", @@ -1256,6 +1463,12 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" +[[package]] +name = "cfg_aliases" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" + [[package]] name = "clang-sys" version = "1.7.0" @@ -1264,7 +1477,7 @@ checksum = "67523a3b4be3ce1989d607a828d036249522dd9c1c8de7f4dd2dae43a37369d1" dependencies = [ "glob", "libc", - "libloading 0.8.3", + "libloading", ] [[package]] @@ -1277,43 +1490,6 @@ dependencies = [ "unicode-width", ] -[[package]] -name = "color_quant" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" - -[[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.6" @@ -1326,9 +1502,9 @@ dependencies = [ [[package]] name = "concurrent-queue" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363" +checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" dependencies = [ "crossbeam-utils", ] @@ -1349,6 +1525,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.8" @@ -1369,9 +1565,9 @@ checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" [[package]] name = "constgebra" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edd23e864550e6dafc1e41ac78ce4f1ccddc8672b40c403524a04ff3f0518420" +checksum = "e1aaf9b65849a68662ac6c0810c8893a765c960b907dd7cfab9c4a50bf764fbc" dependencies = [ "const_soft_float", ] @@ -1386,11 +1582,21 @@ 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.6" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "core-graphics" @@ -1399,7 +1605,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "970a29baf4110c26fedbc7f82107d42c23f7e88e404c4577ed73fe99ff85a212" dependencies = [ "bitflags 1.3.2", - "core-foundation", + "core-foundation 0.9.4", "core-graphics-types", "foreign-types", "libc", @@ -1412,7 +1618,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", ] @@ -1433,7 +1639,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.8.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]] @@ -1450,9 +1679,9 @@ dependencies = [ "js-sys", "libc", "mach2", - "ndk", + "ndk 0.8.0", "ndk-context", - "oboe 0.6.1", + "oboe", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", @@ -1477,6 +1706,25 @@ dependencies = [ "crossbeam-utils", ] +[[package]] +name = "crossbeam-deque" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" +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.19" @@ -1484,22 +1732,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345" [[package]] -name = "cursor-icon" -version = "1.1.0" +name = "crunchy" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96a6ac251f4a2aca6b3f91340350eab87ae57c3f127ffeb585e92bd336717991" +checksum = "43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929" [[package]] -name = "d3d12" -version = "0.19.0" +name = "ctrlc" +version = "3.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e3d747f100290a1ca24b752186f61f6637e1deffe3bf6320de6fcb29510a307" +checksum = "90eeab0aa92f3f9b4e87f258c72b139c207d251f9cbc1080a0086b86a8870dd3" dependencies = [ - "bitflags 2.4.2", - "libloading 0.8.3", - "winapi", + "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 = "dasp_sample" version = "0.11.0" @@ -1514,13 +1767,23 @@ checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5" [[package]] name = "derive_more" -version = "0.99.17" +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 = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" +checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn", + "unicode-xid", ] [[package]] @@ -1529,32 +1792,53 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" +[[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.3", + "libloading", +] + +[[package]] +name = "document-features" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb6969eaabd2421f8a2775cfd2471a2b634372b4a25d41e3bd647b79912850a0" +dependencies = [ + "litrs", ] [[package]] name = "downcast-rs" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" +checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" + +[[package]] +name = "dpi" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f25c0e292a7ca6d6498557ff1df68f32c99850012b6ea401cf8daf771f22ff53" [[package]] name = "either" -version = "1.10.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a" +checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" [[package]] name = "encase" -version = "0.7.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95ed933078d2e659745df651f4c180511cd582e5b9414ff896e7d50d207e3103" +checksum = "b0a05902cf601ed11d564128448097b98ebe3c6574bd7b6a653a3d56d54aa020" dependencies = [ "const_panic", "encase_derive", @@ -1564,22 +1848,22 @@ dependencies = [ [[package]] name = "encase_derive" -version = "0.7.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4ce1449c7d19eba6cc0abd231150ad81620a8dce29601d7f8d236e5d431d72a" +checksum = "181d475b694e2dd56ae919ce7699d344d1fd259292d590c723a50d1189a2ea85" dependencies = [ "encase_derive_impl", ] [[package]] name = "encase_derive_impl" -version = "0.7.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92959a9e8d13eaa13b8ae8c7b583c3bf1669ca7a8e7708a088d12587ba86effc" +checksum = "f97b51c5cc57ef7c5f7a0c57c250251c49ee4c28f819f87ac32f4aceabc36792" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn", ] [[package]] @@ -1656,9 +1940,9 @@ dependencies = [ [[package]] name = "event-listener-strategy" -version = "0.5.0" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "feedafcaa9b749175d5ac357452a9d41ea2911da598fde46ce1fe02c37751291" +checksum = "3c3e4e0dd3673c1139bf041f3008816d9cf2946bbfac2945c09e523b8d7b05b2" dependencies = [ "event-listener 5.2.0", "pin-project-lite", @@ -1685,6 +1969,12 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" +[[package]] +name = "fixedbitset" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" + [[package]] name = "flate2" version = "1.0.28" @@ -1701,6 +1991,44 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "foldhash" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0d2fde1f7b3d48b8395d5f2de76c18a528bd6a9cdde438df747bfcba3e05d6f" + +[[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.5.0" @@ -1719,7 +2047,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn", ] [[package]] @@ -1728,6 +2056,15 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" +[[package]] +name = "futures-channel" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +dependencies = [ + "futures-core", +] + [[package]] name = "futures-core" version = "0.3.30" @@ -1778,9 +2115,9 @@ dependencies = [ [[package]] name = "gilrs" -version = "0.10.5" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0510502768c64b944bf4d1518ba36e2431c638ac996ebacb543a297b145f8300" +checksum = "bbb2c998745a3c1ac90f64f4f7b3a54219fd3612d7705e7798212935641ed18f" dependencies = [ "fnv", "gilrs-core", @@ -1791,11 +2128,11 @@ dependencies = [ [[package]] name = "gilrs-core" -version = "0.5.11" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85c132270a155f2548e67d66e731075c336c39098afc555752f3df8f882c720e" +checksum = "0ed2326d21aa97752d41b2c195aee1d99cd84456ff4d5a7f5e6e1cdbd3dcb0b8" dependencies = [ - "core-foundation", + "core-foundation 0.10.0", "inotify", "io-kit-sys", "js-sys", @@ -1807,7 +2144,7 @@ dependencies = [ "vec_map", "wasm-bindgen", "web-sys", - "windows 0.54.0", + "windows 0.58.0", ] [[package]] @@ -1823,11 +2160,12 @@ dependencies = [ [[package]] name = "glam" -version = "0.25.0" +version = "0.29.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "151665d9be52f9bb40fc7966565d39666f2d1e69233571b71b87791c7e0528b3" +checksum = "dc46dd3ec48fdd8e693a98d2b8bafae273a2d54c1de02a2a7e3d57d501f39677" dependencies = [ "bytemuck", + "rand", "serde", ] @@ -1839,9 +2177,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", @@ -1870,7 +2208,7 @@ dependencies = [ "inflections", "proc-macro2", "quote", - "syn 2.0.52", + "syn", ] [[package]] @@ -1887,31 +2225,20 @@ dependencies = [ [[package]] name = "glutin_wgl_sys" -version = "0.5.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8098adac955faa2d31079b65dc48841251f69efd3ac25477903fc424362ead" +checksum = "2c4ee00b289aba7a9e5306d57c2d05499b2e5dc427f84ac708bd2c090212cf3e" dependencies = [ "gl_generator", ] -[[package]] -name = "glyph_brush_layout" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc32c2334f00ca5ac3695c5009ae35da21da8c62d255b5b96d56e2597a637a38" -dependencies = [ - "ab_glyph", - "approx", - "xi-unicode", -] - [[package]] name = "gpu-alloc" version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fbcd2dba93594b227a1f57ee09b8b9da8892c34d55aa332e034a228d0fe6a171" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.8.0", "gpu-alloc-types", ] @@ -1921,47 +2248,46 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "98ff03b468aa837d70984d55f5d3f846f6ec31fe34bbb97c4f85219caeee1ca4" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.8.0", ] [[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", + "windows 0.58.0", ] [[package]] name = "gpu-descriptor" -version = "0.2.4" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc11df1ace8e7e564511f53af41f3e42ddc95b56fd07b3f4445d2a6048bc682c" +checksum = "dcf29e94d6d243368b7a56caa16bc213e4f9f8ed38c4d9557069527b5d5281ca" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.8.0", "gpu-descriptor-types", - "hashbrown", + "hashbrown 0.15.2", ] [[package]] name = "gpu-descriptor-types" -version = "0.1.2" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bf0b36e6f090b7e1d8a4b49c0cb81c1f8376f72198c65dd3ad9ff3556b8b78c" +checksum = "fdf242682df893b86f33a73828fb09ca4b2d3bb6cc95249707fc684d27484b91" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.8.0", ] [[package]] name = "grid" -version = "0.10.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eec1c01eb1de97451ee0d60de7d81cf1e72aabefb021616027f3d1c3ec1c723c" +checksum = "be136d9dacc2a13cc70bb6c8f902b414fb2641f8db1314637c6b7933411a8f82" [[package]] name = "guillotiere" @@ -1985,28 +2311,23 @@ dependencies = [ ] [[package]] -name = "hassle-rs" -version = "0.11.0" +name = "hashbrown" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af2a7e73e1f34c48da31fb668a907f250794837e08faa144fd24f0b8b741e890" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" dependencies = [ - "bitflags 2.4.2", - "com", - "libc", - "libloading 0.8.3", - "thiserror", - "widestring", - "winapi", + "foldhash", ] [[package]] name = "hexasphere" -version = "10.0.0" +version = "15.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f33ddb7f7143d9e703c072e88b98cd8b9719f174137a671429351bd2ee43c02a" +checksum = "d9c9e718d32b6e6b2b32354e1b0367025efdd0b11d6a740b905ddf5db1074679" dependencies = [ "constgebra", "glam", + "tinyvec", ] [[package]] @@ -2016,27 +2337,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dfa686283ad6dd069f105e5ab091b04c62850d3e4cf5d67debad1933f55023df" [[package]] -name = "icrate" -version = "0.0.4" +name = "image" +version = "0.25.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99d3aaff8a54577104bafdf686ff18565c3b6903ca5782a2026ef06e2c7aa319" +checksum = "cd6f44aed642f18953a158afeb30206f4d50da59fbc66ecb53c66488de73563b" dependencies = [ - "block2 0.3.0", - "dispatch", - "objc2 0.4.1", + "bytemuck", + "byteorder-lite", + "num-traits", + "png", ] [[package]] -name = "image" -version = "0.24.9" +name = "immutable-chunkmap" +version = "2.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5690139d2f55868e080017335e4b94cb7414274c74f1669c84fb5feba2c9f69d" +checksum = "12f97096f508d54f8f8ab8957862eee2ccd628847b6217af1a335e1c44dee578" dependencies = [ - "bytemuck", - "byteorder", - "color_quant", - "num-traits", - "png", + "arrayvec", ] [[package]] @@ -2046,7 +2364,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4" dependencies = [ "equivalent", - "hashbrown", + "hashbrown 0.14.3", ] [[package]] @@ -2057,11 +2375,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.8.0", "inotify-sys", "libc", ] @@ -2077,9 +2395,9 @@ dependencies = [ [[package]] name = "io-kit-sys" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4769cb30e5dcf1710fc6730d3e94f78c47723a014a567de385e113c737394640" +checksum = "617ee6cf8e3f66f3b4ea67a4058564628cde41901316e19f559e14c7c72c5e7b" dependencies = [ "core-foundation-sys", "mach2", @@ -2094,6 +2412,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.10" @@ -2133,10 +2460,11 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.69" +version = "0.3.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" +checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" dependencies = [ + "once_cell", "wasm-bindgen", ] @@ -2147,7 +2475,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6aae1df220ece3c0ada96b8153459b67eebe9ae9212258bb0134ae60416fdf76" dependencies = [ "libc", - "libloading 0.8.3", + "libloading", "pkg-config", ] @@ -2191,29 +2519,25 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.153" +version = "0.2.169" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" +checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" [[package]] name = "libloading" -version = "0.7.4" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" +checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19" dependencies = [ "cfg-if", - "winapi", + "windows-targets 0.52.6", ] [[package]] -name = "libloading" -version = "0.8.3" +name = "libm" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19" -dependencies = [ - "cfg-if", - "windows-targets 0.52.4", -] +checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" [[package]] name = "libredox" @@ -2221,9 +2545,9 @@ version = "0.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3af92c55d7d839293953fcd0fda5ecfe93297cfde6ffbdec13b41d99c0ba6607" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.8.0", "libc", - "redox_syscall 0.4.1", + "redox_syscall", ] [[package]] @@ -2242,6 +2566,12 @@ version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" +[[package]] +name = "litrs" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4ce301924b7887e9d637144fdade93f9dfff9b60981d4ac161db09720d39aa5" + [[package]] name = "lock_api" version = "0.4.11" @@ -2291,13 +2621,22 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" +[[package]] +name = "memmap2" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd3f7eed9d3848f8b98834af67102b720745c4ec028fcd0aa0239277e7de374f" +dependencies = [ + "libc", +] + [[package]] name = "metal" -version = "0.27.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c43f73953f8cbe511f021b58f18c3ce1c3d1ae13fe953293e13345bf83217f25" +checksum = "7ecfd3296f8c56b7c1f6fbac3c71cefa9d78ce009850c45000015f206dc7fa21" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.8.0", "block", "core-graphics-types", "foreign-types", @@ -2324,17 +2663,18 @@ dependencies = [ [[package]] name = "naga" -version = "0.19.2" +version = "23.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50e3524642f53d9af419ab5e8dd29d3ba155708267667c2f3f06c88c9e130843" +checksum = "364f94bc34f61332abebe8cad6f6cd82a5b65cff22c828d05d0968911462ca4f" dependencies = [ - "bit-set", - "bitflags 2.4.2", + "arrayvec", + "bit-set 0.8.0", + "bitflags 2.8.0", + "cfg_aliases 0.1.1", "codespan-reporting", "hexf-parse", "indexmap", "log", - "num-traits", "pp-rs", "rustc-hash", "spirv", @@ -2345,11 +2685,11 @@ dependencies = [ [[package]] name = "naga_oil" -version = "0.13.0" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0ea62ae0f2787456afca7209ca180522b41f00cbe159ee369eba1e07d365cd1" +checksum = "31ea1f080bb359927cd5404d0af1e5e6758f4f2d82ecfbebb0a0c434764e40f1" dependencies = [ - "bit-set", + "bit-set 0.5.3", "codespan-reporting", "data-encoding", "indexmap", @@ -2369,10 +2709,24 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2076a31b7010b17a38c01907c45b945e8f11495ee4dd588309718901b1f7a5b7" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.8.0", + "jni-sys", + "log", + "ndk-sys 0.5.0+25.2.9519653", + "num_enum", + "thiserror", +] + +[[package]] +name = "ndk" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" +dependencies = [ + "bitflags 2.8.0", "jni-sys", "log", - "ndk-sys", + "ndk-sys 0.6.0+11769913", "num_enum", "raw-window-handle", "thiserror", @@ -2393,15 +2747,24 @@ dependencies = [ "jni-sys", ] +[[package]] +name = "ndk-sys" +version = "0.6.0+11769913" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee6cda3051665f1fb8d9e08fc35c96d5a244fb1be711a03b71118828afc9a873" +dependencies = [ + "jni-sys", +] + [[package]] name = "nix" -version = "0.28.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4" +checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.8.0", "cfg-if", - "cfg_aliases", + "cfg_aliases 0.2.1", "libc", ] @@ -2440,17 +2803,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "num-derive" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "num-derive" version = "0.4.2" @@ -2459,7 +2811,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn", ] [[package]] @@ -2469,6 +2821,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a" dependencies = [ "autocfg", + "libm", ] [[package]] @@ -2489,7 +2842,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.52", + "syn", ] [[package]] @@ -2499,75 +2852,209 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" dependencies = [ "malloc_buf", - "objc_exception", ] [[package]] name = "objc-sys" -version = "0.2.0-beta.2" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3b9834c1e95694a05a828b59f55fa2afec6288359cda67146126b3f90a55d7" +checksum = "cdb91bdd390c7ce1a8607f35f3ca7151b65afc0ff5ff3b34fa350f7d7c7e4310" [[package]] -name = "objc-sys" -version = "0.3.2" +name = "objc2" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7c71324e4180d0899963fc83d9d241ac39e699609fc1025a850aadac8257459" +checksum = "46a785d4eeff09c14c487497c162e92766fbb3e4059a71840cecc03d9a50b804" +dependencies = [ + "objc-sys", + "objc2-encode", +] [[package]] -name = "objc2" -version = "0.3.0-beta.3.patch-leaks.3" +name = "objc2-app-kit" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e01640f9f2cb1220bbe80325e179e532cb3379ebcd1bf2279d703c19fe3a468" +checksum = "e4e89ad9e3d7d297152b17d39ed92cd50ca8063a89a9fa569046d41568891eff" dependencies = [ - "block2 0.2.0-alpha.6", - "objc-sys 0.2.0-beta.2", - "objc2-encode 2.0.0-pre.2", + "bitflags 2.8.0", + "block2", + "libc", + "objc2", + "objc2-core-data", + "objc2-core-image", + "objc2-foundation", + "objc2-quartz-core", ] [[package]] -name = "objc2" -version = "0.4.1" +name = "objc2-cloud-kit" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "559c5a40fdd30eb5e344fbceacf7595a81e242529fb4e21cf5f43fb4f11ff98d" +checksum = "74dd3b56391c7a0596a295029734d3c1c5e7e510a4cb30245f8221ccea96b009" dependencies = [ - "objc-sys 0.3.2", - "objc2-encode 3.0.0", + "bitflags 2.8.0", + "block2", + "objc2", + "objc2-core-location", + "objc2-foundation", ] [[package]] -name = "objc2-encode" -version = "2.0.0-pre.2" +name = "objc2-contacts" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5ff520e9c33812fd374d8deecef01d4a840e7b41862d849513de77e44aa4889" +dependencies = [ + "block2", + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-core-data" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "617fbf49e071c178c0b24c080767db52958f716d9eabdf0890523aeae54773ef" +dependencies = [ + "bitflags 2.8.0", + "block2", + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-core-image" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abfcac41015b00a120608fdaa6938c44cb983fee294351cc4bac7638b4e50512" +checksum = "55260963a527c99f1819c4f8e3b47fe04f9650694ef348ffd2227e8196d34c80" dependencies = [ - "objc-sys 0.2.0-beta.2", + "block2", + "objc2", + "objc2-foundation", + "objc2-metal", +] + +[[package]] +name = "objc2-core-location" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "000cfee34e683244f284252ee206a27953279d370e309649dc3ee317b37e5781" +dependencies = [ + "block2", + "objc2", + "objc2-contacts", + "objc2-foundation", ] [[package]] name = "objc2-encode" -version = "3.0.0" +version = "4.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d079845b37af429bfe5dfa76e6d087d788031045b25cfc6fd898486fd9847666" +checksum = "ef25abbcd74fb2609453eb695bd2f860d389e457f67dc17cafc8b8cbc89d0c33" [[package]] -name = "objc_exception" -version = "0.1.2" +name = "objc2-foundation" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad970fb455818ad6cba4c122ad012fae53ae8b4795f86378bce65e4f6bab2ca4" +checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8" dependencies = [ - "cc", + "bitflags 2.8.0", + "block2", + "dispatch", + "libc", + "objc2", ] [[package]] -name = "oboe" -version = "0.5.0" +name = "objc2-link-presentation" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8868cc237ee02e2d9618539a23a8d228b9bb3fc2e7a5b11eed3831de77c395d0" +checksum = "a1a1ae721c5e35be65f01a03b6d2ac13a54cb4fa70d8a5da293d7b0020261398" dependencies = [ - "num-derive 0.3.3", - "num-traits", - "oboe-sys 0.5.0", + "block2", + "objc2", + "objc2-app-kit", + "objc2-foundation", +] + +[[package]] +name = "objc2-metal" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6" +dependencies = [ + "bitflags 2.8.0", + "block2", + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-quartz-core" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a" +dependencies = [ + "bitflags 2.8.0", + "block2", + "objc2", + "objc2-foundation", + "objc2-metal", +] + +[[package]] +name = "objc2-symbols" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a684efe3dec1b305badae1a28f6555f6ddd3bb2c2267896782858d5a78404dc" +dependencies = [ + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-ui-kit" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8bb46798b20cd6b91cbd113524c490f1686f4c4e8f49502431415f3512e2b6f" +dependencies = [ + "bitflags 2.8.0", + "block2", + "objc2", + "objc2-cloud-kit", + "objc2-core-data", + "objc2-core-image", + "objc2-core-location", + "objc2-foundation", + "objc2-link-presentation", + "objc2-quartz-core", + "objc2-symbols", + "objc2-uniform-type-identifiers", + "objc2-user-notifications", +] + +[[package]] +name = "objc2-uniform-type-identifiers" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44fa5f9748dbfe1ca6c0b79ad20725a11eca7c2218bceb4b005cb1be26273bfe" +dependencies = [ + "block2", + "objc2", + "objc2-foundation", +] + +[[package]] +name = "objc2-user-notifications" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76cfcbf642358e8689af64cee815d139339f3ed8ad05103ed5eaf73db8d84cb3" +dependencies = [ + "bitflags 2.8.0", + "block2", + "objc2", + "objc2-core-location", + "objc2-foundation", ] [[package]] @@ -2577,29 +3064,30 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8b61bebd49e5d43f5f8cc7ee2891c16e0f41ec7954d36bcb6c14c5e0de867fb" dependencies = [ "jni", - "ndk", + "ndk 0.8.0", "ndk-context", - "num-derive 0.4.2", + "num-derive", "num-traits", - "oboe-sys 0.6.1", + "oboe-sys", ] [[package]] name = "oboe-sys" -version = "0.5.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f44155e7fb718d3cfddcf70690b2b51ac4412f347cd9e4fbe511abe9cd7b5f2" +checksum = "6c8bb09a4a2b1d668170cfe0a7d5bc103f8999fb316c98099b6a9939c9f2e79d" dependencies = [ "cc", ] [[package]] -name = "oboe-sys" -version = "0.6.1" +name = "offset-allocator" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8bb09a4a2b1d668170cfe0a7d5bc103f8999fb316c98099b6a9939c9f2e79d" +checksum = "e234d535da3521eb95106f40f0b73483d80bfb3aacf27c40d7e2b72f1a3e00a2" dependencies = [ - "cc", + "log", + "nonmax", ] [[package]] @@ -2613,9 +3101,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 = "orbclient" @@ -2632,15 +3120,6 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" -[[package]] -name = "owned_ttf_parser" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4586edfe4c648c71797a74c84bacb32b52b212eff5dfe2bb9f2c599844023e7" -dependencies = [ - "ttf-parser", -] - [[package]] name = "parking" version = "2.2.0" @@ -2665,7 +3144,7 @@ checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.4.1", + "redox_syscall", "smallvec", "windows-targets 0.48.5", ] @@ -2688,8 +3167,30 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" dependencies = [ - "fixedbitset", + "fixedbitset 0.4.2", "indexmap", + "serde", + "serde_derive", +] + +[[package]] +name = "pin-project" +version = "1.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e2ec53ad785f4d35dac0adea7f7dc6f1bb277ad84a680c7afefeae05d1f5916" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d56a66c0c55993aa927429d0f8a0abfd74f084e4d9c192cffed01e418d83eefb" +dependencies = [ + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -2751,26 +3252,45 @@ dependencies = [ "unicode-xid", ] +[[package]] +name = "ppv-lite86" +version = "0.2.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" +dependencies = [ + "zerocopy", +] + [[package]] name = "presser" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8cf8e6a8aa66ce33f63993ffc4ea4271eb5b0530a9002db8455ea6050c77bfa" +[[package]] +name = "prettyplease" +version = "0.2.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6924ced06e1f7dfe3fa48d57b9f74f55d8915f5036121bef647ef4b204895fac" +dependencies = [ + "proc-macro2", + "syn", +] + [[package]] name = "proc-macro-crate" version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" dependencies = [ - "toml_edit", + "toml_edit 0.21.1", ] [[package]] name = "proc-macro2" -version = "1.0.78" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" dependencies = [ "unicode-ident", ] @@ -2796,33 +3316,100 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "17fd96390ed3feda12e1dfe2645ed587e0bea749e319333f104a33ff62f77a0b" +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +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.0" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42a9830a0e1b9fb145ebb365b8bc4ccd75f290f98c0247deafbbe2c75cefb544" +checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539" [[package]] -name = "rectangle-pack" -version = "0.4.2" +name = "rayon" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0d463f2884048e7153449a55166f91028d5b0ea53c79377099ce4e8cf0cf9bb" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" +dependencies = [ + "either", + "rayon-core", +] [[package]] -name = "redox_syscall" -version = "0.3.5" +name = "rayon-core" +version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" +checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" dependencies = [ - "bitflags 1.3.2", + "crossbeam-deque", + "crossbeam-utils", +] + +[[package]] +name = "read-fonts" +version = "0.22.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69aacb76b5c29acfb7f90155d39759a29496aebb49395830e928a9703d2eec2f" +dependencies = [ + "bytemuck", + "font-types", ] +[[package]] +name = "rectangle-pack" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0d463f2884048e7153449a55166f91028d5b0ea53c79377099ce4e8cf0cf9bb" + [[package]] name = "redox_syscall" version = "0.4.1" @@ -2884,12 +3471,13 @@ checksum = "19b30a45b0cd0bcca8037f3d0dc3421eaf95327a17cad11964fb8179b4fc4832" [[package]] name = "rodio" -version = "0.17.3" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b1bb7b48ee48471f55da122c0044fcc7600cfcc85db88240b89cb832935e611" +checksum = "6006a627c1a38d37f3d3a85c6575418cfe34a5392d60a686d0071e1c8d427acb" dependencies = [ "cpal", "lewton", + "thiserror", ] [[package]] @@ -2898,12 +3486,18 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b91f7eff05f748767f183df4320a63d6936e9c6107d97c9e6bdd9784f4289c94" dependencies = [ - "base64", - "bitflags 2.4.2", + "base64 0.21.7", + "bitflags 2.8.0", "serde", "serde_derive", ] +[[package]] +name = "roxmltree" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c20b6793b5c2fa6553b250154b78d6d0db37e72700ae35fad9387a46f487c97" + [[package]] name = "rustc-hash" version = "1.1.0" @@ -2916,21 +3510,42 @@ version = "0.38.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.8.0", "errno", "libc", "linux-raw-sys", "windows-sys 0.52.0", ] +[[package]] +name = "rustversion" +version = "1.0.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7c45b9784283f1b2e7fb61b42047c2fd678ef0960d4f6f1eba131594cc369d4" + +[[package]] +name = "rustybuzz" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfb9cf8877777222e4a3bc7eb247e398b56baba500c38c1c46842431adc8b55c" +dependencies = [ + "bitflags 2.8.0", + "bytemuck", + "libm", + "smallvec", + "ttf-parser 0.21.1", + "unicode-bidi-mirroring", + "unicode-ccc", + "unicode-properties", + "unicode-script", +] + [[package]] name = "ruzstd" -version = "0.5.0" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58c4eb8a81997cf040a091d1f7e1938aeab6749d3a0dfa73af43cdc32393483d" +checksum = "fad02996bfc73da3e301efe90b1837be9ed8f4a462b6ed410aa35d00381de89f" dependencies = [ - "byteorder", - "derive_more", "twox-hash", ] @@ -2955,6 +3570,18 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" +[[package]] +name = "self_cell" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2fdfc24bc566f839a2da4c4295b82db7d25a24253867d5c64355abb5799bdbe" + +[[package]] +name = "send_wrapper" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" + [[package]] name = "serde" version = "1.0.197" @@ -2972,7 +3599,7 @@ checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn", ] [[package]] @@ -3007,6 +3634,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" @@ -3030,9 +3667,6 @@ name = "smallvec" version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7" -dependencies = [ - "serde", -] [[package]] name = "smol_str" @@ -3049,9 +3683,15 @@ version = "0.3.0+sdk-1.3.268.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eda41003dc44290527a59b13432d4a0379379fa074b70174882adfbdfd917844" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.8.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" @@ -3065,50 +3705,59 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f83ba502a3265efb76efb89b0a2f7782ad6f2675015d4ce37e4b547dda42b499" [[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.52" +version = "2.0.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b699d15b36d1f02c3e7c69f8ffef53de37aefae075d8488d4ba1a7788d574a07" +checksum = "d5d0adab1ae378d7f53bdebc67a39f1f151407ef230f0ce2883572f5d8985c80" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] +[[package]] +name = "sys-locale" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eab9a99a024a169fe8a903cf9d4a3b3601109bcc13bd9e3c6fff259138626c4" +dependencies = [ + "libc", +] + [[package]] name = "sysinfo" -version = "0.30.7" +version = "0.32.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c385888ef380a852a16209afc8cfad22795dd8873d69c9a14d2e2088f118d18" +checksum = "4c33cd241af0f2e9e3b5c32163b873b29956890b5342e6745b917ce9d490f4af" dependencies = [ - "cfg-if", "core-foundation-sys", "libc", + "memchr", "ntapi", - "once_cell", - "windows 0.52.0", + "windows 0.54.0", ] [[package]] name = "taffy" -version = "0.3.18" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c2287b6d7f721ada4cddf61ade5e760b2c6207df041cac9bfaa192897362fd3" +checksum = "9cb893bff0f80ae17d3a57e030622a967b8dbc90e38284d9b4b1442e23873c94" dependencies = [ "arrayvec", "grid", "num-traits", + "serde", "slotmap", ] @@ -3123,22 +3772,22 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.57" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.57" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn", ] [[package]] @@ -3151,11 +3800,20 @@ dependencies = [ "once_cell", ] +[[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.6.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +checksum = "022db8904dfa342efe721985167e9fcd16c29b226db4397ed752a761cfce81e8" dependencies = [ "tinyvec_macros", ] @@ -3180,7 +3838,18 @@ checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" dependencies = [ "indexmap", "toml_datetime", - "winnow", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.22.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3328d4f68a705b2a4498da1d580585d39a6510f98318a2cec3018a7ec61ddef" +dependencies = [ + "indexmap", + "toml_datetime", + "winnow 0.6.25", ] [[package]] @@ -3202,7 +3871,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn", ] [[package]] @@ -3217,9 +3886,9 @@ dependencies = [ [[package]] name = "tracing-log" -version = "0.1.4" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f751112709b4e791d8ce53e32c4ed2d353565a795ce84da2285393f41557bdf2" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" dependencies = [ "log", "once_cell", @@ -3227,14 +3896,18 @@ dependencies = [ ] [[package]] -name = "tracing-log" +name = "tracing-oslog" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +checksum = "528bdd1f0e27b5dd9a4ededf154e824b0532731e4af73bb531de46276e0aab1e" dependencies = [ - "log", + "bindgen 0.70.1", + "cc", + "cfg-if", "once_cell", + "parking_lot", "tracing-core", + "tracing-subscriber", ] [[package]] @@ -3252,7 +3925,7 @@ dependencies = [ "thread_local", "tracing", "tracing-core", - "tracing-log 0.2.0", + "tracing-log", ] [[package]] @@ -3272,6 +3945,12 @@ version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" 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" version = "1.6.3" @@ -3282,12 +3961,48 @@ dependencies = [ "static_assertions", ] +[[package]] +name = "unicode-bidi" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5" + +[[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-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" @@ -3302,9 +4017,9 @@ checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" [[package]] name = "unicode-xid" -version = "0.2.4" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" [[package]] name = "uuid" @@ -3352,46 +4067,48 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.92" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" +checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" dependencies = [ "cfg-if", + "once_cell", + "rustversion", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.92" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" +checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" dependencies = [ "bumpalo", "log", - "once_cell", "proc-macro2", "quote", - "syn 2.0.52", + "syn", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.42" +version = "0.4.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" +checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" dependencies = [ "cfg-if", "js-sys", + "once_cell", "wasm-bindgen", "web-sys", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.92" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" +checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -3399,28 +4116,31 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.92" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" +checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.92" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" +checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +dependencies = [ + "unicode-ident", +] [[package]] name = "web-sys" -version = "0.3.67" +version = "0.3.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58cd2333b6e0be7a39605f0e255892fd7418a682d8da8fe042fe25128794d2ed" +checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" dependencies = [ "js-sys", "wasm-bindgen", @@ -3428,9 +4148,9 @@ dependencies = [ [[package]] name = "web-time" -version = "0.2.4" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa30049b1c872b72c89866d458eae9f20380ab280ffd1b1e18df2d3e2d98cfe0" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" dependencies = [ "js-sys", "wasm-bindgen", @@ -3438,13 +4158,13 @@ dependencies = [ [[package]] name = "wgpu" -version = "0.19.3" +version = "23.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4b1213b52478a7631d6e387543ed8f642bc02c578ef4e3b49aca2a29a7df0cb" +checksum = "80f70000db37c469ea9d67defdc13024ddf9a5f1b89cb2941b812ad7cde1735a" dependencies = [ "arrayvec", - "cfg-if", - "cfg_aliases", + "cfg_aliases 0.1.1", + "document-features", "js-sys", "log", "naga", @@ -3463,15 +4183,15 @@ dependencies = [ [[package]] name = "wgpu-core" -version = "0.19.3" +version = "23.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9f6b033c2f00ae0bc8ea872c5989777c60bc241aac4e58b24774faa8b391f78" +checksum = "d63c3c478de8e7e01786479919c8769f62a22eec16788d8c2ac77ce2c132778a" dependencies = [ "arrayvec", - "bit-vec", - "bitflags 2.4.2", - "cfg_aliases", - "codespan-reporting", + "bit-vec 0.8.0", + "bitflags 2.8.0", + "cfg_aliases 0.1.1", + "document-features", "indexmap", "log", "naga", @@ -3482,40 +4202,38 @@ dependencies = [ "rustc-hash", "smallvec", "thiserror", - "web-sys", "wgpu-hal", "wgpu-types", ] [[package]] name = "wgpu-hal" -version = "0.19.3" +version = "23.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f972c280505ab52ffe17e94a7413d9d54b58af0114ab226b9fc4999a47082e" +checksum = "89364b8a0b211adc7b16aeaf1bd5ad4a919c1154b44c9ce27838213ba05fd821" dependencies = [ "android_system_properties", "arrayvec", "ash", - "bit-set", - "bitflags 2.4.2", + "bit-set 0.8.0", + "bitflags 2.8.0", "block", - "cfg_aliases", + "bytemuck", + "cfg_aliases 0.1.1", "core-graphics-types", - "d3d12", "glow", "glutin_wgl_sys", "gpu-alloc", "gpu-allocator", "gpu-descriptor", - "hassle-rs", "js-sys", "khronos-egl", "libc", - "libloading 0.8.3", + "libloading", "log", "metal", "naga", - "ndk-sys", + "ndk-sys 0.5.0+25.2.9519653", "objc", "once_cell", "parking_lot", @@ -3529,26 +4247,21 @@ dependencies = [ "wasm-bindgen", "web-sys", "wgpu-types", - "winapi", + "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.4.2", + "bitflags 2.8.0", "js-sys", "web-sys", ] -[[package]] -name = "widestring" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "653f141f39ec16bba3c5abe400a0c60da7468261cc2cbf36805022876bc721a8" - [[package]] name = "winapi" version = "0.3.9" @@ -3582,74 +4295,67 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" -dependencies = [ - "windows-implement", - "windows-interface", - "windows-targets 0.48.5", -] - -[[package]] -name = "windows" -version = "0.52.0" +version = "0.54.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be" +checksum = "9252e5725dbed82865af151df558e754e4a3c2c30818359eb17465f1346a1b49" dependencies = [ - "windows-core 0.52.0", - "windows-targets 0.52.4", + "windows-core 0.54.0", + "windows-targets 0.52.6", ] [[package]] name = "windows" -version = "0.54.0" +version = "0.58.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9252e5725dbed82865af151df558e754e4a3c2c30818359eb17465f1346a1b49" +checksum = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6" dependencies = [ - "windows-core 0.54.0", - "windows-targets 0.52.4", + "windows-core 0.58.0", + "windows-targets 0.52.6", ] [[package]] name = "windows-core" -version = "0.52.0" +version = "0.54.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +checksum = "12661b9c89351d684a50a8a643ce5f608e20243b9fb84687800163429f161d65" dependencies = [ - "windows-targets 0.52.4", + "windows-result 0.1.0", + "windows-targets 0.52.6", ] [[package]] name = "windows-core" -version = "0.54.0" +version = "0.58.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12661b9c89351d684a50a8a643ce5f608e20243b9fb84687800163429f161d65" +checksum = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99" dependencies = [ - "windows-result", - "windows-targets 0.52.4", + "windows-implement", + "windows-interface", + "windows-result 0.2.0", + "windows-strings", + "windows-targets 0.52.6", ] [[package]] name = "windows-implement" -version = "0.48.0" +version = "0.58.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e2ee588991b9e7e6c8338edf3333fbe4da35dc72092643958ebb43f0ab2c49c" +checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn", ] [[package]] name = "windows-interface" -version = "0.48.0" +version = "0.58.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6fb8df20c9bcaa8ad6ab513f7b40104840c8867d5751126e4df3b08388d0cc7" +checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn", ] [[package]] @@ -3658,7 +4364,26 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cd19df78e5168dfb0aedc343d1d1b8d422ab2db6756d2dc3fef75035402a3f64" dependencies = [ - "windows-targets 0.52.4", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-result" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-strings" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" +dependencies = [ + "windows-result 0.2.0", + "windows-targets 0.52.6", ] [[package]] @@ -3672,20 +4397,20 @@ dependencies = [ [[package]] name = "windows-sys" -version = "0.48.0" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.48.5", + "windows-targets 0.52.6", ] [[package]] name = "windows-sys" -version = "0.52.0" +version = "0.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" dependencies = [ - "windows-targets 0.52.4", + "windows-targets 0.52.6", ] [[package]] @@ -3720,17 +4445,18 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.4" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "windows_aarch64_gnullvm 0.52.4", - "windows_aarch64_msvc 0.52.4", - "windows_i686_gnu 0.52.4", - "windows_i686_msvc 0.52.4", - "windows_x86_64_gnu 0.52.4", - "windows_x86_64_gnullvm 0.52.4", - "windows_x86_64_msvc 0.52.4", + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", ] [[package]] @@ -3747,9 +4473,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.4" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] name = "windows_aarch64_msvc" @@ -3765,9 +4491,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.4" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[package]] name = "windows_i686_gnu" @@ -3783,9 +4509,15 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.4" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" [[package]] name = "windows_i686_msvc" @@ -3801,9 +4533,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.4" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" [[package]] name = "windows_x86_64_gnu" @@ -3819,9 +4551,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.4" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" [[package]] name = "windows_x86_64_gnullvm" @@ -3837,9 +4569,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.4" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] name = "windows_x86_64_msvc" @@ -3855,45 +4587,49 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.4" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winit" -version = "0.29.14" +version = "0.30.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a3db69ffbe53a9babec7804da7a90f21020fcce1f2f5e5291e2311245b993d" +checksum = "f5d74280aabb958072864bff6cfbcf9025cf8bfacdde5e32b5e12920ef703b0f" dependencies = [ "android-activity", "atomic-waker", - "bitflags 2.4.2", + "bitflags 2.8.0", + "block2", "bytemuck", "calloop", - "cfg_aliases", - "core-foundation", + "cfg_aliases 0.2.1", + "concurrent-queue", + "core-foundation 0.9.4", "core-graphics", "cursor-icon", - "icrate", + "dpi", "js-sys", "libc", - "log", - "ndk", - "ndk-sys", - "objc2 0.4.1", - "once_cell", + "ndk 0.9.0", + "objc2", + "objc2-app-kit", + "objc2-foundation", + "objc2-ui-kit", "orbclient", "percent-encoding", + "pin-project", "raw-window-handle", - "redox_syscall 0.3.5", + "redox_syscall", "rustix", "smol_str", + "tracing", "unicode-segmentation", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", "web-time", - "windows-sys 0.48.0", + "windows-sys 0.52.0", "x11-dl", "x11rb", "xkbcommon-dl", @@ -3908,6 +4644,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "winnow" +version = "0.6.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad699df48212c6cc6eb4435f35500ac6fd3b9913324f938aea302022ce19d310" +dependencies = [ + "memchr", +] + [[package]] name = "x11-dl" version = "2.21.0" @@ -3928,7 +4673,7 @@ dependencies = [ "as-raw-xcb-connection", "gethostname", "libc", - "libloading 0.8.3", + "libloading", "once_cell", "rustix", "x11rb-protocol", @@ -3940,19 +4685,13 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e63e71c4b8bd9ffec2c963173a4dc4cbde9ee96961d4fcb4429db9929b606c34" -[[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" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d039de8032a9a8856a6be89cea3e5d12fdd82306ab7c94d74e6deab2460651c5" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.8.0", "dlib", "log", "once_cell", @@ -3971,12 +4710,25 @@ version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fcb9cbac069e033553e8bb871be2fbdffcab578eb25bd0f7c508cedc6dcd75a" +[[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.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be" dependencies = [ + "byteorder", "zerocopy-derive", ] @@ -3988,5 +4740,5 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.52", + "syn", ] diff --git a/Cargo.toml b/Cargo.toml index 9b77f3f..8033249 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "bevy_quickmenu" -version = "0.4.0" +version = "0.6.0" edition = "2021" authors = ["Benedikt Terhechte"] description = "A simple way of quickly creating nested menus in bevy that can be navigated with keys, gamepads and pointers" @@ -14,7 +14,7 @@ exclude = ["data", "assets", ".vscode", "icons.sketch", ".DS_Store"] # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -bevy = { version = "0.13.0", default-features = false, features = [ +bevy = { version = "0.15.0", default-features = false, features = [ "bevy_ui", "bevy_render", "bevy_asset", @@ -23,4 +23,4 @@ bevy = { version = "0.13.0", default-features = false, features = [ ] } [dev-dependencies] -bevy = "0.13" +bevy = "0.15" diff --git a/Readme.md b/Readme.md index 200076c..ed67885 100644 --- a/Readme.md +++ b/Readme.md @@ -28,6 +28,8 @@ bevy_quickmenu = "0.1.5" | Bevy Version | Crates Version | | ------------ | -------------- | +| 0.15.0 | 0.6.0 | +| 0.14.0 | 0.5.0 | | 0.13.0 | 0.4.0 | | 0.12.0 | 0.3.0 | | 0.11.0 | 0.2.0 | diff --git a/examples/custom.rs b/examples/custom.rs index 39cd5ee..d4b5bb3 100644 --- a/examples/custom.rs +++ b/examples/custom.rs @@ -66,15 +66,15 @@ fn setup(mut commands: Commands, asset_server: Res) { let mut button_style = StyleEntry::button(); button_style.size = 25.0; button_style.selected = ControlState { - fg: Color::YELLOW, - bg: Color::RED, + fg: Color::srgb(1.0, 1.0, 0.0), + bg: Color::srgb(1.0, 0.0, 0.0), }; let sheet = Stylesheet { button: button_style, ..Default::default() } - .with_background(BackgroundColor(Color::BISQUE)); + .with_background(BackgroundColor(Color::srgb(1.0, 0.89, 0.77))); // Load custom icons let state = BasicState { @@ -138,8 +138,8 @@ fn root_menu(state: &BasicState) -> Menu { vec![ MenuItem::headline([ RichTextEntry::new("Rich "), - RichTextEntry::new_color("Text ", Color::RED), - RichTextEntry::new_color("!", Color::YELLOW), + RichTextEntry::new_color("Text ", Color::srgb(1.0,0.0,0.0)), + RichTextEntry::new_color("!", Color::srgb(1.0, 1.0, 0.0)), ]), MenuItem::action("Close", Actions::Close).with_icon(MenuIcon::Back), MenuItem::label("Use a custom Icon"), @@ -160,8 +160,8 @@ fn boolean_menu(state: &BasicState) -> Menu { MenuItem::action("Toggle Boolean 2", Actions::Toggle2).checked(state.boolean2), ], ) - .with_background(BackgroundColor(Color::NAVY)) - .with_style(Style { + .with_background(BackgroundColor(Color::srgb(0.0,0.0,0.5))) + .with_style(Node { align_items: AlignItems::FlexEnd, flex_direction: FlexDirection::Column, ..Default::default() diff --git a/examples/settings.rs b/examples/settings.rs index b4743bd..a94e925 100644 --- a/examples/settings.rs +++ b/examples/settings.rs @@ -1,396 +1,406 @@ -//! A Settings example -//! This example mimics in-game settings with player and sound controls. -//! It also adds some types to simulate gamepad and keyboard settings. -//! It also shows how to get from the Settings to the game and back. -//! Due to the way Bevy handles GameStates (which will soon be rewritten), -//! composing menus and games looks a bit convoluted. -use bevy::{prelude::*, utils::HashMap}; - -use bevy_quickmenu::{ - style::Stylesheet, ActionTrait, Menu, MenuIcon, MenuItem, MenuState, QuickMenuPlugin, - ScreenTrait, -}; - -#[derive(Debug, Clone, Copy, Eq, PartialEq, Hash, States, Default)] -enum GameState { - #[default] - Settings, - Game, -} - -impl GameState { - fn is_game(state: Res>) -> bool { - state.get() == &GameState::Game - } - - fn is_settings(state: Res>) -> bool { - state.get() == &GameState::Settings - } -} - -fn main() { - App::new() - .add_plugins(DefaultPlugins) - .add_systems(Startup, setup) - .init_state::() - .add_plugins(settings::SettingsPlugin) - .add_plugins(game::Game) - .run(); -} - -fn setup(mut commands: Commands) { - commands.spawn(Camera3dBundle::default()); -} - -mod settings { - use super::*; - - /// This custom event can be emitted by the action handler (below) in order to - /// process actions with access to the bevy ECS - #[derive(Debug, Event)] - enum MyEvent { - CloseSettings, - } - - /// This state represents the UI. Mutations to this state (via `MenuState::state_mut`) - /// cause a re-render of the menu UI - #[derive(Debug, Clone)] - struct CustomState { - sound_on: bool, - gamepads: Vec<(Gamepad, String)>, - controls: HashMap, - logo: Handle, - } - - pub struct SettingsPlugin; - - impl Plugin for SettingsPlugin { - fn build(&self, app: &mut App) { - app - // Register a event that can be called from your action handler - .add_event::() - // The plugin - .add_plugins(QuickMenuPlugin::::new()) - // Some systems - .add_systems(OnEnter(GameState::Settings), setup_system) - .add_systems( - Update, - (event_reader, update_gamepads_system).run_if(GameState::is_settings), - ); - } - } - - fn setup_system(mut commands: Commands, assets: Res) { - // Create a default stylesheet. You can customize these as you wish - let sheet = Stylesheet::default().with_background(BackgroundColor(Color::BLACK)); - - commands.insert_resource(MenuState::new( - CustomState { - sound_on: true, - gamepads: Vec::new(), - controls: [ - (0, ControlDevice::keyboard1()), - (1, ControlDevice::keyboard2()), - (2, ControlDevice::keyboard3()), - (3, ControlDevice::keyboard4()), - ] - .into(), - logo: assets.load("logo.png"), - }, - Screens::Root, - Some(sheet), - )) - } - - /// Whenever a new gamepad connects, get the known gamepads and their names - /// into our state - fn update_gamepads_system( - gamepads: Res, - menu_state: Option>>, - ) { - let Some(mut menu_state) = menu_state else { - return; - }; - let gamepads = gamepads - .iter() - .map(|p| { - ( - p, - gamepads.name(p).map(|s| s.to_owned()).unwrap_or_default(), - ) - }) - .collect(); - if menu_state.state().gamepads != gamepads { - menu_state.state_mut().gamepads = gamepads; - } - } - - /// The possible actions in our settings - #[derive(Debug, PartialEq, Eq, Clone, Copy, Hash)] - enum Actions { - Close, - SoundOn, - SoundOff, - Control(usize, ControlDevice), - } - - /// Handle the possible actions - impl ActionTrait for Actions { - type State = CustomState; - type Event = MyEvent; - fn handle(&self, state: &mut CustomState, event_writer: &mut EventWriter) { - match self { - Actions::Close => { - event_writer.send(MyEvent::CloseSettings); - } - Actions::SoundOn => { - state.sound_on = true; - } - Actions::SoundOff => { - state.sound_on = false; - } - Actions::Control(p, d) => { - state.controls.insert(*p, *d); - } - } - } - } - - /// All possible screens in our settings - #[derive(Debug, PartialEq, Eq, Clone, Copy, Hash)] - enum Screens { - Root, - Controls, - Sound, - Player(usize), - } - - impl ScreenTrait for Screens { - type Action = Actions; - type State = CustomState; - fn resolve(&self, state: &CustomState) -> Menu { - match self { - Screens::Root => root_menu(state), - Screens::Controls => controls_menu(state), - Screens::Sound => sound_menu(state), - Screens::Player(p) => player_controls_menu(state, *p), - } - } - } - - /// The `root` menu that is displayed first - fn root_menu(state: &CustomState) -> Menu { - Menu::new( - "root", - vec![ - MenuItem::image(state.logo.clone()), - MenuItem::headline("Menu"), - MenuItem::action("Start", Actions::Close), - MenuItem::screen("Sound", Screens::Sound).with_icon(MenuIcon::Sound), - MenuItem::screen("Controls", Screens::Controls).with_icon(MenuIcon::Controls), - ], - ) - } - - /// This is displayed if the user selects `Sound` in the `root_menu` - fn sound_menu(state: &CustomState) -> Menu { - Menu::new( - "sound", - vec![ - MenuItem::label("Toggles sound and music"), - MenuItem::action("On", Actions::SoundOn).checked(state.sound_on), - MenuItem::action("Off", Actions::SoundOff).checked(!state.sound_on), - ], - ) - } - - /// This is displayed if the user selects `Controls` in the `root_menu` - fn controls_menu(state: &CustomState) -> Menu { - let mut players: Vec = state.controls.keys().copied().collect(); - players.sort(); - Menu::new( - "controls", - players - .into_iter() - .map(|player| MenuItem::screen(format!("Player {player}"), Screens::Player(player))) - .collect(), - ) - } - - /// This is displayed if the user selects a player in the `controls_menu` - fn player_controls_menu(state: &CustomState, player: usize) -> Menu { - let selected_control = state.controls[&player]; - // Get the Keyboards - let mut entries: Vec<_> = vec![ - ControlDevice::keyboard1(), - ControlDevice::keyboard2(), - ControlDevice::keyboard3(), - ControlDevice::keyboard4(), - ] - .iter() - .map(|kb| { - MenuItem::action(kb.to_string(), Actions::Control(player, *kb)) - .checked(kb.id() == selected_control.id()) - }) - .collect(); - - // Get the GamePads - for (pad, title) in &state.gamepads { - let device = ControlDevice::Gamepad { gamepad_id: pad.id }; - entries.push( - MenuItem::action(title, Actions::Control(player, device)) - .checked(device.id() == selected_control.id()), - ) - } - - Menu::new("players", entries) - } - - /// This allows to react to actions with custom bevy resources or eventwriters or queries. - /// In this example we use it to close the menu - fn event_reader( - mut commands: Commands, - mut event_reader: EventReader, - mut next_state: ResMut>, - ) { - for event in event_reader.read() { - match event { - MyEvent::CloseSettings => { - bevy_quickmenu::cleanup(&mut commands); - next_state.set(GameState::Game); - } - } - } - } - - // Abstractions over control devices - - #[derive(Debug, PartialEq, Eq, Clone, Copy, Hash)] - pub enum ControlDevice { - Gamepad { - gamepad_id: usize, - }, - Keyboard { - title: &'static str, - description: &'static str, - keyboard_id: usize, - left: KeyCode, - right: KeyCode, - action: KeyCode, - }, - } - - impl ControlDevice { - pub fn id(&self) -> usize { - match self { - ControlDevice::Gamepad { gamepad_id, .. } => *gamepad_id, - ControlDevice::Keyboard { keyboard_id, .. } => *keyboard_id, - } - } - } - - impl std::fmt::Display for ControlDevice { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - match self { - ControlDevice::Gamepad { gamepad_id } => { - f.write_fmt(format_args!("Gamepad {gamepad_id}",)) - } - ControlDevice::Keyboard { title, .. } => f.write_fmt(format_args!("{title}")), - } - } - } - - impl ControlDevice { - pub fn keyboard1() -> ControlDevice { - ControlDevice::Keyboard { - title: "Keyboard 1", - description: "Left / Right + M", - keyboard_id: 42001, - left: KeyCode::ArrowLeft, - right: KeyCode::ArrowRight, - action: KeyCode::KeyM, - } - } - - pub fn keyboard2() -> ControlDevice { - ControlDevice::Keyboard { - title: "Keyboard 2", - description: "A / D + B", - keyboard_id: 42002, - left: KeyCode::KeyA, - right: KeyCode::KeyD, - action: KeyCode::KeyB, - } - } - pub fn keyboard3() -> ControlDevice { - ControlDevice::Keyboard { - title: "Keyboard 3", - description: "I / O + K", - keyboard_id: 42003, - left: KeyCode::KeyI, - right: KeyCode::KeyO, - action: KeyCode::KeyK, - } - } - pub fn keyboard4() -> ControlDevice { - ControlDevice::Keyboard { - title: "Keyboard 4", - description: "T / Y + H", - keyboard_id: 42004, - left: KeyCode::KeyT, - right: KeyCode::KeyY, - action: KeyCode::KeyH, - } - } - } -} - -// Replicate a simple game to show how to go back to the -// menu screen and show it again -mod game { - use super::*; - pub struct Game; - impl Plugin for Game { - fn build(&self, app: &mut App) { - app.add_systems(OnEnter(GameState::Game), setup_system) - .add_systems(Update, detect_close_system.run_if(GameState::is_game)); - // .run(); - } - } - - #[derive(Component)] - struct GameComponent; - - fn setup_system(mut commands: Commands, asset_server: Res) { - commands - .spawn((TextBundle::from_section( - "Return Key to go back to menu", - TextStyle { - font: asset_server.load("font.otf"), - font_size: 30.0, - color: Color::WHITE, - }, - ) - .with_style(Style { - position_type: PositionType::Absolute, - top: Val::Px(60.0), - left: Val::Px(50.0), - ..default() - }),)) - .insert(GameComponent); - } - - fn detect_close_system( - mut commands: Commands, - keyboard_input: Res>, - mut next_state: ResMut>, - game_items: Query>, - ) { - if keyboard_input.just_pressed(KeyCode::Enter) { - for entity in game_items.iter() { - commands.entity(entity).despawn_recursive(); - } - next_state.set(GameState::Settings); - } - } -} +// //! A Settings example +// //! This example mimics in-game settings with player and sound controls. +// //! It also adds some types to simulate gamepad and keyboard settings. +// //! It also shows how to get from the Settings to the game and back. +// //! Due to the way Bevy handles GameStates (which will soon be rewritten), +// //! composing menus and games looks a bit convoluted. +// use bevy::{prelude::*, utils::HashMap}; + +// use bevy_quickmenu::{ +// style::Stylesheet, ActionTrait, Menu, MenuIcon, MenuItem, MenuState, QuickMenuPlugin, +// ScreenTrait, +// }; + +// #[derive(Debug, Clone, Copy, Eq, PartialEq, Hash, States, Default)] +// enum GameState { +// #[default] +// Settings, +// Game, +// } + +// impl GameState { +// fn is_game(state: Res>) -> bool { +// state.get() == &GameState::Game +// } + +// fn is_settings(state: Res>) -> bool { +// state.get() == &GameState::Settings +// } +// } + +// fn main() { +// App::new() +// .add_plugins(DefaultPlugins) +// .add_systems(Startup, setup) +// .init_state::() +// .add_plugins(settings::SettingsPlugin) +// .add_plugins(game::Game) +// .run(); +// } + +// fn setup(mut commands: Commands) { +// commands.spawn(Camera3d::default()); +// } + +// mod settings { +// use bevy::input::gamepad::GamepadAxisChangedEvent; + +// use super::*; + +// /// This custom event can be emitted by the action handler (below) in order to +// /// process actions with access to the bevy ECS +// #[derive(Debug, Event)] +// enum MyEvent { +// CloseSettings, +// } + +// /// This state represents the UI. Mutations to this state (via `MenuState::state_mut`) +// /// cause a re-render of the menu UI +// #[derive(Debug, Clone)] +// struct CustomState { +// sound_on: bool, +// gamepads: Vec<(usize, String)>, +// controls: HashMap, +// logo: Handle, +// } + +// pub struct SettingsPlugin; + +// impl Plugin for SettingsPlugin { +// fn build(&self, app: &mut App) { +// app +// // Register a event that can be called from your action handler +// .add_event::() +// // The plugin +// .add_plugins(QuickMenuPlugin::::new()) +// // Some systems +// .add_systems(OnEnter(GameState::Settings), setup_system) +// .add_systems( +// Update, +// (event_reader, update_gamepads_system).run_if(GameState::is_settings), +// ); +// } +// } + +// fn setup_system(mut commands: Commands, assets: Res) { +// // Create a default stylesheet. You can customize these as you wish +// let sheet = Stylesheet::default().with_background(BackgroundColor(Color::BLACK)); + +// commands.insert_resource(MenuState::new( +// CustomState { +// sound_on: true, +// gamepads: Vec::new(), +// controls: [ +// (0, ControlDevice::keyboard1()), +// (1, ControlDevice::keyboard2()), +// (2, ControlDevice::keyboard3()), +// (3, ControlDevice::keyboard4()), +// ] +// .into(), +// logo: assets.load("logo.png"), +// }, +// Screens::Root, +// Some(sheet), +// )) +// } + +// /// Whenever a new gamepad connects, get the known gamepads and their names +// /// into our state +// fn update_gamepads_system( +// gamepads: Query<(Entity, &Name), With>, +// event: EventReader, +// menu_state: Option>>, +// ) { +// let Some(mut menu_state) = menu_state else { +// return; +// }; +// if !event.is_empty() { +// let gamepads: Vec<(Entity, String)> = gamepads +// .iter() +// .map(|(e,n)| { +// ( +// e, +// String::from(n.as_str().to_owned()) +// ) +// }) +// .collect(); + +// // if menu_state.state().gamepads != gamepads { +// // menu_state.state_mut().gamepads = gamepads; +// // } + +// } +// } + +// /// The possible actions in our settings +// #[derive(Debug, PartialEq, Eq, Clone, Copy, Hash)] +// enum Actions { +// Close, +// SoundOn, +// SoundOff, +// Control(usize, ControlDevice), +// } + +// /// Handle the possible actions +// impl ActionTrait for Actions { +// type State = CustomState; +// type Event = MyEvent; +// fn handle(&self, state: &mut CustomState, event_writer: &mut EventWriter) { +// match self { +// Actions::Close => { +// event_writer.send(MyEvent::CloseSettings); +// } +// Actions::SoundOn => { +// state.sound_on = true; +// } +// Actions::SoundOff => { +// state.sound_on = false; +// } +// Actions::Control(p, d) => { +// state.controls.insert(*p, *d); +// } +// } +// } +// } + +// /// All possible screens in our settings +// #[derive(Debug, PartialEq, Eq, Clone, Copy, Hash)] +// enum Screens { +// Root, +// Controls, +// Sound, +// Player(usize), +// } + +// impl ScreenTrait for Screens { +// type Action = Actions; +// type State = CustomState; +// fn resolve(&self, state: &CustomState) -> Menu { +// match self { +// Screens::Root => root_menu(state), +// Screens::Controls => controls_menu(state), +// Screens::Sound => sound_menu(state), +// Screens::Player(p) => player_controls_menu(state, *p), +// } +// } +// } + +// /// The `root` menu that is displayed first +// fn root_menu(state: &CustomState) -> Menu { +// Menu::new( +// "root", +// vec![ +// MenuItem::image(state.logo.clone()), +// MenuItem::headline("Menu"), +// MenuItem::action("Start", Actions::Close), +// MenuItem::screen("Sound", Screens::Sound).with_icon(MenuIcon::Sound), +// MenuItem::screen("Controls", Screens::Controls).with_icon(MenuIcon::Controls), +// ], +// ) +// } + +// /// This is displayed if the user selects `Sound` in the `root_menu` +// fn sound_menu(state: &CustomState) -> Menu { +// Menu::new( +// "sound", +// vec![ +// MenuItem::label("Toggles sound and music"), +// MenuItem::action("On", Actions::SoundOn).checked(state.sound_on), +// MenuItem::action("Off", Actions::SoundOff).checked(!state.sound_on), +// ], +// ) +// } + +// /// This is displayed if the user selects `Controls` in the `root_menu` +// fn controls_menu(state: &CustomState) -> Menu { +// let mut players: Vec = state.controls.keys().copied().collect(); +// players.sort(); +// Menu::new( +// "controls", +// players +// .into_iter() +// .map(|player| MenuItem::screen(format!("Player {player}"), Screens::Player(player))) +// .collect(), +// ) +// } + +// /// This is displayed if the user selects a player in the `controls_menu` +// fn player_controls_menu(state: &CustomState, player: usize) -> Menu { +// let selected_control = state.controls[&player]; +// // Get the Keyboards +// let mut entries: Vec<_> = vec![ +// ControlDevice::keyboard1(), +// ControlDevice::keyboard2(), +// ControlDevice::keyboard3(), +// ControlDevice::keyboard4(), +// ] +// .iter() +// .map(|kb| { +// MenuItem::action(kb.to_string(), Actions::Control(player, *kb)) +// .checked(kb.id() == selected_control.id()) +// }) +// .collect(); + +// // Get the GamePads +// for (pad, title) in &state.gamepads { +// todo!("Fix"); +// let device = ControlDevice::Gamepad { gamepad_id: pad.id }; +// entries.push( +// MenuItem::action(title, Actions::Control(player, device)) +// .checked(device.id() == selected_control.id()), +// ) +// } + +// Menu::new("players", entries) +// } + +// /// This allows to react to actions with custom bevy resources or eventwriters or queries. +// /// In this example we use it to close the menu +// fn event_reader( +// mut commands: Commands, +// mut event_reader: EventReader, +// mut next_state: ResMut>, +// ) { +// for event in event_reader.read() { +// match event { +// MyEvent::CloseSettings => { +// bevy_quickmenu::cleanup(&mut commands); +// next_state.set(GameState::Game); +// } +// } +// } +// } + +// // Abstractions over control devices + +// #[derive(Debug, PartialEq, Eq, Clone, Copy, Hash)] +// pub enum ControlDevice { +// Gamepad { +// gamepad_id: usize, +// }, +// Keyboard { +// title: &'static str, +// description: &'static str, +// keyboard_id: usize, +// left: KeyCode, +// right: KeyCode, +// action: KeyCode, +// }, +// } + +// impl ControlDevice { +// pub fn id(&self) -> usize { +// match self { +// ControlDevice::Gamepad { gamepad_id, .. } => *gamepad_id, +// ControlDevice::Keyboard { keyboard_id, .. } => *keyboard_id, +// } +// } +// } + +// impl std::fmt::Display for ControlDevice { +// fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { +// match self { +// ControlDevice::Gamepad { gamepad_id } => { +// f.write_fmt(format_args!("Gamepad {gamepad_id}",)) +// } +// ControlDevice::Keyboard { title, .. } => f.write_fmt(format_args!("{title}")), +// } +// } +// } + +// impl ControlDevice { +// pub fn keyboard1() -> ControlDevice { +// ControlDevice::Keyboard { +// title: "Keyboard 1", +// description: "Left / Right + M", +// keyboard_id: 42001, +// left: KeyCode::ArrowLeft, +// right: KeyCode::ArrowRight, +// action: KeyCode::KeyM, +// } +// } + +// pub fn keyboard2() -> ControlDevice { +// ControlDevice::Keyboard { +// title: "Keyboard 2", +// description: "A / D + B", +// keyboard_id: 42002, +// left: KeyCode::KeyA, +// right: KeyCode::KeyD, +// action: KeyCode::KeyB, +// } +// } +// pub fn keyboard3() -> ControlDevice { +// ControlDevice::Keyboard { +// title: "Keyboard 3", +// description: "I / O + K", +// keyboard_id: 42003, +// left: KeyCode::KeyI, +// right: KeyCode::KeyO, +// action: KeyCode::KeyK, +// } +// } +// pub fn keyboard4() -> ControlDevice { +// ControlDevice::Keyboard { +// title: "Keyboard 4", +// description: "T / Y + H", +// keyboard_id: 42004, +// left: KeyCode::KeyT, +// right: KeyCode::KeyY, +// action: KeyCode::KeyH, +// } +// } +// } +// } + +// // Replicate a simple game to show how to go back to the +// // menu screen and show it again +// mod game { +// use super::*; +// pub struct Game; +// impl Plugin for Game { +// fn build(&self, app: &mut App) { +// app.add_systems(OnEnter(GameState::Game), setup_system) +// .add_systems(Update, detect_close_system.run_if(GameState::is_game)); +// // .run(); +// } +// } + +// #[derive(Component)] +// struct GameComponent; + +// fn setup_system(mut commands: Commands, asset_server: Res) { +// commands.spawn( +// Node { +// position_type: PositionType::Absolute, +// top: Val::Px(60.0), +// left: Val::Px(50.0), +// ..default() +// } +// ).with_child(( +// Text("Return Key to go back to menu".into()), +// TextFont { +// font: asset_server.load("font.otf"), +// font_size: 30.0, +// ..Default::default() +// }, +// TextColor::from(Color::WHITE), + +// )) +// .insert(GameComponent); +// } + +// fn detect_close_system( +// mut commands: Commands, +// keyboard_input: Res>, +// mut next_state: ResMut>, +// game_items: Query>, +// ) { +// if keyboard_input.just_pressed(KeyCode::Enter) { +// for entity in game_items.iter() { +// commands.entity(entity).despawn_recursive(); +// } +// next_state.set(GameState::Settings); +// } +// } +// } diff --git a/src/navigation_menu.rs b/src/navigation_menu.rs index 185bf3b..5e0b508 100644 --- a/src/navigation_menu.rs +++ b/src/navigation_menu.rs @@ -52,7 +52,7 @@ where .style .as_ref() .cloned() - .unwrap_or_else(|| Style { + .unwrap_or_else(|| Node { align_items: AlignItems::FlexStart, flex_direction: FlexDirection::Row, padding: UiRect::all(Val::Px(self.stylesheet.vertical_spacing)), @@ -65,11 +65,10 @@ where .unwrap_or_else(|| Color::NONE.into()); commands - .spawn(NodeBundle { + .spawn(( style, background_color, - ..default() - }) + )) .insert(PrimaryMenu) .with_children(|parent| { for entry in self.stack.iter() { diff --git a/src/style.rs b/src/style.rs index 1e82d9d..ce39c92 100644 --- a/src/style.rs +++ b/src/style.rs @@ -3,7 +3,7 @@ //! styles are mostly used to define the looks of menus and the different //! control states of buttons. -use bevy::prelude::*; +use bevy::{prelude::*, text::FontSmoothing}; #[derive(Debug, Clone, Copy)] pub struct ControlState { @@ -15,26 +15,26 @@ impl ControlState { fn clear(fg: Color) -> Self { Self { fg, - bg: Color::rgba(0.0, 0.0, 0.0, 0.0), + bg: Color::srgba(0.0, 0.0, 0.0, 0.0), } } fn normal() -> Self { Self { fg: Color::WHITE, - bg: Color::NAVY, + bg: Color::srgb(0.0, 0.0, 0.5), } } fn hover() -> Self { Self { - fg: Color::YELLOW, - bg: Color::NAVY, + fg: Color::srgb(1.0, 1.0, 0.0), + bg: Color::srgb(0.0, 0.0, 0.5), } } fn selected() -> Self { Self { - fg: Color::NAVY, + fg: Color::srgb(0.0, 0.0, 0.5), bg: Color::WHITE, } } @@ -66,6 +66,7 @@ impl Default for IconStyle { #[derive(Debug, Clone)] pub struct StyleEntry { pub size: f32, + pub smoothing: FontSmoothing, pub margin: UiRect, pub padding: UiRect, pub normal: ControlState, @@ -78,6 +79,7 @@ impl StyleEntry { pub fn button() -> Self { Self { size: 20.0, + smoothing: FontSmoothing::AntiAliased, margin: UiRect::all(Val::Px(5.0)), padding: UiRect::all(Val::Px(5.0)), normal: ControlState::normal(), @@ -88,9 +90,10 @@ impl StyleEntry { } pub fn label() -> Self { - let gray = Color::rgb(0.7, 0.7, 0.7); + let gray = Color::srgb(0.7, 0.7, 0.7); Self { size: 18.0, + smoothing: FontSmoothing::AntiAliased, margin: UiRect::all(Val::Px(5.0)), padding: UiRect::all(Val::Px(5.0)), normal: ControlState::clear(gray), @@ -102,7 +105,8 @@ impl StyleEntry { pub fn headline() -> Self { Self { - size: 24.0, + size: 24.0, + smoothing: FontSmoothing::AntiAliased, margin: UiRect::all(Val::Px(5.0)), padding: UiRect::all(Val::Px(5.0)), normal: ControlState::clear(Color::WHITE), @@ -119,7 +123,7 @@ pub struct Stylesheet { pub label: StyleEntry, pub headline: StyleEntry, pub vertical_spacing: f32, - pub style: Option