diff --git a/Cargo.lock b/Cargo.lock index 45ef6b9..4daca63 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -19,29 +19,81 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c71b1793ee61086797f5c80b6efa2b8ffa6d5dd703f118545808a7f2e27f7046" [[package]] -name = "adler" -version = "1.0.2" +name = "accesskit" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" +checksum = "ca8410747ed85a17c4a1e9ed3f5a74d3e7bdcc876cf9a18ff40ae21d645997b2" [[package]] -name = "ahash" -version = "0.7.7" +name = "accesskit_consumer" +version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a824f2aa7e75a0c98c5a504fceb80649e9c35265d44525b5f94de4771a395cd" +checksum = "8c17cca53c09fbd7288667b22a201274b9becaa27f0b91bf52a526db95de45e6" dependencies = [ - "getrandom", + "accesskit", +] + +[[package]] +name = "accesskit_macos" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd3b6ae1eabbfbced10e840fd3fce8a93ae84f174b3e4ba892ab7bcb42e477a7" +dependencies = [ + "accesskit", + "accesskit_consumer", + "objc2", "once_cell", - "version_check", ] +[[package]] +name = "accesskit_windows" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afcae27ec0974fc7c3b0b318783be89fd1b2e66dd702179fe600166a38ff4a0b" +dependencies = [ + "accesskit", + "accesskit_consumer", + "once_cell", + "paste", + "static_assertions", + "windows 0.48.0", +] + +[[package]] +name = "accesskit_winit" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88e39fcec2e10971e188730b7a76bab60647dacc973d4591855ebebcadfaa738" +dependencies = [ + "accesskit", + "accesskit_macos", + "accesskit_windows", + "winit", +] + +[[package]] +name = "addr2line" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + [[package]] name = "ahash" -version = "0.8.6" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a" +checksum = "77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01" dependencies = [ "cfg-if", + "getrandom", "once_cell", "version_check", "zerocopy", @@ -64,14 +116,14 @@ checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" [[package]] name = "alsa" -version = "0.6.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5915f52fe2cf65e83924d037b6c5290b7cee097c6b5c8700746e6168a343fd6b" +checksum = "e2562ad8dcf0f789f65c6fdaad8a8a9708ed6b488e649da28c01656ad66b8b47" dependencies = [ "alsa-sys", "bitflags 1.3.2", "libc", - "nix 0.23.2", + "nix 0.24.3", ] [[package]] @@ -85,28 +137,34 @@ dependencies = [ ] [[package]] -name = "android-tzdata" -version = "0.1.1" +name = "android-activity" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" +checksum = "64529721f27c2314ced0890ce45e469574a73e5e6fdd6e9da1860eb29285f5e0" +dependencies = [ + "android-properties", + "bitflags 1.3.2", + "cc", + "jni-sys", + "libc", + "log", + "ndk", + "ndk-context", + "ndk-sys", + "num_enum 0.6.1", +] [[package]] -name = "android_log-sys" -version = "0.2.0" +name = "android-properties" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85965b6739a430150bdd138e2374a98af0c3ee0d030b3bb7fc3bddff58d0102e" +checksum = "fc7eb209b1518d6bb87b283c20095f5228ecda460da70b44f0802523dea6da04" [[package]] -name = "android_logger" -version = "0.11.3" +name = "android_log-sys" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8619b80c242aa7bd638b5c7ddd952addeecb71f69c75e33f1d47b2804f8f883a" -dependencies = [ - "android_log-sys", - "env_logger", - "log", - "once_cell", -] +checksum = "5ecc8056bf6ab9892dcd53216c83d1597487d7dacac16c8df6b877d127df9937" [[package]] name = "android_system_properties" @@ -117,12 +175,6 @@ dependencies = [ "libc", ] -[[package]] -name = "anyhow" -version = "1.0.75" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" - [[package]] name = "approx" version = "0.5.1" @@ -132,6 +184,31 @@ dependencies = [ "num-traits", ] +[[package]] +name = "arboard" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aafb29b107435aa276664c1db8954ac27a6e105cdad3c88287a199eb0e313c08" +dependencies = [ + "clipboard-win", + "core-graphics", + "image", + "log", + "objc", + "objc-foundation", + "objc_id", + "parking_lot", + "thiserror", + "winapi", + "x11rb", +] + +[[package]] +name = "arrayref" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" + [[package]] name = "arrayvec" version = "0.7.4" @@ -147,53 +224,97 @@ dependencies = [ "libloading 0.7.4", ] +[[package]] +name = "async-broadcast" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c48ccdbf6ca6b121e0f586cbc0e73ae440e56c67c30fa0873b4e110d9c26d2b" +dependencies = [ + "event-listener 2.5.3", + "futures-core", +] + [[package]] name = "async-channel" version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" dependencies = [ - "concurrent-queue 2.4.0", + "concurrent-queue", "event-listener 2.5.3", "futures-core", ] +[[package]] +name = "async-channel" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ca33f4bc4ed1babef42cad36cc1f51fa88be00420404e5b1e80ab1b18f7678c" +dependencies = [ + "concurrent-queue", + "event-listener 4.0.1", + "event-listener-strategy", + "futures-core", + "pin-project-lite", +] + [[package]] name = "async-executor" version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "17ae5ebefcc48e7452b4987947920dac9450be1110cadf34d1b8c116bdbaf97c" dependencies = [ - "async-lock", + "async-lock 3.2.0", "async-task", - "concurrent-queue 2.4.0", + "concurrent-queue", "fastrand 2.0.1", "futures-lite 2.1.0", "slab", ] +[[package]] +name = "async-fs" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "279cf904654eeebfa37ac9bb1598880884924aab82e290aa65c9e77a0e142e06" +dependencies = [ + "async-lock 2.8.0", + "autocfg", + "blocking", + "futures-lite 1.13.0", +] + +[[package]] +name = "async-lock" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b" +dependencies = [ + "event-listener 2.5.3", +] + [[package]] name = "async-lock" version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7125e42787d53db9dd54261812ef17e937c95a51e4d291373b670342fa44310c" dependencies = [ - "event-listener 4.0.0", + "event-listener 4.0.1", "event-listener-strategy", "pin-project-lite", ] [[package]] name = "async-task" -version = "4.5.0" +version = "4.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4eb2cdb97421e01129ccb49169d8279ed21e829929144f4a22a6e54ac549ca1" +checksum = "e1d90cd0b264dfdd8eb5bad0a2c217c1f88fa96a8573f40e7b12de23fb468f46" [[package]] -name = "atomic_refcell" -version = "0.1.13" +name = "atomic-waker" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41e67cd8309bbd06cd603a9e693a784ac2e5d1e955f11286e355089fcab3047c" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] name = "autocfg" @@ -202,10 +323,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] -name = "base-x" -version = "0.2.11" +name = "backtrace" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cbbc9d0964165b47557570cce6c952866c2678457aca742aafc9fb771d30270" +checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" +dependencies = [ + "addr2line", + "cc", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", +] [[package]] name = "base64" @@ -221,18 +351,71 @@ checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9" [[package]] name = "bevy" -version = "0.9.1" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dae99b246505811f5bc19d2de1e406ec5d2816b421d58fa223779eb576f472c9" +checksum = "e4bc7e09282a82a48d70ade0c4c1154b0fd7882a735a39c66766a5d0f4718ea9" dependencies = [ + "bevy_dylib", "bevy_internal", ] +[[package]] +name = "bevy-inspector-egui" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c3efee9165f9be9c6a180c6a9bbb4bd39ee0a98a594f4cb7127704e15415cdd" +dependencies = [ + "bevy-inspector-egui-derive", + "bevy_app", + "bevy_asset", + "bevy_core", + "bevy_core_pipeline", + "bevy_ecs", + "bevy_egui", + "bevy_hierarchy", + "bevy_log", + "bevy_math", + "bevy_pbr", + "bevy_reflect", + "bevy_render", + "bevy_time", + "bevy_utils", + "bevy_window", + "egui", + "image", + "once_cell", + "pretty-type-name", + "smallvec", +] + +[[package]] +name = "bevy-inspector-egui-derive" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ec77479f56958ed1b2802c3129ebc704d12245627b2d4dae61f11e6ed5c21b1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "bevy_a11y" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68080288c932634f6563d3a8299efe0ddc9ea6787539c4c771ba250d089a94f0" +dependencies = [ + "accesskit", + "bevy_app", + "bevy_derive", + "bevy_ecs", +] + [[package]] name = "bevy_animation" -version = "0.9.1" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d43b8073f299eb60ce9e1d60fa293b348590dd57aca8321d6859d9e7aa57d2da" +checksum = "7aa37683b1281e1ba8cf285644e6e3f0704f14b3901c5ee282067ff7ff6f4a56" dependencies = [ "bevy_app", "bevy_asset", @@ -241,6 +424,7 @@ dependencies = [ "bevy_hierarchy", "bevy_math", "bevy_reflect", + "bevy_render", "bevy_time", "bevy_transform", "bevy_utils", @@ -248,13 +432,14 @@ dependencies = [ [[package]] name = "bevy_app" -version = "0.9.1" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "536e4d0018347478545ed8b6cb6e57b9279ee984868e81b7c0e78e0fb3222e42" +checksum = "d41731817993f92e4363dd3335558e779e290bc71eefc0b5547052b85810907e" dependencies = [ "bevy_derive", "bevy_ecs", "bevy_reflect", + "bevy_tasks", "bevy_utils", "downcast-rs", "wasm-bindgen", @@ -263,25 +448,29 @@ dependencies = [ [[package]] name = "bevy_asset" -version = "0.9.1" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db1bb550168304df69c867c09125e1aae7ff51cf21575396e1598bf293442c4" +checksum = "935984568f75867dd7357133b06f4b1502cd2be55e4642d483ce597e46e63bff" dependencies = [ - "anyhow", + "async-broadcast", + "async-fs", + "async-lock 2.8.0", "bevy_app", - "bevy_diagnostic", + "bevy_asset_macros", "bevy_ecs", "bevy_log", "bevy_reflect", "bevy_tasks", "bevy_utils", + "bevy_winit", + "blake3", "crossbeam-channel", "downcast-rs", - "fastrand 1.9.0", + "futures-io", + "futures-lite 1.13.0", "js-sys", - "ndk-glue", - "notify", "parking_lot", + "ron", "serde", "thiserror", "wasm-bindgen", @@ -289,27 +478,41 @@ dependencies = [ "web-sys", ] +[[package]] +name = "bevy_asset_macros" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f48b9bbe4ec605e4910b5cd1e1a0acbfbe0b80af5f3bcc4489a9fdd1e80058c" +dependencies = [ + "bevy_macro_utils", + "proc-macro2", + "quote", + "syn 2.0.39", +] + [[package]] name = "bevy_audio" -version = "0.9.1" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29a05efc6c23bef37520e44029943c65b7e8a4fe4f5e54cb3f96e63ce0b3d361" +checksum = "18a69889e1bfa4dbac4e641536b94f91c441da55796ad9832e77836b8264688b" dependencies = [ - "anyhow", "bevy_app", "bevy_asset", + "bevy_derive", "bevy_ecs", + "bevy_math", "bevy_reflect", + "bevy_transform", "bevy_utils", - "parking_lot", + "oboe", "rodio", ] [[package]] name = "bevy_core" -version = "0.9.1" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96299aceb3c8362cb4aa39ff81c7ef758a5f4e768d16b5046a91628eff114ac0" +checksum = "3daa24502a14839509f02407bc7e48299fe84d260877de23b60662de0f4f4b6c" dependencies = [ "bevy_app", "bevy_ecs", @@ -322,40 +525,42 @@ dependencies = [ [[package]] name = "bevy_core_pipeline" -version = "0.9.1" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc128a9860aadf16fb343ae427f2768986fd91dce64d945455acda9759c48014" +checksum = "b4b77c4fca6e90edbe2e72da7bc9aa7aed7dfdfded0920ae0a0c845f5e11084a" dependencies = [ "bevy_app", "bevy_asset", + "bevy_core", "bevy_derive", "bevy_ecs", + "bevy_log", "bevy_math", "bevy_reflect", "bevy_render", "bevy_transform", "bevy_utils", - "bitflags 1.3.2", + "bitflags 2.4.1", "radsort", "serde", ] [[package]] name = "bevy_derive" -version = "0.9.1" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7baf73c58d41c353c6fd08e6764a2e7420c9f19e8227b391c50981db6d0282a6" +checksum = "f484318350462c58ba3942a45a656c1fd6b6e484a6b6b7abc3a787ad1a51e500" dependencies = [ "bevy_macro_utils", "quote", - "syn 1.0.109", + "syn 2.0.39", ] [[package]] name = "bevy_diagnostic" -version = "0.9.1" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63bf96ec7980fa25b77ff6c72dfafada477936c0dab76c1edf6c028c0e5fe0e4" +checksum = "fa38ca5967d335cc1006a0e0f1a86c350e2f15fd1878449f61d04cd57a7c4060" dependencies = [ "bevy_app", "bevy_core", @@ -363,15 +568,25 @@ dependencies = [ "bevy_log", "bevy_time", "bevy_utils", + "sysinfo", +] + +[[package]] +name = "bevy_dylib" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45b99001eb4837c78d9c63cc8b32fda61ea96b194a2cda54b569aeee69a9853c" +dependencies = [ + "bevy_internal", ] [[package]] name = "bevy_ecs" -version = "0.9.1" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4c071d7c6bc9801253485e05d0c257284150de755391902746837ba21c0cf74" +checksum = "7709fbd22f81fb681534cd913c41e1cd18b17143368743281195d7f024b61aea" dependencies = [ - "async-channel", + "async-channel 1.9.0", "bevy_ecs_macros", "bevy_ptr", "bevy_reflect", @@ -380,38 +595,42 @@ dependencies = [ "downcast-rs", "event-listener 2.5.3", "fixedbitset", - "fxhash", + "rustc-hash", "serde", + "thiserror", "thread_local", ] [[package]] name = "bevy_ecs_macros" -version = "0.9.1" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c15bd45438eeb681ad74f2d205bb07a5699f98f9524462a30ec764afab2742ce" +checksum = "a8843aa489f159f25cdcd9fee75cd7d221a7098a71eaa72cb2d6b40ac4e3f1ba" dependencies = [ "bevy_macro_utils", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.39", ] [[package]] name = "bevy_egui" -version = "0.19.0" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbb8036050af170243e803eb68e0b5d34f549828a8de92479619fb6dac842f85" +checksum = "c90c01202dbcebc03315a01ea71553b35e1f20b0da6b1cc8c2605344032a3d96" dependencies = [ + "arboard", "bevy", "egui", + "thread_local", + "webbrowser", ] [[package]] name = "bevy_encase_derive" -version = "0.9.1" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "962b6bb0d30e92ec2e6c29837acce9e55b920733a634e7c3c5fd5a514bea7a24" +checksum = "5328a3715e933ebbff07d0e99528dc423c4f7a53590ed1ac19a120348b028990" dependencies = [ "bevy_macro_utils", "encase_derive_impl", @@ -419,24 +638,46 @@ dependencies = [ [[package]] name = "bevy_gilrs" -version = "0.9.1" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4af552dad82f854b2fae24f36a389fd8ee99d65fe86ae876e854e70d53ff16d9" +checksum = "9b81ca2ebf66cbc7f998f1f142b15038ffe3c4ae1d51f70adda26dcf51b0c4ca" dependencies = [ "bevy_app", "bevy_ecs", "bevy_input", + "bevy_log", + "bevy_time", "bevy_utils", "gilrs", + "thiserror", +] + +[[package]] +name = "bevy_gizmos" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db232274ddca2ae452eb2731b98267b795d133ddd14013121bc7daddde1c7491" +dependencies = [ + "bevy_app", + "bevy_asset", + "bevy_core", + "bevy_core_pipeline", + "bevy_ecs", + "bevy_math", + "bevy_pbr", + "bevy_reflect", + "bevy_render", + "bevy_sprite", + "bevy_transform", + "bevy_utils", ] [[package]] name = "bevy_gltf" -version = "0.9.1" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e853e346ba412354e02292c7aa5b9a9dccdfa748e273b1b7ebf8f6a172f89712" +checksum = "85adc6b1fc86687bf67149e0bafaa4d6da432232fa956472d1b37f19121d3ace" dependencies = [ - "anyhow", "base64 0.13.1", "bevy_animation", "bevy_app", @@ -456,14 +697,16 @@ dependencies = [ "bevy_utils", "gltf", "percent-encoding", + "serde", + "serde_json", "thiserror", ] [[package]] name = "bevy_hierarchy" -version = "0.9.1" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8dd6d50c48c6e1bcb5e08a768b765323292bb3bf3a439b992754c57ffb85b23a" +checksum = "06bd477152ce2ae1430f5e0a4f19216e5785c22fee1ab23788b5982dc59d1a55" dependencies = [ "bevy_app", "bevy_core", @@ -476,9 +719,9 @@ dependencies = [ [[package]] name = "bevy_input" -version = "0.9.1" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3378b5171284f4c4c0e8307081718a9fe458f846444616bd82d69110dcabca51" +checksum = "cab9a599189b2a694c182d60cd52219dd9364f9892ff542d87799b8e45d9e6dc" dependencies = [ "bevy_app", "bevy_ecs", @@ -490,10 +733,11 @@ dependencies = [ [[package]] name = "bevy_internal" -version = "0.9.1" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c46014b7e885b1311de06b6039e448454a4db55b8d35464798ba88faa186e11" +checksum = "f124bece9831afd80897815231072d51bfe3ac58c6bb58eca8880963b6d0487c" dependencies = [ + "bevy_a11y", "bevy_animation", "bevy_app", "bevy_asset", @@ -504,6 +748,7 @@ dependencies = [ "bevy_diagnostic", "bevy_ecs", "bevy_gilrs", + "bevy_gizmos", "bevy_gltf", "bevy_hierarchy", "bevy_input", @@ -523,14 +768,13 @@ dependencies = [ "bevy_utils", "bevy_window", "bevy_winit", - "ndk-glue", ] [[package]] name = "bevy_log" -version = "0.9.1" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c480bac54cf4ae76edc3ae9ae3fa7c5e1b385e7f2111ef5ec3fd00cf3a7998b" +checksum = "0dc10ba1d225a8477b9e80a1bf797d8a8b8274e83c9b24fb4d9351aec9229755" dependencies = [ "android_log-sys", "bevy_app", @@ -544,39 +788,41 @@ dependencies = [ [[package]] name = "bevy_macro_utils" -version = "0.9.1" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "022bb69196deeea691b6997414af85bbd7f2b34a8914c4aa7a7ff4dfa44f7677" +checksum = "e566640c6b6dced73d2006c764c2cffebe1a82be4809486c4a5d7b4b50efed4d" dependencies = [ + "proc-macro2", "quote", - "syn 1.0.109", - "toml", + "rustc-hash", + "syn 2.0.39", + "toml_edit 0.20.7", ] [[package]] name = "bevy_math" -version = "0.9.1" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d434c77ab766c806ed9062ef8a7285b3b02b47df51f188d4496199c3ac062eaf" +checksum = "58ddc2b76783939c530178f88e5711a1b01044d7b02db4033e2eb8b43b6cf4ec" dependencies = [ - "glam 0.22.0", + "glam", "serde", ] [[package]] name = "bevy_mikktspace" -version = "0.9.1" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbfb5908d33fd613069be516180b8f138aaaf6e41c36b1fd98c6c29c00c24a13" +checksum = "8ec4962977a746d870170532fc92759e04d3dbcae8b7b82e7ca3bb83b1d75277" dependencies = [ - "glam 0.22.0", + "glam", ] [[package]] name = "bevy_pbr" -version = "0.9.1" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "310b1f260a475d81445623e138e1b7245759a42310bc1f84b550a3f4ff8763bf" +checksum = "520bfd2a898c74f84ea52cfb8eb061f37373ad15e623489d5f75d27ebd6138fe" dependencies = [ "bevy_app", "bevy_asset", @@ -589,33 +835,39 @@ dependencies = [ "bevy_transform", "bevy_utils", "bevy_window", - "bitflags 1.3.2", + "bitflags 2.4.1", "bytemuck", + "fixedbitset", + "naga_oil", "radsort", + "smallvec", + "thread_local", ] [[package]] -name = "bevy_prototype_lyon" -version = "0.7.2" +name = "bevy_ptr" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c063aff10ca720d5cadf9cf669800eff2166f6f28cf7f20648ece1c3bdb2442" -dependencies = [ - "bevy", - "lyon_tessellation", - "svgtypes", -] +checksum = "c77ec20c8fafcdc196508ef5ccb4f0400a8d193cb61f7b14a36ed9a25ad423cf" [[package]] -name = "bevy_ptr" -version = "0.9.1" +name = "bevy_rapier3d" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ec44f7655039546bc5d34d98de877083473f3e9b2b81d560c528d6d74d3eff4" +checksum = "c3f0a2641af76c9eb17da0dcb0fb20cd9d615b93b67be0b85f1867487e956b5a" +dependencies = [ + "bevy", + "bitflags 2.4.1", + "log", + "nalgebra", + "rapier3d", +] [[package]] name = "bevy_reflect" -version = "0.9.1" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6deae303a7f69dc243b2fa35b5e193cc920229f448942080c8eb2dbd9de6d37a" +checksum = "d7921f15fc944c9c8ad01d7dbcea6505b8909c6655cd9382bab1407181556038" dependencies = [ "bevy_math", "bevy_ptr", @@ -623,35 +875,33 @@ dependencies = [ "bevy_utils", "downcast-rs", "erased-serde", - "glam 0.22.0", - "once_cell", - "parking_lot", + "glam", "serde", "smallvec", + "smol_str", "thiserror", ] [[package]] name = "bevy_reflect_derive" -version = "0.9.1" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2bf4cb9cd5acb4193f890f36cb63679f1502e2de025e66a63b194b8b133d018" +checksum = "b4a8c5475f216e751ef4452a1306b00711f33d2d04d9f149e4c845dfeb6753a0" dependencies = [ "bevy_macro_utils", - "bit-set", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.39", "uuid", ] [[package]] name = "bevy_render" -version = "0.9.1" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e3282a8f8779d2aced93207fbed73f740937c6c2bd27bd84f0799b081c7fca5" +checksum = "bdefdd3737125b0d94a6ff20bb70fa8cfe9d7d5dcd72ba4dfe6c5f1d30d9f6e4" dependencies = [ - "anyhow", + "async-channel 1.9.0", "bevy_app", "bevy_asset", "bevy_core", @@ -664,48 +914,51 @@ dependencies = [ "bevy_mikktspace", "bevy_reflect", "bevy_render_macros", + "bevy_tasks", "bevy_time", "bevy_transform", "bevy_utils", "bevy_window", - "bitflags 1.3.2", + "bitflags 2.4.1", + "bytemuck", "codespan-reporting", "downcast-rs", "encase", "futures-lite 1.13.0", - "hex", "hexasphere", "image", - "naga", - "once_cell", - "parking_lot", - "regex", + "js-sys", + "ktx2", + "naga 0.13.0", + "naga_oil", + "ruzstd", "serde", "smallvec", "thiserror", "thread_local", - "wgpu", + "wasm-bindgen", + "web-sys", + "wgpu 0.17.2", ] [[package]] name = "bevy_render_macros" -version = "0.9.1" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7acae697776ac05bea523e1725cf2660c91c53abe72c66782ea1e1b9eedb572" +checksum = "64d86bfc5a1e7fbeeaec0c4ceab18155530f5506624670965db3415f75826bea" dependencies = [ "bevy_macro_utils", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.39", ] [[package]] name = "bevy_scene" -version = "0.9.1" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea9c66a628c833d53bae54fe94cbc0d3f12c29e9d2e6c3f2356d45ad57db0c8c" +checksum = "e7df078b5e406e37c8a1c6ba0d652bf105fde713ce3c3efda7263fe27467eee5" dependencies = [ - "anyhow", "bevy_app", "bevy_asset", "bevy_derive", @@ -723,9 +976,9 @@ dependencies = [ [[package]] name = "bevy_sprite" -version = "0.9.1" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ec01c7db7f698d95bcb70708527c3ae6bcdc78fc247abe74f935cae8f0a1145" +checksum = "c7cc0c9d946e17e3e0aaa202f182837bc796c4f862b2e5a805134f873f21cf7f" dependencies = [ "bevy_app", "bevy_asset", @@ -738,37 +991,36 @@ dependencies = [ "bevy_render", "bevy_transform", "bevy_utils", - "bitflags 1.3.2", + "bitflags 2.4.1", "bytemuck", "fixedbitset", "guillotiere", + "radsort", "rectangle-pack", "thiserror", ] [[package]] name = "bevy_tasks" -version = "0.9.1" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "680b16b53df9c9f24681dd95f4d772d83760bd19adf8bca00f358a3aad997853" +checksum = "f4fefa7fe0da8923525f7500e274f1bd60dbd79918a25cf7d0dfa0a6ba15c1cf" dependencies = [ - "async-channel", + "async-channel 1.9.0", "async-executor", "async-task", - "concurrent-queue 1.2.4", + "concurrent-queue", "futures-lite 1.13.0", - "once_cell", "wasm-bindgen-futures", ] [[package]] name = "bevy_text" -version = "0.9.1" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60c74c1bdaabde7db28f6728aa13bc7b1d744a2201b2bbfd83d2224404c57f5c" +checksum = "3a9a79d49ca06170d69149949b134c14e8b99ace1444c1ca2cd4743b19d5b055" dependencies = [ "ab_glyph", - "anyhow", "bevy_app", "bevy_asset", "bevy_ecs", @@ -786,36 +1038,39 @@ dependencies = [ [[package]] name = "bevy_time" -version = "0.9.1" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a5c38a6d3ea929c7f81e6adf5a6c62cf7e8c40f5106c2174d6057e9d8ea624d" +checksum = "e6250d76eed3077128b6a3d004f9f198b01107800b9824051e32bb658054e837" dependencies = [ "bevy_app", "bevy_ecs", "bevy_reflect", "bevy_utils", "crossbeam-channel", + "thiserror", ] [[package]] name = "bevy_transform" -version = "0.9.1" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba13c57a040b89767191a6f6d720a635b7792793628bfa41a9e38b7026484aec" +checksum = "d541e0c292edbd96afae816ee680e02247422423ccd5dc635c1e211a20ed64be" dependencies = [ "bevy_app", "bevy_ecs", "bevy_hierarchy", "bevy_math", "bevy_reflect", + "thiserror", ] [[package]] name = "bevy_ui" -version = "0.9.1" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60e82ace6156f11fcdf2319102ff8fb8367b82d1e32b7d05d387a1963602f965" +checksum = "d785e3b75dabcb2a8ad0d50933f8f3446d59e512cabc2d2a145e28c2bb8792ba" dependencies = [ + "bevy_a11y", "bevy_app", "bevy_asset", "bevy_core_pipeline", @@ -841,48 +1096,69 @@ dependencies = [ [[package]] name = "bevy_utils" -version = "0.9.1" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16750aae52cd35bd7b60eb61cee883420b250e11b4a290b8d44b2b2941795739" +checksum = "7915222f4a08ccc782e08d10b751b42e5f9d786e697d0cb3fd09333cb7e8b6ea" dependencies = [ - "ahash 0.7.7", + "ahash", + "bevy_utils_proc_macros", "getrandom", - "hashbrown 0.12.3", + "hashbrown 0.14.3", "instant", + "nonmax", + "petgraph", + "thiserror", "tracing", "uuid", ] +[[package]] +name = "bevy_utils_proc_macros" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7aafecc952b6b8eb1a93c12590bd867d25df2f4ae1033a01dfdfc3c35ebccfff" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + [[package]] name = "bevy_window" -version = "0.9.1" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a44d3f3bd54a2261f4f57f614bf7bccc8d2832761493c0cd7dab81d98cc151e" +checksum = "41ee72bf7f974000e9b31bb971a89387f1432ba9413f35c4fef59fef49767260" dependencies = [ + "bevy_a11y", "bevy_app", "bevy_ecs", "bevy_input", "bevy_math", "bevy_reflect", "bevy_utils", - "raw-window-handle 0.5.2", + "raw-window-handle", ] [[package]] name = "bevy_winit" -version = "0.9.1" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7b7e647ecd0b3577468da37767dcdd7c26ca9f80da0060b2ec4c77336b6d2e1" +checksum = "1eb71f287eca9006dda998784c7b931e400ae2cc4c505da315882a8b082f21ad" dependencies = [ + "accesskit_winit", "approx", + "bevy_a11y", "bevy_app", + "bevy_derive", "bevy_ecs", + "bevy_hierarchy", "bevy_input", "bevy_math", + "bevy_tasks", "bevy_utils", "bevy_window", "crossbeam-channel", - "raw-window-handle 0.5.2", + "raw-window-handle", "wasm-bindgen", "web-sys", "winit", @@ -938,12 +1214,60 @@ dependencies = [ "serde", ] +[[package]] +name = "blake3" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0231f06152bf547e9c2b5194f247cd97aacf6dcd8b15d8e5ec0663f64580da87" +dependencies = [ + "arrayref", + "arrayvec", + "cc", + "cfg-if", + "constant_time_eq", +] + [[package]] name = "block" 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", +] + +[[package]] +name = "block2" +version = "0.2.0-alpha.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8dd9e63c1744f755c2f60332b88de39d341e5e86239014ad839bd71c106dec42" +dependencies = [ + "block-sys", + "objc2-encode", +] + +[[package]] +name = "blocking" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118" +dependencies = [ + "async-channel 2.1.1", + "async-lock 3.2.0", + "async-task", + "fastrand 2.0.1", + "futures-io", + "futures-lite 2.1.0", + "piper", + "tracing", +] + [[package]] name = "bumpalo" version = "3.14.0" @@ -982,18 +1306,6 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" -[[package]] -name = "cache-padded" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "981520c98f422fcc584dc1a95c334e6953900b9106bc47a9839b81790009eb21" - -[[package]] -name = "cassowary" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53" - [[package]] name = "cc" version = "1.0.83" @@ -1031,77 +1343,40 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" -[[package]] -name = "chrono" -version = "0.4.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" -dependencies = [ - "android-tzdata", - "iana-time-zone", - "js-sys", - "num-traits", - "wasm-bindgen", - "windows-targets 0.48.5", -] - [[package]] name = "clang-sys" -version = "1.6.1" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c688fc74432808e3eb684cae8830a86be1d66a2bd58e1f248ed0960a590baf6f" +checksum = "67523a3b4be3ce1989d607a828d036249522dd9c1c8de7f4dd2dae43a37369d1" dependencies = [ "glob", "libc", - "libloading 0.7.4", -] - -[[package]] -name = "clocss-abm" -version = "0.1.0" -dependencies = [ - "hifitime", - "krabmaga", - "uom", -] - -[[package]] -name = "cmake" -version = "0.1.50" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a31c789563b815f77f4250caee12365734369f942439b7defd71e18a48197130" -dependencies = [ - "cc", + "libloading 0.8.1", ] [[package]] -name = "cocoa" -version = "0.24.1" +name = "clipboard-win" +version = "4.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f425db7937052c684daec3bd6375c8abe2d146dca4b8b143d6db777c39138f3a" +checksum = "7191c27c2357d9b7ef96baac1773290d4ca63b24205b82a3fd8a0637afcf0362" dependencies = [ - "bitflags 1.3.2", - "block", - "cocoa-foundation", - "core-foundation", - "core-graphics", - "foreign-types", - "libc", - "objc", + "error-code", + "str-buf", + "winapi", ] [[package]] -name = "cocoa-foundation" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c6234cbb2e4c785b456c0644748b1ac416dd045799740356f8363dfe00c93f7" +name = "clocss-abm" +version = "0.1.0" dependencies = [ - "bitflags 1.3.2", - "block", - "core-foundation", - "core-graphics-types", - "libc", - "objc", + "bevy", + "bevy-inspector-egui", + "bevy_egui", + "bevy_rapier3d", + "hifitime", + "particular", + "rand", + "uuid", ] [[package]] @@ -1120,6 +1395,12 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" +[[package]] +name = "com-rs" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf43edc576402991846b093a7ca18a3477e0ef9c588cde84964b5d3e43016642" + [[package]] name = "combine" version = "4.6.6" @@ -1130,15 +1411,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "concurrent-queue" -version = "1.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af4780a44ab5696ea9e28294517f1fffb421a83a25af521333c838635509db9c" -dependencies = [ - "cache-padded", -] - [[package]] name = "concurrent-queue" version = "2.4.0" @@ -1148,18 +1420,6 @@ dependencies = [ "crossbeam-utils", ] -[[package]] -name = "console" -version = "0.15.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c926e00cc70edefdc64d3a5ff31cc65bb97a3460097762bd23afb4d8145fccf8" -dependencies = [ - "encode_unicode", - "lazy_static", - "libc", - "windows-sys 0.45.0", -] - [[package]] name = "console_error_panic_hook" version = "0.1.7" @@ -1171,16 +1431,31 @@ dependencies = [ ] [[package]] -name = "const-cstr" +name = "const_panic" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6051f239ecec86fde3410901ab7860d458d160371533842974fc61f96d15879b" + +[[package]] +name = "const_soft_float" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87ca1caa64ef4ed453e68bb3db612e51cf1b2f5b871337f0fcab1c8f87cc3dff" + +[[package]] +name = "constant_time_eq" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed3d0b5ff30645a68f35ece8cea4556ca14ef8a1651455f789a099a0513532a6" +checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" [[package]] -name = "const_panic" -version = "0.2.8" +name = "constgebra" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6051f239ecec86fde3410901ab7860d458d160371533842974fc61f96d15879b" +checksum = "edd23e864550e6dafc1e41ac78ce4f1ccddc8672b40c403524a04ff3f0518420" +dependencies = [ + "const_soft_float", +] [[package]] name = "core-foundation" @@ -1207,7 +1482,7 @@ dependencies = [ "bitflags 1.3.2", "core-foundation", "core-graphics-types", - "foreign-types", + "foreign-types 0.3.2", "libc", ] @@ -1222,25 +1497,14 @@ dependencies = [ "libc", ] -[[package]] -name = "core-text" -version = "19.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99d74ada66e07c1cefa18f8abfba765b486f250de2e4a999e5727fc0dd4b4a25" -dependencies = [ - "core-foundation", - "core-graphics", - "foreign-types", - "libc", -] - [[package]] name = "coreaudio-rs" -version = "0.10.0" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11894b20ebfe1ff903cbdc52259693389eea03b94918a2def2c30c3bf227ad88" +checksum = "321077172d79c662f64f5071a03120748d5bb652f5231570141be24cfcd2bace" dependencies = [ "bitflags 1.3.2", + "core-foundation-sys", "coreaudio-sys", ] @@ -1255,27 +1519,27 @@ dependencies = [ [[package]] name = "cpal" -version = "0.14.2" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f342c1b63e185e9953584ff2199726bf53850d96610a310e3aca09e9405a2d0b" +checksum = "6d959d90e938c5493000514b446987c07aed46c668faaa7d34d6c7a67b1a578c" dependencies = [ "alsa", "core-foundation-sys", "coreaudio-rs", - "jni", + "dasp_sample", + "jni 0.19.0", "js-sys", "libc", - "mach", - "ndk 0.7.0", + "mach2", + "ndk", "ndk-context", "oboe", "once_cell", "parking_lot", - "stdweb", - "thiserror", "wasm-bindgen", + "wasm-bindgen-futures", "web-sys", - "windows 0.37.0", + "windows 0.46.0", ] [[package]] @@ -1288,105 +1552,75 @@ dependencies = [ ] [[package]] -name = "crossbeam-channel" -version = "0.5.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200" -dependencies = [ - "cfg-if", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-deque" +name = "crossbeam" version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" +checksum = "6eb9105919ca8e40d437fc9cbb8f1975d916f1bd28afe795a48aae32a2cc8920" dependencies = [ "cfg-if", + "crossbeam-channel", + "crossbeam-deque", "crossbeam-epoch", + "crossbeam-queue", "crossbeam-utils", ] [[package]] -name = "crossbeam-epoch" -version = "0.9.15" +name = "crossbeam-channel" +version = "0.5.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7" +checksum = "82a9b73a36529d9c47029b9fb3a6f0ea3cc916a261195352ba19e770fc1748b2" dependencies = [ - "autocfg", "cfg-if", "crossbeam-utils", - "memoffset 0.9.0", - "scopeguard", ] [[package]] -name = "crossbeam-utils" -version = "0.8.16" +name = "crossbeam-deque" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" +checksum = "fca89a0e215bab21874660c67903c5f143333cab1da83d041c7ded6053774751" dependencies = [ "cfg-if", + "crossbeam-epoch", + "crossbeam-utils", ] [[package]] -name = "crossterm" -version = "0.23.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2102ea4f781910f8a5b98dd061f4c2023f479ce7bb1236330099ceb5a93cf17" -dependencies = [ - "bitflags 1.3.2", - "crossterm_winapi", - "libc", - "mio", - "parking_lot", - "signal-hook", - "signal-hook-mio", - "winapi", -] - -[[package]] -name = "crossterm_winapi" -version = "0.9.1" +name = "crossbeam-epoch" +version = "0.9.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b" +checksum = "0e3681d554572a651dda4186cd47240627c3d0114d45a95f6ad27f2f22e7548d" dependencies = [ - "winapi", + "autocfg", + "cfg-if", + "crossbeam-utils", ] [[package]] -name = "csv" -version = "1.3.0" +name = "crossbeam-queue" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac574ff4d437a7b5ad237ef331c17ccca63c46479e5b5453eb8e10bb99a759fe" +checksum = "adc6598521bb5a83d491e8c1fe51db7296019d2ca3cb93cc6c2a20369a4d78a2" dependencies = [ - "csv-core", - "itoa", - "ryu", - "serde", + "cfg-if", + "crossbeam-utils", ] [[package]] -name = "csv-core" -version = "0.1.11" +name = "crossbeam-utils" +version = "0.8.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5efa2b3d7902f4b634a20cae3c9c4e6209dc4779feb6863329607560143efa70" +checksum = "c3a430a770ebd84726f584a90ee7f020d28db52c6d02138900f22341f866d39c" dependencies = [ - "memchr", + "cfg-if", ] -[[package]] -name = "cty" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b365fabc795046672053e29c954733ec3b05e4be654ab130fe8f1f94d7051f35" - [[package]] name = "d3d12" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "827914e1f53b1e0e025ecd3d967a7836b7bcb54520f90e21ef8df7b4d88a2759" +checksum = "d8f0de2f5a8e7bd4a9eec0e3c781992a4ce1724f68aec7d7a3715344de8b39da" dependencies = [ "bitflags 1.3.2", "libloading 0.7.4", @@ -1394,122 +1628,56 @@ dependencies = [ ] [[package]] -name = "darling" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c" -dependencies = [ - "darling_core", - "darling_macro", -] - -[[package]] -name = "darling_core" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim", - "syn 1.0.109", -] - -[[package]] -name = "darling_macro" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" -dependencies = [ - "darling_core", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "dirs-next" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" -dependencies = [ - "cfg-if", - "dirs-sys-next", -] - -[[package]] -name = "dirs-sys-next" -version = "0.1.2" +name = "d3d12" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" +checksum = "e16e44ab292b1dddfdaf7be62cfd8877df52f2f3fde5858d95bab606be259f20" dependencies = [ - "libc", - "redox_users", + "bitflags 2.4.1", + "libloading 0.8.1", "winapi", ] [[package]] -name = "discard" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "212d0f5754cb6769937f4501cc0e67f4f4483c8d2c3e1e922ee9edbe4ab4c7c0" - -[[package]] -name = "dispatch" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" - -[[package]] -name = "dlib" -version = "0.5.2" +name = "dasp_sample" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412" -dependencies = [ - "libloading 0.8.1", -] +checksum = "0c87e182de0887fd5361989c677c4e8f5000cd9491d6d563161a8f3a5519fc7f" [[package]] -name = "downcast-rs" -version = "1.2.0" +name = "data-encoding" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" +checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5" -[[package]] -name = "dwrote" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439a1c2ba5611ad3ed731280541d36d2e9c4ac5e7fb818a27b604bdc5a6aa65b" -dependencies = [ - "lazy_static", - "libc", - "winapi", - "wio", -] +[[package]] +name = "dispatch" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" [[package]] -name = "dyn-clone" -version = "1.0.16" +name = "downcast-rs" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "545b22097d44f8a9581187cdf93de7a71e4722bf51200cfaba810865b49a495d" +checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" [[package]] name = "ecolor" -version = "0.20.0" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b601108bca3af7650440ace4ca55b2daf52c36f2635be3587d77b16efd8d0691" +checksum = "4b7637fc2e74d17e52931bac90ff4fc061ac776ada9c7fa272f24cdca5991972" dependencies = [ "bytemuck", ] [[package]] name = "egui" -version = "0.20.1" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65a5e883a316e53866977450eecfbcac9c48109c2ab3394af29feb83fcde4ea9" +checksum = "c55bcb864b764eb889515a38b8924757657a250738ad15126637ee2df291ee6b" dependencies = [ - "ahash 0.8.6", + "ahash", "epaint", "nohash-hasher", ] @@ -1522,70 +1690,53 @@ checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" [[package]] name = "emath" -version = "0.20.0" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5277249c8c3430e7127e4f2c40a77485e7baf11ae132ce9b3253a8ed710df0a0" +checksum = "a045c6c0b44b35e98513fc1e9d183ab42881ac27caccb9fa345465601f56cce4" dependencies = [ "bytemuck", ] [[package]] name = "encase" -version = "0.4.1" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48ec50086547d597b5c871a78399ec04a14828a6a5c445a61ed4687c540edec6" +checksum = "8fce2eeef77fd4a293a54b62aa00ac9daebfbcda4bf8998c5a815635b004aa1c" dependencies = [ "const_panic", "encase_derive", - "glam 0.22.0", + "glam", "thiserror", ] [[package]] name = "encase_derive" -version = "0.4.1" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dda93e9714c7683c474f49a461a2ae329471d2bda43c4302d41c6d8339579e92" +checksum = "0e520cde08cbf4f7cc097f61573ec06ce467019803de8ae82fb2823fa1554a0e" dependencies = [ "encase_derive_impl", ] [[package]] name = "encase_derive_impl" -version = "0.4.1" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec27b639e942eb0297513b81cc6d87c50f6c77dc8c37af00a39ed5db3b9657ee" +checksum = "3fe2568f851fd6144a45fa91cfed8fe5ca8fc0b56ba6797bfc1ed2771b90e37c" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", -] - -[[package]] -name = "encode_unicode" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" - -[[package]] -name = "env_logger" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95b3f3e67048839cb0d0781f445682a35113da7121f7c949db0e2be96a4fbece" -dependencies = [ - "log", - "regex", + "syn 2.0.39", ] [[package]] name = "epaint" -version = "0.20.0" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de14b65fe5e423e0058f77a8beb2c863b056d0566d6c4ce0d097aa5814cb705a" +checksum = "7d1b9e000d21bab9b535ce78f9f7745be28b3f777f6c7223936561c5c7fefab8" dependencies = [ "ab_glyph", - "ahash 0.8.6", - "atomic_refcell", + "ahash", "bytemuck", "ecolor", "emath", @@ -1608,6 +1759,16 @@ dependencies = [ "serde", ] +[[package]] +name = "error-code" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64f18991e7bf11e7ffee451b5318b5c1a73c52d0d0ada6e5a3017c8c1ced6a21" +dependencies = [ + "libc", + "str-buf", +] + [[package]] name = "euclid" version = "0.22.9" @@ -1625,11 +1786,11 @@ checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" [[package]] name = "event-listener" -version = "4.0.0" +version = "4.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "770d968249b5d99410d61f5bf89057f3199a077a04d087092f58e7d10692baae" +checksum = "84f2cdcf274580f2d63697192d744727b3198894b1bf02923643bf59e2c26712" dependencies = [ - "concurrent-queue 2.4.0", + "concurrent-queue", "parking", "pin-project-lite", ] @@ -1640,7 +1801,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3" dependencies = [ - "event-listener 4.0.0", + "event-listener 4.0.1", "pin-project-lite", ] @@ -1661,25 +1822,13 @@ checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" [[package]] name = "fdeflate" -version = "0.3.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64d6dafc854908ff5da46ff3f8f473c6984119a2876a383a860246dd7841a868" +checksum = "209098dd6dfc4445aa6111f0e98653ac323eaa4dfd212c9ca3931bf9955c31bd" dependencies = [ "simd-adler32", ] -[[package]] -name = "filetime" -version = "0.2.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall", - "windows-sys 0.52.0", -] - [[package]] name = "fixedbitset" version = "0.4.2" @@ -1696,18 +1845,6 @@ dependencies = [ "miniz_oxide", ] -[[package]] -name = "float-ord" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bad48618fdb549078c333a7a8528acb57af271d0433bdecd523eb620628364e" - -[[package]] -name = "float_next_after" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bf7cc16383c4b8d58b9905a8509f02926ce3058053c056376248d958c9df1e8" - [[package]] name = "fnv" version = "1.0.7" @@ -1715,86 +1852,67 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] -name = "font-kit" -version = "0.11.0" +name = "foreign-types" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21fe28504d371085fae9ac7a3450f0b289ab71e07c8e57baa3fb68b9e57d6ce5" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" dependencies = [ - "bitflags 1.3.2", - "byteorder", - "core-foundation", - "core-graphics", - "core-text", - "dirs-next", - "dwrote", - "float-ord", - "freetype", - "lazy_static", - "libc", - "log", - "pathfinder_geometry", - "pathfinder_simd", - "walkdir", - "winapi", - "yeslogic-fontconfig-sys", + "foreign-types-shared 0.1.1", ] [[package]] name = "foreign-types" -version = "0.3.2" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" dependencies = [ - "foreign-types-shared", + "foreign-types-macros", + "foreign-types-shared 0.3.1", ] [[package]] -name = "foreign-types-shared" -version = "0.1.1" +name = "foreign-types-macros" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" +checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] [[package]] -name = "freetype" -version = "0.7.0" +name = "foreign-types-shared" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bee38378a9e3db1cc693b4f88d166ae375338a0ff75cb8263e1c601d51f35dc6" -dependencies = [ - "freetype-sys", - "libc", -] +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] -name = "freetype-sys" -version = "0.13.1" +name = "foreign-types-shared" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a37d4011c0cc628dfa766fcc195454f4b068d7afdc2adfd28861191d866e731a" -dependencies = [ - "cmake", - "libc", - "pkg-config", -] +checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" [[package]] -name = "fsevent-sys" -version = "4.1.0" +name = "form_urlencoded" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76ee7a02da4d231650c7cea31349b889be2f45ddb3ef3032d2ec8185f6313fd2" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" dependencies = [ - "libc", + "percent-encoding", ] [[package]] name = "futures-core" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c" +checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" [[package]] name = "futures-io" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa" +checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" [[package]] name = "futures-lite" @@ -1825,12 +1943,13 @@ dependencies = [ ] [[package]] -name = "fxhash" -version = "0.2.1" +name = "gethostname" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +checksum = "bb65d4ba3173c56a500b555b532f72c42e8d1fe64962b518897f8959fae2c177" dependencies = [ - "byteorder", + "libc", + "winapi", ] [[package]] @@ -1846,16 +1965,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "gif" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80792593675e051cf94a4b111980da2ba60d4a83e43e0048c5693baab3977045" -dependencies = [ - "color_quant", - "weezl", -] - [[package]] name = "gilrs" version = "0.10.4" @@ -1871,12 +1980,12 @@ dependencies = [ [[package]] name = "gilrs-core" -version = "0.5.9" +version = "0.5.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "178769da179a47b187837d1ab2b5b9b684a21180166a77a4ca37e7e58ee3833d" +checksum = "0af1827b7dd2f36d740ae804c1b3ea0d64c12533fb61ff91883005143a0e8c5a" dependencies = [ "core-foundation", - "inotify 0.10.2", + "inotify", "io-kit-sys", "js-sys", "libc", @@ -1887,25 +1996,25 @@ dependencies = [ "vec_map", "wasm-bindgen", "web-sys", - "windows 0.51.1", + "windows 0.52.0", ] +[[package]] +name = "gimli" +version = "0.28.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" + [[package]] name = "glam" -version = "0.22.0" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12f597d56c1bd55a811a1be189459e8fad2bbc272616375602443bdfb37fa774" +checksum = "b5418c17512bdf42730f9032c74e1ae39afc408745ebb2acf72fbc4691c17945" dependencies = [ "bytemuck", "serde", ] -[[package]] -name = "glam" -version = "0.23.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e4afd9ad95555081e109fe1d21f2a30c691b5f0919c67dfa690a2e1eb6bd51c" - [[package]] name = "glob" version = "0.3.1" @@ -1914,9 +2023,9 @@ checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" [[package]] name = "glow" -version = "0.11.2" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8bd5877156a19b8ac83a29b2306fe20537429d318f3ff0a1a2119f8d9c61919" +checksum = "ca0fe580e4b60a8ab24a868bc08e2f03cbcb20d3d676601fa909386713333728" dependencies = [ "js-sys", "slotmap", @@ -1926,20 +2035,21 @@ dependencies = [ [[package]] name = "gltf" -version = "1.3.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad2dcfb6dd7a66f9eb3d181a29dcfb22d146b0bcdc2e1ed1713cbf03939a88ea" +checksum = "3b78f069cf941075835822953c345b9e1edd67ae347b81ace3aea9de38c2ef33" dependencies = [ "byteorder", "gltf-json", "lazy_static", + "serde_json", ] [[package]] name = "gltf-derive" -version = "1.3.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2cbcea5dd47e7ad4e9ee6f040384fcd7204bbf671aa4f9e7ca7dfc9bfa1de20" +checksum = "438ffe1a5540d75403feaf23636b164e816e93f6f03131674722b3886ce32a57" dependencies = [ "inflections", "proc-macro2", @@ -1949,9 +2059,9 @@ dependencies = [ [[package]] name = "gltf-json" -version = "1.3.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d5b810806b78dde4b71a95cc0e6fdcab34c4c617da3574df166f9987be97d03" +checksum = "655951ba557f2bc69ea4b0799446bae281fa78efae6319968bdd2c3e9a06d8e1" dependencies = [ "gltf-derive", "serde", @@ -1977,7 +2087,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "22beaafc29b38204457ea030f6fb7a84c9e4dd1b86e311ba0542533453d87f62" dependencies = [ "bitflags 1.3.2", - "gpu-alloc-types", + "gpu-alloc-types 0.2.0", +] + +[[package]] +name = "gpu-alloc" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbcd2dba93594b227a1f57ee09b8b9da8892c34d55aa332e034a228d0fe6a171" +dependencies = [ + "bitflags 2.4.1", + "gpu-alloc-types 0.3.0", ] [[package]] @@ -1989,6 +2109,28 @@ dependencies = [ "bitflags 1.3.2", ] +[[package]] +name = "gpu-alloc-types" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98ff03b468aa837d70984d55f5d3f846f6ec31fe34bbb97c4f85219caeee1ca4" +dependencies = [ + "bitflags 2.4.1", +] + +[[package]] +name = "gpu-allocator" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce95f9e2e11c2c6fadfce42b5af60005db06576f231f5c92550fdded43c423e8" +dependencies = [ + "backtrace", + "log", + "thiserror", + "winapi", + "windows 0.44.0", +] + [[package]] name = "gpu-descriptor" version = "0.2.4" @@ -2009,6 +2151,12 @@ dependencies = [ "bitflags 2.4.1", ] +[[package]] +name = "grid" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eec1c01eb1de97451ee0d60de7d81cf1e72aabefb021616027f3d1c3ec1c723c" + [[package]] name = "guillotiere" version = "0.6.2" @@ -2019,35 +2167,11 @@ dependencies = [ "svg_fmt", ] -[[package]] -name = "hash32" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0c35f58762feb77d74ebe43bdbc3210f09be9fe6742234d573bacc26ed92b67" -dependencies = [ - "byteorder", -] - -[[package]] -name = "hash32-derive" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59d2aba832b60be25c1b169146b27c64115470981b128ed84c8db18c1b03c6ff" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "hashbrown" version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" -dependencies = [ - "ahash 0.7.7", - "serde", -] [[package]] name = "hashbrown" @@ -2055,30 +2179,34 @@ version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" dependencies = [ - "ahash 0.8.6", + "ahash", "allocator-api2", + "serde", ] [[package]] -name = "hermit-abi" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" - -[[package]] -name = "hex" -version = "0.4.3" +name = "hassle-rs" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +checksum = "1397650ee315e8891a0df210707f0fc61771b0cc518c3023896064c5407cb3b0" +dependencies = [ + "bitflags 1.3.2", + "com-rs", + "libc", + "libloading 0.7.4", + "thiserror", + "widestring", + "winapi", +] [[package]] name = "hexasphere" -version = "8.1.0" +version = "9.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd41d443f978bfa380a6dad58b62a08c43bcb960631f13e9d015b911eaf73588" +checksum = "7cb3df16a7bcb1b5bc092abd55e14f77ca70aea14445026e264586fc62889a10" dependencies = [ - "glam 0.23.0", - "once_cell", + "constgebra", + "glam", ] [[package]] @@ -2100,34 +2228,24 @@ dependencies = [ ] [[package]] -name = "iana-time-zone" -version = "0.1.58" +name = "home" +version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20" +checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" dependencies = [ - "android_system_properties", - "core-foundation-sys", - "iana-time-zone-haiku", - "js-sys", - "wasm-bindgen", - "windows-core", + "windows-sys 0.52.0", ] [[package]] -name = "iana-time-zone-haiku" -version = "0.1.2" +name = "idna" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" dependencies = [ - "cc", + "unicode-bidi", + "unicode-normalization", ] -[[package]] -name = "ident_case" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" - [[package]] name = "image" version = "0.24.7" @@ -2137,10 +2255,10 @@ dependencies = [ "bytemuck", "byteorder", "color_quant", - "jpeg-decoder", "num-rational", "num-traits", "png", + "tiff", ] [[package]] @@ -2151,6 +2269,7 @@ checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" dependencies = [ "autocfg", "hashbrown 0.12.3", + "serde", ] [[package]] @@ -2163,35 +2282,12 @@ dependencies = [ "hashbrown 0.14.3", ] -[[package]] -name = "indicatif" -version = "0.16.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d207dc617c7a380ab07ff572a6e52fa202a2a8f355860ac9c38e23f8196be1b" -dependencies = [ - "console", - "lazy_static", - "number_prefix", - "regex", -] - [[package]] name = "inflections" version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a257582fdcde896fd96463bf2d40eefea0580021c0712a0e2b028b60b47a837a" -[[package]] -name = "inotify" -version = "0.9.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8069d3ec154eb856955c1c0fbffefbf5f3c40a104ec912d4797314c1801abff" -dependencies = [ - "bitflags 1.3.2", - "inotify-sys", - "libc", -] - [[package]] name = "inotify" version = "0.10.2" @@ -2244,14 +2340,44 @@ checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" name = "jni" version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6df18c2e3db7e453d3c6ac5b3e9d5182664d28788126d39b91f2d1e22b017ec" +checksum = "c6df18c2e3db7e453d3c6ac5b3e9d5182664d28788126d39b91f2d1e22b017ec" +dependencies = [ + "cesu8", + "combine", + "jni-sys", + "log", + "thiserror", + "walkdir", +] + +[[package]] +name = "jni" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "039022cdf4d7b1cf548d31f60ae783138e5fd42013f6271049d7df7afadef96c" +dependencies = [ + "cesu8", + "combine", + "jni-sys", + "log", + "thiserror", + "walkdir", +] + +[[package]] +name = "jni" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" dependencies = [ "cesu8", + "cfg-if", "combine", "jni-sys", "log", "thiserror", "walkdir", + "windows-sys 0.45.0", ] [[package]] @@ -2296,54 +2422,12 @@ dependencies = [ ] [[package]] -name = "kqueue" -version = "1.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7447f1ca1b7b563588a205fe93dea8df60fd981423a768bc1c0ded35ed147d0c" -dependencies = [ - "kqueue-sys", - "libc", -] - -[[package]] -name = "kqueue-sys" -version = "1.0.4" +name = "ktx2" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed9625ffda8729b85e45cf04090035ac368927b8cebc34898e7c120f52e4838b" +checksum = "87d65e08a9ec02e409d27a0139eaa6b9756b4d81fe7cde71f6941a83730ce838" dependencies = [ "bitflags 1.3.2", - "libc", -] - -[[package]] -name = "krabmaga" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16e88d9506ba99ec6182ab963a7d73812b9aef111d4b13301879d708b900b6ef" -dependencies = [ - "ahash 0.7.7", - "bevy", - "bevy_egui", - "bevy_prototype_lyon", - "cfg-if", - "chrono", - "crossterm", - "csv", - "downcast-rs", - "dyn-clone", - "getrandom", - "hashbrown 0.12.3", - "image", - "indicatif", - "lazy_static", - "num_cpus", - "plotters", - "priority-queue", - "rand", - "rand_pcg", - "rayon", - "sysinfo", - "tui", ] [[package]] @@ -2444,13 +2528,13 @@ checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" [[package]] name = "libredox" -version = "0.0.1" +version = "0.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8" +checksum = "3af92c55d7d839293953fcd0fda5ecfe93297cfde6ffbdec13b41d99c0ba6607" dependencies = [ "bitflags 2.4.1", "libc", - "redox_syscall", + "redox_syscall 0.4.1", ] [[package]] @@ -2479,52 +2563,11 @@ version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" -[[package]] -name = "lyon_geom" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74df1ff0a0147282eb10699537a03baa7d31972b58984a1d44ce0624043fe8ad" -dependencies = [ - "arrayvec", - "euclid", - "num-traits", -] - -[[package]] -name = "lyon_path" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca507745ba7ccbc76e5c44e7b63b1a29d2b0d6126f375806a5bbaf657c7d6c45" -dependencies = [ - "lyon_geom", - "num-traits", -] - -[[package]] -name = "lyon_tessellation" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f5bcf02928361d18e6edb8ad3bc5b93cba8aa57e2508deb072c2d2ade8bbd0d" -dependencies = [ - "float_next_after", - "lyon_path", - "thiserror", -] - -[[package]] -name = "mach" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa" -dependencies = [ - "libc", -] - [[package]] name = "mach2" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d0d1830bcd151a6fc4aea1369af235b36c1528fe976b8ff678683c9995eade8" +checksum = "19b955cdeb2a02b9117f121ce63aa52d08ade45de53e48fe6a38b39c10f6f709" dependencies = [ "libc", ] @@ -2547,6 +2590,16 @@ dependencies = [ "regex-automata 0.1.10", ] +[[package]] +name = "matrixmultiply" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7574c1cf36da4798ab73da5b215bbf444f50718207754cb522201d78d1cd0ff2" +dependencies = [ + "autocfg", + "rawpointer", +] + [[package]] name = "memchr" version = "2.6.4" @@ -2555,34 +2608,40 @@ checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" [[package]] name = "memoffset" -version = "0.6.5" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" +checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" dependencies = [ "autocfg", ] [[package]] -name = "memoffset" -version = "0.9.0" +name = "metal" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" +checksum = "de11355d1f6781482d027a3b4d4de7825dcedb197bf573e0596d00008402d060" dependencies = [ - "autocfg", + "bitflags 1.3.2", + "block", + "core-graphics-types", + "foreign-types 0.3.2", + "log", + "objc", ] [[package]] name = "metal" -version = "0.24.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de11355d1f6781482d027a3b4d4de7825dcedb197bf573e0596d00008402d060" +checksum = "623b5e6cefd76e58f774bd3cc0c6f5c7615c58c03a97815245a25c3c9bdee318" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.4.1", "block", "core-graphics-types", - "foreign-types", + "foreign-types 0.5.0", "log", "objc", + "paste", ] [[package]] @@ -2615,9 +2674,9 @@ dependencies = [ [[package]] name = "naga" -version = "0.10.1" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21bb1a241901d94de4725d638a5295187b046ceb89ed8b2be368038654d9c81d" +checksum = "bbcc2e0513220fd2b598e6068608d4462db20322c0e77e47f6f488dfcfc279cb" dependencies = [ "bit-set", "bitflags 1.3.2", @@ -2626,8 +2685,6 @@ dependencies = [ "indexmap 1.9.3", "log", "num-traits", - "petgraph", - "pp-rs", "rustc-hash", "spirv", "termcolor", @@ -2636,77 +2693,94 @@ dependencies = [ ] [[package]] -name = "ndk" -version = "0.6.0" +name = "naga" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2032c77e030ddee34a6787a64166008da93f6a352b629261d0fee232b8742dd4" +checksum = "c1ceaaa4eedaece7e4ec08c55c640ba03dbb73fb812a6570a59bcf1930d0f70e" dependencies = [ - "bitflags 1.3.2", - "jni-sys", - "ndk-sys 0.3.0", - "num_enum", + "bit-set", + "bitflags 2.4.1", + "codespan-reporting", + "hexf-parse", + "indexmap 1.9.3", + "log", + "num-traits", + "pp-rs", + "rustc-hash", + "spirv", + "termcolor", "thiserror", + "unicode-xid", ] [[package]] -name = "ndk" -version = "0.7.0" +name = "naga_oil" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "451422b7e4718271c8b5b3aadf5adedba43dc76312454b387e98fae0fc951aa0" +checksum = "4ac54c77b3529887f9668d3dd81e955e58f252b31a333f836e3548c06460b958" dependencies = [ - "bitflags 1.3.2", - "jni-sys", - "ndk-sys 0.4.1+23.1.7779620", - "num_enum", - "raw-window-handle 0.5.2", + "bit-set", + "codespan-reporting", + "data-encoding", + "indexmap 1.9.3", + "naga 0.13.0", + "once_cell", + "regex", + "regex-syntax 0.7.5", + "rustc-hash", "thiserror", + "tracing", + "unicode-ident", ] [[package]] -name = "ndk-context" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" - -[[package]] -name = "ndk-glue" -version = "0.7.0" +name = "nalgebra" +version = "0.32.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0434fabdd2c15e0aab768ca31d5b7b333717f03cf02037d5a0a3ff3c278ed67f" +checksum = "307ed9b18cc2423f29e83f84fd23a8e73628727990181f18641a8b5dc2ab1caa" dependencies = [ - "android_logger", - "libc", - "log", - "ndk 0.7.0", - "ndk-context", - "ndk-macro", - "ndk-sys 0.4.1+23.1.7779620", - "once_cell", - "parking_lot", + "approx", + "glam", + "matrixmultiply", + "nalgebra-macros", + "num-complex", + "num-rational", + "num-traits", + "simba", + "typenum", ] [[package]] -name = "ndk-macro" -version = "0.3.0" +name = "nalgebra-macros" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0df7ac00c4672f9d5aece54ee3347520b7e20f158656c7db2e6de01902eb7a6c" +checksum = "91761aed67d03ad966ef783ae962ef9bbaca728d2dd7ceb7939ec110fffad998" dependencies = [ - "darling", - "proc-macro-crate", "proc-macro2", "quote", "syn 1.0.109", ] [[package]] -name = "ndk-sys" -version = "0.3.0" +name = "ndk" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e5a6ae77c8ee183dcbbba6150e2e6b9f3f4196a7666c02a715a95692ec1fa97" +checksum = "451422b7e4718271c8b5b3aadf5adedba43dc76312454b387e98fae0fc951aa0" dependencies = [ + "bitflags 1.3.2", "jni-sys", + "ndk-sys", + "num_enum 0.5.11", + "raw-window-handle", + "thiserror", ] +[[package]] +name = "ndk-context" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" + [[package]] name = "ndk-sys" version = "0.4.1+23.1.7779620" @@ -2718,15 +2792,25 @@ dependencies = [ [[package]] name = "nix" -version = "0.23.2" +version = "0.24.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f3790c00a0150112de0f4cd161e3d7fc4b2d8a5542ffc35f099a2562aecb35c" +checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069" +dependencies = [ + "bitflags 1.3.2", + "cfg-if", + "libc", +] + +[[package]] +name = "nix" +version = "0.26.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b" dependencies = [ "bitflags 1.3.2", - "cc", "cfg-if", "libc", - "memoffset 0.6.5", + "memoffset", ] [[package]] @@ -2757,22 +2841,10 @@ dependencies = [ ] [[package]] -name = "notify" -version = "5.2.0" +name = "nonmax" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "729f63e1ca555a43fe3efa4f3efdf4801c479da85b432242a7b726f353c88486" -dependencies = [ - "bitflags 1.3.2", - "crossbeam-channel", - "filetime", - "fsevent-sys", - "inotify 0.9.6", - "kqueue", - "libc", - "mio", - "walkdir", - "windows-sys 0.45.0", -] +checksum = "610a5acd306ec67f907abe5567859a3c693fb9886eb1f012ab8f2a47bef3db51" [[package]] name = "ntapi" @@ -2793,6 +2865,15 @@ dependencies = [ "winapi", ] +[[package]] +name = "num-complex" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214" +dependencies = [ + "num-traits", +] + [[package]] name = "num-derive" version = "0.3.3" @@ -2836,22 +2917,21 @@ dependencies = [ ] [[package]] -name = "num_cpus" -version = "1.16.0" +name = "num_enum" +version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9" dependencies = [ - "hermit-abi", - "libc", + "num_enum_derive 0.5.11", ] [[package]] name = "num_enum" -version = "0.5.11" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9" +checksum = "7a015b430d3c108a207fd776d2e2196aaf8b1cf8cf93253e3a097ff3085076a1" dependencies = [ - "num_enum_derive", + "num_enum_derive 0.6.1", ] [[package]] @@ -2867,10 +2947,16 @@ dependencies = [ ] [[package]] -name = "number_prefix" -version = "0.4.0" +name = "num_enum_derive" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" +checksum = "96667db765a921f7b295ffee8b60472b686a51d4f21c2ee4ffdb94c7013b65a6" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 2.0.39", +] [[package]] name = "objc" @@ -2882,6 +2968,43 @@ dependencies = [ "objc_exception", ] +[[package]] +name = "objc-foundation" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9" +dependencies = [ + "block", + "objc", + "objc_id", +] + +[[package]] +name = "objc-sys" +version = "0.2.0-beta.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b9834c1e95694a05a828b59f55fa2afec6288359cda67146126b3f90a55d7" + +[[package]] +name = "objc2" +version = "0.3.0-beta.3.patch-leaks.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e01640f9f2cb1220bbe80325e179e532cb3379ebcd1bf2279d703c19fe3a468" +dependencies = [ + "block2", + "objc-sys", + "objc2-encode", +] + +[[package]] +name = "objc2-encode" +version = "2.0.0-pre.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abfcac41015b00a120608fdaa6938c44cb983fee294351cc4bac7638b4e50512" +dependencies = [ + "objc-sys", +] + [[package]] name = "objc_exception" version = "0.1.2" @@ -2891,14 +3014,32 @@ dependencies = [ "cc", ] +[[package]] +name = "objc_id" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b" +dependencies = [ + "objc", +] + +[[package]] +name = "object" +version = "0.32.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" +dependencies = [ + "memchr", +] + [[package]] name = "oboe" -version = "0.4.6" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27f63c358b4fa0fbcfefd7c8be5cfc39c08ce2389f5325687e7762a48d30a5c1" +checksum = "8868cc237ee02e2d9618539a23a8d228b9bb3fc2e7a5b11eed3831de77c395d0" dependencies = [ - "jni", - "ndk 0.6.0", + "jni 0.20.0", + "ndk", "ndk-context", "num-derive", "num-traits", @@ -2907,9 +3048,9 @@ dependencies = [ [[package]] name = "oboe-sys" -version = "0.4.5" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3370abb7372ed744232c12954d920d1a40f1c4686de9e79e800021ef492294bd" +checksum = "7f44155e7fb718d3cfddcf70690b2b51ac4412f347cd9e4fbe511abe9cd7b5f2" dependencies = [ "cc", ] @@ -2929,6 +3070,15 @@ version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" +[[package]] +name = "orbclient" +version = "0.3.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52f0d54bde9774d3a51dcf281a5def240c71996bc6ca05d2c847ec8b2b216166" +dependencies = [ + "libredox", +] + [[package]] name = "overload" version = "0.1.1" @@ -2941,7 +3091,7 @@ version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d4586edfe4c648c71797a74c84bacb32b52b212eff5dfe2bb9f2c599844023e7" dependencies = [ - "ttf-parser 0.20.0", + "ttf-parser", ] [[package]] @@ -2968,29 +3118,63 @@ checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" dependencies = [ "cfg-if", "libc", - "redox_syscall", + "redox_syscall 0.4.1", "smallvec", "windows-targets 0.48.5", ] [[package]] -name = "pathfinder_geometry" -version = "0.5.1" +name = "parry3d" +version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b7e7b4ea703700ce73ebf128e1450eb69c3a8329199ffbfb9b2a0418e5ad3" +checksum = "b55dc0e6db79bddbc5fd583569f7356cdcc63e1e9b2b93a9ab70dd8e717160e0" dependencies = [ - "log", - "pathfinder_simd", + "approx", + "arrayvec", + "bitflags 1.3.2", + "downcast-rs", + "either", + "indexmap 1.9.3", + "nalgebra", + "num-derive", + "num-traits", + "rustc-hash", + "simba", + "slab", + "smallvec", + "spade", +] + +[[package]] +name = "particular" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9a0d950d06b61d0efd9dfa490c9d2b009aab8ed42f362a400d8dbb80e3eef3e" +dependencies = [ + "bytemuck", + "glam", + "particular_derive", + "pollster", + "ultraviolet", + "wgpu 0.16.3", + "wide", +] + +[[package]] +name = "particular_derive" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75db00c14928450a58561339628fad2516902c8fe58bc926b9c949f4302e035d" +dependencies = [ + "quote", + "syn 2.0.39", ] [[package]] -name = "pathfinder_simd" -version = "0.5.2" +name = "paste" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0444332826c70dc47be74a7c6a5fc44e23a7905ad6858d4162b658320455ef93" -dependencies = [ - "rustc_version 0.4.0", -] +checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" [[package]] name = "peeking_take_while" @@ -3021,56 +3205,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" [[package]] -name = "pkg-config" -version = "0.3.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" - -[[package]] -name = "plotters" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2c224ba00d7cadd4d5c660deaf2098e5e80e07846537c51f9cfa4be50c1fd45" -dependencies = [ - "chrono", - "font-kit", - "image", - "lazy_static", - "num-traits", - "pathfinder_geometry", - "plotters-backend", - "plotters-bitmap", - "plotters-svg", - "ttf-parser 0.17.1", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "plotters-backend" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e76628b4d3a7581389a35d5b6e2139607ad7c75b17aed325f210aa91f4a9609" - -[[package]] -name = "plotters-bitmap" -version = "0.3.3" +name = "piper" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cebbe1f70205299abc69e8b295035bb52a6a70ee35474ad10011f0a4efb8543" +checksum = "668d31b1c4eba19242f2088b2bf3316b82ca31082a8335764db4e083db7485d4" dependencies = [ - "gif", - "image", - "plotters-backend", + "atomic-waker", + "fastrand 2.0.1", + "futures-io", ] [[package]] -name = "plotters-svg" -version = "0.3.5" +name = "pkg-config" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38f6d39893cca0701371e3c27294f09797214b86f1fb951b89ade8ec04e2abab" -dependencies = [ - "plotters-backend", -] +checksum = "69d3587f8a9e599cc7ec2c00e331f71c4e69a5f9a4b8a6efd5b07466b9736f9a" [[package]] name = "png" @@ -3085,6 +3234,12 @@ dependencies = [ "miniz_oxide", ] +[[package]] +name = "pollster" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22686f4785f02a4fcc856d3b3bb19bf6c8160d103f7a99cc258bddd0251dc7f2" + [[package]] name = "pp-rs" version = "0.2.1" @@ -3101,14 +3256,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] -name = "priority-queue" -version = "1.3.2" +name = "pretty-type-name" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fff39edfcaec0d64e8d0da38564fad195d2d51b680940295fcc307366e101e61" -dependencies = [ - "autocfg", - "indexmap 1.9.3", -] +checksum = "f0f73cdaf19b52e6143685c3606206e114a4dfa969d6b14ec3894c88eb38bd4b" [[package]] name = "proc-macro-crate" @@ -3117,7 +3268,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" dependencies = [ "once_cell", - "toml_edit", + "toml_edit 0.19.15", ] [[package]] @@ -3131,9 +3282,9 @@ dependencies = [ [[package]] name = "profiling" -version = "1.0.12" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1de09527cd2ea2c2d59fb6c2f8c1ab8c71709ed9d1b6d60b0e1c9fbb6fdcb33c" +checksum = "d135ede8821cf6376eb7a64148901e1690b788c11ae94dc297ae917dbc91dc0e" [[package]] name = "quote" @@ -3180,15 +3331,6 @@ dependencies = [ "getrandom", ] -[[package]] -name = "rand_pcg" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59cad018caf63deb318e5a4586d99a24424a364f40f1e5778c29aca23f4fc73e" -dependencies = [ - "rand_core", -] - [[package]] name = "range-alloc" version = "0.1.3" @@ -3196,12 +3338,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8a99fddc9f0ba0a85884b8d14e3592853e787d581ca1816c91349b10e4eeab" [[package]] -name = "raw-window-handle" -version = "0.4.3" +name = "rapier3d" +version = "0.17.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b800beb9b6e7d2df1fe337c9e3d04e3af22a124460fb4c30fcc22c9117cefb41" +checksum = "62a8a0bd9d3135f7b4eb45d0796540e7bab47b6b7c974f90567ccc5a0454f42b" dependencies = [ - "cty", + "approx", + "arrayvec", + "bit-vec", + "bitflags 1.3.2", + "crossbeam", + "downcast-rs", + "nalgebra", + "num-derive", + "num-traits", + "parry3d", + "rustc-hash", + "simba", ] [[package]] @@ -3211,24 +3364,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9" [[package]] -name = "rayon" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1" -dependencies = [ - "either", - "rayon-core", -] - -[[package]] -name = "rayon-core" -version = "1.12.0" +name = "rawpointer" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed" -dependencies = [ - "crossbeam-deque", - "crossbeam-utils", -] +checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" [[package]] name = "rectangle-pack" @@ -3238,22 +3377,20 @@ checksum = "a0d463f2884048e7153449a55166f91028d5b0ea53c79377099ce4e8cf0cf9bb" [[package]] name = "redox_syscall" -version = "0.4.1" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" dependencies = [ "bitflags 1.3.2", ] [[package]] -name = "redox_users" -version = "0.4.4" +name = "redox_syscall" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" dependencies = [ - "getrandom", - "libredox", - "thiserror", + "bitflags 1.3.2", ] [[package]] @@ -3294,6 +3431,12 @@ version = "0.6.29" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" +[[package]] +name = "regex-syntax" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da" + [[package]] name = "regex-syntax" version = "0.8.2" @@ -3302,15 +3445,21 @@ checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" [[package]] name = "renderdoc-sys" -version = "0.7.1" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "216080ab382b992234dda86873c18d4c48358f5cfcb70fd693d7f6f2131b628b" + +[[package]] +name = "robust" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1382d1f0a252c4bf97dc20d979a2fdd05b024acd7c2ed0f7595d7817666a157" +checksum = "cbf4a6aa5f6d6888f39e980649f3ad6b666acdce1d78e95b8a2cb076e687ae30" [[package]] name = "rodio" -version = "0.16.0" +version = "0.17.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb10b653d5ec0e9411a2e7d46e2c7f4046fd87d35b9955bd73ba4108d69072b5" +checksum = "3b1bb7b48ee48471f55da122c0044fcc7600cfcc85db88240b89cb832935e611" dependencies = [ "cpal", "lewton", @@ -3329,27 +3478,26 @@ dependencies = [ ] [[package]] -name = "rustc-hash" -version = "1.1.0" +name = "rustc-demangle" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" +checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" [[package]] -name = "rustc_version" -version = "0.2.3" +name = "rustc-hash" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" -dependencies = [ - "semver 0.9.0", -] +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" [[package]] -name = "rustc_version" +name = "ruzstd" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +checksum = "ac3ffab8f9715a0d455df4bbb9d21e91135aab3cd3ca187af0cd0c3c3f868fdc" dependencies = [ - "semver 1.0.20", + "byteorder", + "thiserror-core", + "twox-hash", ] [[package]] @@ -3358,6 +3506,15 @@ version = "1.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" +[[package]] +name = "safe_arch" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f398075ce1e6a179b46f51bd88d0598b92b00d3551f1a2d4ac49e771b56ac354" +dependencies = [ + "bytemuck", +] + [[package]] name = "same-file" version = "1.0.6" @@ -3373,27 +3530,6 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" -[[package]] -name = "semver" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" -dependencies = [ - "semver-parser", -] - -[[package]] -name = "semver" -version = "1.0.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" - -[[package]] -name = "semver-parser" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" - [[package]] name = "serde" version = "1.0.193" @@ -3416,30 +3552,15 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.108" +version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" +checksum = "cb0652c533506ad7a2e353cce269330d6afd8bdfb6d75e0ace5b35aacbd7b9e9" dependencies = [ "itoa", "ryu", "serde", ] -[[package]] -name = "sha1" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1da05c97445caa12d05e848c4a4fcbbea29e748ac28f7e80e9b010392063770" -dependencies = [ - "sha1_smol", -] - -[[package]] -name = "sha1_smol" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae1a47186c03a32177042e55dbc5fd5aee900b8e0069a8d70fba96a9375cd012" - [[package]] name = "sharded-slab" version = "0.1.7" @@ -3456,33 +3577,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7cee0529a6d40f580e7a5e6c495c8fbfe21b7b52795ed4bb5e62cdf92bc6380" [[package]] -name = "signal-hook" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801" -dependencies = [ - "libc", - "signal-hook-registry", -] - -[[package]] -name = "signal-hook-mio" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29ad2e15f37ec9a6cc544097b78a1ec90001e9f71b81338ca39f430adaca99af" -dependencies = [ - "libc", - "mio", - "signal-hook", -] - -[[package]] -name = "signal-hook-registry" -version = "1.4.1" +name = "simba" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" +checksum = "061507c94fc6ab4ba1c9a0305018408e312e17c041eb63bef8aa726fa33aceae" dependencies = [ - "libc", + "approx", + "libm", + "num-complex", + "num-traits", + "paste", + "wide", ] [[package]] @@ -3491,12 +3596,6 @@ version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" -[[package]] -name = "siphasher" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" - [[package]] name = "slab" version = "0.4.9" @@ -3525,75 +3624,47 @@ dependencies = [ ] [[package]] -name = "spirv" -version = "0.2.0+1.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "246bfa38fe3db3f1dfc8ca5a2cdeb7348c78be2112740cc0ec8ef18b6d94f830" -dependencies = [ - "bitflags 1.3.2", - "num-traits", -] - -[[package]] -name = "static_assertions" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" - -[[package]] -name = "stdweb" -version = "0.4.20" +name = "smol_str" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d022496b16281348b52d0e30ae99e01a73d737b2f45d38fed4edf79f9325a1d5" +checksum = "74212e6bbe9a4352329b2f68ba3130c15a3f26fe88ff22dbdc6cdd58fa85e99c" dependencies = [ - "discard", - "rustc_version 0.2.3", - "stdweb-derive", - "stdweb-internal-macros", - "stdweb-internal-runtime", - "wasm-bindgen", + "serde", ] [[package]] -name = "stdweb-derive" -version = "0.5.3" +name = "spade" +version = "2.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c87a60a40fccc84bef0652345bbbbbe20a605bf5d0ce81719fc476f5c03b50ef" +checksum = "bd774eb23cff002036706e6ea83c3f4ab4c80dad89da76fe16d49f77ab71682f" dependencies = [ - "proc-macro2", - "quote", - "serde", - "serde_derive", - "syn 1.0.109", + "hashbrown 0.14.3", + "num-traits", + "robust", + "smallvec", ] [[package]] -name = "stdweb-internal-macros" -version = "0.2.9" +name = "spirv" +version = "0.2.0+1.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58fa5ff6ad0d98d1ffa8cb115892b6e69d67799f6763e162a1c9db421dc22e11" +checksum = "246bfa38fe3db3f1dfc8ca5a2cdeb7348c78be2112740cc0ec8ef18b6d94f830" dependencies = [ - "base-x", - "proc-macro2", - "quote", - "serde", - "serde_derive", - "serde_json", - "sha1", - "syn 1.0.109", + "bitflags 1.3.2", + "num-traits", ] [[package]] -name = "stdweb-internal-runtime" -version = "0.1.5" +name = "static_assertions" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "213701ba3370744dcd1a12960caa4843b3d68b4d1c0a5d575e0d65b2ee9d16c0" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] -name = "strsim" -version = "0.10.0" +name = "str-buf" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" +checksum = "9e08d8363704e6c71fc928674353e6b7c23dcea9d82d7012c8faf2a3a025f8d0" [[package]] name = "svg_fmt" @@ -3601,15 +3672,6 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8fb1df15f412ee2e9dfc1c504260fa695c1c3f10fe9f4a6ee2d2184d7d6450e2" -[[package]] -name = "svgtypes" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22975e8a2bac6a76bb54f898a6b18764633b00e780330f0b689f65afb3975564" -dependencies = [ - "siphasher", -] - [[package]] name = "syn" version = "1.0.109" @@ -3634,30 +3696,28 @@ dependencies = [ [[package]] name = "sysinfo" -version = "0.27.8" +version = "0.29.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a902e9050fca0a5d6877550b769abd2bd1ce8c04634b941dbe2809735e1a1e33" +checksum = "cd727fc423c2060f6c92d9534cef765c65a6ed3f428a03d7def74a8c4348e666" dependencies = [ "cfg-if", "core-foundation-sys", "libc", "ntapi", "once_cell", - "rayon", "winapi", ] [[package]] name = "taffy" -version = "0.1.0" +version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec27dea659b100d489dffa57cf0efc6d7bfefb119af817b92cc14006c0b214e3" +checksum = "3c2287b6d7f721ada4cddf61ade5e760b2c6207df041cac9bfaa192897362fd3" dependencies = [ "arrayvec", - "hash32", - "hash32-derive", + "grid", "num-traits", - "typenum", + "slotmap", ] [[package]] @@ -3671,18 +3731,38 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.50" +version = "1.0.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" +checksum = "b2cd5904763bad08ad5513ddbb12cf2ae273ca53fa9f68e843e236ec6dfccc09" dependencies = [ "thiserror-impl", ] [[package]] -name = "thiserror-impl" +name = "thiserror-core" +version = "1.0.50" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c001ee18b7e5e3f62cbf58c7fe220119e68d902bb7443179c0c8aef30090e999" +dependencies = [ + "thiserror-core-impl", +] + +[[package]] +name = "thiserror-core-impl" version = "1.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" +checksum = "e4c60d69f36615a077cc7663b9cb8e42275722d23e58a7fa3d2c7f2915d09d04" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.53" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dcf4a824cce0aeacd6f38ae6f24234c8e80d68632338ebaa1443b5df9e29e19" dependencies = [ "proc-macro2", "quote", @@ -3699,6 +3779,17 @@ dependencies = [ "once_cell", ] +[[package]] +name = "tiff" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d172b0f4d3fba17ba89811858b9d3d97f928aece846475bbda076ca46736211" +dependencies = [ + "flate2", + "jpeg-decoder", + "weezl", +] + [[package]] name = "tinyvec" version = "1.6.0" @@ -3714,15 +3805,6 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" -[[package]] -name = "toml" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" -dependencies = [ - "serde", -] - [[package]] name = "toml_datetime" version = "0.6.5" @@ -3733,7 +3815,18 @@ checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" name = "toml_edit" version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +dependencies = [ + "indexmap 2.1.0", + "toml_datetime", + "winnow", +] + +[[package]] +name = "toml_edit" +version = "0.20.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81" dependencies = [ "indexmap 2.1.0", "toml_datetime", @@ -3823,12 +3916,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "ttf-parser" -version = "0.17.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "375812fa44dab6df41c195cd2f7fecb488f6c09fbaafb62807488cefab642bff" - [[package]] name = "ttf-parser" version = "0.20.0" @@ -3836,16 +3923,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "17f77d76d837a7830fe1d4f12b7b4ba4192c1888001c7164257e4bc6d21d96b4" [[package]] -name = "tui" -version = "0.18.0" +name = "twox-hash" +version = "1.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96fe69244ec2af261bced1d9046a6fee6c8c2a6b0228e59e5ba39bc8ba4ed729" +checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" dependencies = [ - "bitflags 1.3.2", - "cassowary", - "crossterm", - "unicode-segmentation", - "unicode-width", + "cfg-if", + "static_assertions", ] [[package]] @@ -3854,6 +3938,21 @@ version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" +[[package]] +name = "ultraviolet" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a28554d13eb5daba527cc1b91b6c341372a0ae45ed277ffb2c6fbc04f319d7e" +dependencies = [ + "wide", +] + +[[package]] +name = "unicode-bidi" +version = "0.3.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f2528f27a9eb2b21e69c95319b30bd0efd85d09c379741b0f78ea1d86be2416" + [[package]] name = "unicode-ident" version = "1.0.12" @@ -3861,10 +3960,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" [[package]] -name = "unicode-segmentation" -version = "1.10.1" +name = "unicode-normalization" +version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" +checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +dependencies = [ + "tinyvec", +] [[package]] name = "unicode-width" @@ -3879,13 +3981,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" [[package]] -name = "uom" -version = "0.35.0" +name = "url" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8362194c7a9845a7a7f3562173d6e1da3f24f7132018cb78fe77a5b4474187b2" +checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" dependencies = [ - "num-traits", - "typenum", + "form_urlencoded", + "idna", + "percent-encoding", ] [[package]] @@ -4004,6 +4107,17 @@ version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f" +[[package]] +name = "wayland-scanner" +version = "0.29.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f4303d8fa22ab852f789e75a967f0a2cdc430a607751c0499bada3e451cbd53" +dependencies = [ + "proc-macro2", + "quote", + "xml-rs", +] + [[package]] name = "web-sys" version = "0.3.66" @@ -4014,6 +4128,23 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "webbrowser" +version = "0.8.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82b2391658b02c27719fc5a0a73d6e696285138e8b12fba9d4baa70451023c71" +dependencies = [ + "core-foundation", + "home", + "jni 0.21.1", + "log", + "ndk-context", + "objc", + "raw-window-handle", + "url", + "web-sys", +] + [[package]] name = "weezl" version = "0.1.7" @@ -4022,98 +4153,219 @@ checksum = "9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb" [[package]] name = "wgpu" -version = "0.14.2" +version = "0.16.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "480c965c9306872eb6255fa55e4b4953be55a8b64d57e61d7ff840d3dcc051cd" +dependencies = [ + "arrayvec", + "cfg-if", + "js-sys", + "log", + "naga 0.12.3", + "parking_lot", + "profiling", + "raw-window-handle", + "smallvec", + "static_assertions", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "wgpu-core 0.16.1", + "wgpu-hal 0.16.2", + "wgpu-types 0.16.1", +] + +[[package]] +name = "wgpu" +version = "0.17.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81f643110d228fd62a60c5ed2ab56c4d5b3704520bd50561174ec4ec74932937" +checksum = "752e44d3998ef35f71830dd1ad3da513e628e2e4d4aedb0ab580f850827a0b41" dependencies = [ "arrayvec", + "cfg-if", "js-sys", "log", - "naga", + "naga 0.13.0", "parking_lot", - "raw-window-handle 0.5.2", + "profiling", + "raw-window-handle", "smallvec", "static_assertions", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "wgpu-core", - "wgpu-hal", - "wgpu-types", + "wgpu-core 0.17.1", + "wgpu-hal 0.17.2", + "wgpu-types 0.17.0", ] [[package]] name = "wgpu-core" -version = "0.14.2" +version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6000d1284ef8eec6076fd5544a73125fd7eb9b635f18dceeb829d826f41724ca" +checksum = "8f478237b4bf0d5b70a39898a66fa67ca3a007d79f2520485b8b0c3dfc46f8c2" dependencies = [ "arrayvec", "bit-vec", - "bitflags 1.3.2", - "cfg_aliases", + "bitflags 2.4.1", + "codespan-reporting", + "log", + "naga 0.12.3", + "parking_lot", + "profiling", + "raw-window-handle", + "rustc-hash", + "smallvec", + "thiserror", + "web-sys", + "wgpu-hal 0.16.2", + "wgpu-types 0.16.1", +] + +[[package]] +name = "wgpu-core" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f8a44dd301a30ceeed3c27d8c0090433d3da04d7b2a4042738095a424d12ae7" +dependencies = [ + "arrayvec", + "bit-vec", + "bitflags 2.4.1", "codespan-reporting", - "fxhash", "log", - "naga", + "naga 0.13.0", "parking_lot", "profiling", - "raw-window-handle 0.5.2", + "raw-window-handle", + "rustc-hash", "smallvec", "thiserror", "web-sys", - "wgpu-hal", - "wgpu-types", + "wgpu-hal 0.17.2", + "wgpu-types 0.17.0", ] [[package]] name = "wgpu-hal" -version = "0.14.1" +version = "0.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cc320a61acb26be4f549c9b1b53405c10a223fbfea363ec39474c32c348d12f" +checksum = "1ecb3258078e936deee14fd4e0febe1cfe9bbb5ffef165cb60218d2ee5eb4448" dependencies = [ "android_system_properties", "arrayvec", "ash", "bit-set", - "bitflags 1.3.2", + "bitflags 2.4.1", "block", "core-graphics-types", - "d3d12", - "foreign-types", - "fxhash", + "d3d12 0.6.0", + "foreign-types 0.3.2", "glow", - "gpu-alloc", + "gpu-alloc 0.5.4", + "gpu-allocator", "gpu-descriptor", + "hassle-rs", "js-sys", "khronos-egl", - "libloading 0.7.4", + "libc", + "libloading 0.8.1", + "log", + "metal 0.24.0", + "naga 0.12.3", + "objc", + "parking_lot", + "profiling", + "range-alloc", + "raw-window-handle", + "renderdoc-sys", + "rustc-hash", + "smallvec", + "thiserror", + "wasm-bindgen", + "web-sys", + "wgpu-types 0.16.1", + "winapi", +] + +[[package]] +name = "wgpu-hal" +version = "0.17.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a80bf0e3c77399bb52850cb0830af9bad073d5cfcb9dd8253bef8125c42db17" +dependencies = [ + "android_system_properties", + "arrayvec", + "ash", + "bit-set", + "bitflags 2.4.1", + "block", + "core-graphics-types", + "d3d12 0.7.0", + "glow", + "gpu-alloc 0.6.0", + "gpu-allocator", + "gpu-descriptor", + "hassle-rs", + "js-sys", + "khronos-egl", + "libc", + "libloading 0.8.1", "log", - "metal", - "naga", + "metal 0.26.0", + "naga 0.13.0", "objc", "parking_lot", "profiling", "range-alloc", - "raw-window-handle 0.5.2", + "raw-window-handle", "renderdoc-sys", + "rustc-hash", "smallvec", "thiserror", "wasm-bindgen", "web-sys", - "wgpu-types", + "wgpu-types 0.17.0", "winapi", ] [[package]] name = "wgpu-types" -version = "0.14.1" +version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb6b28ef22cac17b9109b25b3bf8c9a103eeb293d7c5f78653979b09140375f6" +checksum = "d0c153280bb108c2979eb5c7391cb18c56642dd3c072e55f52065e13e2a1252a" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.4.1", + "js-sys", + "web-sys", +] + +[[package]] +name = "wgpu-types" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee64d7398d0c2f9ca48922c902ef69c42d000c759f3db41e355f4a570b052b67" +dependencies = [ + "bitflags 2.4.1", + "js-sys", + "web-sys", +] + +[[package]] +name = "wide" +version = "0.7.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c68938b57b33da363195412cfc5fc37c9ed49aa9cfe2156fde64b8d2c9498242" +dependencies = [ + "bytemuck", + "safe_arch", ] +[[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" @@ -4139,6 +4391,15 @@ dependencies = [ "winapi", ] +[[package]] +name = "winapi-wsapoll" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44c17110f57155602a80dca10be03852116403c9ff3cd25b079d666f2aa3df6e" +dependencies = [ + "winapi", +] + [[package]] name = "winapi-x86_64-pc-windows-gnu" version = "0.4.0" @@ -4147,47 +4408,72 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows" -version = "0.37.0" +version = "0.44.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57b543186b344cc61c85b5aab0d2e3adf4e0f99bc076eff9aa5927bcc0b8a647" +checksum = "9e745dab35a0c4c77aa3ce42d595e13d2003d6902d6b08c9ef5fc326d08da12b" dependencies = [ - "windows_aarch64_msvc 0.37.0", - "windows_i686_gnu 0.37.0", - "windows_i686_msvc 0.37.0", - "windows_x86_64_gnu 0.37.0", - "windows_x86_64_msvc 0.37.0", + "windows-targets 0.42.2", ] [[package]] name = "windows" -version = "0.51.1" +version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca229916c5ee38c2f2bc1e9d8f04df975b4bd93f9955dc69fabb5d91270045c9" +checksum = "cdacb41e6a96a052c6cb63a144f24900236121c6f63f4f8219fef5977ecb0c25" dependencies = [ - "windows-core", + "windows-targets 0.42.2", +] + +[[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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be" +dependencies = [ + "windows-core", + "windows-targets 0.52.0", +] + [[package]] name = "windows-core" -version = "0.51.1" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ - "windows-targets 0.48.5", + "windows-targets 0.52.0", ] [[package]] -name = "windows-sys" -version = "0.36.1" +name = "windows-implement" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e2ee588991b9e7e6c8338edf3333fbe4da35dc72092643958ebb43f0ab2c49c" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "windows-interface" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" +checksum = "e6fb8df20c9bcaa8ad6ab513f7b40104840c8867d5751126e4df3b08388d0cc7" dependencies = [ - "windows_aarch64_msvc 0.36.1", - "windows_i686_gnu 0.36.1", - "windows_i686_msvc 0.36.1", - "windows_x86_64_gnu 0.36.1", - "windows_x86_64_msvc 0.36.1", + "proc-macro2", + "quote", + "syn 1.0.109", ] [[package]] @@ -4280,18 +4566,6 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" -[[package]] -name = "windows_aarch64_msvc" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.37.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2623277cb2d1c216ba3b578c0f3cf9cdebeddb6e66b1b218bb33596ea7769c3a" - [[package]] name = "windows_aarch64_msvc" version = "0.42.2" @@ -4310,18 +4584,6 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" -[[package]] -name = "windows_i686_gnu" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" - -[[package]] -name = "windows_i686_gnu" -version = "0.37.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3925fd0b0b804730d44d4b6278c50f9699703ec49bcd628020f46f4ba07d9e1" - [[package]] name = "windows_i686_gnu" version = "0.42.2" @@ -4340,18 +4602,6 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" -[[package]] -name = "windows_i686_msvc" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" - -[[package]] -name = "windows_i686_msvc" -version = "0.37.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce907ac74fe331b524c1298683efbf598bb031bc84d5e274db2083696d07c57c" - [[package]] name = "windows_i686_msvc" version = "0.42.2" @@ -4370,18 +4620,6 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" -[[package]] -name = "windows_x86_64_gnu" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.37.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2babfba0828f2e6b32457d5341427dcbb577ceef556273229959ac23a10af33d" - [[package]] name = "windows_x86_64_gnu" version = "0.42.2" @@ -4418,18 +4656,6 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" -[[package]] -name = "windows_x86_64_msvc" -version = "0.36.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.37.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4dd6dc7df2d84cf7b33822ed5b86318fb1781948e9663bacd047fc9dd52259d" - [[package]] name = "windows_x86_64_msvc" version = "0.42.2" @@ -4450,12 +4676,13 @@ checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" [[package]] name = "winit" -version = "0.27.5" +version = "0.28.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb796d6fbd86b2fd896c9471e6f04d39d750076ebe5680a3958f00f5ab97657c" +checksum = "9596d90b45384f5281384ab204224876e8e8bf7d58366d9b795ad99aa9894b94" dependencies = [ + "android-activity", "bitflags 1.3.2", - "cocoa", + "cfg_aliases", "core-foundation", "core-graphics", "dispatch", @@ -4463,38 +4690,29 @@ dependencies = [ "libc", "log", "mio", - "ndk 0.7.0", - "ndk-glue", - "objc", + "ndk", + "objc2", "once_cell", - "parking_lot", + "orbclient", "percent-encoding", - "raw-window-handle 0.4.3", - "raw-window-handle 0.5.2", + "raw-window-handle", + "redox_syscall 0.3.5", "wasm-bindgen", + "wayland-scanner", "web-sys", - "windows-sys 0.36.1", + "windows-sys 0.45.0", "x11-dl", ] [[package]] name = "winnow" -version = "0.5.26" +version = "0.5.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b67b5f0a4e7a27a64c651977932b9dc5667ca7fc31ac44b03ed37a0cf42fdfff" +checksum = "97a4882e6b134d6c28953a387571f1acdd3496830d5e36c5e3a1075580ea641c" dependencies = [ "memchr", ] -[[package]] -name = "wio" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d129932f4644ac2396cb456385cbf9e63b5b30c6e8dc4820bdca4eb082037a5" -dependencies = [ - "winapi", -] - [[package]] name = "x11-dl" version = "2.21.0" @@ -4506,6 +4724,28 @@ dependencies = [ "pkg-config", ] +[[package]] +name = "x11rb" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1641b26d4dec61337c35a1b1aaf9e3cba8f46f0b43636c609ab0291a648040a" +dependencies = [ + "gethostname", + "nix 0.26.4", + "winapi", + "winapi-wsapoll", + "x11rb-protocol", +] + +[[package]] +name = "x11rb-protocol" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82d6c3f9a0fb6701fab8f6cea9b0c0bd5d6876f1f89f7fada07e558077c344bc" +dependencies = [ + "nix 0.26.4", +] + [[package]] name = "xi-unicode" version = "0.3.0" @@ -4513,31 +4753,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a67300977d3dc3f8034dae89778f502b6ba20b269527b3223ba59c0cf393bb8a" [[package]] -name = "yeslogic-fontconfig-sys" -version = "3.2.0" +name = "xml-rs" +version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2bbd69036d397ebbff671b1b8e4d918610c181c5a16073b96f984a38d08c386" -dependencies = [ - "const-cstr", - "dlib", - "once_cell", - "pkg-config", -] +checksum = "0fcb9cbac069e033553e8bb871be2fbdffcab578eb25bd0f7c508cedc6dcd75a" [[package]] name = "zerocopy" -version = "0.7.30" +version = "0.7.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "306dca4455518f1f31635ec308b6b3e4eb1b11758cefafc782827d0aa7acb5c7" +checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.7.30" +version = "0.7.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be912bf68235a88fbefd1b73415cb218405958d1655b2ece9035a19920bdf6ba" +checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index 1cd8fff..75a67e7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -12,9 +12,14 @@ repository = "https://github.com/philiplinden/clocss-abm" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] +bevy = { version = "0.12.0", features = ["dynamic_linking"] } +bevy-inspector-egui = { version = "0.22.1", features = ["highlight_changes"] } +bevy_egui = "0.24.0" +bevy_rapier3d = { version = "0.23.0", features = ["enhanced-determinism", "debug-render"] } hifitime = "3.8.5" -krabmaga = { version = "0.4.1", features = ["visualization"] } -uom = "0.35.0" +particular = { version = "0.6.1", features = ["gpu"] } +rand = "0.8.5" +uuid = { version = "1.6.1", features = ["v4"] } # Enable a small amount of optimization in debug mode [profile.dev] diff --git a/assets/emojis/animals/butterfly.png b/assets/emojis/animals/butterfly.png new file mode 100644 index 0000000..d330836 Binary files /dev/null and b/assets/emojis/animals/butterfly.png differ diff --git a/assets/emojis/animals/crab.png b/assets/emojis/animals/crab.png new file mode 100644 index 0000000..0e8143e Binary files /dev/null and b/assets/emojis/animals/crab.png differ diff --git a/assets/emojis/animals/rabbit2.png b/assets/emojis/animals/rabbit2.png new file mode 100644 index 0000000..b3cac1e Binary files /dev/null and b/assets/emojis/animals/rabbit2.png differ diff --git a/assets/emojis/animals/snail.png b/assets/emojis/animals/snail.png new file mode 100644 index 0000000..5ce9bbb Binary files /dev/null and b/assets/emojis/animals/snail.png differ diff --git a/assets/emojis/animals/turtle.png b/assets/emojis/animals/turtle.png new file mode 100644 index 0000000..3c36968 Binary files /dev/null and b/assets/emojis/animals/turtle.png differ diff --git a/assets/emojis/clocks/clock1.png b/assets/emojis/clocks/clock1.png new file mode 100644 index 0000000..6985a65 Binary files /dev/null and b/assets/emojis/clocks/clock1.png differ diff --git a/assets/emojis/clocks/clock10.png b/assets/emojis/clocks/clock10.png new file mode 100644 index 0000000..b48baaa Binary files /dev/null and b/assets/emojis/clocks/clock10.png differ diff --git a/assets/emojis/clocks/clock1030.png b/assets/emojis/clocks/clock1030.png new file mode 100644 index 0000000..b1be142 Binary files /dev/null and b/assets/emojis/clocks/clock1030.png differ diff --git a/assets/emojis/clocks/clock11.png b/assets/emojis/clocks/clock11.png new file mode 100644 index 0000000..54aaba7 Binary files /dev/null and b/assets/emojis/clocks/clock11.png differ diff --git a/assets/emojis/clocks/clock1130.png b/assets/emojis/clocks/clock1130.png new file mode 100644 index 0000000..ebee7be Binary files /dev/null and b/assets/emojis/clocks/clock1130.png differ diff --git a/assets/emojis/clocks/clock12.png b/assets/emojis/clocks/clock12.png new file mode 100644 index 0000000..bac32b9 Binary files /dev/null and b/assets/emojis/clocks/clock12.png differ diff --git a/assets/emojis/clocks/clock1230.png b/assets/emojis/clocks/clock1230.png new file mode 100644 index 0000000..f01487c Binary files /dev/null and b/assets/emojis/clocks/clock1230.png differ diff --git a/assets/emojis/clocks/clock130.png b/assets/emojis/clocks/clock130.png new file mode 100644 index 0000000..c4132ec Binary files /dev/null and b/assets/emojis/clocks/clock130.png differ diff --git a/assets/emojis/clocks/clock2.png b/assets/emojis/clocks/clock2.png new file mode 100644 index 0000000..b397c40 Binary files /dev/null and b/assets/emojis/clocks/clock2.png differ diff --git a/assets/emojis/clocks/clock230.png b/assets/emojis/clocks/clock230.png new file mode 100644 index 0000000..557df2d Binary files /dev/null and b/assets/emojis/clocks/clock230.png differ diff --git a/assets/emojis/clocks/clock3.png b/assets/emojis/clocks/clock3.png new file mode 100644 index 0000000..5bde56a Binary files /dev/null and b/assets/emojis/clocks/clock3.png differ diff --git a/assets/emojis/clocks/clock330.png b/assets/emojis/clocks/clock330.png new file mode 100644 index 0000000..01a477b Binary files /dev/null and b/assets/emojis/clocks/clock330.png differ diff --git a/assets/emojis/clocks/clock4.png b/assets/emojis/clocks/clock4.png new file mode 100644 index 0000000..7d49bc2 Binary files /dev/null and b/assets/emojis/clocks/clock4.png differ diff --git a/assets/emojis/clocks/clock430.png b/assets/emojis/clocks/clock430.png new file mode 100644 index 0000000..b042e1b Binary files /dev/null and b/assets/emojis/clocks/clock430.png differ diff --git a/assets/emojis/clocks/clock5.png b/assets/emojis/clocks/clock5.png new file mode 100644 index 0000000..a6fa917 Binary files /dev/null and b/assets/emojis/clocks/clock5.png differ diff --git a/assets/emojis/clocks/clock530.png b/assets/emojis/clocks/clock530.png new file mode 100644 index 0000000..c42fdce Binary files /dev/null and b/assets/emojis/clocks/clock530.png differ diff --git a/assets/emojis/clocks/clock6.png b/assets/emojis/clocks/clock6.png new file mode 100644 index 0000000..aa2ae22 Binary files /dev/null and b/assets/emojis/clocks/clock6.png differ diff --git a/assets/emojis/clocks/clock630.png b/assets/emojis/clocks/clock630.png new file mode 100644 index 0000000..c1d3175 Binary files /dev/null and b/assets/emojis/clocks/clock630.png differ diff --git a/assets/emojis/clocks/clock7.png b/assets/emojis/clocks/clock7.png new file mode 100644 index 0000000..559de53 Binary files /dev/null and b/assets/emojis/clocks/clock7.png differ diff --git a/assets/emojis/clocks/clock730.png b/assets/emojis/clocks/clock730.png new file mode 100644 index 0000000..721786e Binary files /dev/null and b/assets/emojis/clocks/clock730.png differ diff --git a/assets/emojis/clocks/clock8.png b/assets/emojis/clocks/clock8.png new file mode 100644 index 0000000..7fa10a3 Binary files /dev/null and b/assets/emojis/clocks/clock8.png differ diff --git a/assets/emojis/clocks/clock830.png b/assets/emojis/clocks/clock830.png new file mode 100644 index 0000000..1089489 Binary files /dev/null and b/assets/emojis/clocks/clock830.png differ diff --git a/assets/emojis/clocks/clock9.png b/assets/emojis/clocks/clock9.png new file mode 100644 index 0000000..26336fd Binary files /dev/null and b/assets/emojis/clocks/clock9.png differ diff --git a/assets/emojis/clocks/clock930.png b/assets/emojis/clocks/clock930.png new file mode 100644 index 0000000..be4fe26 Binary files /dev/null and b/assets/emojis/clocks/clock930.png differ diff --git a/assets/emojis/clocks/mantelpiece_clock.png b/assets/emojis/clocks/mantelpiece_clock.png new file mode 100644 index 0000000..cec641d Binary files /dev/null and b/assets/emojis/clocks/mantelpiece_clock.png differ diff --git a/assets/emojis/clown_face.png b/assets/emojis/clown_face.png new file mode 100644 index 0000000..58e5b39 Binary files /dev/null and b/assets/emojis/clown_face.png differ diff --git a/assets/emojis/cold_sweat.png b/assets/emojis/cold_sweat.png new file mode 100644 index 0000000..b45c5ce Binary files /dev/null and b/assets/emojis/cold_sweat.png differ diff --git a/assets/emojis/dots/large_blue_circle.png b/assets/emojis/dots/large_blue_circle.png new file mode 100644 index 0000000..a5b4ad4 Binary files /dev/null and b/assets/emojis/dots/large_blue_circle.png differ diff --git a/assets/emojis/dots/red_circle.png b/assets/emojis/dots/red_circle.png new file mode 100644 index 0000000..b391289 Binary files /dev/null and b/assets/emojis/dots/red_circle.png differ diff --git a/assets/emojis/dots/white_circle.png b/assets/emojis/dots/white_circle.png new file mode 100644 index 0000000..3f648d1 Binary files /dev/null and b/assets/emojis/dots/white_circle.png differ diff --git a/assets/emojis/faces/clown_face.png b/assets/emojis/faces/clown_face.png new file mode 100644 index 0000000..58e5b39 Binary files /dev/null and b/assets/emojis/faces/clown_face.png differ diff --git a/assets/emojis/faces/cold_sweat.png b/assets/emojis/faces/cold_sweat.png new file mode 100644 index 0000000..b45c5ce Binary files /dev/null and b/assets/emojis/faces/cold_sweat.png differ diff --git a/assets/emojis/faces/relieved.png b/assets/emojis/faces/relieved.png new file mode 100644 index 0000000..2ceb016 Binary files /dev/null and b/assets/emojis/faces/relieved.png differ diff --git a/assets/emojis/faces/sunglasses.png b/assets/emojis/faces/sunglasses.png new file mode 100644 index 0000000..e7f345a Binary files /dev/null and b/assets/emojis/faces/sunglasses.png differ diff --git a/assets/emojis/faces/thinking_face.png b/assets/emojis/faces/thinking_face.png new file mode 100644 index 0000000..ea04f9a Binary files /dev/null and b/assets/emojis/faces/thinking_face.png differ diff --git a/assets/emojis/faces/tired_face.png b/assets/emojis/faces/tired_face.png new file mode 100644 index 0000000..d2c8fba Binary files /dev/null and b/assets/emojis/faces/tired_face.png differ diff --git a/assets/emojis/numbers/eight.png b/assets/emojis/numbers/eight.png new file mode 100644 index 0000000..2a62cfe Binary files /dev/null and b/assets/emojis/numbers/eight.png differ diff --git a/assets/emojis/numbers/five.png b/assets/emojis/numbers/five.png new file mode 100644 index 0000000..e015727 Binary files /dev/null and b/assets/emojis/numbers/five.png differ diff --git a/assets/emojis/numbers/four.png b/assets/emojis/numbers/four.png new file mode 100644 index 0000000..71eb37f Binary files /dev/null and b/assets/emojis/numbers/four.png differ diff --git a/assets/emojis/numbers/keycap_ten.png b/assets/emojis/numbers/keycap_ten.png new file mode 100644 index 0000000..7287159 Binary files /dev/null and b/assets/emojis/numbers/keycap_ten.png differ diff --git a/assets/emojis/numbers/nine.png b/assets/emojis/numbers/nine.png new file mode 100644 index 0000000..d0f7a7e Binary files /dev/null and b/assets/emojis/numbers/nine.png differ diff --git a/assets/emojis/numbers/one.png b/assets/emojis/numbers/one.png new file mode 100644 index 0000000..a4ba88d Binary files /dev/null and b/assets/emojis/numbers/one.png differ diff --git a/assets/emojis/numbers/seven.png b/assets/emojis/numbers/seven.png new file mode 100644 index 0000000..d4b248e Binary files /dev/null and b/assets/emojis/numbers/seven.png differ diff --git a/assets/emojis/numbers/six.png b/assets/emojis/numbers/six.png new file mode 100644 index 0000000..fa0862f Binary files /dev/null and b/assets/emojis/numbers/six.png differ diff --git a/assets/emojis/numbers/three.png b/assets/emojis/numbers/three.png new file mode 100644 index 0000000..c35ef69 Binary files /dev/null and b/assets/emojis/numbers/three.png differ diff --git a/assets/emojis/numbers/two.png b/assets/emojis/numbers/two.png new file mode 100644 index 0000000..9838e16 Binary files /dev/null and b/assets/emojis/numbers/two.png differ diff --git a/assets/emojis/numbers/zero.png b/assets/emojis/numbers/zero.png new file mode 100644 index 0000000..ce4e1fd Binary files /dev/null and b/assets/emojis/numbers/zero.png differ diff --git a/assets/emojis/relieved.png b/assets/emojis/relieved.png new file mode 100644 index 0000000..2ceb016 Binary files /dev/null and b/assets/emojis/relieved.png differ diff --git a/assets/emojis/sunglasses.png b/assets/emojis/sunglasses.png new file mode 100644 index 0000000..e7f345a Binary files /dev/null and b/assets/emojis/sunglasses.png differ diff --git a/assets/emojis/thinking_face.png b/assets/emojis/thinking_face.png new file mode 100644 index 0000000..ea04f9a Binary files /dev/null and b/assets/emojis/thinking_face.png differ diff --git a/assets/emojis/tired_face.png b/assets/emojis/tired_face.png new file mode 100644 index 0000000..d2c8fba Binary files /dev/null and b/assets/emojis/tired_face.png differ diff --git a/assets/emojis/white_check_mark.png b/assets/emojis/white_check_mark.png new file mode 100644 index 0000000..fcfb251 Binary files /dev/null and b/assets/emojis/white_check_mark.png differ diff --git a/assets/emojis/x.png b/assets/emojis/x.png new file mode 100644 index 0000000..5128e65 Binary files /dev/null and b/assets/emojis/x.png differ diff --git a/src/components/body.rs b/src/components/body.rs new file mode 100644 index 0000000..aa997e8 --- /dev/null +++ b/src/components/body.rs @@ -0,0 +1,149 @@ +use bevy::prelude::*; +use bevy_rapier3d::prelude::*; +use rand::prelude::*; + +use crate::gui::select::{Clickable, CanFollow, Followed}; + + +// Planetoids, stars, and other natural bodies are called CELESTIALS +// Artificial bodies are called SPACECRAFT or STATION + + + +#[derive(Component, Clone)] +pub struct BodyMaterial { + pub mesh: Mesh, + pub material: StandardMaterial, +} + +impl Default for BodyMaterial { + fn default() -> Self { + Self { + mesh: shape::Cube { size: 10.0 }.into(), + material: StandardMaterial::default(), + } + } +} + +pub fn add_materials( + mut commands: Commands, + mut meshes: ResMut>, + mut materials: ResMut>, + query: Query<(Entity, &BodyMaterial), Added>, +) { + for (entity, material) in &query { + let mut cmds = commands.entity(entity); + let BodyMaterial { mesh, material } = material.clone(); + + cmds.insert(( + meshes.add(mesh), + materials.add(material), + VisibilityBundle::default(), + )); + } +} + +#[derive(Bundle, Default)] +pub struct ParticleBundle { + pub rigidbody: RigidBody, + pub collider: Collider, + pub velocity: Velocity, + pub friction: Friction, + pub transform: TransformBundle, + pub mass: ColliderMassProperties, + pub read_mass: ReadMassProperties, +} + +#[derive(Bundle, Default)] +pub struct BodyBundle { + pub can_select: Clickable, + pub can_follow: CanFollow, + pub body_material: BodyMaterial, + pub particle_bundle: ParticleBundle, +} + +pub fn spawn_bodies(mut commands: Commands) { + commands.spawn(DirectionalLightBundle { + directional_light: DirectionalLight { + illuminance: 50000.0, + shadows_enabled: true, + ..default() + }, + transform: Transform { + translation: Vec3::new(0.0, 0.0, 0.0), + rotation: Quat::from_rotation_x(std::f32::consts::PI / 2.5), + ..default() + }, + ..default() + }); + + let main_mu = 5e7; + + let main = commands + .spawn(BodyBundle { + can_select: Clickable { radius: 100.0 }, + can_follow: CanFollow { + min_camera_distance: 200.0, + }, + body_material: BodyMaterial { + mesh: shape::UVSphere { + radius: 100.0, + ..default() + } + .into(), + material: StandardMaterial { + base_color: Color::rgb(0.6, 0.4, 0.2), + ..default() + }, + }, + particle_bundle: ParticleBundle { + rigidbody: RigidBody::Dynamic, + collider: Collider::ball(100.0), + mass: ColliderMassProperties::Mass(main_mu), + ..default() + }, + }) + .id(); + + commands.insert_resource(Followed(Some(main))); + + // SPAWN DEBRIS + let mut rng = thread_rng(); + let mut gen = || rng.gen_range(-8.0..=8.0) * 2.0; + + let radius = 1.0; + let minor_mu = 25.0; + + for _ in 0..2000 { + let distance = Vec3::new(315.0 + gen(), gen(), gen()); + let velocity = + distance.cross(Vec3::Z).normalize() * ((main_mu + minor_mu) / distance.length()).sqrt(); + + commands.spawn(BodyBundle { + can_select: Clickable { radius }, + can_follow: CanFollow { + min_camera_distance: 5.0, + }, + body_material: BodyMaterial { + mesh: shape::UVSphere { + radius, + ..default() + } + .into(), + material: StandardMaterial { + base_color: Color::rgb(0.5, 0.5, 0.5), + ..default() + }, + }, + particle_bundle: ParticleBundle { + rigidbody: RigidBody::Dynamic, + collider: Collider::ball(radius), + velocity: Velocity::linear(velocity), + friction: Friction::coefficient(0.8), + transform: TransformBundle::from(Transform::from_translation(distance)), + mass: ColliderMassProperties::Mass(minor_mu), + ..default() + }, + }); + } +} \ No newline at end of file diff --git a/src/components/camera.rs b/src/components/camera.rs new file mode 100644 index 0000000..92915f6 --- /dev/null +++ b/src/components/camera.rs @@ -0,0 +1,98 @@ +use bevy::{ + input::mouse::{MouseMotion, MouseScrollUnit, MouseWheel}, + prelude::*, +}; + +#[derive(Component, Default)] +pub struct OrbitCamera { + pub min_distance: f32, + pub focus: Vec3, +} + +pub struct CameraPlugin; + +impl Plugin for CameraPlugin { + fn build(&self, app: &mut App) { + app.add_systems(Startup, setup_camera) + .add_systems(PostUpdate, camera_controls); + } +} + +pub fn camera_controls( + query_windows: Query<&Window>, + input_mouse: Res>, + mut scroll_events: EventReader, + mut motion_events: EventReader, + mut query_camera: Query<(&mut Transform, &OrbitCamera)>, + mut radius: Local>, +) { + let radius = radius.get_or_insert(500.0); + + let Ok((mut transform, orbit)) = query_camera.get_single_mut() else { + return; + }; + let Ok(window) = query_windows.get_single() else { + return; + }; + + let window_size = Vec2::new(window.width(), window.height()); + + let scroll = scroll_events + .read() + .map(|ev| match ev.unit { + MouseScrollUnit::Pixel => ev.y * 0.005, + MouseScrollUnit::Line => ev.y * 1.0, + }) + .sum::(); + + *radius -= *radius * scroll * 0.2; + *radius = radius.clamp(orbit.min_distance, 10000.0); + + let delta = input_mouse + .pressed(MouseButton::Right) + .then(|| motion_events.read().map(|ev| ev.delta).sum::()) + .unwrap_or_default() + / window_size + * std::f32::consts::PI; + motion_events.clear(); + + let Transform { + mut rotation, + scale, + .. + } = *transform; + + rotation *= Quat::from_rotation_y(-delta.x * 2.0); + rotation *= Quat::from_rotation_x(-delta.y); + + let translation = + orbit.focus + Mat3::from_quat(rotation).mul_vec3(Vec3::new(0.0, 0.0, *radius)); + + *transform = Transform { + translation, + rotation, + scale, + } +} + +fn setup_camera(mut commands: Commands) { + commands.spawn(( + Camera3dBundle { + transform: Transform::from_xyz(0.0, 0.0, 200.0) + .looking_at(Vec3::new(0.0, 0.0, 0.0), Vec3::Y), + camera: Camera { + hdr: true, + ..default() + }, + ..default() + }, + OrbitCamera { + min_distance: 2.0, + focus: Vec3::ZERO, + }, + bevy::core_pipeline::bloom::BloomSettings { + intensity: 0.15, + ..default() + }, + )); +} diff --git a/src/components/clock.rs b/src/components/clock.rs new file mode 100644 index 0000000..fdbb49f --- /dev/null +++ b/src/components/clock.rs @@ -0,0 +1,26 @@ +use hifitime::{Duration, Epoch}; + +#[derive(Clone, Debug)] +pub struct Clock { + // Observed time + pub epoch: Epoch, +} + +impl Default for Clock { + fn default() -> Self { + Clock { + epoch: Epoch::from_unix_seconds(0.), + } + } +} + +impl Clock { + pub fn new(epoch: Epoch) -> Self { + Clock { + epoch, + } + } + pub fn tick(&mut self, elapsed: Duration) { + self.epoch = self.epoch + elapsed + } +} diff --git a/src/components/label.rs b/src/components/label.rs new file mode 100644 index 0000000..9ea3b60 --- /dev/null +++ b/src/components/label.rs @@ -0,0 +1,65 @@ +use bevy::prelude::*; + +pub struct EntityLabelPlugin; +impl Plugin for EntityLabelPlugin { + fn build(&self, app: &mut App) { + app.add_systems(First, spawn_labels) + .add_systems(Update, update_labels_position); + } +} + +#[derive(Component, Default)] +pub struct Labelled { + pub style: TextStyle, + pub offset: Vec2, +} + +#[derive(Component, Deref, DerefMut)] +struct LabelEntity(Entity); + +fn spawn_labels( + mut commands: Commands, + query_labelled: Query<(Entity, &Name, &Labelled), Added>, +) { + for (entity, name, labelled) in &query_labelled { + let id = commands + .spawn(TextBundle::from_section( + name.to_string(), + labelled.style.clone(), + )) + .id(); + + commands.entity(entity).insert(LabelEntity(id)); + } +} + +fn update_labels_position( + query_camera: Query<(&Camera, &GlobalTransform)>, + query_labelled: Query<(&LabelEntity, &Labelled, &GlobalTransform)>, + mut query_labels: Query<(&mut Style, &Node)>, +) { + let (camera, camera_transform) = query_camera.single(); + + for (entity, label, transform) in &query_labelled { + let Ok((mut style, node)) = query_labels.get_mut(**entity) else { + continue; + }; + + let rotation_matrix = Mat3::from_quat(camera_transform.to_scale_rotation_translation().1); + let viewport_position = camera + .world_to_viewport( + camera_transform, + transform.translation() + rotation_matrix.mul_vec3(label.offset.extend(0.0)), + ) + .map(|position| position - node.size() / 2.0); + + if let Some(viewport_position) = viewport_position { + style.position_type = PositionType::Absolute; + style.left = Val::Px(viewport_position.x); + style.top = Val::Px(viewport_position.y); + style.display = Display::Flex; + } else { + style.display = Display::None; + } + } +} \ No newline at end of file diff --git a/src/components/mod.rs b/src/components/mod.rs new file mode 100644 index 0000000..b4c2f6a --- /dev/null +++ b/src/components/mod.rs @@ -0,0 +1,4 @@ +pub mod body; +mod clock; +pub mod camera; +mod label; \ No newline at end of file diff --git a/src/gui/debug/mod.rs b/src/gui/debug/mod.rs new file mode 100644 index 0000000..c24c844 --- /dev/null +++ b/src/gui/debug/mod.rs @@ -0,0 +1,22 @@ +pub mod performance; + +use performance::FpsMonitorPlugin; +// use labels::EntityLabelPlugin; + +use bevy::input::common_conditions::input_toggle_active; +use bevy::prelude::*; +use bevy_inspector_egui::quick::WorldInspectorPlugin; +use bevy_rapier3d::render::RapierDebugRenderPlugin; + +pub struct DebugUiPlugin; + +impl Plugin for DebugUiPlugin { + fn build(&self, app: &mut App) { + app.add_plugins(( + FpsMonitorPlugin, + // EntityLabelPlugin, + WorldInspectorPlugin::default().run_if(input_toggle_active(true, KeyCode::Escape)), + RapierDebugRenderPlugin::default(), + )); + } +} diff --git a/src/gui/debug/performance.rs b/src/gui/debug/performance.rs new file mode 100644 index 0000000..a6cc81e --- /dev/null +++ b/src/gui/debug/performance.rs @@ -0,0 +1,130 @@ +use bevy::{ + diagnostic::{DiagnosticsStore, FrameTimeDiagnosticsPlugin}, + prelude::*, +}; + +pub struct FpsMonitorPlugin; + +impl Plugin for FpsMonitorPlugin { + fn build(&self, app: &mut App) { + app.add_plugins(FrameTimeDiagnosticsPlugin::default()) + .add_systems(Startup, setup_fps_counter) + .add_systems(Update, (fps_text_update_system, fps_counter_showhide)); + } +} + +/// Marker to find the container entity so we can show/hide the FPS counter +#[derive(Component)] +struct FpsRoot; + +/// Marker to find the text entity so we can update it +#[derive(Component)] +struct FpsText; + +fn setup_fps_counter(mut commands: Commands) { + // create our UI root node + // this is the wrapper/container for the text + let root = commands + .spawn(( + FpsRoot, + NodeBundle { + // give it a dark background for readability + background_color: BackgroundColor(Color::BLACK.with_a(0.8)), + // make it "always on top" by setting the Z index to maximum + // we want it to be displayed over all other UI + z_index: ZIndex::Global(i32::MAX), + style: Style { + position_type: PositionType::Absolute, + // position it at the top-right corner + // 1% away from the top window edge + right: Val::Percent(1.), + top: Val::Percent(1.), + // set bottom/left to Auto, so it can be + // automatically sized depending on the text + bottom: Val::Auto, + left: Val::Auto, + // give it some padding for readability + padding: UiRect::all(Val::Px(4.0)), + ..Default::default() + }, + ..Default::default() + }, + )) + .id(); + // create our text + let default_style = TextStyle { + font_size: 16.0, + color: Color::WHITE, + ..Default::default() + }; + let text_fps = commands + .spawn(( + FpsText, + TextBundle { + // use two sections, so it is easy to update just the number + text: Text::from_sections([ + TextSection { + value: "FPS: ".into(), + style: default_style.clone(), + }, + TextSection { + value: " N/A".into(), + style: default_style.clone(), + }, + ]), + ..Default::default() + }, + )) + .id(); + commands.entity(root).push_children(&[text_fps]); +} + +fn fps_text_update_system( + diagnostics: Res, + mut query: Query<&mut Text, With>, +) { + for mut text in &mut query { + // try to get a "smoothed" FPS value from Bevy + if let Some(value) = diagnostics + .get(FrameTimeDiagnosticsPlugin::FPS) + .and_then(|fps| fps.smoothed()) + { + // Format the number as to leave space for 4 digits, just in case, + // right-aligned and rounded. This helps readability when the + // number changes rapidly. + text.sections[1].value = format!("{value:>4.0}"); + + // Let's make it extra fancy by changing the color of the + // text according to the FPS value: + text.sections[1].style.color = if value >= 120.0 { + // Above 120 FPS, use green color + Color::rgb(0.0, 1.0, 0.0) + } else if value >= 60.0 { + // Between 60-120 FPS, gradually transition from yellow to green + Color::rgb((1.0 - (value - 60.0) / (120.0 - 60.0)) as f32, 1.0, 0.0) + } else if value >= 30.0 { + // Between 30-60 FPS, gradually transition from red to yellow + Color::rgb(1.0, ((value - 30.0) / (60.0 - 30.0)) as f32, 0.0) + } else { + // Below 30 FPS, use red color + Color::rgb(1.0, 0.0, 0.0) + } + } else { + // display "N/A" if we can't get a FPS measurement + // add an extra space to preserve alignment + text.sections[1].value = " N/A".into(); + text.sections[1].style.color = Color::WHITE; + } + } +} + +/// Toggle the FPS counter when pressing F12 +fn fps_counter_showhide(mut q: Query<&mut Visibility, With>, kbd: Res>) { + if kbd.just_pressed(KeyCode::F12) { + let mut vis = q.single_mut(); + *vis = match *vis { + Visibility::Hidden => Visibility::Visible, + _ => Visibility::Hidden, + }; + } +} diff --git a/src/gui/mod.rs b/src/gui/mod.rs new file mode 100644 index 0000000..7c446f7 --- /dev/null +++ b/src/gui/mod.rs @@ -0,0 +1,27 @@ +pub mod debug; +pub mod select; + +use bevy::prelude::*; +use bevy_egui::{egui, EguiContexts, EguiPlugin}; + +pub struct BaseUiPlugin; + +impl Plugin for BaseUiPlugin { + fn build(&self, app: &mut App) { + app.add_plugins(EguiPlugin) + .insert_resource(ClearColor(Color::BLACK)) + .insert_resource(AmbientLight { + color: Color::NONE, + brightness: 0.0, + }) + .add_systems(PostStartup, setup_egui); + } +} + +fn setup_egui(mut ctxs: EguiContexts) { + ctxs.ctx_mut().set_visuals(egui::Visuals { + window_fill: egui::Color32::from_rgba_premultiplied(27, 27, 27, 225), + window_stroke: egui::Stroke::NONE, + ..egui::Visuals::dark() + }); +} diff --git a/src/gui/select.rs b/src/gui/select.rs new file mode 100644 index 0000000..c4c0c3a --- /dev/null +++ b/src/gui/select.rs @@ -0,0 +1,115 @@ +use crate::components::camera::{OrbitCamera, camera_controls}; +use bevy::prelude::*; + +#[derive(Component, Default)] +pub struct Clickable { + pub radius: f32, +} + +#[derive(Event, Deref, DerefMut)] +pub struct ClickEvent(pub Option); + +#[derive(Resource, Deref, DerefMut, Default)] +pub struct Followed(pub Option); + +#[derive(Component, Default)] +pub struct CanFollow { + pub min_camera_distance: f32, +} + +pub struct SelectionPlugin; + +impl Plugin for SelectionPlugin { + fn build(&self, app: &mut App) { + app.init_resource::() + .add_event::() + .add_systems(Update, (entity_picker, follow_clicked).chain()) + .add_systems(PostUpdate, sync_followed.before(camera_controls)); + } +} + +fn entity_picker( + mut click_entity_events: EventWriter, + mouse_input: Res>, + query_window: Query<&Window>, + query_camera: Query<(&GlobalTransform, &Camera)>, + query_can_select: Query<(Entity, &Transform, &Clickable)>, +) { + if !mouse_input.just_pressed(MouseButton::Left) { + return; + } + + let Ok(window) = query_window.get_single() else { + return; + }; + let Ok((camera_transform, camera)) = query_camera.get_single() else { + return; + }; + + let clicked_entity = window + .cursor_position() + .and_then(|position| camera.viewport_to_world(camera_transform, position)) + .and_then(|ray| { + query_can_select + .iter() + .fold(None, |acc, (entity, transform, clickable)| { + let distance = transform.translation - ray.origin; + let proj = ray.direction.dot(distance); + let mag = distance.length_squared(); + let radius = clickable.radius + mag.sqrt() / 150.0; + let d = (proj * proj + radius * radius >= mag).then_some((entity, mag)); + + acc.filter(|&(_, mag2)| d.is_none() || mag2 < mag).or(d) + }) + .map(|(entity, _)| entity) + }); + + click_entity_events.send(ClickEvent(clicked_entity)); +} + +fn follow_clicked(mut click_events: EventReader, mut followed: ResMut) { + for &ClickEvent(entity) in click_events.read() { + if let Some(entity) = entity { + followed.replace(entity); + } + } +} + +fn sync_followed( + followed: Res, + query_can_follow: Query<(&Transform, &CanFollow)>, + mut query_camera: Query<&mut OrbitCamera>, +) { + let Some((followed_transform, can_follow)) = + followed.and_then(|e| query_can_follow.get(e).ok()) + else { + return; + }; + + for mut orbit in &mut query_camera { + orbit.min_distance = can_follow.min_camera_distance; + orbit.focus = followed_transform.translation; + } +} + +fn _show_pickable_zone( + mut gizmos: Gizmos, + query_camera: Query<&GlobalTransform, With>, + query_can_select: Query<(&Transform, &Clickable)>, +) { + let Ok(camera_transform) = query_camera.get_single() else { + return; + }; + + for (transform, can_select) in &query_can_select { + let distance = transform.translation - camera_transform.translation(); + let mag = distance.length_squared(); + let radius = can_select.radius + mag.sqrt() / 150.0; + gizmos.circle( + transform.translation, + distance.normalize(), + radius, + Color::WHITE, + ); + } +} \ No newline at end of file diff --git a/src/main.rs b/src/main.rs index 4837f9c..8f3a889 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,15 +1,41 @@ -use krabmaga::*; +use bevy::prelude::*; +use bevy_rapier3d::prelude::*; -use crate::model::sim::Realm; +mod components; +mod gui; +mod physics; -mod model; +use components::{body, camera}; -pub static TOROIDAL: bool = true; -pub static DISCRETIZATION: f32 = 1.0; +pub const DT: f32 = 1.0 / 60.0; fn main() { - let step = 100; - let state = Realm::default(); + App::new() + .add_plugins(( + DefaultPlugins.set(WindowPlugin { + primary_window: Some(Window { + #[cfg(not(target_arch = "wasm32"))] + resolution: bevy::window::WindowResolution::new(1920.0, 1080.0), + fit_canvas_to_parent: true, + prevent_default_event_handling: false, + canvas: Some("#app".to_owned()), + ..default() + }), + ..default() + }), - simulate!(state, step, 10); + // Interface + gui::BaseUiPlugin, + gui::debug::DebugUiPlugin, // requires BaseUiPlugin + camera::CameraPlugin, + + //Physics + RapierPhysicsPlugin::::default().with_default_system_setup(false), + physics::CustomRapierSchedule, + physics::ParticularPlugin, + )) + // Spawn bodies + .add_systems(Startup, body::spawn_bodies) + .add_systems(First, body::add_materials) + .run(); } diff --git a/src/model/clock.rs b/src/model/clock.rs deleted file mode 100644 index ffe69bb..0000000 --- a/src/model/clock.rs +++ /dev/null @@ -1,73 +0,0 @@ -use crate::model::sim::Realm; -use core::fmt; -use krabmaga::engine::{ - agent::Agent, - fields::field_2d::{toroidal_transform, Location2D}, - location::Real2D, - state::State, -}; -use std::hash::{Hash, Hasher}; - -/// The most basic agent should implement Clone, Copy and Agent to be able to be inserted in a Schedule. -#[derive(Clone, Copy)] -pub struct Clock { - pub id: u32, - pub loc: Real2D, - pub last_d: Real2D, - pub dir_x: f32, - pub dir_y: f32, -} - -impl Agent for Clock { - /// Put the code that should happen for each step, for each agent here. - fn step(&mut self, state: &mut dyn State) { - let state = state.as_any().downcast_ref::().unwrap(); - - let loc_x = toroidal_transform(self.loc.x + self.dir_x, state.field.width); - let loc_y = toroidal_transform(self.loc.y + self.dir_y, state.field.height); - self.loc = Real2D { x: loc_x, y: loc_y }; - - state - .field - .set_object_location(*self, Real2D { x: loc_x, y: loc_y }); - } - - /// Put the code that decides if an agent should be removed or not - /// for example in simulation where agents can die - fn is_stopped(&mut self, _state: &mut dyn State) -> bool { - false - } -} - -impl Hash for Clock { - fn hash(&self, state: &mut H) - where - H: Hasher, - { - self.id.hash(state); - } -} - -impl Location2D for Clock { - fn get_location(self) -> Real2D { - self.loc - } - - fn set_location(&mut self, loc: Real2D) { - self.loc = loc; - } -} - -impl fmt::Display for Clock { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - write!(f, "{}", self.id) - } -} - -impl Eq for Clock {} - -impl PartialEq for Clock { - fn eq(&self, other: &Clock) -> bool { - self.id == other.id - } -} diff --git a/src/model/mod.rs b/src/model/mod.rs deleted file mode 100644 index e6a2c1d..0000000 --- a/src/model/mod.rs +++ /dev/null @@ -1,3 +0,0 @@ -pub mod clock; -pub mod sim; -pub mod spacetime; diff --git a/src/model/sim.rs b/src/model/sim.rs deleted file mode 100644 index 48a721c..0000000 --- a/src/model/sim.rs +++ /dev/null @@ -1,83 +0,0 @@ -/*! - * This module handles the state of the simulation environment and its schedule. - */ - -use krabmaga::engine::{ - fields::field_2d::Field2D, - schedule::Schedule, - state::State, -}; -use std::any::Any; - -use super::clock::Clock; - -/// Realms are the connective tissue that binds the state of the simulation and -/// the "world" or field where agents exist. Realm implements the krABMaaga -/// State trait to trigger updates to the Schedule and mutate the world State. -pub struct Realm { - pub step: u64, - pub field: Field2D, - pub dim: (f32, f32), - pub num_agents: u32, -} - -impl Default for Realm { - fn default() -> Self { - let dim = (100.0, 100.0); - Realm { - step: 0, - field: Field2D::new(dim.0, dim.1, 0.1, true), - dim, - num_agents: 10, - } - } -} - -impl Realm { - pub fn new(dim: (f32, f32), num_agents: u32, grid_resolution: f32, wrap_edges: bool) -> Realm { - Realm { - step: 0, - field: Field2D::new(dim.0, dim.1, grid_resolution, wrap_edges), - dim, - num_agents, - } - } -} - -impl State for Realm { - /// Put the code that should be executed for each state update here. The state is updated once for each - /// schedule step. - fn update(&mut self, _step: u64) { - // self.field.lazy_update(); - } - - /// Put the code that should be executed to reset simulation state - fn reset(&mut self) { - self.step = 0; - } - - /// Put the code that should be executed to initialize simulation: - /// Agent creation and schedule set-up - fn init(&mut self, schedule: &mut Schedule) { - self.step = 0; - } - - fn as_any(&self) -> &dyn std::any::Any { - self - } - - fn as_any_mut(&mut self) -> &mut dyn Any { - self - } - - fn as_state_mut(&mut self) -> &mut dyn State { - self - } - - fn as_state(&self) -> &dyn State { - self - } - fn after_step(&mut self, _schedule: &mut Schedule) { - self.step += 1 - } -} diff --git a/src/model/spacetime.rs b/src/model/spacetime.rs deleted file mode 100644 index 17c5469..0000000 --- a/src/model/spacetime.rs +++ /dev/null @@ -1,3 +0,0 @@ -/*! - * This module handles the warping of spacetime. This includes gravity and time dilation. - */ diff --git a/src/physics/mod.rs b/src/physics/mod.rs new file mode 100644 index 0000000..cab0254 --- /dev/null +++ b/src/physics/mod.rs @@ -0,0 +1,5 @@ +mod nbody; +mod schedule; + +pub use schedule::CustomRapierSchedule; +pub use nbody::ParticularPlugin; diff --git a/src/physics/nbody.rs b/src/physics/nbody.rs new file mode 100644 index 0000000..95ccbf6 --- /dev/null +++ b/src/physics/nbody.rs @@ -0,0 +1,26 @@ +use bevy::prelude::*; +use bevy_rapier3d::prelude::*; +use particular::prelude::*; + +use crate::DT; +use crate::physics::schedule::PreRapierSchedule; + +pub const COMPUTE_METHOD: sequential::BruteForceSIMD = sequential::BruteForceSIMD; + +pub struct ParticularPlugin; + +impl Plugin for ParticularPlugin { + fn build(&self, app: &mut bevy::prelude::App) { + app.add_systems(PreRapierSchedule, accelerate_particles); + } +} + +fn accelerate_particles(mut query: Query<(&mut Velocity, &Transform, &ReadMassProperties)>) { + query + .iter() + .map(|(.., transform, mass)| (transform.translation.to_array(), mass.get().mass)) + .accelerations(&mut COMPUTE_METHOD.clone()) + .map(Vec3::from) + .zip(&mut query) + .for_each(|(acceleration, (mut velocity, ..))| velocity.linvel += acceleration * DT); +} diff --git a/src/physics/schedule.rs b/src/physics/schedule.rs new file mode 100644 index 0000000..d24472f --- /dev/null +++ b/src/physics/schedule.rs @@ -0,0 +1,123 @@ +use bevy::{ecs::schedule::ScheduleLabel, prelude::*}; +use bevy_rapier3d::prelude::*; + +#[derive(Default, Resource)] +pub struct RealWorldTick(pub f32); + + +#[derive(ScheduleLabel, Clone, Debug, PartialEq, Eq, Hash)] +pub struct PreRapierSchedule; + +#[derive(ScheduleLabel, Clone, Debug, PartialEq, Eq, Hash)] +struct SyncRapierSchedule; + +#[derive(ScheduleLabel, Clone, Debug, PartialEq, Eq, Hash)] +struct StepRapierSchedule; + +pub fn time_sync( + time: Res