From d7574a104d1ae48e9b42d434a9cf864506315e6a Mon Sep 17 00:00:00 2001 From: Mark Moissette Date: Tue, 2 Jan 2024 14:03:29 +0100 Subject: [PATCH] feat(wasm): added working examples for bevy_gltf_components & bevy_gltf_blueprints (#90) closes #88 --- Cargo.lock | 22 + Cargo.toml | 2 + .../basic_wasm/Cargo.lock | 4629 +++++++++++++++++ .../basic_wasm/Cargo.toml | 13 + .../bevy_gltf_blueprints/basic_wasm/README.md | 31 + .../basic_wasm/assets/advanced.blend | Bin 0 -> 1318192 bytes .../basic_wasm/assets/assets_core.assets.ron | 1 + .../basic_wasm/assets/assets_game.assets.ron | 14 + .../basic_wasm/assets/models/World.glb | Bin 0 -> 6444 bytes .../assets/models/library/Container.glb | Bin 0 -> 5940 bytes .../assets/models/library/Health_Pickup.glb | Bin 0 -> 5448 bytes .../assets/models/library/MagicTeapot.glb | Bin 0 -> 24028 bytes .../assets/models/library/Pillar.glb | Bin 0 -> 3984 bytes .../assets/models/library/Player.glb | Bin 0 -> 28712 bytes .../models/library/Unused_in_level_test.glb | Bin 0 -> 5552 bytes .../basic_wasm/index.html | 27 + .../basic_wasm/src/assets/assets_core.rs | 5 + .../basic_wasm/src/assets/assets_game.rs | 27 + .../basic_wasm/src/assets/mod.rs | 35 + .../src/core/camera/camera_replace_proxies.rs | 24 + .../src/core/camera/camera_tracking.rs | 58 + .../basic_wasm/src/core/camera/mod.rs | 24 + .../core/lighting/lighting_replace_proxies.rs | 25 + .../basic_wasm/src/core/lighting/mod.rs | 18 + .../basic_wasm/src/core/mod.rs | 31 + .../basic_wasm/src/core/physics/controls.rs | 12 + .../basic_wasm/src/core/physics/mod.rs | 37 + .../core/physics/physics_replace_proxies.rs | 101 + .../basic_wasm/src/core/physics/utils.rs | 175 + .../basic_wasm/src/core/relationships/mod.rs | 11 + ...lationships_insert_dependant_components.rs | 15 + .../basic_wasm/src/game/in_game.rs | 134 + .../basic_wasm/src/game/in_main_menu.rs | 113 + .../basic_wasm/src/game/mod.rs | 116 + .../basic_wasm/src/game/picking.rs | 34 + .../basic_wasm/src/main.rs | 33 + .../basic_wasm/src/state.rs | 54 + .../basic_wasm/src/test_components.rs | 80 + .../basic_wasm/.rustc_info.json | 1 + .../basic_wasm/Cargo.lock | 4512 ++++++++++++++++ .../basic_wasm/Cargo.toml | 27 + .../bevy_gltf_components/basic_wasm/README.md | 37 + .../basic_wasm/assets/basic.blend | Bin 0 -> 1337588 bytes .../basic_wasm/assets/models/level1.glb | Bin 0 -> 66996 bytes .../basic_wasm/index.html | 27 + .../src/core/camera/camera_replace_proxies.rs | 24 + .../src/core/camera/camera_tracking.rs | 58 + .../basic_wasm/src/core/camera/mod.rs | 17 + .../core/lighting/lighting_replace_proxies.rs | 25 + .../basic_wasm/src/core/lighting/mod.rs | 18 + .../basic_wasm/src/core/mod.rs | 19 + .../basic_wasm/src/core/physics/controls.rs | 10 + .../basic_wasm/src/core/physics/mod.rs | 27 + .../core/physics/physics_replace_proxies.rs | 101 + .../basic_wasm/src/core/physics/utils.rs | 175 + .../basic_wasm/src/core/relationships/mod.rs | 11 + ...lationships_insert_dependant_components.rs | 15 + .../basic_wasm/src/game.rs | 102 + .../basic_wasm/src/main.rs | 87 + .../basic_wasm/src/test_components.rs | 80 + 60 files changed, 11274 insertions(+) create mode 100644 examples/bevy_gltf_blueprints/basic_wasm/Cargo.lock create mode 100644 examples/bevy_gltf_blueprints/basic_wasm/Cargo.toml create mode 100644 examples/bevy_gltf_blueprints/basic_wasm/README.md create mode 100644 examples/bevy_gltf_blueprints/basic_wasm/assets/advanced.blend create mode 100644 examples/bevy_gltf_blueprints/basic_wasm/assets/assets_core.assets.ron create mode 100644 examples/bevy_gltf_blueprints/basic_wasm/assets/assets_game.assets.ron create mode 100644 examples/bevy_gltf_blueprints/basic_wasm/assets/models/World.glb create mode 100644 examples/bevy_gltf_blueprints/basic_wasm/assets/models/library/Container.glb create mode 100644 examples/bevy_gltf_blueprints/basic_wasm/assets/models/library/Health_Pickup.glb create mode 100644 examples/bevy_gltf_blueprints/basic_wasm/assets/models/library/MagicTeapot.glb create mode 100644 examples/bevy_gltf_blueprints/basic_wasm/assets/models/library/Pillar.glb create mode 100644 examples/bevy_gltf_blueprints/basic_wasm/assets/models/library/Player.glb create mode 100644 examples/bevy_gltf_blueprints/basic_wasm/assets/models/library/Unused_in_level_test.glb create mode 100644 examples/bevy_gltf_blueprints/basic_wasm/index.html create mode 100644 examples/bevy_gltf_blueprints/basic_wasm/src/assets/assets_core.rs create mode 100644 examples/bevy_gltf_blueprints/basic_wasm/src/assets/assets_game.rs create mode 100644 examples/bevy_gltf_blueprints/basic_wasm/src/assets/mod.rs create mode 100644 examples/bevy_gltf_blueprints/basic_wasm/src/core/camera/camera_replace_proxies.rs create mode 100644 examples/bevy_gltf_blueprints/basic_wasm/src/core/camera/camera_tracking.rs create mode 100644 examples/bevy_gltf_blueprints/basic_wasm/src/core/camera/mod.rs create mode 100644 examples/bevy_gltf_blueprints/basic_wasm/src/core/lighting/lighting_replace_proxies.rs create mode 100644 examples/bevy_gltf_blueprints/basic_wasm/src/core/lighting/mod.rs create mode 100644 examples/bevy_gltf_blueprints/basic_wasm/src/core/mod.rs create mode 100644 examples/bevy_gltf_blueprints/basic_wasm/src/core/physics/controls.rs create mode 100644 examples/bevy_gltf_blueprints/basic_wasm/src/core/physics/mod.rs create mode 100644 examples/bevy_gltf_blueprints/basic_wasm/src/core/physics/physics_replace_proxies.rs create mode 100644 examples/bevy_gltf_blueprints/basic_wasm/src/core/physics/utils.rs create mode 100644 examples/bevy_gltf_blueprints/basic_wasm/src/core/relationships/mod.rs create mode 100644 examples/bevy_gltf_blueprints/basic_wasm/src/core/relationships/relationships_insert_dependant_components.rs create mode 100644 examples/bevy_gltf_blueprints/basic_wasm/src/game/in_game.rs create mode 100644 examples/bevy_gltf_blueprints/basic_wasm/src/game/in_main_menu.rs create mode 100644 examples/bevy_gltf_blueprints/basic_wasm/src/game/mod.rs create mode 100644 examples/bevy_gltf_blueprints/basic_wasm/src/game/picking.rs create mode 100644 examples/bevy_gltf_blueprints/basic_wasm/src/main.rs create mode 100644 examples/bevy_gltf_blueprints/basic_wasm/src/state.rs create mode 100644 examples/bevy_gltf_blueprints/basic_wasm/src/test_components.rs create mode 100644 examples/bevy_gltf_components/basic_wasm/.rustc_info.json create mode 100644 examples/bevy_gltf_components/basic_wasm/Cargo.lock create mode 100644 examples/bevy_gltf_components/basic_wasm/Cargo.toml create mode 100644 examples/bevy_gltf_components/basic_wasm/README.md create mode 100644 examples/bevy_gltf_components/basic_wasm/assets/basic.blend create mode 100644 examples/bevy_gltf_components/basic_wasm/assets/models/level1.glb create mode 100644 examples/bevy_gltf_components/basic_wasm/index.html create mode 100644 examples/bevy_gltf_components/basic_wasm/src/core/camera/camera_replace_proxies.rs create mode 100644 examples/bevy_gltf_components/basic_wasm/src/core/camera/camera_tracking.rs create mode 100644 examples/bevy_gltf_components/basic_wasm/src/core/camera/mod.rs create mode 100644 examples/bevy_gltf_components/basic_wasm/src/core/lighting/lighting_replace_proxies.rs create mode 100644 examples/bevy_gltf_components/basic_wasm/src/core/lighting/mod.rs create mode 100644 examples/bevy_gltf_components/basic_wasm/src/core/mod.rs create mode 100644 examples/bevy_gltf_components/basic_wasm/src/core/physics/controls.rs create mode 100644 examples/bevy_gltf_components/basic_wasm/src/core/physics/mod.rs create mode 100644 examples/bevy_gltf_components/basic_wasm/src/core/physics/physics_replace_proxies.rs create mode 100644 examples/bevy_gltf_components/basic_wasm/src/core/physics/utils.rs create mode 100644 examples/bevy_gltf_components/basic_wasm/src/core/relationships/mod.rs create mode 100644 examples/bevy_gltf_components/basic_wasm/src/core/relationships/relationships_insert_dependant_components.rs create mode 100644 examples/bevy_gltf_components/basic_wasm/src/game.rs create mode 100644 examples/bevy_gltf_components/basic_wasm/src/main.rs create mode 100644 examples/bevy_gltf_components/basic_wasm/src/test_components.rs diff --git a/Cargo.lock b/Cargo.lock index da868af..966d15a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -821,6 +821,18 @@ dependencies = [ "rand", ] +[[package]] +name = "bevy_gltf_blueprints_basic_wasm_example" +version = "0.3.0" +dependencies = [ + "bevy", + "bevy_asset_loader", + "bevy_editor_pls", + "bevy_gltf_blueprints", + "bevy_rapier3d", + "rand", +] + [[package]] name = "bevy_gltf_blueprints_basic_xpbd_physics_example" version = "0.3.0" @@ -911,6 +923,16 @@ dependencies = [ "bevy_rapier3d", ] +[[package]] +name = "bevy_gltf_components_basic_wasm_example" +version = "0.3.0" +dependencies = [ + "bevy", + "bevy_editor_pls", + "bevy_gltf_components 0.2.0", + "bevy_rapier3d", +] + [[package]] name = "bevy_hierarchy" version = "0.12.1" diff --git a/Cargo.toml b/Cargo.toml index c9aafca..b029158 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,9 @@ members = [ "crates/bevy_gltf_components", "crates/bevy_gltf_blueprints", "examples/bevy_gltf_components/basic/", + "examples/bevy_gltf_components/basic_wasm/", "examples/bevy_gltf_blueprints/basic/", + "examples/bevy_gltf_blueprints/basic_wasm/", "examples/bevy_gltf_blueprints/basic_scene_components/", "examples/bevy_gltf_blueprints/basic_xpbd_physics/", "examples/bevy_gltf_blueprints/nested_blueprints/", diff --git a/examples/bevy_gltf_blueprints/basic_wasm/Cargo.lock b/examples/bevy_gltf_blueprints/basic_wasm/Cargo.lock new file mode 100644 index 0000000..5063b29 --- /dev/null +++ b/examples/bevy_gltf_blueprints/basic_wasm/Cargo.lock @@ -0,0 +1,4629 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "ab_glyph" +version = "0.2.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80179d7dd5d7e8c285d67c4a1e652972a92de7475beddfb92028c76463b13225" +dependencies = [ + "ab_glyph_rasterizer", + "owned_ttf_parser", +] + +[[package]] +name = "ab_glyph_rasterizer" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c71b1793ee61086797f5c80b6efa2b8ffa6d5dd703f118545808a7f2e27f7046" + +[[package]] +name = "accesskit" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca8410747ed85a17c4a1e9ed3f5a74d3e7bdcc876cf9a18ff40ae21d645997b2" + +[[package]] +name = "accesskit_consumer" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c17cca53c09fbd7288667b22a201274b9becaa27f0b91bf52a526db95de45e6" +dependencies = [ + "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", +] + +[[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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a" +dependencies = [ + "cfg-if", + "getrandom", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "aho-corasick" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" +dependencies = [ + "memchr", +] + +[[package]] +name = "allocator-api2" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" + +[[package]] +name = "alsa" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2562ad8dcf0f789f65c6fdaad8a8a9708ed6b488e649da28c01656ad66b8b47" +dependencies = [ + "alsa-sys", + "bitflags 1.3.2", + "libc", + "nix 0.24.3", +] + +[[package]] +name = "alsa-sys" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db8fee663d06c4e303404ef5f40488a53e062f89ba8bfed81f42325aafad1527" +dependencies = [ + "libc", + "pkg-config", +] + +[[package]] +name = "android-activity" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +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-properties" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc7eb209b1518d6bb87b283c20095f5228ecda460da70b44f0802523dea6da04" + +[[package]] +name = "android_log-sys" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ecc8056bf6ab9892dcd53216c83d1597487d7dacac16c8df6b877d127df9937" + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6" +dependencies = [ + "num-traits", +] + +[[package]] +name = "arboard" +version = "3.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac57f2b058a76363e357c056e4f74f1945bf734d37b8b3ef49066c4787dde0fc" +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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" + +[[package]] +name = "ash" +version = "0.37.3+1.3.251" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39e9c3835d686b0a6084ab4234fcd1b07dbf6e4767dce60874b12356a25ecd4a" +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", + "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", + "event-listener", + "futures-core", +] + +[[package]] +name = "async-executor" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b0c4a4f319e45986f347ee47fef8bf5e81c9abc3f6f58dc2391439f30df65f0" +dependencies = [ + "async-lock", + "async-task", + "concurrent-queue", + "fastrand 2.0.1", + "futures-lite", + "slab", +] + +[[package]] +name = "async-fs" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "279cf904654eeebfa37ac9bb1598880884924aab82e290aa65c9e77a0e142e06" +dependencies = [ + "async-lock", + "autocfg", + "blocking", + "futures-lite", +] + +[[package]] +name = "async-lock" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b" +dependencies = [ + "event-listener", +] + +[[package]] +name = "async-task" +version = "4.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4eb2cdb97421e01129ccb49169d8279ed21e829929144f4a22a6e54ac549ca1" + +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "backtrace" +version = "0.3.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" +dependencies = [ + "addr2line", + "cc", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", +] + +[[package]] +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + +[[package]] +name = "base64" +version = "0.21.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9" + +[[package]] +name = "bevy" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "329e344f835f5a9a4c46a6d1d57371f726aa2c482d1bd669b2b9c4eb1ee91fd7" +dependencies = [ + "bevy_internal", +] + +[[package]] +name = "bevy-inspector-egui" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d65b98d6fca1209c36c4d403c377f303aad22d940281fe1a9e431217516f0622" +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_utils", + "bevy_window", + "egui", + "image", + "once_cell", + "pretty-type-name", + "smallvec", +] + +[[package]] +name = "bevy-inspector-egui-derive" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec800b7cf98151b5dbff80f0eb6dffcb4bcfceef6e457888b395ead4eb7e75ba" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "bevy_a11y" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "271b812e5734f5056a400f7d64592dd82d6c0e6179389c2f066f433ab8bc7692" +dependencies = [ + "accesskit", + "bevy_app", + "bevy_derive", + "bevy_ecs", +] + +[[package]] +name = "bevy_animation" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab94187a1253433e14f175293d8a86ec1c2822fda2a17807908f11ec21f45f00" +dependencies = [ + "bevy_app", + "bevy_asset", + "bevy_core", + "bevy_ecs", + "bevy_hierarchy", + "bevy_math", + "bevy_reflect", + "bevy_render", + "bevy_time", + "bevy_transform", + "bevy_utils", +] + +[[package]] +name = "bevy_app" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "172d532ea812e5954fa814dae003c207f2a0b20c6e50431787c94a7159677ece" +dependencies = [ + "bevy_derive", + "bevy_ecs", + "bevy_reflect", + "bevy_tasks", + "bevy_utils", + "downcast-rs", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "bevy_asset" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccb2b67984088b23e223cfe9ec1befd89a110665a679acb06839bc4334ed37d6" +dependencies = [ + "async-broadcast", + "async-fs", + "async-lock", + "bevy_app", + "bevy_asset_macros", + "bevy_ecs", + "bevy_log", + "bevy_reflect", + "bevy_tasks", + "bevy_utils", + "bevy_winit", + "blake3", + "crossbeam-channel", + "downcast-rs", + "futures-io", + "futures-lite", + "js-sys", + "parking_lot", + "ron", + "serde", + "thiserror", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "bevy_asset_loader" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d797cc907daa293a2776fea1517ed79f9e54d9901dfd35410743cbe536d4c2b" +dependencies = [ + "anyhow", + "bevy", + "bevy_asset_loader_derive", + "bevy_common_assets", + "path-slash", + "serde", +] + +[[package]] +name = "bevy_asset_loader_derive" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d43820afc6e2a7a9e09adb5f13a760bd9a973f391c106411f0bf229d9958c61d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "bevy_asset_macros" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b3245193e90fc8abcf1059a467cb224501dcda083d114c67c10ac66b7171e3a" +dependencies = [ + "bevy_macro_utils", + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "bevy_audio" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "478de80ff25cb7decbcb22797774d1597e8c32914e81431c67d64faadc08f84a" +dependencies = [ + "bevy_app", + "bevy_asset", + "bevy_derive", + "bevy_ecs", + "bevy_math", + "bevy_reflect", + "bevy_transform", + "bevy_utils", + "oboe", + "rodio", +] + +[[package]] +name = "bevy_common_assets" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9397adf1558aa3f08e20aa567538a7238b451362fc8c6b678d409c040c221799" +dependencies = [ + "anyhow", + "bevy", + "ron", + "serde", + "thiserror", +] + +[[package]] +name = "bevy_core" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "025e6800b73048092a55c3611e9327ad4c4c17b60517ec1c0086bb40b4b19ea8" +dependencies = [ + "bevy_app", + "bevy_ecs", + "bevy_math", + "bevy_reflect", + "bevy_tasks", + "bevy_utils", + "bytemuck", + "serde", +] + +[[package]] +name = "bevy_core_pipeline" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e4b08a2d53ba62d9ec1fca3f7f4e0f556e9f59e1c8e63a4b7c2a18c0701152c" +dependencies = [ + "bevy_app", + "bevy_asset", + "bevy_core", + "bevy_derive", + "bevy_ecs", + "bevy_log", + "bevy_math", + "bevy_reflect", + "bevy_render", + "bevy_transform", + "bevy_utils", + "bitflags 2.4.1", + "radsort", + "serde", +] + +[[package]] +name = "bevy_derive" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24bf40259be12a1a24d9fd536f5ff18d31eeb5665b77e2732899783be6edc5d6" +dependencies = [ + "bevy_macro_utils", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "bevy_diagnostic" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41b5a99a9fb6cd7d1eb1714fad193944a0317f0887a15cccb8309c8d37951132" +dependencies = [ + "bevy_app", + "bevy_core", + "bevy_ecs", + "bevy_log", + "bevy_time", + "bevy_utils", + "sysinfo", +] + +[[package]] +name = "bevy_ecs" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae11a1f467c372b50e9d4b55e78370f5420c9db7416200cc441cc84f08174dd3" +dependencies = [ + "async-channel", + "bevy_ecs_macros", + "bevy_ptr", + "bevy_reflect", + "bevy_tasks", + "bevy_utils", + "downcast-rs", + "event-listener", + "fixedbitset", + "rustc-hash", + "serde", + "thiserror", + "thread_local", +] + +[[package]] +name = "bevy_ecs_macros" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f642c2b67c4d0daf8edf15074f6351457eb487a34b3de1290c760d8f3ac9ec16" +dependencies = [ + "bevy_macro_utils", + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "bevy_editor_pls" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "170e3ee3293f70be7fa1b82e8ffe52dcb190c68b2f0ef4847afe65626b417ad7" +dependencies = [ + "bevy", + "bevy_editor_pls_core", + "bevy_editor_pls_default_windows", + "egui", + "egui-gizmo", +] + +[[package]] +name = "bevy_editor_pls_core" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9bab331de653d7d976a1fb0ab3ae8eff1dc821c5991c09bdbe945e70234839c" +dependencies = [ + "bevy", + "bevy-inspector-egui", + "egui_dock", + "indexmap 2.1.0", +] + +[[package]] +name = "bevy_editor_pls_default_windows" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b833e3b3d5c69b92527e766b470b27cb4745406e2087be19be81b595cc48792c" +dependencies = [ + "bevy", + "bevy-inspector-egui", + "bevy_editor_pls_core", + "bevy_mod_debugdump", + "egui-gizmo", + "indexmap 2.1.0", + "opener", + "pretty-type-name", +] + +[[package]] +name = "bevy_egui" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85450af551b7e1cb766f710763b60a12a82ffd6323945a8f776c6334c59ccdc1" +dependencies = [ + "arboard", + "bevy", + "egui", + "thread_local", + "webbrowser", +] + +[[package]] +name = "bevy_encase_derive" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65b9fb5a62c4e3ab70caaa839470d35fa932001b1b34b08bc7f7f1909bd2b3a7" +dependencies = [ + "bevy_macro_utils", + "encase_derive_impl", +] + +[[package]] +name = "bevy_gilrs" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad31cc2c84315e0759d793d6c5bcb7d8789bbc16359c98d1b766e708c1bbae49" +dependencies = [ + "bevy_app", + "bevy_ecs", + "bevy_input", + "bevy_log", + "bevy_time", + "bevy_utils", + "gilrs", + "thiserror", +] + +[[package]] +name = "bevy_gizmos" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87d1cc978b91f416b23eb16f00e69f95c3a04582021827d8082e92d4725cc510" +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.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f933745c0c86e2c07948def581259b466f99708328657054e956275430ccfd7" +dependencies = [ + "base64 0.13.1", + "bevy_animation", + "bevy_app", + "bevy_asset", + "bevy_core", + "bevy_core_pipeline", + "bevy_ecs", + "bevy_hierarchy", + "bevy_log", + "bevy_math", + "bevy_pbr", + "bevy_reflect", + "bevy_render", + "bevy_scene", + "bevy_tasks", + "bevy_transform", + "bevy_utils", + "gltf", + "percent-encoding", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "bevy_gltf_blueprints" +version = "0.3.0" +dependencies = [ + "bevy", + "bevy_gltf_components", +] + +[[package]] +name = "bevy_gltf_blueprints_basic_example" +version = "0.3.0" +dependencies = [ + "bevy", + "bevy_asset_loader", + "bevy_editor_pls", + "bevy_gltf_blueprints", + "bevy_rapier3d", + "rand", +] + +[[package]] +name = "bevy_gltf_components" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd745a2988c631286404e12d184d4a30a634fbbba1deceaaa1ca7fcbc607cc7a" +dependencies = [ + "bevy", + "ron", + "serde", +] + +[[package]] +name = "bevy_hierarchy" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64fa240011fce8ee23f9b46e5a26a628a31d7860d6d2e4e0e361bb3ea6d5a703" +dependencies = [ + "bevy_app", + "bevy_core", + "bevy_ecs", + "bevy_log", + "bevy_reflect", + "bevy_utils", + "smallvec", +] + +[[package]] +name = "bevy_input" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e86e241b3a10b79f65a69205552546723b855d3d4c1bd8261637c076144d32f" +dependencies = [ + "bevy_app", + "bevy_ecs", + "bevy_math", + "bevy_reflect", + "bevy_utils", + "serde", + "thiserror", +] + +[[package]] +name = "bevy_internal" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55124e486814c4d3632d5cfad9c4f4e46d052c028593ec46fef5bfbfb0f840b1" +dependencies = [ + "bevy_a11y", + "bevy_animation", + "bevy_app", + "bevy_asset", + "bevy_audio", + "bevy_core", + "bevy_core_pipeline", + "bevy_derive", + "bevy_diagnostic", + "bevy_ecs", + "bevy_gilrs", + "bevy_gizmos", + "bevy_gltf", + "bevy_hierarchy", + "bevy_input", + "bevy_log", + "bevy_math", + "bevy_pbr", + "bevy_ptr", + "bevy_reflect", + "bevy_render", + "bevy_scene", + "bevy_sprite", + "bevy_tasks", + "bevy_text", + "bevy_time", + "bevy_transform", + "bevy_ui", + "bevy_utils", + "bevy_window", + "bevy_winit", +] + +[[package]] +name = "bevy_log" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "011417debf7868b45932bb97fc0d5bfdeaf9304e324aa94840e2f1e6deeed69d" +dependencies = [ + "android_log-sys", + "bevy_app", + "bevy_ecs", + "bevy_utils", + "console_error_panic_hook", + "tracing-log", + "tracing-subscriber", + "tracing-wasm", +] + +[[package]] +name = "bevy_macro_utils" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf6fba87c6d069fcbcd8a48625ca8ab4392ad40d2b260863ce7d641a0f42986d" +dependencies = [ + "proc-macro2", + "quote", + "rustc-hash", + "syn 2.0.39", + "toml_edit 0.20.7", +] + +[[package]] +name = "bevy_math" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "752764558a1f429c20704c3b836a019fa308961c43fdfef4f08e339d456c96be" +dependencies = [ + "glam", + "serde", +] + +[[package]] +name = "bevy_mikktspace" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b596c41a56f2268ec7cde560edc588bc7b5886e4b49c8b27c4dcc9f7c743424c" +dependencies = [ + "glam", +] + +[[package]] +name = "bevy_mod_debugdump" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4db8601f41ea570b7d32f3177292a608196c59bdf3298001a9e202d5e7439438" +dependencies = [ + "bevy_app", + "bevy_ecs", + "bevy_render", + "bevy_utils", + "once_cell", + "petgraph", + "pretty-type-name", +] + +[[package]] +name = "bevy_pbr" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eeb6a35a78d355cc21c10f277dcd171eca65e30a90e76eb89f4dacf606621fe1" +dependencies = [ + "bevy_app", + "bevy_asset", + "bevy_core_pipeline", + "bevy_derive", + "bevy_ecs", + "bevy_math", + "bevy_reflect", + "bevy_render", + "bevy_transform", + "bevy_utils", + "bevy_window", + "bitflags 2.4.1", + "bytemuck", + "fixedbitset", + "naga_oil", + "radsort", + "smallvec", + "thread_local", +] + +[[package]] +name = "bevy_ptr" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "308a02679f6ce21ef71de20fae6d6a2016c07baa21d8e8d0558e6b7851e8adf2" + +[[package]] +name = "bevy_rapier3d" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3f0a2641af76c9eb17da0dcb0fb20cd9d615b93b67be0b85f1867487e956b5a" +dependencies = [ + "bevy", + "bitflags 2.4.1", + "log", + "nalgebra", + "rapier3d", + "serde", +] + +[[package]] +name = "bevy_reflect" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdd56914a8ad57621d7a1a099f7e6b1f7482c9c76cedc9c3d4c175a203939c5d" +dependencies = [ + "bevy_math", + "bevy_ptr", + "bevy_reflect_derive", + "bevy_utils", + "downcast-rs", + "erased-serde", + "glam", + "serde", + "smallvec", + "smol_str", + "thiserror", +] + +[[package]] +name = "bevy_reflect_derive" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25f627907c40ac552f798423447fc331fc1ddacd94c5f7a2a70942eb06bc8447" +dependencies = [ + "bevy_macro_utils", + "proc-macro2", + "quote", + "syn 2.0.39", + "uuid", +] + +[[package]] +name = "bevy_render" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90d777f4c51bd58e9e40777c6cb8dde0778df7e2c5298b3f9e3455bd12a9856c" +dependencies = [ + "async-channel", + "bevy_app", + "bevy_asset", + "bevy_core", + "bevy_derive", + "bevy_ecs", + "bevy_encase_derive", + "bevy_hierarchy", + "bevy_log", + "bevy_math", + "bevy_mikktspace", + "bevy_reflect", + "bevy_render_macros", + "bevy_tasks", + "bevy_time", + "bevy_transform", + "bevy_utils", + "bevy_window", + "bitflags 2.4.1", + "bytemuck", + "codespan-reporting", + "downcast-rs", + "encase", + "futures-lite", + "hexasphere", + "image", + "js-sys", + "ktx2", + "naga", + "naga_oil", + "ruzstd", + "serde", + "smallvec", + "thiserror", + "thread_local", + "wasm-bindgen", + "web-sys", + "wgpu", +] + +[[package]] +name = "bevy_render_macros" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35b00c3d0abff94a729460fc9aa95c2ceac71b49b3041166bb5ba3098e9657e7" +dependencies = [ + "bevy_macro_utils", + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "bevy_scene" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba6294396a6375f0b14341d8003408c10aa040e3f833ac8bd49677170ec55d73" +dependencies = [ + "bevy_app", + "bevy_asset", + "bevy_derive", + "bevy_ecs", + "bevy_hierarchy", + "bevy_reflect", + "bevy_render", + "bevy_transform", + "bevy_utils", + "ron", + "serde", + "thiserror", + "uuid", +] + +[[package]] +name = "bevy_sprite" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4f7d1f88a6e5497fdafd95c20984a1d1b5517bc39d51600b4988cd60c51837a" +dependencies = [ + "bevy_app", + "bevy_asset", + "bevy_core_pipeline", + "bevy_derive", + "bevy_ecs", + "bevy_log", + "bevy_math", + "bevy_reflect", + "bevy_render", + "bevy_transform", + "bevy_utils", + "bitflags 2.4.1", + "bytemuck", + "fixedbitset", + "guillotiere", + "radsort", + "rectangle-pack", + "thiserror", +] + +[[package]] +name = "bevy_tasks" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a45be906618192515bc613e46546150089adbb4a82178dc462045acd1e89e92" +dependencies = [ + "async-channel", + "async-executor", + "async-task", + "concurrent-queue", + "futures-lite", + "wasm-bindgen-futures", +] + +[[package]] +name = "bevy_text" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c136af700af4f87c94f68d6e019528c371bf09ebf4a8ff7468bb3c73806b34f5" +dependencies = [ + "ab_glyph", + "bevy_app", + "bevy_asset", + "bevy_ecs", + "bevy_math", + "bevy_reflect", + "bevy_render", + "bevy_sprite", + "bevy_transform", + "bevy_utils", + "bevy_window", + "glyph_brush_layout", + "serde", + "thiserror", +] + +[[package]] +name = "bevy_time" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b29709cadf22d318a0b7c79f763e9c5ac414292bd0e850066fa935959021b276" +dependencies = [ + "bevy_app", + "bevy_ecs", + "bevy_reflect", + "bevy_utils", + "crossbeam-channel", + "serde", + "thiserror", +] + +[[package]] +name = "bevy_transform" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70262c51e915b6224129206d23823364e650cf5eb5f4b6ce3ee379f608c180d2" +dependencies = [ + "bevy_app", + "bevy_ecs", + "bevy_hierarchy", + "bevy_math", + "bevy_reflect", + "serde", + "thiserror", +] + +[[package]] +name = "bevy_ui" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd5ecbf2dceaab118769dd870e34d780bfde556af561fd10d8d613b0f237297e" +dependencies = [ + "bevy_a11y", + "bevy_app", + "bevy_asset", + "bevy_core_pipeline", + "bevy_derive", + "bevy_ecs", + "bevy_hierarchy", + "bevy_input", + "bevy_log", + "bevy_math", + "bevy_reflect", + "bevy_render", + "bevy_sprite", + "bevy_text", + "bevy_transform", + "bevy_utils", + "bevy_window", + "bytemuck", + "serde", + "smallvec", + "taffy", + "thiserror", +] + +[[package]] +name = "bevy_utils" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8e75d4a34ef0b15dffd1ee9079ef1f0f5139527e192b9d5708b3e158777c753" +dependencies = [ + "ahash", + "bevy_utils_proc_macros", + "getrandom", + "hashbrown 0.14.2", + "instant", + "nonmax", + "petgraph", + "thiserror", + "tracing", + "uuid", +] + +[[package]] +name = "bevy_utils_proc_macros" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7dfd3735a61a1b681ed1e176afe4eae731bbb03e51ad871e9eb39e76a2d170e" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "bevy_window" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e60d1830b3fbd7db5bfea7ac9fcd0f5e1d1af88c91ab469e697ab176d8b3140b" +dependencies = [ + "bevy_a11y", + "bevy_app", + "bevy_ecs", + "bevy_input", + "bevy_math", + "bevy_reflect", + "bevy_utils", + "raw-window-handle", + "serde", +] + +[[package]] +name = "bevy_winit" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f8294e78c6a1f9c34d36501a377c5d20bf0fa23a0958187bb270187741448ba" +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", + "wasm-bindgen", + "web-sys", + "winit", +] + +[[package]] +name = "bindgen" +version = "0.68.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "726e4313eb6ec35d2730258ad4e15b547ee75d6afaa1361a922e78e59b7d8078" +dependencies = [ + "bitflags 2.4.1", + "cexpr", + "clang-sys", + "lazy_static", + "lazycell", + "peeking_take_while", + "proc-macro2", + "quote", + "regex", + "rustc-hash", + "shlex", + "syn 2.0.39", +] + +[[package]] +name = "bit-set" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +dependencies = [ + "bit-vec", +] + +[[package]] +name = "bit-vec" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" +dependencies = [ + "serde", +] + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" +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.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c36a4d0d48574b3dd360b4b7d95cc651d2b6557b6402848a27d4b228a473e2a" +dependencies = [ + "async-channel", + "async-lock", + "async-task", + "fastrand 2.0.1", + "futures-io", + "futures-lite", + "piper", + "tracing", +] + +[[package]] +name = "bstr" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "542f33a8835a0884b006a0c3df3dadd99c0c3f296ed26c2fdc8028e01ad6230c" +dependencies = [ + "memchr", + "regex-automata 0.4.3", + "serde", +] + +[[package]] +name = "bumpalo" +version = "3.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" + +[[package]] +name = "bytemuck" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "965ab7eb5f8f97d2a083c799f3a1b994fc397b2fe2da5d1da1626ce15a39f2b1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" + +[[package]] +name = "cc" +version = "1.0.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +dependencies = [ + "jobserver", + "libc", +] + +[[package]] +name = "cesu8" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" + +[[package]] +name = "cexpr" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" +dependencies = [ + "nom", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "cfg_aliases" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" + +[[package]] +name = "clang-sys" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c688fc74432808e3eb684cae8830a86be1d66a2bd58e1f248ed0960a590baf6f" +dependencies = [ + "glob", + "libc", + "libloading 0.7.4", +] + +[[package]] +name = "clipboard-win" +version = "4.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7191c27c2357d9b7ef96baac1773290d4ca63b24205b82a3fd8a0637afcf0362" +dependencies = [ + "error-code", + "str-buf", + "winapi", +] + +[[package]] +name = "codespan-reporting" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" +dependencies = [ + "termcolor", + "unicode-width", +] + +[[package]] +name = "color_quant" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" + +[[package]] +name = "com-rs" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf43edc576402991846b093a7ca18a3477e0ef9c588cde84964b5d3e43016642" + +[[package]] +name = "combine" +version = "4.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4" +dependencies = [ + "bytes", + "memchr", +] + +[[package]] +name = "concurrent-queue" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f057a694a54f12365049b0958a1685bb52d567f5593b355fbf685838e873d400" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "console_error_panic_hook" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc" +dependencies = [ + "cfg-if", + "wasm-bindgen", +] + +[[package]] +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 = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" + +[[package]] +name = "constgebra" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edd23e864550e6dafc1e41ac78ce4f1ccddc8672b40c403524a04ff3f0518420" +dependencies = [ + "const_soft_float", +] + +[[package]] +name = "core-foundation" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" + +[[package]] +name = "core-graphics" +version = "0.22.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "core-graphics-types", + "foreign-types 0.3.2", + "libc", +] + +[[package]] +name = "core-graphics-types" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bb142d41022986c1d8ff29103a1411c8a3dfad3552f87a4f8dc50d61d4f4e33" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "libc", +] + +[[package]] +name = "coreaudio-rs" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "321077172d79c662f64f5071a03120748d5bb652f5231570141be24cfcd2bace" +dependencies = [ + "bitflags 1.3.2", + "core-foundation-sys", + "coreaudio-sys", +] + +[[package]] +name = "coreaudio-sys" +version = "0.2.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8478e5bdad14dce236b9898ea002eabfa87cbe14f0aa538dbe3b6a4bec4332d" +dependencies = [ + "bindgen", +] + +[[package]] +name = "cpal" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d959d90e938c5493000514b446987c07aed46c668faaa7d34d6c7a67b1a578c" +dependencies = [ + "alsa", + "core-foundation-sys", + "coreaudio-rs", + "dasp_sample", + "jni 0.19.0", + "js-sys", + "libc", + "mach2", + "ndk", + "ndk-context", + "oboe", + "once_cell", + "parking_lot", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "windows 0.46.0", +] + +[[package]] +name = "crc32fast" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crossbeam" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2801af0d36612ae591caa9568261fddce32ce6e08a7275ea334a06a4ad021a2c" +dependencies = [ + "cfg-if", + "crossbeam-channel", + "crossbeam-deque", + "crossbeam-epoch", + "crossbeam-queue", + "crossbeam-utils", +] + +[[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" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" +dependencies = [ + "cfg-if", + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7" +dependencies = [ + "autocfg", + "cfg-if", + "crossbeam-utils", + "memoffset 0.9.0", + "scopeguard", +] + +[[package]] +name = "crossbeam-queue" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1cfb3ea8a53f37c40dea2c7bedcbd88bdfae54f5e2175d6ecaff1c988353add" +dependencies = [ + "cfg-if", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "d3d12" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e16e44ab292b1dddfdaf7be62cfd8877df52f2f3fde5858d95bab606be259f20" +dependencies = [ + "bitflags 2.4.1", + "libloading 0.8.1", + "winapi", +] + +[[package]] +name = "dasp_sample" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c87e182de0887fd5361989c677c4e8f5000cd9491d6d563161a8f3a5519fc7f" + +[[package]] +name = "data-encoding" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308" + +[[package]] +name = "dispatch" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" + +[[package]] +name = "downcast-rs" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" + +[[package]] +name = "duplicate" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de78e66ac9061e030587b2a2e75cc88f22304913c907b11307bca737141230cb" +dependencies = [ + "heck", + "proc-macro-error", +] + +[[package]] +name = "ecolor" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfdf4e52dbbb615cfd30cf5a5265335c217b5fd8d669593cea74a517d9c605af" +dependencies = [ + "bytemuck", +] + +[[package]] +name = "egui" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8bd69fed5fcf4fbb8225b24e80ea6193b61e17a625db105ef0c4d71dde6eb8b7" +dependencies = [ + "ahash", + "epaint", + "nohash-hasher", +] + +[[package]] +name = "egui-gizmo" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f732ad247afe275d6cf901e0f134025ad735007c8f4d82e667a6871f1b4a5441" +dependencies = [ + "egui", + "glam", +] + +[[package]] +name = "egui_dock" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a52f67bcab0eb6050cf8051c614966c1c57129fab23dbeae9c157214779053c7" +dependencies = [ + "duplicate", + "egui", + "paste", +] + +[[package]] +name = "either" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" + +[[package]] +name = "emath" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ef2b29de53074e575c18b694167ccbe6e5191f7b25fe65175a0d905a32eeec0" +dependencies = [ + "bytemuck", +] + +[[package]] +name = "encase" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fce2eeef77fd4a293a54b62aa00ac9daebfbcda4bf8998c5a815635b004aa1c" +dependencies = [ + "const_panic", + "encase_derive", + "glam", + "thiserror", +] + +[[package]] +name = "encase_derive" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e520cde08cbf4f7cc097f61573ec06ce467019803de8ae82fb2823fa1554a0e" +dependencies = [ + "encase_derive_impl", +] + +[[package]] +name = "encase_derive_impl" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fe2568f851fd6144a45fa91cfed8fe5ca8fc0b56ba6797bfc1ed2771b90e37c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "epaint" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58067b840d009143934d91d8dcb8ded054d8301d7c11a517ace0a99bb1e1595e" +dependencies = [ + "ab_glyph", + "ahash", + "bytemuck", + "ecolor", + "emath", + "nohash-hasher", + "parking_lot", +] + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "erased-serde" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c138974f9d5e7fe373eb04df7cae98833802ae4b11c24ac7039a21d5af4b26c" +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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87f253bc5c813ca05792837a0ff4b3a580336b224512d48f7eda1d7dd9210787" +dependencies = [ + "num-traits", +] + +[[package]] +name = "event-listener" +version = "2.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" + +[[package]] +name = "fastrand" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" +dependencies = [ + "instant", +] + +[[package]] +name = "fastrand" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" + +[[package]] +name = "fdeflate" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64d6dafc854908ff5da46ff3f8f473c6984119a2876a383a860246dd7841a868" +dependencies = [ + "simd-adler32", +] + +[[package]] +name = "fixedbitset" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" + +[[package]] +name = "flate2" +version = "1.0.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared 0.1.1", +] + +[[package]] +name = "foreign-types" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" +dependencies = [ + "foreign-types-macros", + "foreign-types-shared 0.3.1", +] + +[[package]] +name = "foreign-types-macros" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + +[[package]] +name = "foreign-types-shared" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" + +[[package]] +name = "form_urlencoded" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "futures-core" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c" + +[[package]] +name = "futures-io" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa" + +[[package]] +name = "futures-lite" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" +dependencies = [ + "fastrand 1.9.0", + "futures-core", + "futures-io", + "memchr", + "parking", + "pin-project-lite", + "waker-fn", +] + +[[package]] +name = "gethostname" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1ebd34e35c46e00bb73e81363248d627782724609fe1b6396f553f68fe3862e" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "getrandom" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "wasi", + "wasm-bindgen", +] + +[[package]] +name = "gilrs" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e9eec02069fcbd7abe00a28adf216547774889129a777cb5e53fdfb75d59f09" +dependencies = [ + "fnv", + "gilrs-core", + "log", + "uuid", + "vec_map", +] + +[[package]] +name = "gilrs-core" +version = "0.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e11f4e03be4f1beda399e4791c11d33102fa48f368e864259e4e810d3a3d2ff5" +dependencies = [ + "core-foundation", + "inotify", + "io-kit-sys", + "js-sys", + "libc", + "libudev-sys", + "log", + "nix 0.27.1", + "uuid", + "vec_map", + "wasm-bindgen", + "web-sys", + "windows 0.51.1", +] + +[[package]] +name = "gimli" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0" + +[[package]] +name = "glam" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5418c17512bdf42730f9032c74e1ae39afc408745ebb2acf72fbc4691c17945" +dependencies = [ + "bytemuck", + "serde", +] + +[[package]] +name = "glob" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" + +[[package]] +name = "glow" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca0fe580e4b60a8ab24a868bc08e2f03cbcb20d3d676601fa909386713333728" +dependencies = [ + "js-sys", + "slotmap", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "gltf" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad2dcfb6dd7a66f9eb3d181a29dcfb22d146b0bcdc2e1ed1713cbf03939a88ea" +dependencies = [ + "byteorder", + "gltf-json", + "lazy_static", +] + +[[package]] +name = "gltf-derive" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2cbcea5dd47e7ad4e9ee6f040384fcd7204bbf671aa4f9e7ca7dfc9bfa1de20" +dependencies = [ + "inflections", + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "gltf-json" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d5b810806b78dde4b71a95cc0e6fdcab34c4c617da3574df166f9987be97d03" +dependencies = [ + "gltf-derive", + "serde", + "serde_derive", + "serde_json", +] + +[[package]] +name = "glyph_brush_layout" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc32c2334f00ca5ac3695c5009ae35da21da8c62d255b5b96d56e2597a637a38" +dependencies = [ + "ab_glyph", + "approx", + "xi-unicode", +] + +[[package]] +name = "gpu-alloc" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbcd2dba93594b227a1f57ee09b8b9da8892c34d55aa332e034a228d0fe6a171" +dependencies = [ + "bitflags 2.4.1", + "gpu-alloc-types", +] + +[[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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc11df1ace8e7e564511f53af41f3e42ddc95b56fd07b3f4445d2a6048bc682c" +dependencies = [ + "bitflags 2.4.1", + "gpu-descriptor-types", + "hashbrown 0.14.2", +] + +[[package]] +name = "gpu-descriptor-types" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bf0b36e6f090b7e1d8a4b49c0cb81c1f8376f72198c65dd3ad9ff3556b8b78c" +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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b62d5865c036cb1393e23c50693df631d3f5d7bcca4c04fe4cc0fd592e74a782" +dependencies = [ + "euclid", + "svg_fmt", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "hashbrown" +version = "0.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f93e7192158dbcda357bdec5fb5788eebf8bbac027f3f33e719d29135ae84156" +dependencies = [ + "ahash", + "allocator-api2", + "serde", +] + +[[package]] +name = "hassle-rs" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1397650ee315e8891a0df210707f0fc61771b0cc518c3023896064c5407cb3b0" +dependencies = [ + "bitflags 1.3.2", + "com-rs", + "libc", + "libloading 0.7.4", + "thiserror", + "widestring", + "winapi", +] + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "hexasphere" +version = "9.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cb3df16a7bcb1b5bc092abd55e14f77ca70aea14445026e264586fc62889a10" +dependencies = [ + "constgebra", + "glam", +] + +[[package]] +name = "hexf-parse" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfa686283ad6dd069f105e5ab091b04c62850d3e4cf5d67debad1933f55023df" + +[[package]] +name = "home" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" +dependencies = [ + "windows-sys 0.48.0", +] + +[[package]] +name = "idna" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "image" +version = "0.24.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f3dfdbdd72063086ff443e297b61695500514b1e41095b6fb9a5ab48a70a711" +dependencies = [ + "bytemuck", + "byteorder", + "color_quant", + "num-rational", + "num-traits", + "png", + "tiff", +] + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", + "serde", +] + +[[package]] +name = "indexmap" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" +dependencies = [ + "equivalent", + "hashbrown 0.14.2", +] + +[[package]] +name = "inflections" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a257582fdcde896fd96463bf2d40eefea0580021c0712a0e2b028b60b47a837a" + +[[package]] +name = "inotify" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdd168d97690d0b8c412d6b6c10360277f4d7ee495c5d0d5d5fe0854923255cc" +dependencies = [ + "bitflags 1.3.2", + "futures-core", + "inotify-sys", + "libc", + "tokio", +] + +[[package]] +name = "inotify-sys" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb" +dependencies = [ + "libc", +] + +[[package]] +name = "instant" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "io-kit-sys" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4769cb30e5dcf1710fc6730d3e94f78c47723a014a567de385e113c737394640" +dependencies = [ + "core-foundation-sys", + "mach2", +] + +[[package]] +name = "itoa" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" + +[[package]] +name = "jni" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +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]] +name = "jni-sys" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" + +[[package]] +name = "jobserver" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d" +dependencies = [ + "libc", +] + +[[package]] +name = "jpeg-decoder" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc0000e42512c92e31c2252315bda326620a4e034105e900c98ec492fa077b3e" + +[[package]] +name = "js-sys" +version = "0.3.65" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54c0c35952f67de54bb584e9fd912b3023117cbafc0a77d8f3dee1fb5f572fe8" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "khronos-egl" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c2352bd1d0bceb871cb9d40f24360c8133c11d7486b68b5381c1dd1a32015e3" +dependencies = [ + "libc", + "libloading 0.7.4", + "pkg-config", +] + +[[package]] +name = "ktx2" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87d65e08a9ec02e409d27a0139eaa6b9756b4d81fe7cde71f6941a83730ce838" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "lazycell" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" + +[[package]] +name = "lewton" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "777b48df9aaab155475a83a7df3070395ea1ac6902f5cd062b8f2b028075c030" +dependencies = [ + "byteorder", + "ogg", + "tinyvec", +] + +[[package]] +name = "libc" +version = "0.2.150" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c" + +[[package]] +name = "libloading" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" +dependencies = [ + "cfg-if", + "winapi", +] + +[[package]] +name = "libloading" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c571b676ddfc9a8c12f1f3d3085a7b163966a8fd8098a90640953ce5f6170161" +dependencies = [ + "cfg-if", + "windows-sys 0.48.0", +] + +[[package]] +name = "libm" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" + +[[package]] +name = "libredox" +version = "0.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3af92c55d7d839293953fcd0fda5ecfe93297cfde6ffbdec13b41d99c0ba6607" +dependencies = [ + "bitflags 2.4.1", + "libc", + "redox_syscall 0.4.1", +] + +[[package]] +name = "libudev-sys" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c8469b4a23b962c1396b9b451dda50ef5b283e8dd309d69033475fa9b334324" +dependencies = [ + "libc", + "pkg-config", +] + +[[package]] +name = "lock_api" +version = "0.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" + +[[package]] +name = "mach2" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d0d1830bcd151a6fc4aea1369af235b36c1528fe976b8ff678683c9995eade8" +dependencies = [ + "libc", +] + +[[package]] +name = "malloc_buf" +version = "0.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" +dependencies = [ + "libc", +] + +[[package]] +name = "matchers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" + +[[package]] +name = "memoffset" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" +dependencies = [ + "autocfg", +] + +[[package]] +name = "memoffset" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" +dependencies = [ + "autocfg", +] + +[[package]] +name = "metal" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "623b5e6cefd76e58f774bd3cc0c6f5c7615c58c03a97815245a25c3c9bdee318" +dependencies = [ + "bitflags 2.4.1", + "block", + "core-graphics-types", + "foreign-types 0.5.0", + "log", + "objc", + "paste", +] + +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + +[[package]] +name = "miniz_oxide" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +dependencies = [ + "adler", + "simd-adler32", +] + +[[package]] +name = "mio" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0" +dependencies = [ + "libc", + "log", + "wasi", + "windows-sys 0.48.0", +] + +[[package]] +name = "naga" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1ceaaa4eedaece7e4ec08c55c640ba03dbb73fb812a6570a59bcf1930d0f70e" +dependencies = [ + "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 = "naga_oil" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1fa9518ff79ae8a98c3abe3897d873a85561d1b5642981c2245c1c4b9b2429d" +dependencies = [ + "bit-set", + "codespan-reporting", + "data-encoding", + "indexmap 1.9.3", + "naga", + "once_cell", + "regex", + "regex-syntax 0.7.5", + "rustc-hash", + "thiserror", + "tracing", + "unicode-ident", +] + +[[package]] +name = "nalgebra" +version = "0.32.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "307ed9b18cc2423f29e83f84fd23a8e73628727990181f18641a8b5dc2ab1caa" +dependencies = [ + "approx", + "glam", + "matrixmultiply", + "nalgebra-macros", + "num-complex", + "num-rational", + "num-traits", + "serde", + "simba", + "typenum", +] + +[[package]] +name = "nalgebra-macros" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91761aed67d03ad966ef783ae962ef9bbaca728d2dd7ceb7939ec110fffad998" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ndk" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3cf2aae958bd232cac5069850591667ad422d263686d75b52a065f9badeee5a3" +dependencies = [ + "jni-sys", +] + +[[package]] +name = "nix" +version = "0.24.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069" +dependencies = [ + "bitflags 1.3.2", + "cfg-if", + "libc", + "memoffset 0.6.5", +] + +[[package]] +name = "nix" +version = "0.27.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" +dependencies = [ + "bitflags 2.4.1", + "cfg-if", + "libc", +] + +[[package]] +name = "nohash-hasher" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451" + +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "nonmax" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e4a593ea4fffed8684ad13d75c82cf0b6dc2b88947e0ed85b9e70f555a7e422" + +[[package]] +name = "normpath" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec60c60a693226186f5d6edf073232bfb6464ed97eb22cf3b01c1e8198fd97f5" +dependencies = [ + "windows-sys 0.48.0", +] + +[[package]] +name = "ntapi" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4" +dependencies = [ + "winapi", +] + +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] + +[[package]] +name = "num-complex" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214" +dependencies = [ + "num-traits", + "serde", +] + +[[package]] +name = "num-derive" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "num-integer" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +dependencies = [ + "autocfg", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +dependencies = [ + "autocfg", + "libm", +] + +[[package]] +name = "num_enum" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9" +dependencies = [ + "num_enum_derive 0.5.11", +] + +[[package]] +name = "num_enum" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a015b430d3c108a207fd776d2e2196aaf8b1cf8cf93253e3a097ff3085076a1" +dependencies = [ + "num_enum_derive 0.6.1", +] + +[[package]] +name = "num_enum_derive" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "num_enum_derive" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96667db765a921f7b295ffee8b60472b686a51d4f21c2ee4ffdb94c7013b65a6" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "objc" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" +dependencies = [ + "malloc_buf", + "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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad970fb455818ad6cba4c122ad012fae53ae8b4795f86378bce65e4f6bab2ca4" +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.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" +dependencies = [ + "memchr", +] + +[[package]] +name = "oboe" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8868cc237ee02e2d9618539a23a8d228b9bb3fc2e7a5b11eed3831de77c395d0" +dependencies = [ + "jni 0.20.0", + "ndk", + "ndk-context", + "num-derive", + "num-traits", + "oboe-sys", +] + +[[package]] +name = "oboe-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f44155e7fb718d3cfddcf70690b2b51ac4412f347cd9e4fbe511abe9cd7b5f2" +dependencies = [ + "cc", +] + +[[package]] +name = "ogg" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6951b4e8bf21c8193da321bcce9c9dd2e13c858fe078bf9054a288b419ae5d6e" +dependencies = [ + "byteorder", +] + +[[package]] +name = "once_cell" +version = "1.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" + +[[package]] +name = "opener" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c62dcb6174f9cb326eac248f07e955d5d559c272730b6c03e396b443b562788" +dependencies = [ + "bstr", + "normpath", + "winapi", +] + +[[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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + +[[package]] +name = "owned_ttf_parser" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4586edfe4c648c71797a74c84bacb32b52b212eff5dfe2bb9f2c599844023e7" +dependencies = [ + "ttf-parser", +] + +[[package]] +name = "parking" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae" + +[[package]] +name = "parking_lot" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall 0.4.1", + "smallvec", + "windows-targets 0.48.5", +] + +[[package]] +name = "parry3d" +version = "0.13.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b55dc0e6db79bddbc5fd583569f7356cdcc63e1e9b2b93a9ab70dd8e717160e0" +dependencies = [ + "approx", + "arrayvec", + "bitflags 1.3.2", + "downcast-rs", + "either", + "indexmap 1.9.3", + "nalgebra", + "num-derive", + "num-traits", + "rustc-hash", + "serde", + "simba", + "slab", + "smallvec", + "spade", +] + +[[package]] +name = "paste" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" + +[[package]] +name = "path-slash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e91099d4268b0e11973f036e885d652fb0b21fedcf69738c627f94db6a44f42" + +[[package]] +name = "peeking_take_while" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" + +[[package]] +name = "percent-encoding" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" + +[[package]] +name = "petgraph" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" +dependencies = [ + "fixedbitset", + "indexmap 2.1.0", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" + +[[package]] +name = "piper" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "668d31b1c4eba19242f2088b2bf3316b82ca31082a8335764db4e083db7485d4" +dependencies = [ + "atomic-waker", + "fastrand 2.0.1", + "futures-io", +] + +[[package]] +name = "pkg-config" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" + +[[package]] +name = "png" +version = "0.17.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd75bf2d8dd3702b9707cdbc56a5b9ef42cec752eb8b3bafc01234558442aa64" +dependencies = [ + "bitflags 1.3.2", + "crc32fast", + "fdeflate", + "flate2", + "miniz_oxide", +] + +[[package]] +name = "pp-rs" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb458bb7f6e250e6eb79d5026badc10a3ebb8f9a15d1fff0f13d17c71f4d6dee" +dependencies = [ + "unicode-xid", +] + +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + +[[package]] +name = "pretty-type-name" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f73cdaf19b52e6143685c3606206e114a4dfa969d6b14ec3894c88eb38bd4b" + +[[package]] +name = "proc-macro-crate" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +dependencies = [ + "once_cell", + "toml_edit 0.19.15", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro2" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "profiling" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f89dff0959d98c9758c88826cc002e2c3d0b9dfac4139711d1f30de442f1139b" + +[[package]] +name = "quote" +version = "1.0.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "radsort" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17fd96390ed3feda12e1dfe2645ed587e0bea749e319333f104a33ff62f77a0b" + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom", +] + +[[package]] +name = "range-alloc" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8a99fddc9f0ba0a85884b8d14e3592853e787d581ca1816c91349b10e4eeab" + +[[package]] +name = "rapier3d" +version = "0.17.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62a8a0bd9d3135f7b4eb45d0796540e7bab47b6b7c974f90567ccc5a0454f42b" +dependencies = [ + "approx", + "arrayvec", + "bit-vec", + "bitflags 1.3.2", + "crossbeam", + "downcast-rs", + "nalgebra", + "num-derive", + "num-traits", + "parry3d", + "rustc-hash", + "serde", + "simba", +] + +[[package]] +name = "raw-window-handle" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9" + +[[package]] +name = "rawpointer" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" + +[[package]] +name = "rectangle-pack" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0d463f2884048e7153449a55166f91028d5b0ea53c79377099ce4e8cf0cf9bb" + +[[package]] +name = "redox_syscall" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "redox_syscall" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "regex" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata 0.4.3", + "regex-syntax 0.8.2", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax 0.6.29", +] + +[[package]] +name = "regex-automata" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax 0.8.2", +] + +[[package]] +name = "regex-syntax" +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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" + +[[package]] +name = "renderdoc-sys" +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 = "cbf4a6aa5f6d6888f39e980649f3ad6b666acdce1d78e95b8a2cb076e687ae30" + +[[package]] +name = "rodio" +version = "0.17.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b1bb7b48ee48471f55da122c0044fcc7600cfcc85db88240b89cb832935e611" +dependencies = [ + "cpal", + "lewton", +] + +[[package]] +name = "ron" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b91f7eff05f748767f183df4320a63d6936e9c6107d97c9e6bdd9784f4289c94" +dependencies = [ + "base64 0.21.5", + "bitflags 2.4.1", + "serde", + "serde_derive", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" + +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + +[[package]] +name = "ruzstd" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3ffab8f9715a0d455df4bbb9d21e91135aab3cd3ca187af0cd0c3c3f868fdc" +dependencies = [ + "byteorder", + "thiserror-core", + "twox-hash", +] + +[[package]] +name = "ryu" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" + +[[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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "serde" +version = "1.0.192" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bca2a08484b285dcb282d0f67b26cadc0df8b19f8c12502c13d966bf9482f001" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.192" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6c7207fbec9faa48073f3e3074cbe553af6ea512d7c21ba46e434e70ea9fbc1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "serde_json" +version = "1.0.108" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" +dependencies = [ + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "shlex" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7cee0529a6d40f580e7a5e6c495c8fbfe21b7b52795ed4bb5e62cdf92bc6380" + +[[package]] +name = "simba" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "061507c94fc6ab4ba1c9a0305018408e312e17c041eb63bef8aa726fa33aceae" +dependencies = [ + "approx", + "libm", + "num-complex", + "num-traits", + "paste", + "wide", +] + +[[package]] +name = "simd-adler32" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] + +[[package]] +name = "slotmap" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1e08e261d0e8f5c43123b7adf3e4ca1690d655377ac93a03b2c9d3e98de1342" +dependencies = [ + "version_check", +] + +[[package]] +name = "smallvec" +version = "1.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" +dependencies = [ + "serde", +] + +[[package]] +name = "smol_str" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74212e6bbe9a4352329b2f68ba3130c15a3f26fe88ff22dbdc6cdd58fa85e99c" +dependencies = [ + "serde", +] + +[[package]] +name = "socket2" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" +dependencies = [ + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "spade" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c39e369d9638e42586b226e67df08a7358d1e02eb80629d596b944b7c16f44f" +dependencies = [ + "hashbrown 0.14.2", + "num-traits", + "robust", + "smallvec", +] + +[[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 = "str-buf" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e08d8363704e6c71fc928674353e6b7c23dcea9d82d7012c8faf2a3a025f8d0" + +[[package]] +name = "svg_fmt" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fb1df15f412ee2e9dfc1c504260fa695c1c3f10fe9f4a6ee2d2184d7d6450e2" + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.39" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "sysinfo" +version = "0.29.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a18d114d420ada3a891e6bc8e96a2023402203296a47cdd65083377dad18ba5" +dependencies = [ + "cfg-if", + "core-foundation-sys", + "libc", + "ntapi", + "once_cell", + "winapi", +] + +[[package]] +name = "taffy" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c2287b6d7f721ada4cddf61ade5e760b2c6207df041cac9bfaa192897362fd3" +dependencies = [ + "arrayvec", + "grid", + "num-traits", + "slotmap", +] + +[[package]] +name = "termcolor" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6093bad37da69aab9d123a8091e4be0aa4a03e4d601ec641c327398315f62b64" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "thiserror" +version = "1.0.50" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-core" +version = "1.0.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d97345f6437bb2004cd58819d8a9ef8e36cdd7661c2abc4bbde0a7c40d9f497" +dependencies = [ + "thiserror-core-impl", +] + +[[package]] +name = "thiserror-core-impl" +version = "1.0.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10ac1c5050e43014d16b2f94d0d2ce79e65ffdd8b38d8048f9c8f6a8a6da62ac" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.50" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "thread_local" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" +dependencies = [ + "cfg-if", + "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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0c014766411e834f7af5b8f4cf46257aab4036ca95e9d2c144a10f59ad6f5b9" +dependencies = [ + "backtrace", + "libc", + "mio", + "pin-project-lite", + "socket2", + "windows-sys 0.48.0", +] + +[[package]] +name = "toml_datetime" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" + +[[package]] +name = "toml_edit" +version = "0.19.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +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", + "winnow", +] + +[[package]] +name = "tracing" +version = "0.1.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +dependencies = [ + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "tracing-core" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-log" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f751112709b4e791d8ce53e32c4ed2d353565a795ce84da2285393f41557bdf2" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77" +dependencies = [ + "matchers", + "nu-ansi-term", + "once_cell", + "regex", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log", +] + +[[package]] +name = "tracing-wasm" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4575c663a174420fa2d78f4108ff68f65bf2fbb7dd89f33749b6e826b3626e07" +dependencies = [ + "tracing", + "tracing-subscriber", + "wasm-bindgen", +] + +[[package]] +name = "ttf-parser" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17f77d76d837a7830fe1d4f12b7b4ba4192c1888001c7164257e4bc6d21d96b4" + +[[package]] +name = "twox-hash" +version = "1.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" +dependencies = [ + "cfg-if", + "static_assertions", +] + +[[package]] +name = "typenum" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" + +[[package]] +name = "unicode-bidi" +version = "0.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" + +[[package]] +name = "unicode-ident" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unicode-normalization" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-width" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" + +[[package]] +name = "unicode-xid" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" + +[[package]] +name = "url" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", +] + +[[package]] +name = "uuid" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88ad59a7560b41a70d191093a945f0b87bc1deeda46fb237479708a1d6b6cdfc" +dependencies = [ + "getrandom", + "serde", +] + +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + +[[package]] +name = "vec_map" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "waker-fn" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690" + +[[package]] +name = "walkdir" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasm-bindgen" +version = "0.2.88" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7daec296f25a1bae309c0cd5c29c4b260e510e6d813c286b19eaadf409d40fce" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.88" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e397f4664c0e4e428e8313a469aaa58310d302159845980fd23b0f22a847f217" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.39", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9afec9963e3d0994cac82455b2b3502b81a7f40f9a0d32181f7528d9f4b43e02" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.88" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5961017b3b08ad5f3fe39f1e79877f8ee7c23c5e5fd5eb80de95abc41f1f16b2" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.88" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5353b8dab669f5e10f5bd76df26a9360c748f054f862ff5f3f8aae0c7fb3907" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.88" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d046c5d029ba91a1ed14da14dca44b68bf2f124cfbaf741c54151fdb3e0750b" + +[[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.65" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5db499c5f66323272151db0e666cd34f78617522fb0c1604d31a27c50c206a85" +dependencies = [ + "js-sys", + "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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb" + +[[package]] +name = "wgpu" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed547920565c56c7a29afb4538ac5ae5048865a5d2f05bff3ad4fbeb921a9a2c" +dependencies = [ + "arrayvec", + "cfg-if", + "js-sys", + "log", + "naga", + "parking_lot", + "profiling", + "raw-window-handle", + "smallvec", + "static_assertions", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "wgpu-core", + "wgpu-hal", + "wgpu-types", +] + +[[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", + "log", + "naga", + "parking_lot", + "profiling", + "raw-window-handle", + "rustc-hash", + "smallvec", + "thiserror", + "web-sys", + "wgpu-hal", + "wgpu-types", +] + +[[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", + "glow", + "gpu-alloc", + "gpu-allocator", + "gpu-descriptor", + "hassle-rs", + "js-sys", + "khronos-egl", + "libc", + "libloading 0.8.1", + "log", + "metal", + "naga", + "objc", + "parking_lot", + "profiling", + "range-alloc", + "raw-window-handle", + "renderdoc-sys", + "rustc-hash", + "smallvec", + "thiserror", + "wasm-bindgen", + "web-sys", + "wgpu-types", + "winapi", +] + +[[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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" +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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows" +version = "0.44.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e745dab35a0c4c77aa3ce42d595e13d2003d6902d6b08c9ef5fc326d08da12b" +dependencies = [ + "windows-targets 0.42.2", +] + +[[package]] +name = "windows" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdacb41e6a96a052c6cb63a144f24900236121c6f63f4f8219fef5977ecb0c25" +dependencies = [ + "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.51.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca229916c5ee38c2f2bc1e9d8f04df975b4bd93f9955dc69fabb5d91270045c9" +dependencies = [ + "windows-core", + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-core" +version = "0.51.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +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 = "e6fb8df20c9bcaa8ad6ab513f7b40104840c8867d5751126e4df3b08388d0cc7" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "windows-sys" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets 0.42.2", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_i686_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "winit" +version = "0.28.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9596d90b45384f5281384ab204224876e8e8bf7d58366d9b795ad99aa9894b94" +dependencies = [ + "android-activity", + "bitflags 1.3.2", + "cfg_aliases", + "core-foundation", + "core-graphics", + "dispatch", + "instant", + "libc", + "log", + "mio", + "ndk", + "objc2", + "once_cell", + "orbclient", + "percent-encoding", + "raw-window-handle", + "redox_syscall 0.3.5", + "wasm-bindgen", + "wayland-scanner", + "web-sys", + "windows-sys 0.45.0", + "x11-dl", +] + +[[package]] +name = "winnow" +version = "0.5.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "829846f3e3db426d4cee4510841b71a8e58aa2a76b1132579487ae430ccd9c7b" +dependencies = [ + "memchr", +] + +[[package]] +name = "x11-dl" +version = "2.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f" +dependencies = [ + "libc", + "once_cell", + "pkg-config", +] + +[[package]] +name = "x11rb" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "592b4883219f345e712b3209c62654ebda0bb50887f330cbd018d0f654bfd507" +dependencies = [ + "gethostname", + "nix 0.24.3", + "winapi", + "winapi-wsapoll", + "x11rb-protocol", +] + +[[package]] +name = "x11rb-protocol" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56b245751c0ac9db0e006dc812031482784e434630205a93c73cfefcaabeac67" +dependencies = [ + "nix 0.24.3", +] + +[[package]] +name = "xi-unicode" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a67300977d3dc3f8034dae89778f502b6ba20b269527b3223ba59c0cf393bb8a" + +[[package]] +name = "xml-rs" +version = "0.8.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fcb9cbac069e033553e8bb871be2fbdffcab578eb25bd0f7c508cedc6dcd75a" + +[[package]] +name = "zerocopy" +version = "0.7.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8cd369a67c0edfef15010f980c3cbe45d7f651deac2cd67ce097cd801de16557" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2f140bda219a26ccc0cdb03dba58af72590c53b22642577d88a927bc5c87d6b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] diff --git a/examples/bevy_gltf_blueprints/basic_wasm/Cargo.toml b/examples/bevy_gltf_blueprints/basic_wasm/Cargo.toml new file mode 100644 index 0000000..97f1e0e --- /dev/null +++ b/examples/bevy_gltf_blueprints/basic_wasm/Cargo.toml @@ -0,0 +1,13 @@ +[package] +name = "bevy_gltf_blueprints_basic_wasm_example" +version = "0.3.0" +edition = "2021" +license = "MIT OR Apache-2.0" + +[dependencies] +bevy="0.12" +bevy_gltf_blueprints = { path = "../../../crates/bevy_gltf_blueprints" } +bevy_rapier3d = { version = "0.23.0", features = [ "serde-serialize", "debug-render-3d", "enhanced-determinism"] } +bevy_asset_loader = { version = "0.18", features = ["standard_dynamic_assets" ]} +bevy_editor_pls = { version = "0.6" } +rand = "0.8.5" diff --git a/examples/bevy_gltf_blueprints/basic_wasm/README.md b/examples/bevy_gltf_blueprints/basic_wasm/README.md new file mode 100644 index 0000000..a8c33f3 --- /dev/null +++ b/examples/bevy_gltf_blueprints/basic_wasm/README.md @@ -0,0 +1,31 @@ +# Basic wasm example/demo + +This example showcases various components & blueprints extracted from the gltf files, including physics colliders & rigid bodies, in wasm + +## Setup + +as per the bevy documentation: + +```shell +rustup target add wasm32-unknown-unknown +cargo install wasm-bindgen-cli +``` + + +## Building this example + +navigate to the current folder , and then + +```shell +cargo build --release --target wasm32-unknown-unknown --target-dir ./target +wasm-bindgen --out-name wasm_example \ + --out-dir ./target/wasm \ + --target web target/wasm32-unknown-unknown/release/bevy_gltf_blueprints_basic_wasm_example.wasm + +``` + +## Running this example + +run a web server in the current folder, and navigate to the page, you should see the example in your browser + + diff --git a/examples/bevy_gltf_blueprints/basic_wasm/assets/advanced.blend b/examples/bevy_gltf_blueprints/basic_wasm/assets/advanced.blend new file mode 100644 index 0000000000000000000000000000000000000000..6ce38c09567771d266e02c7f2f17d674123284e5 GIT binary patch literal 1318192 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 z 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 z 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

9G0S>s>5&xO_66=YnVQ#FufQmCQRt>mgstgA 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 literal 0 HcmV?d00001 diff --git a/examples/bevy_gltf_blueprints/basic_wasm/assets/models/library/MagicTeapot.glb b/examples/bevy_gltf_blueprints/basic_wasm/assets/models/library/MagicTeapot.glb new file mode 100644 index 0000000000000000000000000000000000000000..63dc03551cb0cb4384fdc10f77a85c2835777a0c GIT binary patch literal 24028 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 H$v5eLdBWc{ literal 0 HcmV?d00001 diff --git a/examples/bevy_gltf_blueprints/basic_wasm/assets/models/library/Player.glb b/examples/bevy_gltf_blueprints/basic_wasm/assets/models/library/Player.glb new file mode 100644 index 0000000000000000000000000000000000000000..986b7da033f80a33b011ecda39fe893d00633eb6 GIT binary patch literal 28712 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 literal 0 HcmV?d00001 diff --git a/examples/bevy_gltf_blueprints/basic_wasm/assets/models/library/Unused_in_level_test.glb b/examples/bevy_gltf_blueprints/basic_wasm/assets/models/library/Unused_in_level_test.glb new file mode 100644 index 0000000000000000000000000000000000000000..dff3f8768c2374731bf6edbeab88e8f39061eae4 GIT binary patch literal 5552 zcmb7GOLrqz5w0YJ437z~BoIhI>G1G`9;F|8gC#u9OvV|HZDf0R7}K<*mfV?Ex9Dzp ztTASC4tq8n7FlPP4cUc_?FB0iYtG>>uz^3og0HUn+E+7@t+B1rr`vVEs`_r#m3zU~ zt!Iholb4BJx?R{tdtoo#({^<&X(OsuGcuH5+aWW>F5sco-gCpA*V!CUEZ*AiydMC{zgDJ}9*fKM33y0v~GG%5oH@u8+e~7dHZTG`VuybAxox z*+8Acf$DnK?fLC3&mBamy1X3@ac+(uj`Md?FTwL&6p_U}S3it89w%w&=I#+nke?5= zvqQ-COe1xAUexzeoFf-?e%PEaN~mcIZa*4^Y0WaOK{M9HNB`l$vO7qIfwz!bIKZhH zdTvy^Zstur_mDqc%jx_empxG)=s7GFbIi8s?t3^4Ru-RFobyjjzvp*uL>;u1_Ra_u z_-&*p%b!|GJL(UjP_!8fan|kP1Uu0Xkv5S$`X!Br9u7Mjf?IA|Oxg~TwQbWVluISE zWLSl2+0^k1uJd`~F28J+;3By<<$Tr5VmV)|;>V~I3T3NQEFGbqbHxX7G(fH9c!0Ab zdpC$4@Q4js@m(*)y!h>AH0MwMCt11rbEjVOnDu?`$n!JQDh1#zp6;eS_@6PJ7tGnT|ys zPnlNh;@W}cvD@*7V$MtBIk)Ue!K@$+jH~|;+xQfapP}1%1IoK`+v)iGTFuh60P`R) zKh}VpbTr`ZSzd3h-E3|`sHoF%+yg(s-QxFfA!cF2$O-(ukGoYYK=@4Hfg85n`yNXi zvjgtL@x;4n8vCsw29HmCV|{aFYh`^+Tvu!B&AUsh<2%I@wDikW{O1okfOZ>#h+a;q^ zF4}gXY8yD>s{W)G!uNd$u){<7IK%ZR6jS`bkqLb7=CUnr2(<{@u$LBb(SAtw2^_*O;Bq;A~fFIWgyviQOq zlg+VtOgHa-^z>wG+bDA}N_hLcmaGmXc^fl{7Ru#vA6zB6v9d^AxzQ_+N+>O&YT>xMZI+=E1C6rbFW?FzX=wFT|V! z^Ft4j&zzWhL;7Ecm3d)JFi@T#or+7d9)8GHI_^*EsPXF@UM<;mI z8DovtkL5c1N&i`UXYu^+zkg#5DF27x6faQ&)=o12h7z~IF=zSn9?7HTrp8tGPVpD9 z)VQiY=W$u>s*i#fAJa!_wa7Jd&YX*ykFs|{=S%#BK3VOe7S&(Db(LSi6ZuT>7yOw& z<3)9E7MJ^^uGG6YYhCFR_K`hSSK}(0hHZ%D|kX5bzRL9I>_0ntGQ+VLWf!Y3g<*zh4Vzg+&`SB z><5Xte`F35{-{y*Jl88R&&A@Ddqb`_*jK4V-ajHP*7^PseUWhr|BQ3m-V>SgJbM)$ zc`i@X`&eAAi{nn@{}|6%4$x3y_LqB)6|C~e9uWPe=r3nMtk1dkEUu!1oLQ0oGxS;d z3O$3@3-la)gWiCBgT73kqp#8{u&>Zn`VxJI-h_RVzD8f5m#GWeC6`{J@6jIY9<}M~ z^i5iTU7#F&i}F;4Ez>pnHhrJof_;lL`T-TG3R|Tg(sxOx7&fLJU8f(>5$q8q^fsAP zhpkhE3UrHBVOOa^C0e8<*d?mbPiT#ruuXc0eoQxL1UsVN(=u()1K0=jJ9?My&^GKg z-KF>FS-Jvyg|=v&enva6JG4pn==1aX literal 0 HcmV?d00001 diff --git a/examples/bevy_gltf_blueprints/basic_wasm/index.html b/examples/bevy_gltf_blueprints/basic_wasm/index.html new file mode 100644 index 0000000..6e37b45 --- /dev/null +++ b/examples/bevy_gltf_blueprints/basic_wasm/index.html @@ -0,0 +1,27 @@ + + + + + + + diff --git a/examples/bevy_gltf_blueprints/basic_wasm/src/assets/assets_core.rs b/examples/bevy_gltf_blueprints/basic_wasm/src/assets/assets_core.rs new file mode 100644 index 0000000..29b577a --- /dev/null +++ b/examples/bevy_gltf_blueprints/basic_wasm/src/assets/assets_core.rs @@ -0,0 +1,5 @@ +use bevy::prelude::*; +use bevy_asset_loader::prelude::*; + +#[derive(AssetCollection, Resource)] +pub struct CoreAssets {} diff --git a/examples/bevy_gltf_blueprints/basic_wasm/src/assets/assets_game.rs b/examples/bevy_gltf_blueprints/basic_wasm/src/assets/assets_game.rs new file mode 100644 index 0000000..c3f93d7 --- /dev/null +++ b/examples/bevy_gltf_blueprints/basic_wasm/src/assets/assets_game.rs @@ -0,0 +1,27 @@ +use bevy::gltf::Gltf; +use bevy::prelude::*; +use bevy::utils::HashMap; +use bevy_asset_loader::prelude::*; + +#[derive(AssetCollection, Resource)] +pub struct GameAssets { + #[asset(key = "world")] + pub world: Handle, + + + + + #[asset(paths("models/library/Container.glb", "models/library/Health_Pickup.glb", "models/library/MagicTeapot.glb", + "models/library/Pillar.glb", + "models/library/Player.glb", + "models/library/Unused_in_level_test.glb"), collection(typed))] + pub models: Vec>, + + + /* + #[asset(key = "models", collection(typed, mapped))] + pub models: HashMap>, + + #[asset(key = "models", collection(typed))] + pub models: Vec>,*/ +} diff --git a/examples/bevy_gltf_blueprints/basic_wasm/src/assets/mod.rs b/examples/bevy_gltf_blueprints/basic_wasm/src/assets/mod.rs new file mode 100644 index 0000000..a2c8b22 --- /dev/null +++ b/examples/bevy_gltf_blueprints/basic_wasm/src/assets/mod.rs @@ -0,0 +1,35 @@ +pub mod assets_core; +pub use assets_core::*; + +pub mod assets_game; +pub use assets_game::*; + +use bevy::prelude::*; +use bevy_asset_loader::prelude::*; + +use crate::state::AppState; + +pub struct AssetsPlugin; +impl Plugin for AssetsPlugin { + fn build(&self, app: &mut App) { + app + // load core assets (ie assets needed in the main menu, and everywhere else before loading more assets in game) + .add_loading_state( + LoadingState::new(AppState::CoreLoading).continue_to_state(AppState::MenuRunning), + ) + .add_dynamic_collection_to_loading_state::<_, StandardDynamicAssetCollection>( + AppState::CoreLoading, + "assets_core.assets.ron", + ) + .add_collection_to_loading_state::<_, CoreAssets>(AppState::CoreLoading) + // load game assets + .add_loading_state( + LoadingState::new(AppState::AppLoading).continue_to_state(AppState::AppRunning), + ) + .add_dynamic_collection_to_loading_state::<_, StandardDynamicAssetCollection>( + AppState::AppLoading, + "assets_game.assets.ron", + ) + .add_collection_to_loading_state::<_, GameAssets>(AppState::AppLoading); + } +} diff --git a/examples/bevy_gltf_blueprints/basic_wasm/src/core/camera/camera_replace_proxies.rs b/examples/bevy_gltf_blueprints/basic_wasm/src/core/camera/camera_replace_proxies.rs new file mode 100644 index 0000000..9055c95 --- /dev/null +++ b/examples/bevy_gltf_blueprints/basic_wasm/src/core/camera/camera_replace_proxies.rs @@ -0,0 +1,24 @@ +use bevy::core_pipeline::bloom::{BloomCompositeMode, BloomSettings}; +use bevy::core_pipeline::tonemapping::{DebandDither, Tonemapping}; +use bevy::prelude::*; + +use super::CameraTrackingOffset; + +pub fn camera_replace_proxies( + mut commands: Commands, + mut added_cameras: Query<(Entity, &mut Camera), (Added, With)>, +) { + for (entity, mut camera) in added_cameras.iter_mut() { + info!("detected added camera, updating proxy"); + camera.hdr = true; + commands + .entity(entity) + .insert(DebandDither::Enabled) + .insert(Tonemapping::BlenderFilmic) + .insert(BloomSettings { + intensity: 0.01, + composite_mode: BloomCompositeMode::Additive, + ..default() + }); + } +} diff --git a/examples/bevy_gltf_blueprints/basic_wasm/src/core/camera/camera_tracking.rs b/examples/bevy_gltf_blueprints/basic_wasm/src/core/camera/camera_tracking.rs new file mode 100644 index 0000000..62da84d --- /dev/null +++ b/examples/bevy_gltf_blueprints/basic_wasm/src/core/camera/camera_tracking.rs @@ -0,0 +1,58 @@ +use bevy::prelude::*; + +#[derive(Component, Reflect, Debug)] +#[reflect(Component)] +/// Component for cameras, with an offset from the Trackable target +/// +pub struct CameraTracking { + pub offset: Vec3, +} +impl Default for CameraTracking { + fn default() -> Self { + CameraTracking { + offset: Vec3::new(0.0, 6.0, 8.0), + } + } +} + +#[derive(Component, Reflect, Debug, Deref, DerefMut)] +#[reflect(Component)] +/// Component for cameras, with an offset from the Trackable target +pub struct CameraTrackingOffset(Vec3); +impl Default for CameraTrackingOffset { + fn default() -> Self { + CameraTrackingOffset(Vec3::new(0.0, 6.0, 8.0)) + } +} + +impl CameraTrackingOffset { + fn new(input: Vec3) -> Self { + CameraTrackingOffset(input) + } +} + +#[derive(Component, Reflect, Default, Debug)] +#[reflect(Component)] +/// Add this component to an entity if you want it to be tracked by a Camera +pub struct CameraTrackable; + +pub fn camera_track( + mut tracking_cameras: Query< + (&mut Transform, &CameraTrackingOffset), + ( + With, + With, + Without, + ), + >, + camera_tracked: Query<&Transform, With>, +) { + for (mut camera_transform, tracking_offset) in tracking_cameras.iter_mut() { + for tracked_transform in camera_tracked.iter() { + let target_position = tracked_transform.translation + tracking_offset.0; + let eased_position = camera_transform.translation.lerp(target_position, 0.1); + camera_transform.translation = eased_position; // + tracking.offset;// tracked_transform.translation + tracking.offset; + *camera_transform = camera_transform.looking_at(tracked_transform.translation, Vec3::Y); + } + } +} diff --git a/examples/bevy_gltf_blueprints/basic_wasm/src/core/camera/mod.rs b/examples/bevy_gltf_blueprints/basic_wasm/src/core/camera/mod.rs new file mode 100644 index 0000000..a6bbb65 --- /dev/null +++ b/examples/bevy_gltf_blueprints/basic_wasm/src/core/camera/mod.rs @@ -0,0 +1,24 @@ +pub mod camera_tracking; +pub use camera_tracking::*; + +pub mod camera_replace_proxies; +pub use camera_replace_proxies::*; + +use bevy::prelude::*; +use bevy_gltf_blueprints::GltfBlueprintsSet; + +pub struct CameraPlugin; +impl Plugin for CameraPlugin { + fn build(&self, app: &mut App) { + app.register_type::() + .register_type::() + .register_type::() + .add_systems( + Update, + ( + camera_replace_proxies.after(GltfBlueprintsSet::AfterSpawn), + camera_track, + ), + ); + } +} diff --git a/examples/bevy_gltf_blueprints/basic_wasm/src/core/lighting/lighting_replace_proxies.rs b/examples/bevy_gltf_blueprints/basic_wasm/src/core/lighting/lighting_replace_proxies.rs new file mode 100644 index 0000000..48c0908 --- /dev/null +++ b/examples/bevy_gltf_blueprints/basic_wasm/src/core/lighting/lighting_replace_proxies.rs @@ -0,0 +1,25 @@ +use bevy::prelude::*; + +use bevy::pbr::{CascadeShadowConfig, CascadeShadowConfigBuilder}; + +// fixme might be too specific to might needs, should it be moved out ? also these are all for lights, not models +pub fn lighting_replace_proxies( + mut added_dirights: Query<(Entity, &mut DirectionalLight), Added>, + mut added_spotlights: Query<&mut SpotLight, Added>, + mut commands: Commands, +) { + for (entity, mut light) in added_dirights.iter_mut() { + light.illuminance *= 5.0; + light.shadows_enabled = true; + let shadow_config: CascadeShadowConfig = CascadeShadowConfigBuilder { + first_cascade_far_bound: 15.0, + maximum_distance: 135.0, + ..default() + } + .into(); + commands.entity(entity).insert(shadow_config); + } + for mut light in added_spotlights.iter_mut() { + light.shadows_enabled = true; + } +} diff --git a/examples/bevy_gltf_blueprints/basic_wasm/src/core/lighting/mod.rs b/examples/bevy_gltf_blueprints/basic_wasm/src/core/lighting/mod.rs new file mode 100644 index 0000000..c9688cd --- /dev/null +++ b/examples/bevy_gltf_blueprints/basic_wasm/src/core/lighting/mod.rs @@ -0,0 +1,18 @@ +mod lighting_replace_proxies; +use lighting_replace_proxies::*; + +use bevy::pbr::{DirectionalLightShadowMap, NotShadowCaster}; +use bevy::prelude::*; + +pub struct LightingPlugin; +impl Plugin for LightingPlugin { + fn build(&self, app: &mut App) { + app + .insert_resource(DirectionalLightShadowMap { size: 4096 }) + // FIXME: adding these since they are missing + .register_type::() + + .add_systems(PreUpdate, lighting_replace_proxies) // FIXME: you should actually run this in a specific state most likely + ; + } +} diff --git a/examples/bevy_gltf_blueprints/basic_wasm/src/core/mod.rs b/examples/bevy_gltf_blueprints/basic_wasm/src/core/mod.rs new file mode 100644 index 0000000..9c38fa7 --- /dev/null +++ b/examples/bevy_gltf_blueprints/basic_wasm/src/core/mod.rs @@ -0,0 +1,31 @@ +pub mod camera; +pub use camera::*; + +pub mod lighting; +pub use lighting::*; + +pub mod relationships; +pub use relationships::*; + +pub mod physics; +pub use physics::*; + +use bevy::prelude::*; +use bevy_gltf_blueprints::*; + +pub struct CorePlugin; +impl Plugin for CorePlugin { + fn build(&self, app: &mut App) { + app.add_plugins(( + LightingPlugin, + CameraPlugin, + PhysicsPlugin, + BlueprintsPlugin { + library_folder: "models/library".into(), + format: GltfFormat::GLB, + aabbs: true, + ..Default::default() + }, + )); + } +} diff --git a/examples/bevy_gltf_blueprints/basic_wasm/src/core/physics/controls.rs b/examples/bevy_gltf_blueprints/basic_wasm/src/core/physics/controls.rs new file mode 100644 index 0000000..9ff42c9 --- /dev/null +++ b/examples/bevy_gltf_blueprints/basic_wasm/src/core/physics/controls.rs @@ -0,0 +1,12 @@ +use bevy::prelude::{info, ResMut}; +use bevy_rapier3d::prelude::RapierConfiguration; + +pub fn pause_physics(mut physics_config: ResMut) { + info!("pausing physics"); + physics_config.physics_pipeline_active = false; +} + +pub fn resume_physics(mut physics_config: ResMut) { + info!("unpausing physics"); + physics_config.physics_pipeline_active = true; +} diff --git a/examples/bevy_gltf_blueprints/basic_wasm/src/core/physics/mod.rs b/examples/bevy_gltf_blueprints/basic_wasm/src/core/physics/mod.rs new file mode 100644 index 0000000..cd7d523 --- /dev/null +++ b/examples/bevy_gltf_blueprints/basic_wasm/src/core/physics/mod.rs @@ -0,0 +1,37 @@ +pub mod physics_replace_proxies; +use bevy_rapier3d::{ + prelude::{NoUserData, RapierPhysicsPlugin}, + render::RapierDebugRenderPlugin, +}; +pub use physics_replace_proxies::*; + +pub mod utils; + +pub mod controls; +pub use controls::*; + +use crate::state::GameState; +use bevy::prelude::*; +// use super::blueprints::GltfBlueprintsSet; +use bevy_gltf_blueprints::GltfBlueprintsSet; +// use crate::Collider; +pub struct PhysicsPlugin; +impl Plugin for PhysicsPlugin { + fn build(&self, app: &mut App) { + app.add_plugins(( + RapierPhysicsPlugin::::default(), + RapierDebugRenderPlugin::default(), + )) + .register_type::() + .register_type::() + // find a way to make serde's stuff serializable + // .register_type::() + //bevy_rapier3d::dynamics::CoefficientCombineRule + .add_systems( + Update, + physics_replace_proxies.after(GltfBlueprintsSet::AfterSpawn), + ) + .add_systems(OnEnter(GameState::InGame), resume_physics) + .add_systems(OnExit(GameState::InGame), pause_physics); + } +} diff --git a/examples/bevy_gltf_blueprints/basic_wasm/src/core/physics/physics_replace_proxies.rs b/examples/bevy_gltf_blueprints/basic_wasm/src/core/physics/physics_replace_proxies.rs new file mode 100644 index 0000000..b91462c --- /dev/null +++ b/examples/bevy_gltf_blueprints/basic_wasm/src/core/physics/physics_replace_proxies.rs @@ -0,0 +1,101 @@ +use bevy::prelude::*; +// use bevy::render::primitives::Aabb; +use bevy_rapier3d::geometry::Collider as RapierCollider; +use bevy_rapier3d::prelude::{ActiveCollisionTypes, ActiveEvents, ComputedColliderShape}; + +use super::utils::*; + +#[derive(Component, Reflect, Default, Debug)] +#[reflect(Component)] +pub enum Collider { + Ball(f32), + Cuboid(Vec3), + Capsule(Vec3, Vec3, f32), + #[default] + Mesh, +} + +#[derive(Component, Reflect, Default, Debug)] +#[reflect(Component)] +pub enum AutoAABBCollider { + #[default] + Cuboid, + Ball, + Capsule, +} + +// replaces all physics stand-ins with the actual rapier types +pub fn physics_replace_proxies( + meshes: Res>, + mesh_handles: Query<&Handle>, + mut proxy_colliders: Query< + (Entity, &Collider, &Name, &mut Visibility), + (Without, Added), + >, + // needed for tri meshes + children: Query<&Children>, + + mut commands: Commands, +) { + for proxy_colider in proxy_colliders.iter_mut() { + let (entity, collider_proxy, name, mut visibility) = proxy_colider; + // we hide the collider meshes: perhaps they should be removed altogether once processed ? + if name.ends_with("_collider") || name.ends_with("_sensor") { + *visibility = Visibility::Hidden; + } + + let mut rapier_collider: RapierCollider; + match collider_proxy { + Collider::Ball(radius) => { + info!("generating collider from proxy: ball"); + rapier_collider = RapierCollider::ball(*radius); + commands.entity(entity) + .insert(rapier_collider) + .insert(ActiveEvents::COLLISION_EVENTS) // FIXME: this is just for demo purposes !!! + ; + } + Collider::Cuboid(size) => { + info!("generating collider from proxy: cuboid"); + rapier_collider = RapierCollider::cuboid(size.x, size.y, size.z); + commands.entity(entity) + .insert(rapier_collider) + .insert(ActiveEvents::COLLISION_EVENTS) // FIXME: this is just for demo purposes !!! + ; + } + Collider::Capsule(a, b, radius) => { + info!("generating collider from proxy: capsule"); + rapier_collider = RapierCollider::capsule(*a, *b, *radius); + commands.entity(entity) + .insert(rapier_collider) + .insert(ActiveEvents::COLLISION_EVENTS) // FIXME: this is just for demo purposes !!! + ; + } + Collider::Mesh => { + info!("generating collider from proxy: mesh"); + for (_, collider_mesh) in + Mesh::search_in_children(entity, &children, &meshes, &mesh_handles) + { + rapier_collider = RapierCollider::from_bevy_mesh( + collider_mesh, + &ComputedColliderShape::TriMesh, + ) + .unwrap(); + commands + .entity(entity) + .insert(rapier_collider) + // FIXME: this is just for demo purposes !!! + .insert( + ActiveCollisionTypes::default() + | ActiveCollisionTypes::KINEMATIC_STATIC + | ActiveCollisionTypes::STATIC_STATIC + | ActiveCollisionTypes::DYNAMIC_STATIC, + ) + .insert(ActiveEvents::COLLISION_EVENTS); + // .insert(ActiveEvents::COLLISION_EVENTS) + // break; + // RapierCollider::convex_hull(points) + } + } + } + } +} diff --git a/examples/bevy_gltf_blueprints/basic_wasm/src/core/physics/utils.rs b/examples/bevy_gltf_blueprints/basic_wasm/src/core/physics/utils.rs new file mode 100644 index 0000000..7886710 --- /dev/null +++ b/examples/bevy_gltf_blueprints/basic_wasm/src/core/physics/utils.rs @@ -0,0 +1,175 @@ +use bevy::prelude::*; +use bevy::render::mesh::{MeshVertexAttributeId, PrimitiveTopology, VertexAttributeValues}; +// TAKEN VERBATIB FROM https://github.com/janhohenheim/foxtrot/blob/src/util/trait_extension.rs + +pub(crate) trait Vec3Ext: Copy { + fn is_approx_zero(self) -> bool; + fn split(self, up: Vec3) -> SplitVec3; +} +impl Vec3Ext for Vec3 { + #[inline] + fn is_approx_zero(self) -> bool { + self.length_squared() < 1e-5 + } + + #[inline] + fn split(self, up: Vec3) -> SplitVec3 { + let vertical = up * self.dot(up); + let horizontal = self - vertical; + SplitVec3 { + vertical, + horizontal, + } + } +} + +#[derive(Debug, Clone, Copy, PartialEq)] +pub(crate) struct SplitVec3 { + pub(crate) vertical: Vec3, + pub(crate) horizontal: Vec3, +} + +pub(crate) trait Vec2Ext: Copy { + fn is_approx_zero(self) -> bool; + fn x0y(self) -> Vec3; +} +impl Vec2Ext for Vec2 { + #[inline] + fn is_approx_zero(self) -> bool { + self.length_squared() < 1e-5 + } + + #[inline] + fn x0y(self) -> Vec3 { + Vec3::new(self.x, 0., self.y) + } +} + +pub(crate) trait MeshExt { + fn transform(&mut self, transform: Transform); + fn transformed(&self, transform: Transform) -> Mesh; + fn read_coords_mut(&mut self, id: impl Into) -> &mut Vec<[f32; 3]>; + fn search_in_children<'a>( + parent: Entity, + children: &'a Query<&Children>, + meshes: &'a Assets, + mesh_handles: &'a Query<&Handle>, + ) -> Vec<(Entity, &'a Mesh)>; +} + +impl MeshExt for Mesh { + fn transform(&mut self, transform: Transform) { + for coords in self.read_coords_mut(Mesh::ATTRIBUTE_POSITION.clone()) { + let vec3 = (*coords).into(); + let transformed = transform.transform_point(vec3); + *coords = transformed.into(); + } + for normal in self.read_coords_mut(Mesh::ATTRIBUTE_NORMAL.clone()) { + let vec3 = (*normal).into(); + let transformed = transform.rotation.mul_vec3(vec3); + *normal = transformed.into(); + } + } + + fn transformed(&self, transform: Transform) -> Mesh { + let mut mesh = self.clone(); + mesh.transform(transform); + mesh + } + + fn read_coords_mut(&mut self, id: impl Into) -> &mut Vec<[f32; 3]> { + // Guaranteed by Bevy for the current usage + match self + .attribute_mut(id) + .expect("Failed to read unknown mesh attribute") + { + VertexAttributeValues::Float32x3(values) => values, + // Guaranteed by Bevy for the current usage + _ => unreachable!(), + } + } + + fn search_in_children<'a>( + parent: Entity, + children_query: &'a Query<&Children>, + meshes: &'a Assets, + mesh_handles: &'a Query<&Handle>, + ) -> Vec<(Entity, &'a Mesh)> { + if let Ok(children) = children_query.get(parent) { + let mut result: Vec<_> = children + .iter() + .filter_map(|entity| mesh_handles.get(*entity).ok().map(|mesh| (*entity, mesh))) + .map(|(entity, mesh_handle)| { + ( + entity, + meshes + .get(mesh_handle) + .expect("Failed to get mesh from handle"), + ) + }) + .map(|(entity, mesh)| { + assert_eq!(mesh.primitive_topology(), PrimitiveTopology::TriangleList); + (entity, mesh) + }) + .collect(); + let mut inner_result = children + .iter() + .flat_map(|entity| { + Self::search_in_children(*entity, children_query, meshes, mesh_handles) + }) + .collect(); + result.append(&mut inner_result); + result + } else { + Vec::new() + } + } +} + +pub(crate) trait F32Ext: Copy { + fn is_approx_zero(self) -> bool; + fn squared(self) -> f32; + fn lerp(self, other: f32, ratio: f32) -> f32; +} + +impl F32Ext for f32 { + #[inline] + fn is_approx_zero(self) -> bool { + self.abs() < 1e-5 + } + + #[inline] + fn squared(self) -> f32 { + self * self + } + + #[inline] + fn lerp(self, other: f32, ratio: f32) -> f32 { + self.mul_add(1. - ratio, other * ratio) + } +} + +pub(crate) trait TransformExt: Copy { + fn horizontally_looking_at(self, target: Vec3, up: Vec3) -> Transform; + fn lerp(self, other: Transform, ratio: f32) -> Transform; +} + +impl TransformExt for Transform { + fn horizontally_looking_at(self, target: Vec3, up: Vec3) -> Transform { + let direction = target - self.translation; + let horizontal_direction = direction - up * direction.dot(up); + let look_target = self.translation + horizontal_direction; + self.looking_at(look_target, up) + } + + fn lerp(self, other: Transform, ratio: f32) -> Transform { + let translation = self.translation.lerp(other.translation, ratio); + let rotation = self.rotation.slerp(other.rotation, ratio); + let scale = self.scale.lerp(other.scale, ratio); + Transform { + translation, + rotation, + scale, + } + } +} diff --git a/examples/bevy_gltf_blueprints/basic_wasm/src/core/relationships/mod.rs b/examples/bevy_gltf_blueprints/basic_wasm/src/core/relationships/mod.rs new file mode 100644 index 0000000..4128453 --- /dev/null +++ b/examples/bevy_gltf_blueprints/basic_wasm/src/core/relationships/mod.rs @@ -0,0 +1,11 @@ +pub mod relationships_insert_dependant_components; +pub use relationships_insert_dependant_components::*; + +use bevy::prelude::*; + +pub struct EcsRelationshipsPlugin; +impl Plugin for EcsRelationshipsPlugin { + fn build(&self, app: &mut App) { + app; + } +} diff --git a/examples/bevy_gltf_blueprints/basic_wasm/src/core/relationships/relationships_insert_dependant_components.rs b/examples/bevy_gltf_blueprints/basic_wasm/src/core/relationships/relationships_insert_dependant_components.rs new file mode 100644 index 0000000..4e9ad17 --- /dev/null +++ b/examples/bevy_gltf_blueprints/basic_wasm/src/core/relationships/relationships_insert_dependant_components.rs @@ -0,0 +1,15 @@ +use bevy::prelude::*; + +pub fn insert_dependant_component< + Dependant: Component, + Dependency: Component + std::default::Default, +>( + mut commands: Commands, + entities_without_depency: Query<(Entity, &Name), (With, Without)>, +) { + for (entity, name) in entities_without_depency.iter() { + let name = name.clone().to_string(); + commands.entity(entity).insert(Dependency::default()); + warn!("found an entity called {} with a {} component but without an {}, please check your assets", name.clone(), std::any::type_name::(), std::any::type_name::()); + } +} diff --git a/examples/bevy_gltf_blueprints/basic_wasm/src/game/in_game.rs b/examples/bevy_gltf_blueprints/basic_wasm/src/game/in_game.rs new file mode 100644 index 0000000..86fa8de --- /dev/null +++ b/examples/bevy_gltf_blueprints/basic_wasm/src/game/in_game.rs @@ -0,0 +1,134 @@ +use bevy::prelude::*; + +use crate::{ + assets::GameAssets, + state::{GameState, InAppRunning}, +}; +use bevy_gltf_blueprints::{BluePrintBundle, BlueprintName, GameWorldTag}; + +use bevy_rapier3d::prelude::Velocity; +use rand::Rng; + +pub fn setup_game( + mut commands: Commands, + game_assets: Res, + models: Res>, + mut next_game_state: ResMut>, +) { + println!("setting up all stuff"); + commands.insert_resource(AmbientLight { + color: Color::WHITE, + brightness: 0.2, + }); + // here we actually spawn our game world/level + + commands.spawn(( + SceneBundle { + // note: because of this issue https://github.com/bevyengine/bevy/issues/10436, "world" is now a gltf file instead of a scene + scene: models + .get(game_assets.world.id()) + .expect("main level should have been loaded") + .scenes[0] + .clone(), + ..default() + }, + bevy::prelude::Name::from("world"), + GameWorldTag, + InAppRunning, + )); + + next_game_state.set(GameState::InGame) +} + +#[derive(Component, Reflect, Default, Debug)] +#[reflect(Component)] +struct UnregisteredComponent; + +pub fn spawn_test( + keycode: Res>, + mut commands: Commands, + + mut game_world: Query<(Entity, &Children), With>, +) { + if keycode.just_pressed(KeyCode::T) { + let world = game_world.single_mut(); + let world = world.1[0]; + + let mut rng = rand::thread_rng(); + let range = 5.5; + let x: f32 = rng.gen_range(-range..range); + let y: f32 = rng.gen_range(-range..range); + + let mut rng = rand::thread_rng(); + let range = 0.8; + let vel_x: f32 = rng.gen_range(-range..range); + let vel_y: f32 = rng.gen_range(2.0..2.5); + let vel_z: f32 = rng.gen_range(-range..range); + + let name_index: u64 = rng.gen(); + + let new_entity = commands + .spawn(( + BluePrintBundle { + blueprint: BlueprintName("Health_Pickup".to_string()), + transform: TransformBundle::from_transform(Transform::from_xyz(x, 2.0, y)), + ..Default::default() + }, + bevy::prelude::Name::from(format!("test{}", name_index)), + // BlueprintName("Health_Pickup".to_string()), + // SpawnHere, + // TransformBundle::from_transform(Transform::from_xyz(x, 2.0, y)), + Velocity { + linvel: Vec3::new(vel_x, vel_y, vel_z), + angvel: Vec3::new(0.0, 0.0, 0.0), + }, + )) + .id(); + commands.entity(world).add_child(new_entity); + } +} + +pub fn spawn_test_failing( + keycode: Res>, + mut commands: Commands, + + mut game_world: Query<(Entity, &Children), With>, +) { + if keycode.just_pressed(KeyCode::U) { + let world = game_world.single_mut(); + let world = world.1[0]; + + let mut rng = rand::thread_rng(); + let range = 5.5; + let x: f32 = rng.gen_range(-range..range); + let y: f32 = rng.gen_range(-range..range); + + let mut rng = rand::thread_rng(); + let range = 0.8; + let vel_x: f32 = rng.gen_range(-range..range); + let vel_y: f32 = rng.gen_range(2.0..2.5); + let vel_z: f32 = rng.gen_range(-range..range); + + let name_index: u64 = rng.gen(); + + let new_entity = commands + .spawn(( + BluePrintBundle { + blueprint: BlueprintName("Health_Pickup".to_string()), + transform: TransformBundle::from_transform(Transform::from_xyz(x, 2.0, y)), + ..Default::default() + }, + bevy::prelude::Name::from(format!("test{}", name_index)), + // BlueprintName("Health_Pickup".to_string()), + // SpawnHere, + // TransformBundle::from_transform(Transform::from_xyz(x, 2.0, y)), + Velocity { + linvel: Vec3::new(vel_x, vel_y, vel_z), + angvel: Vec3::new(0.0, 0.0, 0.0), + }, + UnregisteredComponent, + )) + .id(); + commands.entity(world).add_child(new_entity); + } +} diff --git a/examples/bevy_gltf_blueprints/basic_wasm/src/game/in_main_menu.rs b/examples/bevy_gltf_blueprints/basic_wasm/src/game/in_main_menu.rs new file mode 100644 index 0000000..cecd13a --- /dev/null +++ b/examples/bevy_gltf_blueprints/basic_wasm/src/game/in_main_menu.rs @@ -0,0 +1,113 @@ +use bevy::prelude::*; + +use crate::state::{AppState, GameState, InMainMenu}; + +pub fn setup_main_menu(mut commands: Commands) { + commands.spawn((Camera2dBundle::default(), InMainMenu)); + + commands.spawn(( + TextBundle::from_section( + "SOME GAME TITLE !!", + TextStyle { + //font: asset_server.load("fonts/FiraMono-Medium.ttf"), + font_size: 18.0, + color: Color::WHITE, + ..Default::default() + }, + ) + .with_style(Style { + position_type: PositionType::Absolute, + top: Val::Px(100.0), + left: Val::Px(200.0), + ..default() + }), + InMainMenu, + )); + + commands.spawn(( + TextBundle::from_section( + "New Game (press Enter to start, press T once the game is started for demo spawning)", + TextStyle { + //font: asset_server.load("fonts/FiraMono-Medium.ttf"), + font_size: 18.0, + color: Color::WHITE, + ..Default::default() + }, + ) + .with_style(Style { + position_type: PositionType::Absolute, + top: Val::Px(200.0), + left: Val::Px(200.0), + ..default() + }), + InMainMenu, + )); + + /* + commands.spawn(( + TextBundle::from_section( + "Load Game", + TextStyle { + //font: asset_server.load("fonts/FiraMono-Medium.ttf"), + font_size: 18.0, + color: Color::WHITE, + ..Default::default() + }, + ) + .with_style(Style { + position_type: PositionType::Absolute, + top: Val::Px(250.0), + left: Val::Px(200.0), + ..default() + }), + InMainMenu + )); + + commands.spawn(( + TextBundle::from_section( + "Exit Game", + TextStyle { + //font: asset_server.load("fonts/FiraMono-Medium.ttf"), + font_size: 18.0, + color: Color::WHITE, + ..Default::default() + }, + ) + .with_style(Style { + position_type: PositionType::Absolute, + top: Val::Px(300.0), + left: Val::Px(200.0), + ..default() + }), + InMainMenu + ));*/ +} + +pub fn teardown_main_menu(bla: Query>, mut commands: Commands) { + for bli in bla.iter() { + commands.entity(bli).despawn_recursive(); + } +} + +pub fn main_menu( + keycode: Res>, + + mut next_app_state: ResMut>, + // mut next_game_state: ResMut>, + // mut save_requested_events: EventWriter, + // mut load_requested_events: EventWriter, +) { + if keycode.just_pressed(KeyCode::Return) { + next_app_state.set(AppState::AppLoading); + // next_game_state.set(GameState::None); + } + + if keycode.just_pressed(KeyCode::L) { + next_app_state.set(AppState::AppLoading); + // load_requested_events.send(LoadRequest { path: "toto".into() }) + } + + if keycode.just_pressed(KeyCode::S) { + // save_requested_events.send(SaveRequest { path: "toto".into() }) + } +} diff --git a/examples/bevy_gltf_blueprints/basic_wasm/src/game/mod.rs b/examples/bevy_gltf_blueprints/basic_wasm/src/game/mod.rs new file mode 100644 index 0000000..67716de --- /dev/null +++ b/examples/bevy_gltf_blueprints/basic_wasm/src/game/mod.rs @@ -0,0 +1,116 @@ +pub mod in_game; +pub use in_game::*; + +pub mod in_main_menu; +pub use in_main_menu::*; + +pub mod picking; +pub use picking::*; + +use crate::{ + insert_dependant_component, + state::{AppState, GameState}, +}; +use bevy::prelude::*; +use bevy_rapier3d::prelude::*; + +// this file is just for demo purposes, contains various types of components, systems etc + +#[derive(Component, Reflect, Default, Debug)] +#[reflect(Component)] +pub enum SoundMaterial { + Metal, + Wood, + Rock, + Cloth, + Squishy, + #[default] + None, +} + +#[derive(Component, Reflect, Default, Debug)] +#[reflect(Component)] +/// Demo marker component +pub struct Player; + +#[derive(Component, Reflect, Default, Debug)] +#[reflect(Component)] +/// Demo component showing auto injection of components +pub struct ShouldBeWithPlayer; + +#[derive(Component, Reflect, Default, Debug)] +#[reflect(Component)] +/// Demo marker component +pub struct Interactible; + +fn player_move_demo( + keycode: Res>, + mut players: Query<&mut Transform, With>, +) { + let speed = 0.2; + if let Ok(mut player) = players.get_single_mut() { + if keycode.pressed(KeyCode::Left) { + player.translation.x += speed; + } + if keycode.pressed(KeyCode::Right) { + player.translation.x -= speed; + } + + if keycode.pressed(KeyCode::Up) { + player.translation.z += speed; + } + if keycode.pressed(KeyCode::Down) { + player.translation.z -= speed; + } + } +} + +// collision tests/debug +pub fn test_collision_events( + mut collision_events: EventReader, + mut contact_force_events: EventReader, +) { + for collision_event in collision_events.read() { + println!("collision"); + match collision_event { + CollisionEvent::Started(_entity1, _entity2, _) => { + println!("collision started") + } + CollisionEvent::Stopped(_entity1, _entity2, _) => { + println!("collision ended") + } + } + } + + for contact_force_event in contact_force_events.read() { + println!("Received contact force event: {:?}", contact_force_event); + } +} + +pub struct GamePlugin; +impl Plugin for GamePlugin { + fn build(&self, app: &mut App) { + app.add_plugins(PickingPlugin) + .register_type::() + .register_type::() + .register_type::() + // little helper utility, to automatically inject components that are dependant on an other component + // ie, here an Entity with a Player component should also always have a ShouldBeWithPlayer component + // you get a warning if you use this, as I consider this to be stop-gap solution (usually you should have either a bundle, or directly define all needed components) + .add_systems( + Update, + ( + // insert_dependant_component::, + player_move_demo, //.run_if(in_state(AppState::Running)), + // test_collision_events + spawn_test, + spawn_test_failing, + ) + .run_if(in_state(GameState::InGame)), + ) + .add_systems(OnEnter(AppState::MenuRunning), setup_main_menu) + .add_systems(OnExit(AppState::MenuRunning), teardown_main_menu) + .add_systems(Update, main_menu.run_if(in_state(AppState::MenuRunning))) + .add_systems(OnEnter(AppState::AppRunning), setup_game); + } +} diff --git a/examples/bevy_gltf_blueprints/basic_wasm/src/game/picking.rs b/examples/bevy_gltf_blueprints/basic_wasm/src/game/picking.rs new file mode 100644 index 0000000..6731bbb --- /dev/null +++ b/examples/bevy_gltf_blueprints/basic_wasm/src/game/picking.rs @@ -0,0 +1,34 @@ +use super::Player; +use bevy::prelude::*; +use bevy_gltf_blueprints::GltfBlueprintsSet; + +#[derive(Component, Reflect, Default, Debug)] +#[reflect(Component)] +pub struct Pickable; + +// very simple, crude picking (as in picking up objects) implementation + +pub fn picking( + players: Query<&GlobalTransform, With>, + pickables: Query<(Entity, &GlobalTransform), With>, + mut commands: Commands, +) { + for player_transforms in players.iter() { + for (pickable, pickable_transforms) in pickables.iter() { + let distance = player_transforms + .translation() + .distance(pickable_transforms.translation()); + if distance < 2.5 { + commands.entity(pickable).despawn_recursive(); + } + } + } +} + +pub struct PickingPlugin; +impl Plugin for PickingPlugin { + fn build(&self, app: &mut App) { + app.register_type::() + .add_systems(Update, (picking.after(GltfBlueprintsSet::AfterSpawn),)); + } +} diff --git a/examples/bevy_gltf_blueprints/basic_wasm/src/main.rs b/examples/bevy_gltf_blueprints/basic_wasm/src/main.rs new file mode 100644 index 0000000..6edba33 --- /dev/null +++ b/examples/bevy_gltf_blueprints/basic_wasm/src/main.rs @@ -0,0 +1,33 @@ +use bevy::prelude::*; +use bevy_editor_pls::prelude::*; + +mod core; +use crate::core::*; + +pub mod assets; +use assets::*; + +pub mod state; +use state::*; + +mod game; +use game::*; + +mod test_components; +use test_components::*; + +fn main() { + App::new() + .add_plugins(( + DefaultPlugins.set(AssetPlugin::default()), + // editor + EditorPlugin::default(), + // our custom plugins + StatePlugin, + AssetsPlugin, + CorePlugin, // reusable plugins + GamePlugin, // specific to our game + ComponentsTestPlugin, // Showcases different type of components /structs + )) + .run(); +} diff --git a/examples/bevy_gltf_blueprints/basic_wasm/src/state.rs b/examples/bevy_gltf_blueprints/basic_wasm/src/state.rs new file mode 100644 index 0000000..8e983d9 --- /dev/null +++ b/examples/bevy_gltf_blueprints/basic_wasm/src/state.rs @@ -0,0 +1,54 @@ +use bevy::app::AppExit; +use bevy::prelude::*; + +#[derive(Debug, Clone, Copy, Eq, PartialEq, Hash, Default, States)] +pub enum AppState { + #[default] + CoreLoading, + MenuRunning, + AppLoading, + AppRunning, + AppEnding, + + // FIXME: not sure + LoadingGame, +} + +#[derive(Debug, Clone, Copy, Eq, PartialEq, Hash, Default, States)] +pub enum GameState { + #[default] + None, + + InMenu, + InGame, + + InGameOver, + + InSaving, + InLoading, +} + +// tag components for all entities within a certain state (for despawning them if needed) , FIXME: seems kinda hack-ish +#[derive(Component)] +pub struct InCoreLoading; +#[derive(Component, Default)] +pub struct InMenuRunning; +#[derive(Component)] +pub struct InAppLoading; +#[derive(Component)] +pub struct InAppRunning; + +// components for tagging in game vs in game menu stuff +#[derive(Component, Default)] +pub struct InMainMenu; +#[derive(Component, Default)] +pub struct InMenu; +#[derive(Component, Default)] +pub struct InGame; + +pub struct StatePlugin; +impl Plugin for StatePlugin { + fn build(&self, app: &mut App) { + app.add_state::().add_state::(); + } +} diff --git a/examples/bevy_gltf_blueprints/basic_wasm/src/test_components.rs b/examples/bevy_gltf_blueprints/basic_wasm/src/test_components.rs new file mode 100644 index 0000000..d0e6fbd --- /dev/null +++ b/examples/bevy_gltf_blueprints/basic_wasm/src/test_components.rs @@ -0,0 +1,80 @@ +use bevy::prelude::*; + +#[derive(Component, Reflect, Default, Debug)] +#[reflect(Component)] +struct UnitTest; + +#[derive(Component, Reflect, Default, Debug, Deref, DerefMut)] +#[reflect(Component)] +struct TuppleTestF32(f32); + +#[derive(Component, Reflect, Default, Debug, Deref, DerefMut)] +#[reflect(Component)] +struct TuppleTestU64(u64); + +#[derive(Component, Reflect, Default, Debug, Deref, DerefMut)] +#[reflect(Component)] +pub struct TuppleTestStr(String); + +#[derive(Component, Reflect, Default, Debug)] +#[reflect(Component)] +struct TuppleTest2(f32, u64, String); + +#[derive(Component, Reflect, Default, Debug)] +#[reflect(Component)] +struct TuppleTestBool(bool); + +#[derive(Component, Reflect, Default, Debug)] +#[reflect(Component)] +struct TuppleVec2(Vec2); + +#[derive(Component, Reflect, Default, Debug)] +#[reflect(Component)] +struct TuppleVec3(Vec3); + +#[derive(Component, Reflect, Default, Debug)] +#[reflect(Component)] +struct TuppleVec(Vec); + +#[derive(Component, Reflect, Default, Debug)] +#[reflect(Component)] +struct TuppleTestColor(Color); + +#[derive(Component, Reflect, Default, Debug)] +#[reflect(Component)] +struct BasicTest { + a: f32, + b: u64, + c: String, +} + +#[derive(Component, Reflect, Default, Debug)] +#[reflect(Component)] +pub enum EnumTest { + Metal, + Wood, + Rock, + Cloth, + Squishy, + #[default] + None, +} + +pub struct ComponentsTestPlugin; +impl Plugin for ComponentsTestPlugin { + fn build(&self, app: &mut App) { + app.register_type::() + .register_type::() + .register_type::() + .register_type::() + .register_type::() + .register_type::() + .register_type::() + .register_type::() + .register_type::() + .register_type::() + .register_type::() + .register_type::() + .register_type::>(); + } +} diff --git a/examples/bevy_gltf_components/basic_wasm/.rustc_info.json b/examples/bevy_gltf_components/basic_wasm/.rustc_info.json new file mode 100644 index 0000000..613ed5e --- /dev/null +++ b/examples/bevy_gltf_components/basic_wasm/.rustc_info.json @@ -0,0 +1 @@ +{"rustc_fingerprint":14672523188090023269,"outputs":{"4614504638168534921":{"success":true,"status":"","code":0,"stdout":"rustc 1.70.0 (90c541806 2023-05-31)\nbinary: rustc\ncommit-hash: 90c541806f23a127002de5b4038be731ba1458ca\ncommit-date: 2023-05-31\nhost: x86_64-unknown-linux-gnu\nrelease: 1.70.0\nLLVM version: 16.0.2\n","stderr":""}},"successes":{}} \ No newline at end of file diff --git a/examples/bevy_gltf_components/basic_wasm/Cargo.lock b/examples/bevy_gltf_components/basic_wasm/Cargo.lock new file mode 100644 index 0000000..511a54d --- /dev/null +++ b/examples/bevy_gltf_components/basic_wasm/Cargo.lock @@ -0,0 +1,4512 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "ab_glyph" +version = "0.2.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80179d7dd5d7e8c285d67c4a1e652972a92de7475beddfb92028c76463b13225" +dependencies = [ + "ab_glyph_rasterizer", + "owned_ttf_parser", +] + +[[package]] +name = "ab_glyph_rasterizer" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c71b1793ee61086797f5c80b6efa2b8ffa6d5dd703f118545808a7f2e27f7046" + +[[package]] +name = "accesskit" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca8410747ed85a17c4a1e9ed3f5a74d3e7bdcc876cf9a18ff40ae21d645997b2" + +[[package]] +name = "accesskit_consumer" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c17cca53c09fbd7288667b22a201274b9becaa27f0b91bf52a526db95de45e6" +dependencies = [ + "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", +] + +[[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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a" +dependencies = [ + "cfg-if", + "getrandom", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "aho-corasick" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" +dependencies = [ + "memchr", +] + +[[package]] +name = "allocator-api2" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" + +[[package]] +name = "alsa" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2562ad8dcf0f789f65c6fdaad8a8a9708ed6b488e649da28c01656ad66b8b47" +dependencies = [ + "alsa-sys", + "bitflags 1.3.2", + "libc", + "nix 0.24.3", +] + +[[package]] +name = "alsa-sys" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db8fee663d06c4e303404ef5f40488a53e062f89ba8bfed81f42325aafad1527" +dependencies = [ + "libc", + "pkg-config", +] + +[[package]] +name = "android-activity" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +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-properties" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc7eb209b1518d6bb87b283c20095f5228ecda460da70b44f0802523dea6da04" + +[[package]] +name = "android_log-sys" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ecc8056bf6ab9892dcd53216c83d1597487d7dacac16c8df6b877d127df9937" + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "approx" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6" +dependencies = [ + "num-traits", +] + +[[package]] +name = "arboard" +version = "3.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac57f2b058a76363e357c056e4f74f1945bf734d37b8b3ef49066c4787dde0fc" +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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" + +[[package]] +name = "ash" +version = "0.37.3+1.3.251" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39e9c3835d686b0a6084ab4234fcd1b07dbf6e4767dce60874b12356a25ecd4a" +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", + "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", + "event-listener", + "futures-core", +] + +[[package]] +name = "async-executor" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b0c4a4f319e45986f347ee47fef8bf5e81c9abc3f6f58dc2391439f30df65f0" +dependencies = [ + "async-lock", + "async-task", + "concurrent-queue", + "fastrand 2.0.1", + "futures-lite", + "slab", +] + +[[package]] +name = "async-fs" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "279cf904654eeebfa37ac9bb1598880884924aab82e290aa65c9e77a0e142e06" +dependencies = [ + "async-lock", + "autocfg", + "blocking", + "futures-lite", +] + +[[package]] +name = "async-lock" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b" +dependencies = [ + "event-listener", +] + +[[package]] +name = "async-task" +version = "4.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4eb2cdb97421e01129ccb49169d8279ed21e829929144f4a22a6e54ac549ca1" + +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "backtrace" +version = "0.3.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" +dependencies = [ + "addr2line", + "cc", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", +] + +[[package]] +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + +[[package]] +name = "base64" +version = "0.21.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9" + +[[package]] +name = "bevy" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "329e344f835f5a9a4c46a6d1d57371f726aa2c482d1bd669b2b9c4eb1ee91fd7" +dependencies = [ + "bevy_internal", +] + +[[package]] +name = "bevy-inspector-egui" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d65b98d6fca1209c36c4d403c377f303aad22d940281fe1a9e431217516f0622" +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_utils", + "bevy_window", + "egui", + "image", + "once_cell", + "pretty-type-name", + "smallvec", +] + +[[package]] +name = "bevy-inspector-egui-derive" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec800b7cf98151b5dbff80f0eb6dffcb4bcfceef6e457888b395ead4eb7e75ba" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "bevy_a11y" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "271b812e5734f5056a400f7d64592dd82d6c0e6179389c2f066f433ab8bc7692" +dependencies = [ + "accesskit", + "bevy_app", + "bevy_derive", + "bevy_ecs", +] + +[[package]] +name = "bevy_animation" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab94187a1253433e14f175293d8a86ec1c2822fda2a17807908f11ec21f45f00" +dependencies = [ + "bevy_app", + "bevy_asset", + "bevy_core", + "bevy_ecs", + "bevy_hierarchy", + "bevy_math", + "bevy_reflect", + "bevy_render", + "bevy_time", + "bevy_transform", + "bevy_utils", +] + +[[package]] +name = "bevy_app" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "172d532ea812e5954fa814dae003c207f2a0b20c6e50431787c94a7159677ece" +dependencies = [ + "bevy_derive", + "bevy_ecs", + "bevy_reflect", + "bevy_tasks", + "bevy_utils", + "downcast-rs", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "bevy_asset" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccb2b67984088b23e223cfe9ec1befd89a110665a679acb06839bc4334ed37d6" +dependencies = [ + "async-broadcast", + "async-fs", + "async-lock", + "bevy_app", + "bevy_asset_macros", + "bevy_ecs", + "bevy_log", + "bevy_reflect", + "bevy_tasks", + "bevy_utils", + "bevy_winit", + "blake3", + "crossbeam-channel", + "downcast-rs", + "futures-io", + "futures-lite", + "js-sys", + "parking_lot", + "ron", + "serde", + "thiserror", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "bevy_asset_macros" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b3245193e90fc8abcf1059a467cb224501dcda083d114c67c10ac66b7171e3a" +dependencies = [ + "bevy_macro_utils", + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "bevy_audio" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "478de80ff25cb7decbcb22797774d1597e8c32914e81431c67d64faadc08f84a" +dependencies = [ + "bevy_app", + "bevy_asset", + "bevy_derive", + "bevy_ecs", + "bevy_math", + "bevy_reflect", + "bevy_transform", + "bevy_utils", + "oboe", + "rodio", +] + +[[package]] +name = "bevy_core" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "025e6800b73048092a55c3611e9327ad4c4c17b60517ec1c0086bb40b4b19ea8" +dependencies = [ + "bevy_app", + "bevy_ecs", + "bevy_math", + "bevy_reflect", + "bevy_tasks", + "bevy_utils", + "bytemuck", + "serde", +] + +[[package]] +name = "bevy_core_pipeline" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e4b08a2d53ba62d9ec1fca3f7f4e0f556e9f59e1c8e63a4b7c2a18c0701152c" +dependencies = [ + "bevy_app", + "bevy_asset", + "bevy_core", + "bevy_derive", + "bevy_ecs", + "bevy_log", + "bevy_math", + "bevy_reflect", + "bevy_render", + "bevy_transform", + "bevy_utils", + "bitflags 2.4.1", + "radsort", + "serde", +] + +[[package]] +name = "bevy_derive" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24bf40259be12a1a24d9fd536f5ff18d31eeb5665b77e2732899783be6edc5d6" +dependencies = [ + "bevy_macro_utils", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "bevy_diagnostic" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41b5a99a9fb6cd7d1eb1714fad193944a0317f0887a15cccb8309c8d37951132" +dependencies = [ + "bevy_app", + "bevy_core", + "bevy_ecs", + "bevy_log", + "bevy_time", + "bevy_utils", + "sysinfo", +] + +[[package]] +name = "bevy_ecs" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae11a1f467c372b50e9d4b55e78370f5420c9db7416200cc441cc84f08174dd3" +dependencies = [ + "async-channel", + "bevy_ecs_macros", + "bevy_ptr", + "bevy_reflect", + "bevy_tasks", + "bevy_utils", + "downcast-rs", + "event-listener", + "fixedbitset", + "rustc-hash", + "serde", + "thiserror", + "thread_local", +] + +[[package]] +name = "bevy_ecs_macros" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f642c2b67c4d0daf8edf15074f6351457eb487a34b3de1290c760d8f3ac9ec16" +dependencies = [ + "bevy_macro_utils", + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "bevy_editor_pls" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "170e3ee3293f70be7fa1b82e8ffe52dcb190c68b2f0ef4847afe65626b417ad7" +dependencies = [ + "bevy", + "bevy_editor_pls_core", + "bevy_editor_pls_default_windows", + "egui", + "egui-gizmo", +] + +[[package]] +name = "bevy_editor_pls_core" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9bab331de653d7d976a1fb0ab3ae8eff1dc821c5991c09bdbe945e70234839c" +dependencies = [ + "bevy", + "bevy-inspector-egui", + "egui_dock", + "indexmap 2.1.0", +] + +[[package]] +name = "bevy_editor_pls_default_windows" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b833e3b3d5c69b92527e766b470b27cb4745406e2087be19be81b595cc48792c" +dependencies = [ + "bevy", + "bevy-inspector-egui", + "bevy_editor_pls_core", + "bevy_mod_debugdump", + "egui-gizmo", + "indexmap 2.1.0", + "opener", + "pretty-type-name", +] + +[[package]] +name = "bevy_egui" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85450af551b7e1cb766f710763b60a12a82ffd6323945a8f776c6334c59ccdc1" +dependencies = [ + "arboard", + "bevy", + "egui", + "thread_local", + "webbrowser", +] + +[[package]] +name = "bevy_encase_derive" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65b9fb5a62c4e3ab70caaa839470d35fa932001b1b34b08bc7f7f1909bd2b3a7" +dependencies = [ + "bevy_macro_utils", + "encase_derive_impl", +] + +[[package]] +name = "bevy_gilrs" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad31cc2c84315e0759d793d6c5bcb7d8789bbc16359c98d1b766e708c1bbae49" +dependencies = [ + "bevy_app", + "bevy_ecs", + "bevy_input", + "bevy_log", + "bevy_time", + "bevy_utils", + "gilrs", + "thiserror", +] + +[[package]] +name = "bevy_gizmos" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87d1cc978b91f416b23eb16f00e69f95c3a04582021827d8082e92d4725cc510" +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.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f933745c0c86e2c07948def581259b466f99708328657054e956275430ccfd7" +dependencies = [ + "base64 0.13.1", + "bevy_animation", + "bevy_app", + "bevy_asset", + "bevy_core", + "bevy_core_pipeline", + "bevy_ecs", + "bevy_hierarchy", + "bevy_log", + "bevy_math", + "bevy_pbr", + "bevy_reflect", + "bevy_render", + "bevy_scene", + "bevy_tasks", + "bevy_transform", + "bevy_utils", + "gltf", + "percent-encoding", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "bevy_gltf_components" +version = "0.2.0" +dependencies = [ + "bevy", + "ron", + "serde", +] + +[[package]] +name = "bevy_gltf_components_basic_example" +version = "0.3.0" +dependencies = [ + "bevy", + "bevy_editor_pls", + "bevy_gltf_components", + "bevy_rapier3d", +] + +[[package]] +name = "bevy_hierarchy" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64fa240011fce8ee23f9b46e5a26a628a31d7860d6d2e4e0e361bb3ea6d5a703" +dependencies = [ + "bevy_app", + "bevy_core", + "bevy_ecs", + "bevy_log", + "bevy_reflect", + "bevy_utils", + "smallvec", +] + +[[package]] +name = "bevy_input" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e86e241b3a10b79f65a69205552546723b855d3d4c1bd8261637c076144d32f" +dependencies = [ + "bevy_app", + "bevy_ecs", + "bevy_math", + "bevy_reflect", + "bevy_utils", + "serde", + "thiserror", +] + +[[package]] +name = "bevy_internal" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55124e486814c4d3632d5cfad9c4f4e46d052c028593ec46fef5bfbfb0f840b1" +dependencies = [ + "bevy_a11y", + "bevy_animation", + "bevy_app", + "bevy_asset", + "bevy_audio", + "bevy_core", + "bevy_core_pipeline", + "bevy_derive", + "bevy_diagnostic", + "bevy_ecs", + "bevy_gilrs", + "bevy_gizmos", + "bevy_gltf", + "bevy_hierarchy", + "bevy_input", + "bevy_log", + "bevy_math", + "bevy_pbr", + "bevy_ptr", + "bevy_reflect", + "bevy_render", + "bevy_scene", + "bevy_sprite", + "bevy_tasks", + "bevy_text", + "bevy_time", + "bevy_transform", + "bevy_ui", + "bevy_utils", + "bevy_window", + "bevy_winit", +] + +[[package]] +name = "bevy_log" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "011417debf7868b45932bb97fc0d5bfdeaf9304e324aa94840e2f1e6deeed69d" +dependencies = [ + "android_log-sys", + "bevy_app", + "bevy_ecs", + "bevy_utils", + "console_error_panic_hook", + "tracing-log", + "tracing-subscriber", + "tracing-wasm", +] + +[[package]] +name = "bevy_macro_utils" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf6fba87c6d069fcbcd8a48625ca8ab4392ad40d2b260863ce7d641a0f42986d" +dependencies = [ + "proc-macro2", + "quote", + "rustc-hash", + "syn 2.0.39", + "toml_edit 0.20.7", +] + +[[package]] +name = "bevy_math" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "752764558a1f429c20704c3b836a019fa308961c43fdfef4f08e339d456c96be" +dependencies = [ + "glam", + "serde", +] + +[[package]] +name = "bevy_mikktspace" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b596c41a56f2268ec7cde560edc588bc7b5886e4b49c8b27c4dcc9f7c743424c" +dependencies = [ + "glam", +] + +[[package]] +name = "bevy_mod_debugdump" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4db8601f41ea570b7d32f3177292a608196c59bdf3298001a9e202d5e7439438" +dependencies = [ + "bevy_app", + "bevy_ecs", + "bevy_render", + "bevy_utils", + "once_cell", + "petgraph", + "pretty-type-name", +] + +[[package]] +name = "bevy_pbr" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eeb6a35a78d355cc21c10f277dcd171eca65e30a90e76eb89f4dacf606621fe1" +dependencies = [ + "bevy_app", + "bevy_asset", + "bevy_core_pipeline", + "bevy_derive", + "bevy_ecs", + "bevy_math", + "bevy_reflect", + "bevy_render", + "bevy_transform", + "bevy_utils", + "bevy_window", + "bitflags 2.4.1", + "bytemuck", + "fixedbitset", + "naga_oil", + "radsort", + "smallvec", + "thread_local", +] + +[[package]] +name = "bevy_ptr" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "308a02679f6ce21ef71de20fae6d6a2016c07baa21d8e8d0558e6b7851e8adf2" + +[[package]] +name = "bevy_rapier3d" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3f0a2641af76c9eb17da0dcb0fb20cd9d615b93b67be0b85f1867487e956b5a" +dependencies = [ + "bevy", + "bitflags 2.4.1", + "log", + "nalgebra", + "rapier3d", + "serde", +] + +[[package]] +name = "bevy_reflect" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdd56914a8ad57621d7a1a099f7e6b1f7482c9c76cedc9c3d4c175a203939c5d" +dependencies = [ + "bevy_math", + "bevy_ptr", + "bevy_reflect_derive", + "bevy_utils", + "downcast-rs", + "erased-serde", + "glam", + "serde", + "smallvec", + "smol_str", + "thiserror", +] + +[[package]] +name = "bevy_reflect_derive" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25f627907c40ac552f798423447fc331fc1ddacd94c5f7a2a70942eb06bc8447" +dependencies = [ + "bevy_macro_utils", + "proc-macro2", + "quote", + "syn 2.0.39", + "uuid", +] + +[[package]] +name = "bevy_render" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90d777f4c51bd58e9e40777c6cb8dde0778df7e2c5298b3f9e3455bd12a9856c" +dependencies = [ + "async-channel", + "bevy_app", + "bevy_asset", + "bevy_core", + "bevy_derive", + "bevy_ecs", + "bevy_encase_derive", + "bevy_hierarchy", + "bevy_log", + "bevy_math", + "bevy_mikktspace", + "bevy_reflect", + "bevy_render_macros", + "bevy_tasks", + "bevy_time", + "bevy_transform", + "bevy_utils", + "bevy_window", + "bitflags 2.4.1", + "bytemuck", + "codespan-reporting", + "downcast-rs", + "encase", + "futures-lite", + "hexasphere", + "image", + "js-sys", + "ktx2", + "naga", + "naga_oil", + "ruzstd", + "serde", + "smallvec", + "thiserror", + "thread_local", + "wasm-bindgen", + "web-sys", + "wgpu", +] + +[[package]] +name = "bevy_render_macros" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35b00c3d0abff94a729460fc9aa95c2ceac71b49b3041166bb5ba3098e9657e7" +dependencies = [ + "bevy_macro_utils", + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "bevy_scene" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba6294396a6375f0b14341d8003408c10aa040e3f833ac8bd49677170ec55d73" +dependencies = [ + "bevy_app", + "bevy_asset", + "bevy_derive", + "bevy_ecs", + "bevy_hierarchy", + "bevy_reflect", + "bevy_render", + "bevy_transform", + "bevy_utils", + "ron", + "serde", + "thiserror", + "uuid", +] + +[[package]] +name = "bevy_sprite" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4f7d1f88a6e5497fdafd95c20984a1d1b5517bc39d51600b4988cd60c51837a" +dependencies = [ + "bevy_app", + "bevy_asset", + "bevy_core_pipeline", + "bevy_derive", + "bevy_ecs", + "bevy_log", + "bevy_math", + "bevy_reflect", + "bevy_render", + "bevy_transform", + "bevy_utils", + "bitflags 2.4.1", + "bytemuck", + "fixedbitset", + "guillotiere", + "radsort", + "rectangle-pack", + "thiserror", +] + +[[package]] +name = "bevy_tasks" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a45be906618192515bc613e46546150089adbb4a82178dc462045acd1e89e92" +dependencies = [ + "async-channel", + "async-executor", + "async-task", + "concurrent-queue", + "futures-lite", + "wasm-bindgen-futures", +] + +[[package]] +name = "bevy_text" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c136af700af4f87c94f68d6e019528c371bf09ebf4a8ff7468bb3c73806b34f5" +dependencies = [ + "ab_glyph", + "bevy_app", + "bevy_asset", + "bevy_ecs", + "bevy_math", + "bevy_reflect", + "bevy_render", + "bevy_sprite", + "bevy_transform", + "bevy_utils", + "bevy_window", + "glyph_brush_layout", + "serde", + "thiserror", +] + +[[package]] +name = "bevy_time" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b29709cadf22d318a0b7c79f763e9c5ac414292bd0e850066fa935959021b276" +dependencies = [ + "bevy_app", + "bevy_ecs", + "bevy_reflect", + "bevy_utils", + "crossbeam-channel", + "serde", + "thiserror", +] + +[[package]] +name = "bevy_transform" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70262c51e915b6224129206d23823364e650cf5eb5f4b6ce3ee379f608c180d2" +dependencies = [ + "bevy_app", + "bevy_ecs", + "bevy_hierarchy", + "bevy_math", + "bevy_reflect", + "serde", + "thiserror", +] + +[[package]] +name = "bevy_ui" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd5ecbf2dceaab118769dd870e34d780bfde556af561fd10d8d613b0f237297e" +dependencies = [ + "bevy_a11y", + "bevy_app", + "bevy_asset", + "bevy_core_pipeline", + "bevy_derive", + "bevy_ecs", + "bevy_hierarchy", + "bevy_input", + "bevy_log", + "bevy_math", + "bevy_reflect", + "bevy_render", + "bevy_sprite", + "bevy_text", + "bevy_transform", + "bevy_utils", + "bevy_window", + "bytemuck", + "serde", + "smallvec", + "taffy", + "thiserror", +] + +[[package]] +name = "bevy_utils" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8e75d4a34ef0b15dffd1ee9079ef1f0f5139527e192b9d5708b3e158777c753" +dependencies = [ + "ahash", + "bevy_utils_proc_macros", + "getrandom", + "hashbrown 0.14.2", + "instant", + "nonmax", + "petgraph", + "thiserror", + "tracing", + "uuid", +] + +[[package]] +name = "bevy_utils_proc_macros" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7dfd3735a61a1b681ed1e176afe4eae731bbb03e51ad871e9eb39e76a2d170e" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "bevy_window" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e60d1830b3fbd7db5bfea7ac9fcd0f5e1d1af88c91ab469e697ab176d8b3140b" +dependencies = [ + "bevy_a11y", + "bevy_app", + "bevy_ecs", + "bevy_input", + "bevy_math", + "bevy_reflect", + "bevy_utils", + "raw-window-handle", + "serde", +] + +[[package]] +name = "bevy_winit" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f8294e78c6a1f9c34d36501a377c5d20bf0fa23a0958187bb270187741448ba" +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", + "wasm-bindgen", + "web-sys", + "winit", +] + +[[package]] +name = "bindgen" +version = "0.68.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "726e4313eb6ec35d2730258ad4e15b547ee75d6afaa1361a922e78e59b7d8078" +dependencies = [ + "bitflags 2.4.1", + "cexpr", + "clang-sys", + "lazy_static", + "lazycell", + "peeking_take_while", + "proc-macro2", + "quote", + "regex", + "rustc-hash", + "shlex", + "syn 2.0.39", +] + +[[package]] +name = "bit-set" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +dependencies = [ + "bit-vec", +] + +[[package]] +name = "bit-vec" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" +dependencies = [ + "serde", +] + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" +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.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c36a4d0d48574b3dd360b4b7d95cc651d2b6557b6402848a27d4b228a473e2a" +dependencies = [ + "async-channel", + "async-lock", + "async-task", + "fastrand 2.0.1", + "futures-io", + "futures-lite", + "piper", + "tracing", +] + +[[package]] +name = "bstr" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "542f33a8835a0884b006a0c3df3dadd99c0c3f296ed26c2fdc8028e01ad6230c" +dependencies = [ + "memchr", + "regex-automata 0.4.3", + "serde", +] + +[[package]] +name = "bumpalo" +version = "3.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" + +[[package]] +name = "bytemuck" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6" +dependencies = [ + "bytemuck_derive", +] + +[[package]] +name = "bytemuck_derive" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "965ab7eb5f8f97d2a083c799f3a1b994fc397b2fe2da5d1da1626ce15a39f2b1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" + +[[package]] +name = "cc" +version = "1.0.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +dependencies = [ + "jobserver", + "libc", +] + +[[package]] +name = "cesu8" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" + +[[package]] +name = "cexpr" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" +dependencies = [ + "nom", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "cfg_aliases" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" + +[[package]] +name = "clang-sys" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c688fc74432808e3eb684cae8830a86be1d66a2bd58e1f248ed0960a590baf6f" +dependencies = [ + "glob", + "libc", + "libloading 0.7.4", +] + +[[package]] +name = "clipboard-win" +version = "4.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7191c27c2357d9b7ef96baac1773290d4ca63b24205b82a3fd8a0637afcf0362" +dependencies = [ + "error-code", + "str-buf", + "winapi", +] + +[[package]] +name = "codespan-reporting" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" +dependencies = [ + "termcolor", + "unicode-width", +] + +[[package]] +name = "color_quant" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" + +[[package]] +name = "com-rs" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf43edc576402991846b093a7ca18a3477e0ef9c588cde84964b5d3e43016642" + +[[package]] +name = "combine" +version = "4.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4" +dependencies = [ + "bytes", + "memchr", +] + +[[package]] +name = "concurrent-queue" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f057a694a54f12365049b0958a1685bb52d567f5593b355fbf685838e873d400" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "console_error_panic_hook" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc" +dependencies = [ + "cfg-if", + "wasm-bindgen", +] + +[[package]] +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 = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" + +[[package]] +name = "constgebra" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edd23e864550e6dafc1e41ac78ce4f1ccddc8672b40c403524a04ff3f0518420" +dependencies = [ + "const_soft_float", +] + +[[package]] +name = "core-foundation" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" + +[[package]] +name = "core-graphics" +version = "0.22.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "core-graphics-types", + "foreign-types 0.3.2", + "libc", +] + +[[package]] +name = "core-graphics-types" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bb142d41022986c1d8ff29103a1411c8a3dfad3552f87a4f8dc50d61d4f4e33" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "libc", +] + +[[package]] +name = "coreaudio-rs" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "321077172d79c662f64f5071a03120748d5bb652f5231570141be24cfcd2bace" +dependencies = [ + "bitflags 1.3.2", + "core-foundation-sys", + "coreaudio-sys", +] + +[[package]] +name = "coreaudio-sys" +version = "0.2.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8478e5bdad14dce236b9898ea002eabfa87cbe14f0aa538dbe3b6a4bec4332d" +dependencies = [ + "bindgen", +] + +[[package]] +name = "cpal" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d959d90e938c5493000514b446987c07aed46c668faaa7d34d6c7a67b1a578c" +dependencies = [ + "alsa", + "core-foundation-sys", + "coreaudio-rs", + "dasp_sample", + "jni 0.19.0", + "js-sys", + "libc", + "mach2", + "ndk", + "ndk-context", + "oboe", + "once_cell", + "parking_lot", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "windows 0.46.0", +] + +[[package]] +name = "crc32fast" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crossbeam" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2801af0d36612ae591caa9568261fddce32ce6e08a7275ea334a06a4ad021a2c" +dependencies = [ + "cfg-if", + "crossbeam-channel", + "crossbeam-deque", + "crossbeam-epoch", + "crossbeam-queue", + "crossbeam-utils", +] + +[[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" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" +dependencies = [ + "cfg-if", + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7" +dependencies = [ + "autocfg", + "cfg-if", + "crossbeam-utils", + "memoffset 0.9.0", + "scopeguard", +] + +[[package]] +name = "crossbeam-queue" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1cfb3ea8a53f37c40dea2c7bedcbd88bdfae54f5e2175d6ecaff1c988353add" +dependencies = [ + "cfg-if", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "d3d12" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e16e44ab292b1dddfdaf7be62cfd8877df52f2f3fde5858d95bab606be259f20" +dependencies = [ + "bitflags 2.4.1", + "libloading 0.8.1", + "winapi", +] + +[[package]] +name = "dasp_sample" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c87e182de0887fd5361989c677c4e8f5000cd9491d6d563161a8f3a5519fc7f" + +[[package]] +name = "data-encoding" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308" + +[[package]] +name = "dispatch" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" + +[[package]] +name = "downcast-rs" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" + +[[package]] +name = "duplicate" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de78e66ac9061e030587b2a2e75cc88f22304913c907b11307bca737141230cb" +dependencies = [ + "heck", + "proc-macro-error", +] + +[[package]] +name = "ecolor" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfdf4e52dbbb615cfd30cf5a5265335c217b5fd8d669593cea74a517d9c605af" +dependencies = [ + "bytemuck", +] + +[[package]] +name = "egui" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8bd69fed5fcf4fbb8225b24e80ea6193b61e17a625db105ef0c4d71dde6eb8b7" +dependencies = [ + "ahash", + "epaint", + "nohash-hasher", +] + +[[package]] +name = "egui-gizmo" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f732ad247afe275d6cf901e0f134025ad735007c8f4d82e667a6871f1b4a5441" +dependencies = [ + "egui", + "glam", +] + +[[package]] +name = "egui_dock" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a52f67bcab0eb6050cf8051c614966c1c57129fab23dbeae9c157214779053c7" +dependencies = [ + "duplicate", + "egui", + "paste", +] + +[[package]] +name = "either" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" + +[[package]] +name = "emath" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ef2b29de53074e575c18b694167ccbe6e5191f7b25fe65175a0d905a32eeec0" +dependencies = [ + "bytemuck", +] + +[[package]] +name = "encase" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fce2eeef77fd4a293a54b62aa00ac9daebfbcda4bf8998c5a815635b004aa1c" +dependencies = [ + "const_panic", + "encase_derive", + "glam", + "thiserror", +] + +[[package]] +name = "encase_derive" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e520cde08cbf4f7cc097f61573ec06ce467019803de8ae82fb2823fa1554a0e" +dependencies = [ + "encase_derive_impl", +] + +[[package]] +name = "encase_derive_impl" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fe2568f851fd6144a45fa91cfed8fe5ca8fc0b56ba6797bfc1ed2771b90e37c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "epaint" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58067b840d009143934d91d8dcb8ded054d8301d7c11a517ace0a99bb1e1595e" +dependencies = [ + "ab_glyph", + "ahash", + "bytemuck", + "ecolor", + "emath", + "nohash-hasher", + "parking_lot", +] + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "erased-serde" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c138974f9d5e7fe373eb04df7cae98833802ae4b11c24ac7039a21d5af4b26c" +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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87f253bc5c813ca05792837a0ff4b3a580336b224512d48f7eda1d7dd9210787" +dependencies = [ + "num-traits", +] + +[[package]] +name = "event-listener" +version = "2.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" + +[[package]] +name = "fastrand" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" +dependencies = [ + "instant", +] + +[[package]] +name = "fastrand" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" + +[[package]] +name = "fdeflate" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64d6dafc854908ff5da46ff3f8f473c6984119a2876a383a860246dd7841a868" +dependencies = [ + "simd-adler32", +] + +[[package]] +name = "fixedbitset" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" + +[[package]] +name = "flate2" +version = "1.0.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared 0.1.1", +] + +[[package]] +name = "foreign-types" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" +dependencies = [ + "foreign-types-macros", + "foreign-types-shared 0.3.1", +] + +[[package]] +name = "foreign-types-macros" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + +[[package]] +name = "foreign-types-shared" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" + +[[package]] +name = "form_urlencoded" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "futures-core" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c" + +[[package]] +name = "futures-io" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa" + +[[package]] +name = "futures-lite" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" +dependencies = [ + "fastrand 1.9.0", + "futures-core", + "futures-io", + "memchr", + "parking", + "pin-project-lite", + "waker-fn", +] + +[[package]] +name = "gethostname" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1ebd34e35c46e00bb73e81363248d627782724609fe1b6396f553f68fe3862e" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "getrandom" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "wasi", + "wasm-bindgen", +] + +[[package]] +name = "gilrs" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e9eec02069fcbd7abe00a28adf216547774889129a777cb5e53fdfb75d59f09" +dependencies = [ + "fnv", + "gilrs-core", + "log", + "uuid", + "vec_map", +] + +[[package]] +name = "gilrs-core" +version = "0.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e11f4e03be4f1beda399e4791c11d33102fa48f368e864259e4e810d3a3d2ff5" +dependencies = [ + "core-foundation", + "inotify", + "io-kit-sys", + "js-sys", + "libc", + "libudev-sys", + "log", + "nix 0.27.1", + "uuid", + "vec_map", + "wasm-bindgen", + "web-sys", + "windows 0.44.0", +] + +[[package]] +name = "gimli" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0" + +[[package]] +name = "glam" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5418c17512bdf42730f9032c74e1ae39afc408745ebb2acf72fbc4691c17945" +dependencies = [ + "bytemuck", + "serde", +] + +[[package]] +name = "glob" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" + +[[package]] +name = "glow" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca0fe580e4b60a8ab24a868bc08e2f03cbcb20d3d676601fa909386713333728" +dependencies = [ + "js-sys", + "slotmap", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "gltf" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad2dcfb6dd7a66f9eb3d181a29dcfb22d146b0bcdc2e1ed1713cbf03939a88ea" +dependencies = [ + "byteorder", + "gltf-json", + "lazy_static", +] + +[[package]] +name = "gltf-derive" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2cbcea5dd47e7ad4e9ee6f040384fcd7204bbf671aa4f9e7ca7dfc9bfa1de20" +dependencies = [ + "inflections", + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "gltf-json" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d5b810806b78dde4b71a95cc0e6fdcab34c4c617da3574df166f9987be97d03" +dependencies = [ + "gltf-derive", + "serde", + "serde_derive", + "serde_json", +] + +[[package]] +name = "glyph_brush_layout" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc32c2334f00ca5ac3695c5009ae35da21da8c62d255b5b96d56e2597a637a38" +dependencies = [ + "ab_glyph", + "approx", + "xi-unicode", +] + +[[package]] +name = "gpu-alloc" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbcd2dba93594b227a1f57ee09b8b9da8892c34d55aa332e034a228d0fe6a171" +dependencies = [ + "bitflags 2.4.1", + "gpu-alloc-types", +] + +[[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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc11df1ace8e7e564511f53af41f3e42ddc95b56fd07b3f4445d2a6048bc682c" +dependencies = [ + "bitflags 2.4.1", + "gpu-descriptor-types", + "hashbrown 0.14.2", +] + +[[package]] +name = "gpu-descriptor-types" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bf0b36e6f090b7e1d8a4b49c0cb81c1f8376f72198c65dd3ad9ff3556b8b78c" +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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b62d5865c036cb1393e23c50693df631d3f5d7bcca4c04fe4cc0fd592e74a782" +dependencies = [ + "euclid", + "svg_fmt", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "hashbrown" +version = "0.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f93e7192158dbcda357bdec5fb5788eebf8bbac027f3f33e719d29135ae84156" +dependencies = [ + "ahash", + "allocator-api2", + "serde", +] + +[[package]] +name = "hassle-rs" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1397650ee315e8891a0df210707f0fc61771b0cc518c3023896064c5407cb3b0" +dependencies = [ + "bitflags 1.3.2", + "com-rs", + "libc", + "libloading 0.7.4", + "thiserror", + "widestring", + "winapi", +] + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "hexasphere" +version = "9.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cb3df16a7bcb1b5bc092abd55e14f77ca70aea14445026e264586fc62889a10" +dependencies = [ + "constgebra", + "glam", +] + +[[package]] +name = "hexf-parse" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfa686283ad6dd069f105e5ab091b04c62850d3e4cf5d67debad1933f55023df" + +[[package]] +name = "home" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" +dependencies = [ + "windows-sys 0.48.0", +] + +[[package]] +name = "idna" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "image" +version = "0.24.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f3dfdbdd72063086ff443e297b61695500514b1e41095b6fb9a5ab48a70a711" +dependencies = [ + "bytemuck", + "byteorder", + "color_quant", + "num-rational", + "num-traits", + "png", + "tiff", +] + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", + "serde", +] + +[[package]] +name = "indexmap" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" +dependencies = [ + "equivalent", + "hashbrown 0.14.2", +] + +[[package]] +name = "inflections" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a257582fdcde896fd96463bf2d40eefea0580021c0712a0e2b028b60b47a837a" + +[[package]] +name = "inotify" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdd168d97690d0b8c412d6b6c10360277f4d7ee495c5d0d5d5fe0854923255cc" +dependencies = [ + "bitflags 1.3.2", + "futures-core", + "inotify-sys", + "libc", + "tokio", +] + +[[package]] +name = "inotify-sys" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb" +dependencies = [ + "libc", +] + +[[package]] +name = "instant" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "io-kit-sys" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4769cb30e5dcf1710fc6730d3e94f78c47723a014a567de385e113c737394640" +dependencies = [ + "core-foundation-sys", + "mach2", +] + +[[package]] +name = "itoa" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" + +[[package]] +name = "jni" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +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]] +name = "jni-sys" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" + +[[package]] +name = "jobserver" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d" +dependencies = [ + "libc", +] + +[[package]] +name = "jpeg-decoder" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc0000e42512c92e31c2252315bda326620a4e034105e900c98ec492fa077b3e" + +[[package]] +name = "js-sys" +version = "0.3.65" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54c0c35952f67de54bb584e9fd912b3023117cbafc0a77d8f3dee1fb5f572fe8" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "khronos-egl" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c2352bd1d0bceb871cb9d40f24360c8133c11d7486b68b5381c1dd1a32015e3" +dependencies = [ + "libc", + "libloading 0.7.4", + "pkg-config", +] + +[[package]] +name = "ktx2" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87d65e08a9ec02e409d27a0139eaa6b9756b4d81fe7cde71f6941a83730ce838" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "lazycell" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" + +[[package]] +name = "lewton" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "777b48df9aaab155475a83a7df3070395ea1ac6902f5cd062b8f2b028075c030" +dependencies = [ + "byteorder", + "ogg", + "tinyvec", +] + +[[package]] +name = "libc" +version = "0.2.150" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c" + +[[package]] +name = "libloading" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" +dependencies = [ + "cfg-if", + "winapi", +] + +[[package]] +name = "libloading" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c571b676ddfc9a8c12f1f3d3085a7b163966a8fd8098a90640953ce5f6170161" +dependencies = [ + "cfg-if", + "windows-sys 0.48.0", +] + +[[package]] +name = "libm" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" + +[[package]] +name = "libredox" +version = "0.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3af92c55d7d839293953fcd0fda5ecfe93297cfde6ffbdec13b41d99c0ba6607" +dependencies = [ + "bitflags 2.4.1", + "libc", + "redox_syscall 0.4.1", +] + +[[package]] +name = "libudev-sys" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c8469b4a23b962c1396b9b451dda50ef5b283e8dd309d69033475fa9b334324" +dependencies = [ + "libc", + "pkg-config", +] + +[[package]] +name = "lock_api" +version = "0.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" + +[[package]] +name = "mach2" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d0d1830bcd151a6fc4aea1369af235b36c1528fe976b8ff678683c9995eade8" +dependencies = [ + "libc", +] + +[[package]] +name = "malloc_buf" +version = "0.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" +dependencies = [ + "libc", +] + +[[package]] +name = "matchers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" + +[[package]] +name = "memoffset" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" +dependencies = [ + "autocfg", +] + +[[package]] +name = "memoffset" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" +dependencies = [ + "autocfg", +] + +[[package]] +name = "metal" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "623b5e6cefd76e58f774bd3cc0c6f5c7615c58c03a97815245a25c3c9bdee318" +dependencies = [ + "bitflags 2.4.1", + "block", + "core-graphics-types", + "foreign-types 0.5.0", + "log", + "objc", + "paste", +] + +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + +[[package]] +name = "miniz_oxide" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +dependencies = [ + "adler", + "simd-adler32", +] + +[[package]] +name = "mio" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0" +dependencies = [ + "libc", + "log", + "wasi", + "windows-sys 0.48.0", +] + +[[package]] +name = "naga" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1ceaaa4eedaece7e4ec08c55c640ba03dbb73fb812a6570a59bcf1930d0f70e" +dependencies = [ + "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 = "naga_oil" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1fa9518ff79ae8a98c3abe3897d873a85561d1b5642981c2245c1c4b9b2429d" +dependencies = [ + "bit-set", + "codespan-reporting", + "data-encoding", + "indexmap 1.9.3", + "naga", + "once_cell", + "regex", + "regex-syntax 0.7.5", + "rustc-hash", + "thiserror", + "tracing", + "unicode-ident", +] + +[[package]] +name = "nalgebra" +version = "0.32.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "307ed9b18cc2423f29e83f84fd23a8e73628727990181f18641a8b5dc2ab1caa" +dependencies = [ + "approx", + "glam", + "matrixmultiply", + "nalgebra-macros", + "num-complex", + "num-rational", + "num-traits", + "serde", + "simba", + "typenum", +] + +[[package]] +name = "nalgebra-macros" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91761aed67d03ad966ef783ae962ef9bbaca728d2dd7ceb7939ec110fffad998" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ndk" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3cf2aae958bd232cac5069850591667ad422d263686d75b52a065f9badeee5a3" +dependencies = [ + "jni-sys", +] + +[[package]] +name = "nix" +version = "0.24.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069" +dependencies = [ + "bitflags 1.3.2", + "cfg-if", + "libc", + "memoffset 0.6.5", +] + +[[package]] +name = "nix" +version = "0.27.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" +dependencies = [ + "bitflags 2.4.1", + "cfg-if", + "libc", +] + +[[package]] +name = "nohash-hasher" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451" + +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "nonmax" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e4a593ea4fffed8684ad13d75c82cf0b6dc2b88947e0ed85b9e70f555a7e422" + +[[package]] +name = "normpath" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec60c60a693226186f5d6edf073232bfb6464ed97eb22cf3b01c1e8198fd97f5" +dependencies = [ + "windows-sys 0.48.0", +] + +[[package]] +name = "ntapi" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4" +dependencies = [ + "winapi", +] + +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] + +[[package]] +name = "num-complex" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214" +dependencies = [ + "num-traits", + "serde", +] + +[[package]] +name = "num-derive" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "num-integer" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +dependencies = [ + "autocfg", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +dependencies = [ + "autocfg", + "libm", +] + +[[package]] +name = "num_enum" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9" +dependencies = [ + "num_enum_derive 0.5.11", +] + +[[package]] +name = "num_enum" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a015b430d3c108a207fd776d2e2196aaf8b1cf8cf93253e3a097ff3085076a1" +dependencies = [ + "num_enum_derive 0.6.1", +] + +[[package]] +name = "num_enum_derive" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "num_enum_derive" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96667db765a921f7b295ffee8b60472b686a51d4f21c2ee4ffdb94c7013b65a6" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "objc" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" +dependencies = [ + "malloc_buf", + "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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad970fb455818ad6cba4c122ad012fae53ae8b4795f86378bce65e4f6bab2ca4" +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.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" +dependencies = [ + "memchr", +] + +[[package]] +name = "oboe" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8868cc237ee02e2d9618539a23a8d228b9bb3fc2e7a5b11eed3831de77c395d0" +dependencies = [ + "jni 0.20.0", + "ndk", + "ndk-context", + "num-derive", + "num-traits", + "oboe-sys", +] + +[[package]] +name = "oboe-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f44155e7fb718d3cfddcf70690b2b51ac4412f347cd9e4fbe511abe9cd7b5f2" +dependencies = [ + "cc", +] + +[[package]] +name = "ogg" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6951b4e8bf21c8193da321bcce9c9dd2e13c858fe078bf9054a288b419ae5d6e" +dependencies = [ + "byteorder", +] + +[[package]] +name = "once_cell" +version = "1.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" + +[[package]] +name = "opener" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c62dcb6174f9cb326eac248f07e955d5d559c272730b6c03e396b443b562788" +dependencies = [ + "bstr", + "normpath", + "winapi", +] + +[[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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + +[[package]] +name = "owned_ttf_parser" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4586edfe4c648c71797a74c84bacb32b52b212eff5dfe2bb9f2c599844023e7" +dependencies = [ + "ttf-parser", +] + +[[package]] +name = "parking" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae" + +[[package]] +name = "parking_lot" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall 0.4.1", + "smallvec", + "windows-targets 0.48.5", +] + +[[package]] +name = "parry3d" +version = "0.13.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b55dc0e6db79bddbc5fd583569f7356cdcc63e1e9b2b93a9ab70dd8e717160e0" +dependencies = [ + "approx", + "arrayvec", + "bitflags 1.3.2", + "downcast-rs", + "either", + "indexmap 1.9.3", + "nalgebra", + "num-derive", + "num-traits", + "rustc-hash", + "serde", + "simba", + "slab", + "smallvec", + "spade", +] + +[[package]] +name = "paste" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" + +[[package]] +name = "peeking_take_while" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" + +[[package]] +name = "percent-encoding" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" + +[[package]] +name = "petgraph" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" +dependencies = [ + "fixedbitset", + "indexmap 2.1.0", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" + +[[package]] +name = "piper" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "668d31b1c4eba19242f2088b2bf3316b82ca31082a8335764db4e083db7485d4" +dependencies = [ + "atomic-waker", + "fastrand 2.0.1", + "futures-io", +] + +[[package]] +name = "pkg-config" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" + +[[package]] +name = "png" +version = "0.17.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd75bf2d8dd3702b9707cdbc56a5b9ef42cec752eb8b3bafc01234558442aa64" +dependencies = [ + "bitflags 1.3.2", + "crc32fast", + "fdeflate", + "flate2", + "miniz_oxide", +] + +[[package]] +name = "pp-rs" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb458bb7f6e250e6eb79d5026badc10a3ebb8f9a15d1fff0f13d17c71f4d6dee" +dependencies = [ + "unicode-xid", +] + +[[package]] +name = "pretty-type-name" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f73cdaf19b52e6143685c3606206e114a4dfa969d6b14ec3894c88eb38bd4b" + +[[package]] +name = "proc-macro-crate" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +dependencies = [ + "once_cell", + "toml_edit 0.19.15", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro2" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "profiling" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f89dff0959d98c9758c88826cc002e2c3d0b9dfac4139711d1f30de442f1139b" + +[[package]] +name = "quote" +version = "1.0.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "radsort" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17fd96390ed3feda12e1dfe2645ed587e0bea749e319333f104a33ff62f77a0b" + +[[package]] +name = "range-alloc" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8a99fddc9f0ba0a85884b8d14e3592853e787d581ca1816c91349b10e4eeab" + +[[package]] +name = "rapier3d" +version = "0.17.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62a8a0bd9d3135f7b4eb45d0796540e7bab47b6b7c974f90567ccc5a0454f42b" +dependencies = [ + "approx", + "arrayvec", + "bit-vec", + "bitflags 1.3.2", + "crossbeam", + "downcast-rs", + "nalgebra", + "num-derive", + "num-traits", + "parry3d", + "rustc-hash", + "serde", + "simba", +] + +[[package]] +name = "raw-window-handle" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9" + +[[package]] +name = "rawpointer" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" + +[[package]] +name = "rectangle-pack" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0d463f2884048e7153449a55166f91028d5b0ea53c79377099ce4e8cf0cf9bb" + +[[package]] +name = "redox_syscall" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "redox_syscall" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "regex" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata 0.4.3", + "regex-syntax 0.8.2", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax 0.6.29", +] + +[[package]] +name = "regex-automata" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax 0.8.2", +] + +[[package]] +name = "regex-syntax" +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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" + +[[package]] +name = "renderdoc-sys" +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 = "cbf4a6aa5f6d6888f39e980649f3ad6b666acdce1d78e95b8a2cb076e687ae30" + +[[package]] +name = "rodio" +version = "0.17.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b1bb7b48ee48471f55da122c0044fcc7600cfcc85db88240b89cb832935e611" +dependencies = [ + "cpal", + "lewton", +] + +[[package]] +name = "ron" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b91f7eff05f748767f183df4320a63d6936e9c6107d97c9e6bdd9784f4289c94" +dependencies = [ + "base64 0.21.5", + "bitflags 2.4.1", + "serde", + "serde_derive", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" + +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + +[[package]] +name = "ruzstd" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3ffab8f9715a0d455df4bbb9d21e91135aab3cd3ca187af0cd0c3c3f868fdc" +dependencies = [ + "byteorder", + "thiserror-core", + "twox-hash", +] + +[[package]] +name = "ryu" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" + +[[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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "serde" +version = "1.0.192" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bca2a08484b285dcb282d0f67b26cadc0df8b19f8c12502c13d966bf9482f001" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.192" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6c7207fbec9faa48073f3e3074cbe553af6ea512d7c21ba46e434e70ea9fbc1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "serde_json" +version = "1.0.108" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" +dependencies = [ + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "shlex" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7cee0529a6d40f580e7a5e6c495c8fbfe21b7b52795ed4bb5e62cdf92bc6380" + +[[package]] +name = "simba" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "061507c94fc6ab4ba1c9a0305018408e312e17c041eb63bef8aa726fa33aceae" +dependencies = [ + "approx", + "libm", + "num-complex", + "num-traits", + "paste", + "wide", +] + +[[package]] +name = "simd-adler32" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] + +[[package]] +name = "slotmap" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1e08e261d0e8f5c43123b7adf3e4ca1690d655377ac93a03b2c9d3e98de1342" +dependencies = [ + "version_check", +] + +[[package]] +name = "smallvec" +version = "1.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" +dependencies = [ + "serde", +] + +[[package]] +name = "smol_str" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74212e6bbe9a4352329b2f68ba3130c15a3f26fe88ff22dbdc6cdd58fa85e99c" +dependencies = [ + "serde", +] + +[[package]] +name = "socket2" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" +dependencies = [ + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "spade" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c39e369d9638e42586b226e67df08a7358d1e02eb80629d596b944b7c16f44f" +dependencies = [ + "hashbrown 0.14.2", + "num-traits", + "robust", + "smallvec", +] + +[[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 = "str-buf" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e08d8363704e6c71fc928674353e6b7c23dcea9d82d7012c8faf2a3a025f8d0" + +[[package]] +name = "svg_fmt" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fb1df15f412ee2e9dfc1c504260fa695c1c3f10fe9f4a6ee2d2184d7d6450e2" + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.39" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "sysinfo" +version = "0.29.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a18d114d420ada3a891e6bc8e96a2023402203296a47cdd65083377dad18ba5" +dependencies = [ + "cfg-if", + "core-foundation-sys", + "libc", + "ntapi", + "once_cell", + "winapi", +] + +[[package]] +name = "taffy" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c2287b6d7f721ada4cddf61ade5e760b2c6207df041cac9bfaa192897362fd3" +dependencies = [ + "arrayvec", + "grid", + "num-traits", + "slotmap", +] + +[[package]] +name = "termcolor" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6093bad37da69aab9d123a8091e4be0aa4a03e4d601ec641c327398315f62b64" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "thiserror" +version = "1.0.50" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-core" +version = "1.0.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d97345f6437bb2004cd58819d8a9ef8e36cdd7661c2abc4bbde0a7c40d9f497" +dependencies = [ + "thiserror-core-impl", +] + +[[package]] +name = "thiserror-core-impl" +version = "1.0.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10ac1c5050e43014d16b2f94d0d2ce79e65ffdd8b38d8048f9c8f6a8a6da62ac" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.50" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "thread_local" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" +dependencies = [ + "cfg-if", + "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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0c014766411e834f7af5b8f4cf46257aab4036ca95e9d2c144a10f59ad6f5b9" +dependencies = [ + "backtrace", + "libc", + "mio", + "pin-project-lite", + "socket2", + "windows-sys 0.48.0", +] + +[[package]] +name = "toml_datetime" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" + +[[package]] +name = "toml_edit" +version = "0.19.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +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", + "winnow", +] + +[[package]] +name = "tracing" +version = "0.1.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +dependencies = [ + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "tracing-core" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-log" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f751112709b4e791d8ce53e32c4ed2d353565a795ce84da2285393f41557bdf2" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77" +dependencies = [ + "matchers", + "nu-ansi-term", + "once_cell", + "regex", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log", +] + +[[package]] +name = "tracing-wasm" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4575c663a174420fa2d78f4108ff68f65bf2fbb7dd89f33749b6e826b3626e07" +dependencies = [ + "tracing", + "tracing-subscriber", + "wasm-bindgen", +] + +[[package]] +name = "ttf-parser" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17f77d76d837a7830fe1d4f12b7b4ba4192c1888001c7164257e4bc6d21d96b4" + +[[package]] +name = "twox-hash" +version = "1.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" +dependencies = [ + "cfg-if", + "static_assertions", +] + +[[package]] +name = "typenum" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" + +[[package]] +name = "unicode-bidi" +version = "0.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" + +[[package]] +name = "unicode-ident" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unicode-normalization" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-width" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" + +[[package]] +name = "unicode-xid" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" + +[[package]] +name = "url" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", +] + +[[package]] +name = "uuid" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88ad59a7560b41a70d191093a945f0b87bc1deeda46fb237479708a1d6b6cdfc" +dependencies = [ + "getrandom", + "serde", +] + +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + +[[package]] +name = "vec_map" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "waker-fn" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690" + +[[package]] +name = "walkdir" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasm-bindgen" +version = "0.2.88" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7daec296f25a1bae309c0cd5c29c4b260e510e6d813c286b19eaadf409d40fce" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.88" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e397f4664c0e4e428e8313a469aaa58310d302159845980fd23b0f22a847f217" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.39", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9afec9963e3d0994cac82455b2b3502b81a7f40f9a0d32181f7528d9f4b43e02" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.88" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5961017b3b08ad5f3fe39f1e79877f8ee7c23c5e5fd5eb80de95abc41f1f16b2" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.88" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5353b8dab669f5e10f5bd76df26a9360c748f054f862ff5f3f8aae0c7fb3907" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.88" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d046c5d029ba91a1ed14da14dca44b68bf2f124cfbaf741c54151fdb3e0750b" + +[[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.65" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5db499c5f66323272151db0e666cd34f78617522fb0c1604d31a27c50c206a85" +dependencies = [ + "js-sys", + "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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb" + +[[package]] +name = "wgpu" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed547920565c56c7a29afb4538ac5ae5048865a5d2f05bff3ad4fbeb921a9a2c" +dependencies = [ + "arrayvec", + "cfg-if", + "js-sys", + "log", + "naga", + "parking_lot", + "profiling", + "raw-window-handle", + "smallvec", + "static_assertions", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "wgpu-core", + "wgpu-hal", + "wgpu-types", +] + +[[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", + "log", + "naga", + "parking_lot", + "profiling", + "raw-window-handle", + "rustc-hash", + "smallvec", + "thiserror", + "web-sys", + "wgpu-hal", + "wgpu-types", +] + +[[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", + "glow", + "gpu-alloc", + "gpu-allocator", + "gpu-descriptor", + "hassle-rs", + "js-sys", + "khronos-egl", + "libc", + "libloading 0.8.1", + "log", + "metal", + "naga", + "objc", + "parking_lot", + "profiling", + "range-alloc", + "raw-window-handle", + "renderdoc-sys", + "rustc-hash", + "smallvec", + "thiserror", + "wasm-bindgen", + "web-sys", + "wgpu-types", + "winapi", +] + +[[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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" +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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows" +version = "0.44.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e745dab35a0c4c77aa3ce42d595e13d2003d6902d6b08c9ef5fc326d08da12b" +dependencies = [ + "windows-targets 0.42.2", +] + +[[package]] +name = "windows" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdacb41e6a96a052c6cb63a144f24900236121c6f63f4f8219fef5977ecb0c25" +dependencies = [ + "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-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 = "e6fb8df20c9bcaa8ad6ab513f7b40104840c8867d5751126e4df3b08388d0cc7" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "windows-sys" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets 0.42.2", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_i686_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "winit" +version = "0.28.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9596d90b45384f5281384ab204224876e8e8bf7d58366d9b795ad99aa9894b94" +dependencies = [ + "android-activity", + "bitflags 1.3.2", + "cfg_aliases", + "core-foundation", + "core-graphics", + "dispatch", + "instant", + "libc", + "log", + "mio", + "ndk", + "objc2", + "once_cell", + "orbclient", + "percent-encoding", + "raw-window-handle", + "redox_syscall 0.3.5", + "wasm-bindgen", + "wayland-scanner", + "web-sys", + "windows-sys 0.45.0", + "x11-dl", +] + +[[package]] +name = "winnow" +version = "0.5.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "829846f3e3db426d4cee4510841b71a8e58aa2a76b1132579487ae430ccd9c7b" +dependencies = [ + "memchr", +] + +[[package]] +name = "x11-dl" +version = "2.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f" +dependencies = [ + "libc", + "once_cell", + "pkg-config", +] + +[[package]] +name = "x11rb" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "592b4883219f345e712b3209c62654ebda0bb50887f330cbd018d0f654bfd507" +dependencies = [ + "gethostname", + "nix 0.24.3", + "winapi", + "winapi-wsapoll", + "x11rb-protocol", +] + +[[package]] +name = "x11rb-protocol" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56b245751c0ac9db0e006dc812031482784e434630205a93c73cfefcaabeac67" +dependencies = [ + "nix 0.24.3", +] + +[[package]] +name = "xi-unicode" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a67300977d3dc3f8034dae89778f502b6ba20b269527b3223ba59c0cf393bb8a" + +[[package]] +name = "xml-rs" +version = "0.8.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fcb9cbac069e033553e8bb871be2fbdffcab578eb25bd0f7c508cedc6dcd75a" + +[[package]] +name = "zerocopy" +version = "0.7.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8cd369a67c0edfef15010f980c3cbe45d7f651deac2cd67ce097cd801de16557" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2f140bda219a26ccc0cdb03dba58af72590c53b22642577d88a927bc5c87d6b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] diff --git a/examples/bevy_gltf_components/basic_wasm/Cargo.toml b/examples/bevy_gltf_components/basic_wasm/Cargo.toml new file mode 100644 index 0000000..c3b823f --- /dev/null +++ b/examples/bevy_gltf_components/basic_wasm/Cargo.toml @@ -0,0 +1,27 @@ +[package] +name = "bevy_gltf_components_basic_wasm_example" +version = "0.3.0" +edition = "2021" +license = "MIT OR Apache-2.0" + +[dependencies] +bevy="0.12" +bevy_gltf_components = { path = "../../../crates/bevy_gltf_components" } +bevy_rapier3d = { version = "0.23.0", features = [ "serde-serialize", "debug-render-3d", "enhanced-determinism"] } +bevy_editor_pls = { version = "0.6" } + +[profile.wasm-release] +# Use release profile as default values +inherits = "release" + +# Optimize with size in mind, also try "s", sometimes it is better. +# This doesn't increase compilation times compared to -O3, great improvements +opt-level = "z" + +# Do a second optimization pass removing duplicate or unused code from dependencies. +# Slows compile times, marginal improvements +lto = "fat" + +# When building crates, optimize larger chunks at a time +# Slows compile times, marginal improvements +codegen-units = 1 \ No newline at end of file diff --git a/examples/bevy_gltf_components/basic_wasm/README.md b/examples/bevy_gltf_components/basic_wasm/README.md new file mode 100644 index 0000000..f370400 --- /dev/null +++ b/examples/bevy_gltf_components/basic_wasm/README.md @@ -0,0 +1,37 @@ + +# Basic bevy_gltf_components wasm demo + +## Setup + +as per the bevy documentation: + +```shell +rustup target add wasm32-unknown-unknown +cargo install wasm-bindgen-cli +``` + + +## Building this example + +navigate to the current folder , and then + + +```shell +cargo build --release --target wasm32-unknown-unknown --target-dir ./target +wasm-bindgen --out-name wasm_example \ + --out-dir ./target/wasm \ + --target web target/wasm32-unknown-unknown/release/bevy_gltf_components_basic_wasm_example.wasm + +``` + +## Running this example + +run a web server in the current folder, and navigate to the page, you should see the example in your browser + +### Additional notes + + +## Information +- the Bevy/ Rust code is [here](./src/main.rs) +- the Blender file is [here](./assets/basic.blend) +- I added [bevy_editor_pls](https://github.com/jakobhellermann/bevy_editor_pls) as a dependency for convenience so you can inspect your level/components diff --git a/examples/bevy_gltf_components/basic_wasm/assets/basic.blend b/examples/bevy_gltf_components/basic_wasm/assets/basic.blend new file mode 100644 index 0000000000000000000000000000000000000000..883d15dc115db2f5e14f4d092f686a80a88d7dcd GIT binary patch literal 1337588 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

O{%3V=Nq*1Vz}F|;?HhqU@&ogT*Y#X$$=LD%s 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%0AL#S2ndj+w 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 + + + + + + diff --git a/examples/bevy_gltf_components/basic_wasm/src/core/camera/camera_replace_proxies.rs b/examples/bevy_gltf_components/basic_wasm/src/core/camera/camera_replace_proxies.rs new file mode 100644 index 0000000..9055c95 --- /dev/null +++ b/examples/bevy_gltf_components/basic_wasm/src/core/camera/camera_replace_proxies.rs @@ -0,0 +1,24 @@ +use bevy::core_pipeline::bloom::{BloomCompositeMode, BloomSettings}; +use bevy::core_pipeline::tonemapping::{DebandDither, Tonemapping}; +use bevy::prelude::*; + +use super::CameraTrackingOffset; + +pub fn camera_replace_proxies( + mut commands: Commands, + mut added_cameras: Query<(Entity, &mut Camera), (Added, With)>, +) { + for (entity, mut camera) in added_cameras.iter_mut() { + info!("detected added camera, updating proxy"); + camera.hdr = true; + commands + .entity(entity) + .insert(DebandDither::Enabled) + .insert(Tonemapping::BlenderFilmic) + .insert(BloomSettings { + intensity: 0.01, + composite_mode: BloomCompositeMode::Additive, + ..default() + }); + } +} diff --git a/examples/bevy_gltf_components/basic_wasm/src/core/camera/camera_tracking.rs b/examples/bevy_gltf_components/basic_wasm/src/core/camera/camera_tracking.rs new file mode 100644 index 0000000..62da84d --- /dev/null +++ b/examples/bevy_gltf_components/basic_wasm/src/core/camera/camera_tracking.rs @@ -0,0 +1,58 @@ +use bevy::prelude::*; + +#[derive(Component, Reflect, Debug)] +#[reflect(Component)] +/// Component for cameras, with an offset from the Trackable target +/// +pub struct CameraTracking { + pub offset: Vec3, +} +impl Default for CameraTracking { + fn default() -> Self { + CameraTracking { + offset: Vec3::new(0.0, 6.0, 8.0), + } + } +} + +#[derive(Component, Reflect, Debug, Deref, DerefMut)] +#[reflect(Component)] +/// Component for cameras, with an offset from the Trackable target +pub struct CameraTrackingOffset(Vec3); +impl Default for CameraTrackingOffset { + fn default() -> Self { + CameraTrackingOffset(Vec3::new(0.0, 6.0, 8.0)) + } +} + +impl CameraTrackingOffset { + fn new(input: Vec3) -> Self { + CameraTrackingOffset(input) + } +} + +#[derive(Component, Reflect, Default, Debug)] +#[reflect(Component)] +/// Add this component to an entity if you want it to be tracked by a Camera +pub struct CameraTrackable; + +pub fn camera_track( + mut tracking_cameras: Query< + (&mut Transform, &CameraTrackingOffset), + ( + With, + With, + Without, + ), + >, + camera_tracked: Query<&Transform, With>, +) { + for (mut camera_transform, tracking_offset) in tracking_cameras.iter_mut() { + for tracked_transform in camera_tracked.iter() { + let target_position = tracked_transform.translation + tracking_offset.0; + let eased_position = camera_transform.translation.lerp(target_position, 0.1); + camera_transform.translation = eased_position; // + tracking.offset;// tracked_transform.translation + tracking.offset; + *camera_transform = camera_transform.looking_at(tracked_transform.translation, Vec3::Y); + } + } +} diff --git a/examples/bevy_gltf_components/basic_wasm/src/core/camera/mod.rs b/examples/bevy_gltf_components/basic_wasm/src/core/camera/mod.rs new file mode 100644 index 0000000..9cc4bf3 --- /dev/null +++ b/examples/bevy_gltf_components/basic_wasm/src/core/camera/mod.rs @@ -0,0 +1,17 @@ +pub mod camera_tracking; +pub use camera_tracking::*; + +pub mod camera_replace_proxies; +pub use camera_replace_proxies::*; + +use bevy::prelude::*; + +pub struct CameraPlugin; +impl Plugin for CameraPlugin { + fn build(&self, app: &mut App) { + app.register_type::() + .register_type::() + .register_type::() + .add_systems(Update, (camera_replace_proxies, camera_track)); + } +} diff --git a/examples/bevy_gltf_components/basic_wasm/src/core/lighting/lighting_replace_proxies.rs b/examples/bevy_gltf_components/basic_wasm/src/core/lighting/lighting_replace_proxies.rs new file mode 100644 index 0000000..48c0908 --- /dev/null +++ b/examples/bevy_gltf_components/basic_wasm/src/core/lighting/lighting_replace_proxies.rs @@ -0,0 +1,25 @@ +use bevy::prelude::*; + +use bevy::pbr::{CascadeShadowConfig, CascadeShadowConfigBuilder}; + +// fixme might be too specific to might needs, should it be moved out ? also these are all for lights, not models +pub fn lighting_replace_proxies( + mut added_dirights: Query<(Entity, &mut DirectionalLight), Added>, + mut added_spotlights: Query<&mut SpotLight, Added>, + mut commands: Commands, +) { + for (entity, mut light) in added_dirights.iter_mut() { + light.illuminance *= 5.0; + light.shadows_enabled = true; + let shadow_config: CascadeShadowConfig = CascadeShadowConfigBuilder { + first_cascade_far_bound: 15.0, + maximum_distance: 135.0, + ..default() + } + .into(); + commands.entity(entity).insert(shadow_config); + } + for mut light in added_spotlights.iter_mut() { + light.shadows_enabled = true; + } +} diff --git a/examples/bevy_gltf_components/basic_wasm/src/core/lighting/mod.rs b/examples/bevy_gltf_components/basic_wasm/src/core/lighting/mod.rs new file mode 100644 index 0000000..c9688cd --- /dev/null +++ b/examples/bevy_gltf_components/basic_wasm/src/core/lighting/mod.rs @@ -0,0 +1,18 @@ +mod lighting_replace_proxies; +use lighting_replace_proxies::*; + +use bevy::pbr::{DirectionalLightShadowMap, NotShadowCaster}; +use bevy::prelude::*; + +pub struct LightingPlugin; +impl Plugin for LightingPlugin { + fn build(&self, app: &mut App) { + app + .insert_resource(DirectionalLightShadowMap { size: 4096 }) + // FIXME: adding these since they are missing + .register_type::() + + .add_systems(PreUpdate, lighting_replace_proxies) // FIXME: you should actually run this in a specific state most likely + ; + } +} diff --git a/examples/bevy_gltf_components/basic_wasm/src/core/mod.rs b/examples/bevy_gltf_components/basic_wasm/src/core/mod.rs new file mode 100644 index 0000000..d6d4775 --- /dev/null +++ b/examples/bevy_gltf_components/basic_wasm/src/core/mod.rs @@ -0,0 +1,19 @@ +pub mod camera; +pub use camera::*; + +pub mod lighting; +pub use lighting::*; + +pub mod relationships; +pub use relationships::*; + +pub mod physics; +pub use physics::*; + +use bevy::prelude::*; +pub struct CorePlugin; +impl Plugin for CorePlugin { + fn build(&self, app: &mut App) { + app.add_plugins((LightingPlugin, CameraPlugin, PhysicsPlugin)); + } +} diff --git a/examples/bevy_gltf_components/basic_wasm/src/core/physics/controls.rs b/examples/bevy_gltf_components/basic_wasm/src/core/physics/controls.rs new file mode 100644 index 0000000..8ee2b95 --- /dev/null +++ b/examples/bevy_gltf_components/basic_wasm/src/core/physics/controls.rs @@ -0,0 +1,10 @@ +use bevy::prelude::ResMut; +use bevy_rapier3d::prelude::RapierConfiguration; + +pub fn pause_physics(mut physics_config: ResMut) { + physics_config.physics_pipeline_active = false; +} + +pub fn resume_physics(mut physics_config: ResMut) { + physics_config.physics_pipeline_active = true; +} diff --git a/examples/bevy_gltf_components/basic_wasm/src/core/physics/mod.rs b/examples/bevy_gltf_components/basic_wasm/src/core/physics/mod.rs new file mode 100644 index 0000000..4b4b98b --- /dev/null +++ b/examples/bevy_gltf_components/basic_wasm/src/core/physics/mod.rs @@ -0,0 +1,27 @@ +pub mod physics_replace_proxies; +pub use physics_replace_proxies::*; + +pub mod utils; + +pub mod controls; +pub use controls::*; + +use bevy::prelude::*; +// use crate::Collider; +pub struct PhysicsPlugin; +impl Plugin for PhysicsPlugin { + fn build(&self, app: &mut App) { + app + .register_type::() + .register_type::() + + // find a way to make serde's stuff serializable + // .register_type::() + //bevy_rapier3d::dynamics::CoefficientCombineRule + + .add_systems(Update, physics_replace_proxies) + //.add_system(pause_physics.in_schedule(OnEnter(GameState::InMenu))) + //.add_system(resume_physics.in_schedule(OnEnter(GameState::InGame))) + ; + } +} diff --git a/examples/bevy_gltf_components/basic_wasm/src/core/physics/physics_replace_proxies.rs b/examples/bevy_gltf_components/basic_wasm/src/core/physics/physics_replace_proxies.rs new file mode 100644 index 0000000..37edfe5 --- /dev/null +++ b/examples/bevy_gltf_components/basic_wasm/src/core/physics/physics_replace_proxies.rs @@ -0,0 +1,101 @@ +use bevy::prelude::*; +// use bevy::render::primitives::Aabb; +use bevy_rapier3d::geometry::Collider as RapierCollider; +use bevy_rapier3d::prelude::{ActiveCollisionTypes, ActiveEvents, ComputedColliderShape}; + +use super::utils::*; + +#[derive(Component, Reflect, Default, Debug)] +#[reflect(Component)] +pub enum Collider { + Ball(f32), + Cuboid(Vec3), + Capsule(Vec3, Vec3, f32), + #[default] + Mesh, +} + +#[derive(Component, Reflect, Default, Debug)] +#[reflect(Component)] +pub enum AutoAABBCollider { + #[default] + Cuboid, + Ball, + Capsule, +} + +// replaces all physics stand-ins with the actual rapier types +pub fn physics_replace_proxies( + meshes: Res>, + mesh_handles: Query<&Handle>, + mut proxy_colliders: Query< + (Entity, &Collider, &Name, &mut Visibility), + (Without, Added), + >, + // needed for tri meshes + children: Query<&Children>, + + mut commands: Commands, +) { + for proxy_colider in proxy_colliders.iter_mut() { + let (entity, collider_proxy, name, mut visibility) = proxy_colider; + // we hide the collider meshes: perhaps they should be removed altogether once processed ? + if name.ends_with("_collider") || name.ends_with("_sensor") { + *visibility = Visibility::Hidden; + } + + let mut rapier_collider: RapierCollider; + match collider_proxy { + Collider::Ball(radius) => { + println!("proxy: ball"); + rapier_collider = RapierCollider::ball(*radius); + commands.entity(entity) + .insert(rapier_collider) + .insert(ActiveEvents::COLLISION_EVENTS) // FIXME: this is just for demo purposes !!! + ; + } + Collider::Cuboid(size) => { + println!("proxy: cuboid"); + rapier_collider = RapierCollider::cuboid(size.x, size.y, size.z); + commands.entity(entity) + .insert(rapier_collider) + .insert(ActiveEvents::COLLISION_EVENTS) // FIXME: this is just for demo purposes !!! + ; + } + Collider::Capsule(a, b, radius) => { + println!("proxy: capsule"); + rapier_collider = RapierCollider::capsule(*a, *b, *radius); + commands.entity(entity) + .insert(rapier_collider) + .insert(ActiveEvents::COLLISION_EVENTS) // FIXME: this is just for demo purposes !!! + ; + } + Collider::Mesh => { + println!("proxy: mesh"); + for (_, collider_mesh) in + Mesh::search_in_children(entity, &children, &meshes, &mesh_handles) + { + rapier_collider = RapierCollider::from_bevy_mesh( + collider_mesh, + &ComputedColliderShape::TriMesh, + ) + .unwrap(); + commands + .entity(entity) + .insert(rapier_collider) + // FIXME: this is just for demo purposes !!! + .insert( + ActiveCollisionTypes::default() + | ActiveCollisionTypes::KINEMATIC_STATIC + | ActiveCollisionTypes::STATIC_STATIC + | ActiveCollisionTypes::DYNAMIC_STATIC, + ) + .insert(ActiveEvents::COLLISION_EVENTS); + // .insert(ActiveEvents::COLLISION_EVENTS) + // break; + // RapierCollider::convex_hull(points) + } + } + } + } +} diff --git a/examples/bevy_gltf_components/basic_wasm/src/core/physics/utils.rs b/examples/bevy_gltf_components/basic_wasm/src/core/physics/utils.rs new file mode 100644 index 0000000..7886710 --- /dev/null +++ b/examples/bevy_gltf_components/basic_wasm/src/core/physics/utils.rs @@ -0,0 +1,175 @@ +use bevy::prelude::*; +use bevy::render::mesh::{MeshVertexAttributeId, PrimitiveTopology, VertexAttributeValues}; +// TAKEN VERBATIB FROM https://github.com/janhohenheim/foxtrot/blob/src/util/trait_extension.rs + +pub(crate) trait Vec3Ext: Copy { + fn is_approx_zero(self) -> bool; + fn split(self, up: Vec3) -> SplitVec3; +} +impl Vec3Ext for Vec3 { + #[inline] + fn is_approx_zero(self) -> bool { + self.length_squared() < 1e-5 + } + + #[inline] + fn split(self, up: Vec3) -> SplitVec3 { + let vertical = up * self.dot(up); + let horizontal = self - vertical; + SplitVec3 { + vertical, + horizontal, + } + } +} + +#[derive(Debug, Clone, Copy, PartialEq)] +pub(crate) struct SplitVec3 { + pub(crate) vertical: Vec3, + pub(crate) horizontal: Vec3, +} + +pub(crate) trait Vec2Ext: Copy { + fn is_approx_zero(self) -> bool; + fn x0y(self) -> Vec3; +} +impl Vec2Ext for Vec2 { + #[inline] + fn is_approx_zero(self) -> bool { + self.length_squared() < 1e-5 + } + + #[inline] + fn x0y(self) -> Vec3 { + Vec3::new(self.x, 0., self.y) + } +} + +pub(crate) trait MeshExt { + fn transform(&mut self, transform: Transform); + fn transformed(&self, transform: Transform) -> Mesh; + fn read_coords_mut(&mut self, id: impl Into) -> &mut Vec<[f32; 3]>; + fn search_in_children<'a>( + parent: Entity, + children: &'a Query<&Children>, + meshes: &'a Assets, + mesh_handles: &'a Query<&Handle>, + ) -> Vec<(Entity, &'a Mesh)>; +} + +impl MeshExt for Mesh { + fn transform(&mut self, transform: Transform) { + for coords in self.read_coords_mut(Mesh::ATTRIBUTE_POSITION.clone()) { + let vec3 = (*coords).into(); + let transformed = transform.transform_point(vec3); + *coords = transformed.into(); + } + for normal in self.read_coords_mut(Mesh::ATTRIBUTE_NORMAL.clone()) { + let vec3 = (*normal).into(); + let transformed = transform.rotation.mul_vec3(vec3); + *normal = transformed.into(); + } + } + + fn transformed(&self, transform: Transform) -> Mesh { + let mut mesh = self.clone(); + mesh.transform(transform); + mesh + } + + fn read_coords_mut(&mut self, id: impl Into) -> &mut Vec<[f32; 3]> { + // Guaranteed by Bevy for the current usage + match self + .attribute_mut(id) + .expect("Failed to read unknown mesh attribute") + { + VertexAttributeValues::Float32x3(values) => values, + // Guaranteed by Bevy for the current usage + _ => unreachable!(), + } + } + + fn search_in_children<'a>( + parent: Entity, + children_query: &'a Query<&Children>, + meshes: &'a Assets, + mesh_handles: &'a Query<&Handle>, + ) -> Vec<(Entity, &'a Mesh)> { + if let Ok(children) = children_query.get(parent) { + let mut result: Vec<_> = children + .iter() + .filter_map(|entity| mesh_handles.get(*entity).ok().map(|mesh| (*entity, mesh))) + .map(|(entity, mesh_handle)| { + ( + entity, + meshes + .get(mesh_handle) + .expect("Failed to get mesh from handle"), + ) + }) + .map(|(entity, mesh)| { + assert_eq!(mesh.primitive_topology(), PrimitiveTopology::TriangleList); + (entity, mesh) + }) + .collect(); + let mut inner_result = children + .iter() + .flat_map(|entity| { + Self::search_in_children(*entity, children_query, meshes, mesh_handles) + }) + .collect(); + result.append(&mut inner_result); + result + } else { + Vec::new() + } + } +} + +pub(crate) trait F32Ext: Copy { + fn is_approx_zero(self) -> bool; + fn squared(self) -> f32; + fn lerp(self, other: f32, ratio: f32) -> f32; +} + +impl F32Ext for f32 { + #[inline] + fn is_approx_zero(self) -> bool { + self.abs() < 1e-5 + } + + #[inline] + fn squared(self) -> f32 { + self * self + } + + #[inline] + fn lerp(self, other: f32, ratio: f32) -> f32 { + self.mul_add(1. - ratio, other * ratio) + } +} + +pub(crate) trait TransformExt: Copy { + fn horizontally_looking_at(self, target: Vec3, up: Vec3) -> Transform; + fn lerp(self, other: Transform, ratio: f32) -> Transform; +} + +impl TransformExt for Transform { + fn horizontally_looking_at(self, target: Vec3, up: Vec3) -> Transform { + let direction = target - self.translation; + let horizontal_direction = direction - up * direction.dot(up); + let look_target = self.translation + horizontal_direction; + self.looking_at(look_target, up) + } + + fn lerp(self, other: Transform, ratio: f32) -> Transform { + let translation = self.translation.lerp(other.translation, ratio); + let rotation = self.rotation.slerp(other.rotation, ratio); + let scale = self.scale.lerp(other.scale, ratio); + Transform { + translation, + rotation, + scale, + } + } +} diff --git a/examples/bevy_gltf_components/basic_wasm/src/core/relationships/mod.rs b/examples/bevy_gltf_components/basic_wasm/src/core/relationships/mod.rs new file mode 100644 index 0000000..4128453 --- /dev/null +++ b/examples/bevy_gltf_components/basic_wasm/src/core/relationships/mod.rs @@ -0,0 +1,11 @@ +pub mod relationships_insert_dependant_components; +pub use relationships_insert_dependant_components::*; + +use bevy::prelude::*; + +pub struct EcsRelationshipsPlugin; +impl Plugin for EcsRelationshipsPlugin { + fn build(&self, app: &mut App) { + app; + } +} diff --git a/examples/bevy_gltf_components/basic_wasm/src/core/relationships/relationships_insert_dependant_components.rs b/examples/bevy_gltf_components/basic_wasm/src/core/relationships/relationships_insert_dependant_components.rs new file mode 100644 index 0000000..4e9ad17 --- /dev/null +++ b/examples/bevy_gltf_components/basic_wasm/src/core/relationships/relationships_insert_dependant_components.rs @@ -0,0 +1,15 @@ +use bevy::prelude::*; + +pub fn insert_dependant_component< + Dependant: Component, + Dependency: Component + std::default::Default, +>( + mut commands: Commands, + entities_without_depency: Query<(Entity, &Name), (With, Without)>, +) { + for (entity, name) in entities_without_depency.iter() { + let name = name.clone().to_string(); + commands.entity(entity).insert(Dependency::default()); + warn!("found an entity called {} with a {} component but without an {}, please check your assets", name.clone(), std::any::type_name::(), std::any::type_name::()); + } +} diff --git a/examples/bevy_gltf_components/basic_wasm/src/game.rs b/examples/bevy_gltf_components/basic_wasm/src/game.rs new file mode 100644 index 0000000..e62d5cc --- /dev/null +++ b/examples/bevy_gltf_components/basic_wasm/src/game.rs @@ -0,0 +1,102 @@ +use crate::insert_dependant_component; +use bevy::prelude::*; +use bevy_rapier3d::prelude::*; + +// this file is just for demo purposes, contains various types of components, systems etc + +#[derive(Component, Reflect, Default, Debug)] +#[reflect(Component)] +pub enum SoundMaterial { + Metal, + Wood, + Rock, + Cloth, + Squishy, + #[default] + None, +} + +#[derive(Component, Reflect, Default, Debug)] +#[reflect(Component)] +/// Demo marker component +pub struct Player; + +#[derive(Component, Reflect, Default, Debug)] +#[reflect(Component)] +/// Demo component showing auto injection of components +pub struct ShouldBeWithPlayer; + +#[derive(Component, Reflect, Default, Debug)] +#[reflect(Component)] +/// Demo marker component +pub struct Interactible; + +#[derive(Component, Reflect, Default, Debug)] +#[reflect(Component)] +/// Demo marker component +pub struct Pickable; + +fn player_move_demo( + keycode: Res>, + mut players: Query<&mut Transform, With>, +) { + let speed = 0.2; + if let Ok(mut player) = players.get_single_mut() { + if keycode.pressed(KeyCode::Left) { + player.translation.x += speed; + } + if keycode.pressed(KeyCode::Right) { + player.translation.x -= speed; + } + + if keycode.pressed(KeyCode::Up) { + player.translation.z += speed; + } + if keycode.pressed(KeyCode::Down) { + player.translation.z -= speed; + } + } +} + +// collision tests/debug +pub fn test_collision_events( + mut collision_events: EventReader, + mut contact_force_events: EventReader, +) { + for collision_event in collision_events.read() { + println!("collision"); + match collision_event { + CollisionEvent::Started(_entity1, _entity2, _) => { + println!("collision started") + } + CollisionEvent::Stopped(_entity1, _entity2, _) => { + println!("collision ended") + } + } + } + + for contact_force_event in contact_force_events.read() { + println!("Received contact force event: {:?}", contact_force_event); + } +} + +pub struct DemoPlugin; +impl Plugin for DemoPlugin { + fn build(&self, app: &mut App) { + app.register_type::() + .register_type::() + .register_type::() + .register_type::() + // little helper utility, to automatically inject components that are dependant on an other component + // ie, here an Entity with a Player component should also always have a ShouldBeWithPlayer component + // you get a warning if you use this, as I consider this to be stop-gap solution (usually you should have either a bundle, or directly define all needed components) + .add_systems( + Update, + ( + insert_dependant_component::, + player_move_demo, //.run_if(in_state(AppState::Running)), + test_collision_events, + ), + ); + } +} diff --git a/examples/bevy_gltf_components/basic_wasm/src/main.rs b/examples/bevy_gltf_components/basic_wasm/src/main.rs new file mode 100644 index 0000000..c296997 --- /dev/null +++ b/examples/bevy_gltf_components/basic_wasm/src/main.rs @@ -0,0 +1,87 @@ +use bevy::{gltf::Gltf, prelude::*}; +use bevy_editor_pls::prelude::*; +use bevy_gltf_components::ComponentsFromGltfPlugin; +use bevy_rapier3d::prelude::*; + +mod core; +use crate::core::*; + +mod game; +use game::*; + +mod test_components; +use test_components::*; + +#[derive(Component, Reflect, Default, Debug)] +#[reflect(Component)] +/// helper marker component +pub struct LoadedMarker; + +#[derive(Debug, Clone, Copy, Default, Eq, PartialEq, Hash, States)] +enum AppState { + #[default] + Loading, + Running, +} + +fn main() { + App::new() + .add_plugins(( + DefaultPlugins.set(AssetPlugin::default()), + // editor + EditorPlugin::default(), + // physics + RapierPhysicsPlugin::::default(), + RapierDebugRenderPlugin::default(), + // our custom plugins + ComponentsFromGltfPlugin, + CorePlugin, // reusable plugins + DemoPlugin, // specific to our game + ComponentsTestPlugin, // Showcases different type of components /structs + )) + .add_state::() + .add_systems(Startup, setup) + .add_systems(Update, (spawn_level.run_if(in_state(AppState::Loading)),)) + .run(); +} + +#[derive(Resource)] +pub struct MyGltf(pub Handle); + +// we preload the data here, but this is for DEMO PURPOSES ONLY !! Please use https://github.com/NiklasEi/bevy_asset_loader or a similar logic to seperate loading / pre processing +// of assets from the spawning +// MyGltf is also just for the same purpose, you do not need it in a real scenario +// the states here are also for demo purposes only, +fn setup(mut commands: Commands, asset_server: Res) { + commands.insert_resource(MyGltf(asset_server.load("models/level1.glb"))); +} + +fn spawn_level( + mut commands: Commands, + scene_markers: Query<&LoadedMarker>, + mut asset_event_reader: EventReader>, + mut next_state: ResMut>, + models: Res>, +) { + if let Some(asset_event) = asset_event_reader.read().next() { + match asset_event { + AssetEvent::Added { id } => { + info!("GLTF loaded/ added {:?}", asset_event); + let my_gltf = models.get(*id).unwrap(); + if scene_markers.is_empty() { + info!("spawning scene"); + commands.spawn(( + SceneBundle { + scene: my_gltf.scenes[0].clone(), + ..default() + }, + LoadedMarker, + Name::new("Level1"), + )); + next_state.set(AppState::Running); + } + } + _ => (), + } + } +} diff --git a/examples/bevy_gltf_components/basic_wasm/src/test_components.rs b/examples/bevy_gltf_components/basic_wasm/src/test_components.rs new file mode 100644 index 0000000..d0e6fbd --- /dev/null +++ b/examples/bevy_gltf_components/basic_wasm/src/test_components.rs @@ -0,0 +1,80 @@ +use bevy::prelude::*; + +#[derive(Component, Reflect, Default, Debug)] +#[reflect(Component)] +struct UnitTest; + +#[derive(Component, Reflect, Default, Debug, Deref, DerefMut)] +#[reflect(Component)] +struct TuppleTestF32(f32); + +#[derive(Component, Reflect, Default, Debug, Deref, DerefMut)] +#[reflect(Component)] +struct TuppleTestU64(u64); + +#[derive(Component, Reflect, Default, Debug, Deref, DerefMut)] +#[reflect(Component)] +pub struct TuppleTestStr(String); + +#[derive(Component, Reflect, Default, Debug)] +#[reflect(Component)] +struct TuppleTest2(f32, u64, String); + +#[derive(Component, Reflect, Default, Debug)] +#[reflect(Component)] +struct TuppleTestBool(bool); + +#[derive(Component, Reflect, Default, Debug)] +#[reflect(Component)] +struct TuppleVec2(Vec2); + +#[derive(Component, Reflect, Default, Debug)] +#[reflect(Component)] +struct TuppleVec3(Vec3); + +#[derive(Component, Reflect, Default, Debug)] +#[reflect(Component)] +struct TuppleVec(Vec); + +#[derive(Component, Reflect, Default, Debug)] +#[reflect(Component)] +struct TuppleTestColor(Color); + +#[derive(Component, Reflect, Default, Debug)] +#[reflect(Component)] +struct BasicTest { + a: f32, + b: u64, + c: String, +} + +#[derive(Component, Reflect, Default, Debug)] +#[reflect(Component)] +pub enum EnumTest { + Metal, + Wood, + Rock, + Cloth, + Squishy, + #[default] + None, +} + +pub struct ComponentsTestPlugin; +impl Plugin for ComponentsTestPlugin { + fn build(&self, app: &mut App) { + app.register_type::() + .register_type::() + .register_type::() + .register_type::() + .register_type::() + .register_type::() + .register_type::() + .register_type::() + .register_type::() + .register_type::() + .register_type::() + .register_type::() + .register_type::>(); + } +}