From 59212c952f3a21430829cffbaadf5613ff685aed Mon Sep 17 00:00:00 2001 From: Emil Shanaty Date: Tue, 27 Oct 2026 22:14:21 +0300 Subject: [PATCH] feat(runtime): add Bevy 0.20 live editor M0 spike - new bevy_forge_runtime crate with EditorPlugin, EditorState, Selection - native Bevy UI shell + official bevy_ui_widgets 0.20 (no egui in runtime) - live hierarchy, reflection inspector, translate gizmo, editor camera - deterministic 1440x900/1000x640 screenshot mode - demo example, docs and screenshots; v1 crates untouched - interactive computer-use test fixed inspector command-queue panic --- Cargo.lock | 2987 ++++++++++++++++- Cargo.toml | 1 + README.md | 14 + crates/bevy_forge_runtime/Cargo.toml | 45 + .../examples/editor_spike.rs | 155 + crates/bevy_forge_runtime/src/gizmo.rs | 727 ++++ crates/bevy_forge_runtime/src/hierarchy.rs | 510 +++ crates/bevy_forge_runtime/src/inspector.rs | 784 +++++ crates/bevy_forge_runtime/src/lib.rs | 30 + crates/bevy_forge_runtime/src/plugin.rs | 151 + crates/bevy_forge_runtime/src/screenshot.rs | 374 +++ crates/bevy_forge_runtime/src/ui/mod.rs | 10 + crates/bevy_forge_runtime/src/ui/shell.rs | 377 +++ crates/bevy_forge_runtime/src/ui/theme.rs | 51 + docs/m0-spike-1000x640.png | Bin 0 -> 258783 bytes docs/m0-spike-1440x900.png | Bin 0 -> 555646 bytes docs/m0-spike.md | 163 + 17 files changed, 6315 insertions(+), 64 deletions(-) create mode 100644 crates/bevy_forge_runtime/Cargo.toml create mode 100644 crates/bevy_forge_runtime/examples/editor_spike.rs create mode 100644 crates/bevy_forge_runtime/src/gizmo.rs create mode 100644 crates/bevy_forge_runtime/src/hierarchy.rs create mode 100644 crates/bevy_forge_runtime/src/inspector.rs create mode 100644 crates/bevy_forge_runtime/src/lib.rs create mode 100644 crates/bevy_forge_runtime/src/plugin.rs create mode 100644 crates/bevy_forge_runtime/src/screenshot.rs create mode 100644 crates/bevy_forge_runtime/src/ui/mod.rs create mode 100644 crates/bevy_forge_runtime/src/ui/shell.rs create mode 100644 crates/bevy_forge_runtime/src/ui/theme.rs create mode 100644 docs/m0-spike-1000x640.png create mode 100644 docs/m0-spike-1440x900.png create mode 100644 docs/m0-spike.md diff --git a/Cargo.lock b/Cargo.lock index e4a5010..75a57d7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -24,14 +24,23 @@ version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e25ae84c0260bdf5df07796d7cc4882460de26a2b406ec0e6c42461a723b271b" +[[package]] +name = "accesskit" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3b7f7f85a7e5f68090000ed7622545829afd484d210358702ae4cb97dd0c320" +dependencies = [ + "uuid", +] + [[package]] name = "accesskit_atspi_common" version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "29bd41de2e54451a8ca0dd95ebf45b54d349d29ebceb7f20be264eee14e3d477" dependencies = [ - "accesskit", - "accesskit_consumer", + "accesskit 0.19.0", + "accesskit_consumer 0.28.0", "atspi-common", "serde", "thiserror 1.0.69", @@ -44,31 +53,69 @@ version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8bfae7c152994a31dc7d99b8eeac7784a919f71d1b306f4b83217e110fd3824c" dependencies = [ - "accesskit", + "accesskit 0.19.0", "hashbrown 0.15.5", ] +[[package]] +name = "accesskit_consumer" +version = "0.38.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d10a236f96f87d70732e44520046785431ef01d5bcd6b041317bfadd2f88245" +dependencies = [ + "accesskit 0.24.1", + "hashbrown 0.16.1", +] + +[[package]] +name = "accesskit_ios" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "750c4e9f6ce888dfe8a10c0f1b5ceb646a7854fd46579d74919219d1bb314083" +dependencies = [ + "accesskit 0.24.1", + "accesskit_consumer 0.38.0", + "hashbrown 0.16.1", + "objc2 0.5.3", + "objc2-foundation 0.2.2", + "objc2-ui-kit", +] + [[package]] name = "accesskit_macos" version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "692dd318ff8a7a0ffda67271c4bd10cf32249656f4e49390db0b26ca92b095f2" dependencies = [ - "accesskit", - "accesskit_consumer", + "accesskit 0.19.0", + "accesskit_consumer 0.28.0", "hashbrown 0.15.5", "objc2 0.5.3", "objc2-app-kit 0.2.2", "objc2-foundation 0.2.2", ] +[[package]] +name = "accesskit_macos" +version = "0.26.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce02dc63b43f0c9296af9ac946312a2dc8814427d7a64d2d600971dac55b6076" +dependencies = [ + "accesskit 0.24.1", + "accesskit_consumer 0.38.0", + "hashbrown 0.16.1", + "objc2 0.5.3", + "objc2-app-kit 0.2.2", + "objc2-foundation 0.2.2", +] + [[package]] name = "accesskit_unix" version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c5f7474c36606d0fe4f438291d667bae7042ea2760f506650ad2366926358fc8" dependencies = [ - "accesskit", + "accesskit 0.19.0", "accesskit_atspi_common", "async-channel", "async-executor", @@ -86,24 +133,52 @@ version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70a042b62c9c05bf7b616f015515c17d2813f3ba89978d6f4fc369735d60700a" dependencies = [ - "accesskit", - "accesskit_consumer", + "accesskit 0.19.0", + "accesskit_consumer 0.28.0", "hashbrown 0.15.5", "static_assertions", "windows 0.61.3", "windows-core 0.61.2", ] +[[package]] +name = "accesskit_windows" +version = "0.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "106c2b961215864d1c2e703ee63269c25c4e80a577ffb2c1017b9c17dcdf83a1" +dependencies = [ + "accesskit 0.24.1", + "accesskit_consumer 0.38.0", + "hashbrown 0.16.1", + "static_assertions", + "windows 0.62.2", + "windows-core 0.62.2", +] + [[package]] name = "accesskit_winit" version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c1f0d3d13113d8857542a4f8d1a1c24d1dc1527b77aee8426127f4901588708" dependencies = [ - "accesskit", - "accesskit_macos", + "accesskit 0.19.0", + "accesskit_macos 0.20.0", "accesskit_unix", - "accesskit_windows", + "accesskit_windows 0.27.0", + "raw-window-handle", + "winit", +] + +[[package]] +name = "accesskit_winit" +version = "0.33.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5b41e63a69f36d9f1f41e70464c7e5f72eee485ef26aab19f0b4f86e6c0a84c" +dependencies = [ + "accesskit 0.24.1", + "accesskit_ios", + "accesskit_macos 0.26.3", + "accesskit_windows 0.34.0", "raw-window-handle", "winit", ] @@ -127,6 +202,21 @@ dependencies = [ "zerocopy", ] +[[package]] +name = "aho-corasick" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c982642fa9e8606056828ee9a8505737230110bb1099153c79efe865c59d12ba" +dependencies = [ + "memchr", +] + +[[package]] +name = "allocator-api2" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" + [[package]] name = "android-activity" version = "0.6.1" @@ -152,6 +242,12 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc7eb209b1518d6bb87b283c20095f5228ecda460da70b44f0802523dea6da04" +[[package]] +name = "android_log-sys" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84521a3cf562bc62942e294181d9eef17eb38ceb8c68677bc49f144e4c3d4f8d" + [[package]] name = "android_system_properties" version = "0.1.6" @@ -161,6 +257,17 @@ dependencies = [ "libc", ] +[[package]] +name = "annotate-snippets" +version = "0.12.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2a5b0a5ab8561c603f16c3b78c24a386b1f70e7fc1b1b1e8c15738828e4a176" +dependencies = [ + "anstyle", + "memchr", + "unicode-width", +] + [[package]] name = "anstream" version = "1.0.0" @@ -217,6 +324,15 @@ version = "1.0.104" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "330a5ed07fa54e4702c9d6c4174f74427fc0ef6e214bbd677ae50a5099946470" +[[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.7.0" @@ -234,6 +350,7 @@ dependencies = [ "parking_lot", "percent-encoding", "windows-sys 0.61.2", + "wl-clipboard-rs", "x11rb", ] @@ -264,6 +381,17 @@ dependencies = [ "libloading", ] +[[package]] +name = "assert_type_match" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f548ad2c4031f2902e3edc1f29c29e835829437de49562d8eb5dc5584d3a1043" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + [[package]] name = "async-broadcast" version = "0.7.2" @@ -302,6 +430,17 @@ dependencies = [ "slab", ] +[[package]] +name = "async-fs" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8034a681df4aed8b8edbd7fbe472401ecf009251c8b40556b304567052e294c5" +dependencies = [ + "async-lock", + "blocking", + "futures-lite", +] + [[package]] name = "async-io" version = "2.6.0" @@ -383,6 +522,9 @@ name = "async-task" version = "4.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" +dependencies = [ + "portable-atomic", +] [[package]] name = "async-trait" @@ -400,6 +542,19 @@ name = "atomic-waker" version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" +dependencies = [ + "portable-atomic", +] + +[[package]] +name = "atomicow" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "301801c08259e328a1c7da556608c0c22687708831b22024dbd3a57ea741e6de" +dependencies = [ + "portable-atomic", + "portable-atomic-util", +] [[package]] name = "atspi" @@ -463,6 +618,340 @@ version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" +[[package]] +name = "bevy" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8bd0e4ea5ec677698955f9f285221eab78606d8c27b57b889def199c16ce36e6" +dependencies = [ + "bevy_internal", +] + +[[package]] +name = "bevy_a11y" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1070b9b7f087a5073be2da713367f29a831c85cd3391afcfc95bc0498125704" +dependencies = [ + "accesskit 0.24.1", + "bevy_app", + "bevy_derive", + "bevy_ecs", + "bevy_reflect", +] + +[[package]] +name = "bevy_android" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17fd56a4708085b36f8aa1a011e347f8bd9334f0343bb3d5d9c3742897968a55" +dependencies = [ + "android-activity", +] + +[[package]] +name = "bevy_app" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2489da2972d57cccd19060d7faa44c4c4cfb296a657c84ee6ab8bde2b1c0115" +dependencies = [ + "bevy_derive", + "bevy_ecs", + "bevy_platform", + "bevy_reflect", + "bevy_tasks", + "bevy_utils", + "console_error_panic_hook", + "ctrlc", + "downcast-rs 2.0.2", + "log", + "thiserror 2.0.21", + "variadics_please", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "bevy_asset" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b88b3767a2c3f5a017b2febca08a670819ea2acb46846e4d8cd02980aeb0ed3e" +dependencies = [ + "async-broadcast", + "async-channel", + "async-fs", + "async-io", + "async-lock", + "atomicow", + "bevy_android", + "bevy_app", + "bevy_asset_macros", + "bevy_diagnostic", + "bevy_ecs", + "bevy_platform", + "bevy_reflect", + "bevy_tasks", + "bevy_utils", + "bitflags 2.13.2", + "blake3", + "crossbeam-channel", + "derive_more", + "disqualified", + "downcast-rs 2.0.2", + "either", + "futures-io", + "futures-lite", + "futures-util", + "js-sys", + "ron 0.12.2", + "serde", + "stackfuture", + "thiserror 2.0.21", + "tracing", + "uuid", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "bevy_asset_macros" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "875b4fd236612744dbd61fb0a77ffde0aee37b8b780cf8a89caa308511c70646" +dependencies = [ + "bevy_macro_utils", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "bevy_camera" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f32c0d8436fb9373dc3b64fa30c3dec51d6a7cfda61de3c70fd1f62f8a903887" +dependencies = [ + "bevy_app", + "bevy_asset", + "bevy_color", + "bevy_derive", + "bevy_ecs", + "bevy_image", + "bevy_math", + "bevy_mesh", + "bevy_reflect", + "bevy_shape", + "bevy_transform", + "bevy_utils", + "bevy_window", + "derive_more", + "downcast-rs 2.0.2", + "serde", + "smallvec", + "thiserror 2.0.21", + "wgpu-types 30.0.1", +] + +[[package]] +name = "bevy_clipboard" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0267b0beafd7e587a1b25b5ce14b271577f5fc1d8fd7828b2b66f0cf5dd649b" +dependencies = [ + "arboard", + "bevy_app", + "bevy_ecs", + "bevy_log", + "bevy_platform", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "bevy_color" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0e57bfc1a0da1c018235fb98bb0e15ab61f1d0253122020ab6e1450e6cfbcf9" +dependencies = [ + "bevy_curve", + "bevy_math", + "bevy_reflect", + "bytemuck", + "derive_more", + "encase", + "serde", + "thiserror 2.0.21", + "wgpu-types 30.0.1", +] + +[[package]] +name = "bevy_core_pipeline" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4a077b301be4b373a4cb224c54988e1f8385ecf3ab9e60bd3727a65b3d6901a" +dependencies = [ + "bevy_app", + "bevy_asset", + "bevy_camera", + "bevy_color", + "bevy_derive", + "bevy_diagnostic", + "bevy_ecs", + "bevy_extract", + "bevy_image", + "bevy_light", + "bevy_log", + "bevy_math", + "bevy_platform", + "bevy_reflect", + "bevy_render", + "bevy_shader", + "bevy_transform", + "bevy_utils", + "bevy_window", + "bitflags 2.13.2", + "indexmap", + "nonmax", +] + +[[package]] +name = "bevy_curve" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21ae28ed95c1c8a1bfc8930471840ee5a4b99b6b31138b17598e7ee6f4291b64" +dependencies = [ + "approx", + "bevy_math", + "bevy_reflect", + "itertools 0.14.0", + "serde", + "thiserror 2.0.21", + "variadics_please", +] + +[[package]] +name = "bevy_derive" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd59e9e600d792e60df17b4d52719b28c288bf047884ac89ad29d9c7a6592d2c" +dependencies = [ + "bevy_macro_utils", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "bevy_diagnostic" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f8851dc1b253b350bf941695457007e6e44ad4b8f075bf52a1ef202e6866b6a" +dependencies = [ + "atomic-waker", + "bevy_app", + "bevy_ecs", + "bevy_platform", + "bevy_tasks", + "bevy_time", + "const-fnv1a-hash", + "log", + "serde", +] + +[[package]] +name = "bevy_ecs" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5541a1658c5029b39e3ec59c6ecb47ad0a6d85fa083312a5ee2a95d6982a926" +dependencies = [ + "arrayvec", + "bevy_ecs_macros", + "bevy_platform", + "bevy_ptr", + "bevy_reflect", + "bevy_tasks", + "bevy_utils", + "bitflags 2.13.2", + "bumpalo", + "concurrent-queue", + "derive_more", + "fixedbitset", + "indexmap", + "log", + "nonmax", + "serde", + "slotmap", + "smallvec", + "thiserror 2.0.21", + "variadics_please", +] + +[[package]] +name = "bevy_ecs_macro_logic" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5197fea7643d2733e8b6d81c3dfa99adad3a754cdfd159c00255cea157b795d7" +dependencies = [ + "bevy_macro_utils", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "bevy_ecs_macros" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dde5305169503c9101404bf8cf17e8351f56fccf5152b8e5d7d7c32dcf1c486" +dependencies = [ + "bevy_ecs_macro_logic", + "bevy_macro_utils", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "bevy_encase_derive" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4e4c4183c39ae8d00e53afeeab66aa71c41b08d82638149f9d485a2a62df569" +dependencies = [ + "bevy_macro_utils", + "encase_derive_impl", +] + +[[package]] +name = "bevy_extract" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08e27fc07ef8e3ab7c217fed1b171d42c90f3b6e4f7f526ffa28f9006ac49aa4" +dependencies = [ + "bevy_app", + "bevy_camera", + "bevy_derive", + "bevy_ecs", + "bevy_extract_macros", + "bevy_log", + "bevy_platform", + "bevy_reflect", + "bevy_time", + "bevy_utils", +] + +[[package]] +name = "bevy_extract_macros" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a5c67e8c55ef35c65295e8cb614eda169780e21e2748f6df470d3bff21849a3" +dependencies = [ + "bevy_macro_utils", + "proc-macro2", + "quote", + "syn 2.0.119", +] + [[package]] name = "bevy_forge_cli" version = "0.1.0" @@ -479,11 +968,11 @@ name = "bevy_forge_core" version = "0.1.0" dependencies = [ "indexmap", - "ron", + "ron 0.8.1", "serde", "tempfile", "thiserror 2.0.21", - "toml", + "toml 0.8.23", ] [[package]] @@ -497,13 +986,925 @@ dependencies = [ "tempfile", ] +[[package]] +name = "bevy_forge_runtime" +version = "0.1.0" +dependencies = [ + "bevy", +] + +[[package]] +name = "bevy_gizmos" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfc92f635ec5eaef5733afee45e6a0452e8c65de42d818dc7269dc5265087689" +dependencies = [ + "bevy_app", + "bevy_asset", + "bevy_camera", + "bevy_color", + "bevy_curve", + "bevy_ecs", + "bevy_gizmos_macros", + "bevy_input", + "bevy_log", + "bevy_math", + "bevy_mesh", + "bevy_reflect", + "bevy_shape", + "bevy_time", + "bevy_transform", + "bevy_utils", + "bevy_window", +] + +[[package]] +name = "bevy_gizmos_macros" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "501e72c4ac31caef17ef9e627dee212d2107b95402a891ec6f0fc4107dd0cdf4" +dependencies = [ + "bevy_macro_utils", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "bevy_gizmos_render" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42f5be0c9f114dc9b2c929076517d088e059b971edec5dfff4d5a225df6796df" +dependencies = [ + "bevy_app", + "bevy_asset", + "bevy_camera", + "bevy_color", + "bevy_core_pipeline", + "bevy_ecs", + "bevy_extract", + "bevy_gizmos", + "bevy_image", + "bevy_log", + "bevy_material", + "bevy_math", + "bevy_mesh", + "bevy_pbr", + "bevy_reflect", + "bevy_render", + "bevy_shader", + "bevy_shape", + "bevy_sprite_render", + "bevy_transform", + "bevy_utils", + "bytemuck", + "tracing", +] + +[[package]] +name = "bevy_image" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb818dd8d705809d54adea08e346edce81a51ddbf06406ddf12a72ee467a3855" +dependencies = [ + "bevy_app", + "bevy_asset", + "bevy_color", + "bevy_ecs", + "bevy_math", + "bevy_platform", + "bevy_reflect", + "bevy_utils", + "bitflags 2.13.2", + "bytemuck", + "futures-lite", + "guillotiere", + "half", + "image", + "rectangle-pack", + "serde", + "thiserror 2.0.21", + "tracing", + "wgpu-types 30.0.1", +] + +[[package]] +name = "bevy_input" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "261ca5cc8a0bf228bfe4e841570db18a3ab1d034ce089772b8ec49c163ae74ea" +dependencies = [ + "bevy_app", + "bevy_ecs", + "bevy_math", + "bevy_platform", + "bevy_reflect", + "derive_more", + "log", + "smol_str", + "thiserror 2.0.21", +] + +[[package]] +name = "bevy_input_focus" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83c81d369d0ab3ec17ba14bab1e07da7cacf3751a3104a93b1a3cd99d887887b" +dependencies = [ + "bevy_app", + "bevy_camera", + "bevy_ecs", + "bevy_input", + "bevy_math", + "bevy_picking", + "bevy_reflect", + "bevy_window", + "log", + "thiserror 2.0.21", +] + +[[package]] +name = "bevy_internal" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4ed1cb58d1761426a077a8aff55e6a2e0cdfd19e411211d4b0217409330bb84" +dependencies = [ + "bevy_a11y", + "bevy_android", + "bevy_app", + "bevy_asset", + "bevy_camera", + "bevy_clipboard", + "bevy_color", + "bevy_core_pipeline", + "bevy_curve", + "bevy_derive", + "bevy_diagnostic", + "bevy_ecs", + "bevy_extract", + "bevy_gizmos", + "bevy_gizmos_render", + "bevy_image", + "bevy_input", + "bevy_input_focus", + "bevy_light", + "bevy_log", + "bevy_material", + "bevy_math", + "bevy_mesh", + "bevy_pbr", + "bevy_picking", + "bevy_platform", + "bevy_ptr", + "bevy_reflect", + "bevy_render", + "bevy_shader", + "bevy_shape", + "bevy_sprite", + "bevy_sprite_render", + "bevy_state", + "bevy_tasks", + "bevy_text", + "bevy_time", + "bevy_transform", + "bevy_ui", + "bevy_ui_render", + "bevy_ui_widgets", + "bevy_utils", + "bevy_window", + "bevy_winit", +] + +[[package]] +name = "bevy_light" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "529d5ec7db637bbce7d016b2bfd0798362ad67118de8e9d37aaac24ecb3337cd" +dependencies = [ + "bevy_app", + "bevy_asset", + "bevy_camera", + "bevy_color", + "bevy_curve", + "bevy_ecs", + "bevy_gizmos", + "bevy_image", + "bevy_log", + "bevy_math", + "bevy_mesh", + "bevy_platform", + "bevy_reflect", + "bevy_shape", + "bevy_transform", + "bevy_utils", + "half", + "smallvec", + "tracing", + "wgpu-types 30.0.1", +] + +[[package]] +name = "bevy_log" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a87d5152292b0e581a589cffb6b7e83e0afe345279d4126545ce7b786bd8a47a" +dependencies = [ + "android_log-sys", + "bevy_app", + "bevy_ecs", + "bevy_platform", + "bevy_utils", + "tracing", + "tracing-log", + "tracing-oslog", + "tracing-subscriber", + "tracing-wasm", +] + +[[package]] +name = "bevy_macro_utils" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0d03a948df65138e30917d91237797d7e38763135ebacd0f28c891e1a3b2b52" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", + "toml_edit 0.25.17+spec-1.1.0", +] + +[[package]] +name = "bevy_material" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5be7ee4b2f4764e8d58a59afb47a3ba8bae36f955f409f08c658cace2808ef40" +dependencies = [ + "bevy_asset", + "bevy_derive", + "bevy_ecs", + "bevy_material_macros", + "bevy_mesh", + "bevy_platform", + "bevy_reflect", + "bevy_shader", + "bevy_utils", + "encase", + "smallvec", + "thiserror 2.0.21", + "tracing", + "variadics_please", + "wgpu-types 30.0.1", +] + +[[package]] +name = "bevy_material_macros" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70551fa201e1416ab44968631b7ce6320c194acfdb652a1971ec6882af122333" +dependencies = [ + "bevy_macro_utils", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "bevy_math" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "598cbdcec4d0f0d966905996240ac76f77a644c583f95fb612d4f59f5f649038" +dependencies = [ + "approx", + "bevy_reflect", + "derive_more", + "glam", + "libm", + "rand", + "serde", + "thiserror 2.0.21", + "variadics_please", +] + +[[package]] +name = "bevy_mesh" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09358ac9a3ede5855568c10eaba6bcf126bf86639e786fb21b413457ebec5f26" +dependencies = [ + "bevy_app", + "bevy_asset", + "bevy_derive", + "bevy_ecs", + "bevy_encase_derive", + "bevy_math", + "bevy_mikktspace", + "bevy_platform", + "bevy_reflect", + "bevy_shape", + "bevy_transform", + "bitflags 2.13.2", + "bytemuck", + "derive_more", + "encase", + "glam", + "half", + "hexasphere", + "thiserror 2.0.21", + "tracing", + "wgpu-types 30.0.1", +] + +[[package]] +name = "bevy_mikktspace" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bff34eb29ff4b8a8688bc7299f14fb6b597461ca80fec03ed7d22939ab33e48f" + +[[package]] +name = "bevy_pbr" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb760932d1e683e7c00011f5c99e4e1cc893646a3a7b7224da6daf9bfa94853d" +dependencies = [ + "arrayvec", + "bevy_app", + "bevy_asset", + "bevy_camera", + "bevy_color", + "bevy_core_pipeline", + "bevy_derive", + "bevy_diagnostic", + "bevy_ecs", + "bevy_extract", + "bevy_image", + "bevy_light", + "bevy_log", + "bevy_material", + "bevy_math", + "bevy_mesh", + "bevy_platform", + "bevy_reflect", + "bevy_render", + "bevy_shader", + "bevy_shape", + "bevy_tasks", + "bevy_transform", + "bevy_utils", + "bitflags 2.13.2", + "bytemuck", + "derive_more", + "fixedbitset", + "indexmap", + "nonmax", + "offset-allocator", + "smallvec", + "static_assertions", + "thiserror 2.0.21", + "tracing", + "wgpu-types 30.0.1", +] + +[[package]] +name = "bevy_picking" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47a04fb644c62a57a4f338f5cd8b61519c569139742eafe87dccb523e4b7cf2e" +dependencies = [ + "bevy_app", + "bevy_asset", + "bevy_camera", + "bevy_derive", + "bevy_ecs", + "bevy_input", + "bevy_math", + "bevy_platform", + "bevy_reflect", + "bevy_shape", + "bevy_time", + "bevy_transform", + "bevy_window", + "tracing", + "uuid", +] + +[[package]] +name = "bevy_platform" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "000bc467d1b344b6609fcf217a9b08d349d49c8e85dc4179fb7656f2b6e3db47" +dependencies = [ + "bytemuck", + "critical-section", + "foldhash 0.2.0", + "futures-channel", + "futures-lite", + "hashbrown 0.16.1", + "js-sys", + "portable-atomic", + "portable-atomic-util", + "serde", + "spin", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-time", + "windows-sys 0.61.2", +] + +[[package]] +name = "bevy_ptr" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41935a00c02004753bd7ed5094754397800b3f673bf15553bb007b06216872d5" + +[[package]] +name = "bevy_reflect" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46eecc733575b873deedcc37639e36290092388657091b3321fa6e073e7818e6" +dependencies = [ + "assert_type_match", + "bevy_platform", + "bevy_ptr", + "bevy_reflect_derive", + "bevy_utils", + "derive_more", + "disqualified", + "downcast-rs 2.0.2", + "erased-serde", + "foldhash 0.2.0", + "glam", + "indexmap", + "inventory", + "serde", + "smallvec", + "smol_str", + "thiserror 2.0.21", + "uuid", + "variadics_please", + "wgpu-types 30.0.1", +] + +[[package]] +name = "bevy_reflect_derive" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfaa1e315676c625ed8d30ba8a671ebf917cad6355320295b9802a8cbc06853b" +dependencies = [ + "bevy_macro_utils", + "indexmap", + "proc-macro2", + "quote", + "syn 2.0.119", + "uuid", +] + +[[package]] +name = "bevy_render" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f438a921fd3ef82cc09ccf5e0cd8f1214dcae6286890f9d4acba0409d9a61a8" +dependencies = [ + "async-channel", + "bevy_app", + "bevy_asset", + "bevy_camera", + "bevy_color", + "bevy_derive", + "bevy_diagnostic", + "bevy_ecs", + "bevy_encase_derive", + "bevy_extract", + "bevy_extract_macros", + "bevy_image", + "bevy_log", + "bevy_material", + "bevy_material_macros", + "bevy_math", + "bevy_mesh", + "bevy_platform", + "bevy_reflect", + "bevy_render_macros", + "bevy_shader", + "bevy_shape", + "bevy_tasks", + "bevy_time", + "bevy_transform", + "bevy_utils", + "bevy_window", + "bitflags 2.13.2", + "bytemuck", + "derive_more", + "downcast-rs 2.0.2", + "encase", + "glam", + "image", + "indexmap", + "itertools 0.14.0", + "js-sys", + "nonmax", + "offset-allocator", + "send_wrapper", + "smallvec", + "static_assertions", + "thiserror 2.0.21", + "tracing", + "variadics_please", + "wasm-bindgen", + "weak-table", + "web-sys", + "wgpu 30.0.1", + "wgpu-types 30.0.1", +] + +[[package]] +name = "bevy_render_macros" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "119ca6d445eba5c9976c658f29bac854094b27c27624aa92c4d9668c319618d0" +dependencies = [ + "bevy_extract_macros", + "bevy_macro_utils", + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "bevy_shader" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2becafd54079da13835d6a42fc743e305d6270c27a91de613afe6e3f4b5de19" +dependencies = [ + "bevy_asset", + "bevy_platform", + "bevy_reflect", + "bevy_utils", + "serde", + "thiserror 2.0.21", + "tracing", + "wesl", + "wgpu-types 30.0.1", +] + +[[package]] +name = "bevy_shape" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa8b6096ad1ec7dfe1af8e51d7cfa7de1a9e0a3bd02be58a061092c5e1ff1eb1" +dependencies = [ + "arrayvec", + "bevy_math", + "bevy_reflect", + "derive_more", + "rand", + "rand_distr", + "serde", + "thiserror 2.0.21", +] + +[[package]] +name = "bevy_sprite" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24dc4f69160513952a1969a3df5b4a2c729acfe0caf773854acea4a8c71f0918" +dependencies = [ + "bevy_app", + "bevy_asset", + "bevy_camera", + "bevy_color", + "bevy_derive", + "bevy_ecs", + "bevy_image", + "bevy_log", + "bevy_math", + "bevy_mesh", + "bevy_reflect", + "bevy_text", + "bevy_transform", + "bevy_window", + "radsort", + "tracing", + "wgpu-types 30.0.1", +] + +[[package]] +name = "bevy_sprite_render" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8918649806697740b61d3fd0559cb8c7de2ade5046aacf8abbef20e49ea1de0c" +dependencies = [ + "bevy_app", + "bevy_asset", + "bevy_camera", + "bevy_color", + "bevy_core_pipeline", + "bevy_derive", + "bevy_ecs", + "bevy_extract", + "bevy_image", + "bevy_material", + "bevy_math", + "bevy_mesh", + "bevy_platform", + "bevy_reflect", + "bevy_render", + "bevy_shader", + "bevy_shape", + "bevy_sprite", + "bevy_text", + "bevy_transform", + "bevy_utils", + "bitflags 2.13.2", + "bytemuck", + "derive_more", + "fixedbitset", + "nonmax", + "smallvec", + "static_assertions", + "tracing", +] + +[[package]] +name = "bevy_state" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09292e08e1eb34d2dd915630fb3c04ba75220c7819943c9f213d3a5f9a8be1e8" +dependencies = [ + "bevy_app", + "bevy_ecs", + "bevy_platform", + "bevy_reflect", + "bevy_state_macros", + "bevy_utils", + "log", + "variadics_please", +] + +[[package]] +name = "bevy_state_macros" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fec1a8f6a253e39ddf7e447b1b9286caacb205ed8e619e6fb9a2e010d58dd04b" +dependencies = [ + "bevy_macro_utils", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "bevy_tasks" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbd8116f12dc50bde3758a72fba85e1f4c00e6c66d0ad58bdc46c0c0690829a8" +dependencies = [ + "async-channel", + "async-executor", + "async-task", + "atomic-waker", + "bevy_platform", + "concurrent-queue", + "crossbeam-queue", + "derive_more", + "futures-lite", + "heapless", + "web-task", +] + +[[package]] +name = "bevy_text" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "119d2b37ce3f5ea5a5b9092a7c9eec8d3734de62592d2869bd1d925976f34d05" +dependencies = [ + "bevy_app", + "bevy_asset", + "bevy_clipboard", + "bevy_color", + "bevy_derive", + "bevy_ecs", + "bevy_image", + "bevy_log", + "bevy_math", + "bevy_platform", + "bevy_reflect", + "bevy_utils", + "parley", + "serde", + "smallvec", + "smol_str", + "swash", + "sys-locale", + "thiserror 2.0.21", + "tracing", + "wgpu-types 30.0.1", +] + +[[package]] +name = "bevy_time" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13901174b792bb7848d8e088075f0009ea409b99179934c0d5bdd2b95622694e" +dependencies = [ + "bevy_app", + "bevy_ecs", + "bevy_platform", + "bevy_reflect", + "crossbeam-channel", + "log", + "serde", +] + +[[package]] +name = "bevy_transform" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83379023d77a0739569a5bcb859eed652781a1b3271e94a86dfbb56fc5d067e0" +dependencies = [ + "bevy_app", + "bevy_ecs", + "bevy_math", + "bevy_reflect", + "bevy_tasks", + "bevy_utils", + "derive_more", + "serde", + "thiserror 2.0.21", +] + +[[package]] +name = "bevy_ui" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7926fba78f133376db0cba73a054db6931952379b5bfdc63f2fe9ba0c3b96c39" +dependencies = [ + "accesskit 0.24.1", + "bevy_a11y", + "bevy_app", + "bevy_asset", + "bevy_camera", + "bevy_color", + "bevy_derive", + "bevy_ecs", + "bevy_image", + "bevy_input", + "bevy_input_focus", + "bevy_log", + "bevy_math", + "bevy_picking", + "bevy_platform", + "bevy_reflect", + "bevy_sprite", + "bevy_text", + "bevy_time", + "bevy_transform", + "bevy_utils", + "bevy_window", + "derive_more", + "parley", + "smallvec", + "swash", + "taffy", + "thiserror 2.0.21", + "tracing", + "uuid", +] + +[[package]] +name = "bevy_ui_render" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "620b51b51eb8e7d8b2362ba96263142829560d9aa254e2f28032570667c6b0fb" +dependencies = [ + "bevy_a11y", + "bevy_app", + "bevy_asset", + "bevy_camera", + "bevy_color", + "bevy_core_pipeline", + "bevy_derive", + "bevy_ecs", + "bevy_extract", + "bevy_image", + "bevy_input_focus", + "bevy_math", + "bevy_mesh", + "bevy_platform", + "bevy_reflect", + "bevy_render", + "bevy_shader", + "bevy_sprite", + "bevy_sprite_render", + "bevy_text", + "bevy_transform", + "bevy_ui", + "bevy_utils", + "bytemuck", + "derive_more", + "indexmap", + "smallvec", + "tracing", +] + +[[package]] +name = "bevy_ui_widgets" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6442cd402df6a54f0e51ed8c1bd004c8f9c6715d0f8045e33c68ea9aebb1ce16" +dependencies = [ + "accesskit 0.24.1", + "bevy_a11y", + "bevy_app", + "bevy_camera", + "bevy_ecs", + "bevy_input", + "bevy_input_focus", + "bevy_log", + "bevy_math", + "bevy_picking", + "bevy_platform", + "bevy_reflect", + "bevy_text", + "bevy_time", + "bevy_ui", + "bevy_window", + "parley", + "smol_str", + "web-sys", +] + +[[package]] +name = "bevy_utils" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cbd58495039d4e63e6fcfef1242fecab33ffe62b4a5e010467e69e790879812" +dependencies = [ + "async-channel", + "bevy_platform", + "disqualified", + "indexmap", + "thread_local", +] + +[[package]] +name = "bevy_window" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc9a83f3cbaa04155b5dc9b247819c0e215aee754451a4324b82ddeb80dc53f1" +dependencies = [ + "bevy_app", + "bevy_ecs", + "bevy_input", + "bevy_math", + "bevy_platform", + "bevy_reflect", + "log", + "raw-window-handle", + "serde", +] + +[[package]] +name = "bevy_winit" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ef0a5a55524e793ab13536ef244229fa66a4839fae6564df2aa4b3c13956a82" +dependencies = [ + "accesskit 0.24.1", + "accesskit_winit 0.33.2", + "approx", + "bevy_a11y", + "bevy_android", + "bevy_app", + "bevy_derive", + "bevy_ecs", + "bevy_input", + "bevy_input_focus", + "bevy_log", + "bevy_math", + "bevy_platform", + "bevy_reflect", + "bevy_tasks", + "bevy_window", + "js-sys", + "tracing", + "wasm-bindgen", + "web-sys", + "winit", +] + [[package]] name = "bit-set" version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" dependencies = [ - "bit-vec", + "bit-vec 0.8.0", +] + +[[package]] +name = "bit-set" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2f926cc3060f09db9ebc5b52823d85268d24bb917e472c0c4bea35780a7d" +dependencies = [ + "bit-vec 0.9.1", ] [[package]] @@ -512,6 +1913,12 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" +[[package]] +name = "bit-vec" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b71798fca2c1fe1086445a7258a4bc81e6e49dcd24c8d0dd9a1e57395b603f51" + [[package]] name = "bitflags" version = "1.3.2" @@ -524,9 +1931,23 @@ version = "2.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3ded4057c258ba199e2d26386d3af3780957ecaee6c4ef4041c6b4b8b97c0b06" dependencies = [ + "bytemuck", "serde_core", ] +[[package]] +name = "blake3" +version = "1.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d9e454fc11f76977dc803893aff6304ed33d6a26efae8696573bea74baa27ae" +dependencies = [ + "arrayvec", + "cc", + "cfg-if", + "constant_time_eq", + "cpufeatures", +] + [[package]] name = "block" version = "0.1.6" @@ -542,6 +1963,15 @@ dependencies = [ "objc2 0.5.3", ] +[[package]] +name = "block2" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdeb9d870516001442e364c5220d3574d2da8dc765554b4a617230d33fa58ef5" +dependencies = [ + "objc2 0.6.5", +] + [[package]] name = "blocking" version = "1.7.0" @@ -581,6 +2011,12 @@ dependencies = [ "syn 3.0.9", ] +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + [[package]] name = "byteorder-lite" version = "0.1.0" @@ -736,6 +2172,15 @@ dependencies = [ "unicode-width", ] +[[package]] +name = "codespan-reporting" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af491d569909a7e4dee0ad7db7f5341fef5c614d5b8ec8cf765732aba3cff681" +dependencies = [ + "unicode-width", +] + [[package]] name = "colorchoice" version = "1.0.5" @@ -759,6 +2204,62 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" dependencies = [ "crossbeam-utils", + "portable-atomic", +] + +[[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-fnv1a-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32b13ea120a812beba79e34316b3942a857c86ec1593cb34f27bb28272ce2cca" + +[[package]] +name = "const_panic" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9603f79528ece8163c496f8932121cb36cfe46259e9c907bb3d8205139d7caa3" +dependencies = [ + "typewit", +] + +[[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.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d52eff69cd5e647efe296129160853a42795992097e8af39800e1060caeea9b" + +[[package]] +name = "constgebra" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1aaf9b65849a68662ac6c0810c8893a765c960b907dd7cfab9c4a50bf764fbc" +dependencies = [ + "const_soft_float", +] + +[[package]] +name = "convert_case" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "633458d4ef8c78b72454de2d54fd6ab2e60f9e02be22f3c6104cdc8a4e0fceb9" +dependencies = [ + "unicode-segmentation", ] [[package]] @@ -801,6 +2302,15 @@ dependencies = [ "libc", ] +[[package]] +name = "cpufeatures" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ca28b0ae3115b884660db4118d803791fd6756b6e88f39c0f3f7859060d7566" +dependencies = [ + "libc", +] + [[package]] name = "crc32fast" version = "1.5.3" @@ -810,6 +2320,30 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "critical-section" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b" + +[[package]] +name = "crossbeam-channel" +version = "0.5.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98b0cc327b5bc766e7fda9c9260cc0fa81b43a8e240440422dff70788e3f9ef1" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-queue" +version = "0.3.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03e8bd762f7479489c70ed6c768ddca99d7296857de437a68dcb2a94365b3fae" +dependencies = [ + "crossbeam-utils", +] + [[package]] name = "crossbeam-utils" version = "0.8.23" @@ -822,12 +2356,46 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" +[[package]] +name = "ctrlc" +version = "3.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0b1fab2ae45819af2d0731d60f2afe17227ebb1a1538a236da84c93e9a60162" +dependencies = [ + "dispatch2", + "nix", + "windows-sys 0.61.2", +] + [[package]] name = "cursor-icon" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f27ae1dd37df86211c42e150270f82743308803d90a6f6e6651cd730d5e1732f" +[[package]] +name = "derive_more" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d751e9e49156b02b44f9c1815bcb94b984cdcc4396ecc32521c739452808b134" +dependencies = [ + "derive_more-impl", +] + +[[package]] +name = "derive_more-impl" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "799a97264921d8623a957f6c3b9011f3b5492f557bbb7a5a19b7fa6d06ba8dcb" +dependencies = [ + "convert_case", + "proc-macro2", + "quote", + "rustc_version", + "syn 2.0.119", + "unicode-xid", +] + [[package]] name = "dispatch" version = "0.2.0" @@ -841,6 +2409,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e0e367e4e7da84520dedcac1901e4da967309406d1e51017ae1abfb97adbd38" dependencies = [ "bitflags 2.13.2", + "block2 0.6.2", + "libc", "objc2 0.6.5", ] @@ -855,6 +2425,12 @@ dependencies = [ "syn 3.0.9", ] +[[package]] +name = "disqualified" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e90a5dd66beeca277ae954f8055b02a712792b6b6b43f2bc2f92b0b7d8291614" + [[package]] name = "dlib" version = "0.5.3" @@ -879,6 +2455,12 @@ version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" +[[package]] +name = "downcast-rs" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "117240f60069e65410b3ae1bb213295bd828f707b5bec6596a1afc8793ce0cbc" + [[package]] name = "dpi" version = "0.1.2" @@ -937,7 +2519,7 @@ version = "0.32.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d5d0306cd61ca75e29682926d71f2390160247f135965242e904a636f51c0dc" dependencies = [ - "accesskit", + "accesskit 0.19.0", "ahash", "bitflags 2.13.2", "emath", @@ -965,7 +2547,7 @@ dependencies = [ "thiserror 1.0.69", "type-map", "web-time", - "wgpu", + "wgpu 25.0.2", "winit", ] @@ -975,7 +2557,7 @@ version = "0.32.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f95d0a91f9cb0dc2e732d49c2d521ac8948e1f0b758f306fb7b14d6f5db3927f" dependencies = [ - "accesskit_winit", + "accesskit_winit 0.27.0", "ahash", "arboard", "bytemuck", @@ -1007,6 +2589,12 @@ dependencies = [ "winit", ] +[[package]] +name = "either" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e9c71c2167ca323c882b99918929403426e2373ea17242ff5653e0d5e1058be" + [[package]] name = "emath" version = "0.32.3" @@ -1016,6 +2604,37 @@ dependencies = [ "bytemuck", ] +[[package]] +name = "encase" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1acbc46b960480c4959213714511e22f9a2e0d361520693bcf5057b5924f53e" +dependencies = [ + "const_panic", + "encase_derive", + "thiserror 2.0.21", +] + +[[package]] +name = "encase_derive" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e30d38c47336a0afbdfde297b442944041cf6dccbb1a79eceea16abfb27a92a" +dependencies = [ + "encase_derive_impl", +] + +[[package]] +name = "encase_derive_impl" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "495d24abe406f090f2ba8fc362ecaa8a001e192522aa75eae7b144163c3235ff" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + [[package]] name = "endi" version = "1.1.1" @@ -1073,6 +2692,17 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "00d174d5400e5e8fd687ad1049e2f578285fa914201b1af7e8b112a4546bd826" +[[package]] +name = "erased-serde" +version = "0.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e59b668157f32d3459d4bd634861a06ffa2503a461ca5f0916b9f0252605e66" +dependencies = [ + "serde", + "serde_core", + "typeid", +] + [[package]] name = "errno" version = "0.3.14" @@ -1089,6 +2719,15 @@ version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b5343afd4a8365a643ac588dab4cf234a190c7f6c88c9f6dd6ffe00837661b7" +[[package]] +name = "euclid" +version = "0.22.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1a05365e3b1c6d1650318537c7460c6923f1abdd272ad6842baa2b509957a06" +dependencies = [ + "num-traits", +] + [[package]] name = "event-listener" version = "5.4.2" @@ -1136,6 +2775,12 @@ version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1c66915cc5391097de7a2b0b972e8505aa33c0df401fd3a6811dbdb32881ba48" +[[package]] +name = "fixedbitset" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" + [[package]] name = "flate2" version = "1.1.10" @@ -1147,12 +2792,47 @@ dependencies = [ "zlib-rs", ] +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + [[package]] name = "foldhash" version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" +[[package]] +name = "foldhash" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" + +[[package]] +name = "font-types" +version = "0.12.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "835ae9d781464a79026cde387f9cbc650c9a4909d7cf7e658b127e3c35d2f35d" +dependencies = [ + "bytemuck", +] + +[[package]] +name = "fontique" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6688bc1294fe7117d788937b6c53480169b29c566954af490830d4c09da9516a" +dependencies = [ + "hashbrown 0.17.1", + "linebender_resource_handle", + "memmap2", + "parlance", + "read-fonts", + "smallvec", +] + [[package]] name = "foreign-types" version = "0.5.0" @@ -1189,6 +2869,15 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "futures-channel" +version = "0.3.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f9e3d69d39e4862ffed03ed071a76f9a13ba1d9109d355b0f0aa6b15e393c4" +dependencies = [ + "futures-core", +] + [[package]] name = "futures-core" version = "0.3.34" @@ -1288,6 +2977,26 @@ dependencies = [ "xml-rs", ] +[[package]] +name = "glam" +version = "0.33.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37bfe73dc8ec21f54d181e5a60554327ec3f1c600c455a75ccbfc65d2106a6c4" +dependencies = [ + "approx", + "bytemuck", + "encase", + "libm", + "rand", + "serde_core", +] + +[[package]] +name = "glob" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4eba85ea1d0a966a983acd07deee566e67395d2d96b6fb39e62b5a833f1eb0b" + [[package]] name = "glow" version = "0.16.0" @@ -1397,6 +3106,20 @@ dependencies = [ "windows 0.58.0", ] +[[package]] +name = "gpu-allocator" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51255ea7cfaadb6c5f1528d43e92a82acb2b96c43365989a28b2d44ee38f8795" +dependencies = [ + "ash", + "hashbrown 0.16.1", + "log", + "presser", + "thiserror 2.0.21", + "windows 0.61.3", +] + [[package]] name = "gpu-descriptor" version = "0.3.2" @@ -1417,25 +3140,69 @@ dependencies = [ "bitflags 2.13.2", ] +[[package]] +name = "guillotiere" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b17e70c989c36bad147b27a58d148c0741c51448aa5653436547323e524d0ab" +dependencies = [ + "euclid", +] + [[package]] name = "half" version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ + "bytemuck", "cfg-if", "crunchy", "num-traits", "zerocopy", ] +[[package]] +name = "harfrust" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c03d949a14aa089bbb282f7dd76a498a7f684428e4257202efc119ec010376f9" +dependencies = [ + "bitflags 2.13.2", + "bytemuck", + "read-fonts", + "smallvec", +] + +[[package]] +name = "hash32" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47d60b12902ba28e2730cd37e95b8c9223af2808df9e902d4df49588d1470606" +dependencies = [ + "byteorder", +] + [[package]] name = "hashbrown" version = "0.15.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" dependencies = [ - "foldhash", + "foldhash 0.1.5", +] + +[[package]] +name = "hashbrown" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash 0.2.0", + "serde", + "serde_core", ] [[package]] @@ -1443,6 +3210,20 @@ name = "hashbrown" version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" +dependencies = [ + "foldhash 0.2.0", +] + +[[package]] +name = "heapless" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25ba4bd83f9415b58b4ed8dc5714c76e626a105be4646c02630ad730ad3b5aa4" +dependencies = [ + "hash32", + "portable-atomic", + "stable_deref_trait", +] [[package]] name = "heck" @@ -1462,6 +3243,17 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +[[package]] +name = "hexasphere" +version = "19.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "163385eff5a0cf606ebe2c10b3a44ab02f4306e83fbd068a64f5e1d72a3049ac" +dependencies = [ + "constgebra", + "glam", + "tinyvec", +] + [[package]] name = "hexf-parse" version = "0.2.1" @@ -1490,11 +3282,32 @@ checksum = "25d29b57c17c6528d0dc4c2141cfa2d08200465acb537a3909c8b9b8a4a984c0" dependencies = [ "displaydoc", "litemap", + "serde", "tinystr", "writeable", "zerovec", ] +[[package]] +name = "icu_locale_fallback" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "406e9ae5b95d8aa37db6293405931b766a6172d1848daee22d70eb44aa78a43c" +dependencies = [ + "icu_locale_core", + "icu_locale_fallback_data", + "icu_provider", + "potential_utf", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_locale_fallback_data" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3632ebbd0c5c3637ba1a40bdf8288f2cb9d2268e73441a69d5fc73d7cfbaa87c" + [[package]] name = "icu_normalizer" version = "2.4.0" @@ -1544,6 +3357,8 @@ checksum = "413099315636c588ee8f011190b329b971a09a8fae9d157e01dcae8379468514" dependencies = [ "displaydoc", "icu_locale_core", + "serde", + "stable_deref_trait", "writeable", "yoke", "zerofrom", @@ -1551,6 +3366,29 @@ dependencies = [ "zerovec", ] +[[package]] +name = "icu_segmenter" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61b195dc605f81aa181bec9b3bd14e26cc71b903e4644f6af578ca9772c7a710" +dependencies = [ + "icu_collections", + "icu_locale_fallback", + "icu_provider", + "icu_segmenter_data", + "potential_utf", + "smallvec", + "utf8_iter", + "zerotrie", + "zerovec", +] + +[[package]] +name = "icu_segmenter_data" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "913a7d294ad056474749152107309fdee3ec17d2482d1ab70fdc61a81c64b9a3" + [[package]] name = "idna" version = "1.1.0" @@ -1600,12 +3438,39 @@ dependencies = [ "serde_core", ] +[[package]] +name = "inventory" +version = "0.3.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6928282826c822ad91bf1c9a1cb90a30ba1c26770749929b4656cd6be829cd7c" +dependencies = [ + "rustversion", +] + [[package]] name = "is_terminal_polyfill" version = "1.70.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" +[[package]] +name = "itertools" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b4baf93f58d4425749ca49a51c50ebab072c5df6994d08fed93541c331481dc" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.18" @@ -1708,6 +3573,87 @@ version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc" +[[package]] +name = "lalrpop-util" +version = "0.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "364b49d1c98c07972e16fe1346463becc08bcd663da04e6e37ab1bea068dce6a" +dependencies = [ + "regex-automata", +] + +[[package]] +name = "lazy_static" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20870f649af7073d53e38067b2a84312175d56ea15217e1b15bc83506ec50afb" + +[[package]] +name = "lexical" +version = "7.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bc8a009b2ff1f419ccc62706f04fe0ca6e67b37460513964a3dfdb919bb37d6" +dependencies = [ + "lexical-core", +] + +[[package]] +name = "lexical-core" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d8d125a277f807e55a77304455eb7b1cb52f2b18c143b60e766c120bd64a594" +dependencies = [ + "lexical-parse-float", + "lexical-parse-integer", + "lexical-util", + "lexical-write-float", + "lexical-write-integer", +] + +[[package]] +name = "lexical-parse-float" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52a9f232fbd6f550bc0137dcb5f99ab674071ac2d690ac69704593cb4abbea56" +dependencies = [ + "lexical-parse-integer", + "lexical-util", +] + +[[package]] +name = "lexical-parse-integer" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a7a039f8fb9c19c996cd7b2fcce303c1b2874fe1aca544edc85c4a5f8489b34" +dependencies = [ + "lexical-util", +] + +[[package]] +name = "lexical-util" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2604dd126bb14f13fb5d1bd6a66155079cb9fa655b37f875b3a742c705dbed17" + +[[package]] +name = "lexical-write-float" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50c438c87c013188d415fbabbb1dceb44249ab81664efbd31b14ae55dabb6361" +dependencies = [ + "lexical-util", + "lexical-write-integer", +] + +[[package]] +name = "lexical-write-integer" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "409851a618475d2d5796377cad353802345cba92c867d9fbcde9cf4eac4e14df" +dependencies = [ + "lexical-util", +] + [[package]] name = "libc" version = "0.2.191" @@ -1742,6 +3688,12 @@ dependencies = [ "redox_syscall 0.9.5", ] +[[package]] +name = "linebender_resource_handle" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4a5ff6bcca6c4867b1c4fd4ef63e4db7436ef363e0ad7531d1558856bae64f4" + [[package]] name = "linux-raw-sys" version = "0.4.15" @@ -1781,6 +3733,38 @@ version = "0.4.34" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f9f8bd3e56ce4dfc153cf470fffbfa98c7620958b312ca5c3a4b8d5181fd13c6" +[[package]] +name = "logos" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb2c55a318a87600ea870ff8c2012148b44bf18b74fad48d0f835c38c7d07c5f" +dependencies = [ + "logos-derive", +] + +[[package]] +name = "logos-codegen" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58b3ffaa284e1350d017a57d04ada118c4583cf260c8fb01e0fe28a2e9cf8970" +dependencies = [ + "fnv", + "proc-macro2", + "quote", + "regex-automata", + "regex-syntax", + "syn 2.0.119", +] + +[[package]] +name = "logos-derive" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52d3a9855747c17eaf4383823f135220716ab49bea5fbea7dd42cc9a92f8aa31" +dependencies = [ + "logos-codegen", +] + [[package]] name = "malloc_buf" version = "0.0.6" @@ -1790,6 +3774,15 @@ dependencies = [ "libc", ] +[[package]] +name = "matchers" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9" +dependencies = [ + "regex-automata", +] + [[package]] name = "memchr" version = "2.8.3" @@ -1859,6 +3852,12 @@ dependencies = [ "pxfm", ] +[[package]] +name = "mutants" +version = "0.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc0287524726960e07b119cebd01678f852f147742ae0d925e6a520dca956126" + [[package]] name = "naga" version = "25.0.1" @@ -1866,10 +3865,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b977c445f26e49757f9aca3631c3b8b836942cb278d69a92e7b80d3b24da632" dependencies = [ "arrayvec", - "bit-set", + "bit-set 0.8.0", "bitflags 2.13.2", "cfg_aliases", - "codespan-reporting", + "codespan-reporting 0.12.0", "half", "hashbrown 0.15.5", "hexf-parse", @@ -1878,12 +3877,51 @@ dependencies = [ "num-traits", "once_cell", "rustc-hash 1.1.0", - "spirv", + "spirv 0.3.0+sdk-1.3.268.0", "strum", "thiserror 2.0.21", "unicode-ident", ] +[[package]] +name = "naga" +version = "30.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a616d2fb8c89516ac2723a581f69d6c18576046bed761bd6b305e5618e6ae130" +dependencies = [ + "arrayvec", + "bit-set 0.10.0", + "bitflags 2.13.2", + "cfg-if", + "cfg_aliases", + "codespan-reporting 0.13.1", + "half", + "hashbrown 0.17.1", + "indexmap", + "libm", + "log", + "naga-types", + "num-traits", + "once_cell", + "rustc-hash 1.1.0", + "spirv 0.4.0+sdk-1.4.341.0", + "thiserror 2.0.21", + "unicode-ident", +] + +[[package]] +name = "naga-types" +version = "30.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "590afbf58a6f4f62873cd5cff4468061844bafa1cdf399cc954537c22d768d49" +dependencies = [ + "hashbrown 0.17.1", + "indexmap", + "rustc-hash 1.1.0", + "serde", + "thiserror 2.0.21", +] + [[package]] name = "ndk" version = "0.9.0" @@ -1923,12 +3961,48 @@ dependencies = [ "jni-sys 0.3.1", ] +[[package]] +name = "nix" +version = "0.31.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf20d2fde8ff38632c426f1165ed7436270b44f199fc55284c38276f9db47c3d" +dependencies = [ + "bitflags 2.13.2", + "cfg-if", + "cfg_aliases", + "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 = "8.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df9761775871bdef83bee530e60050f7e54b1105350d6884eb0fb4f46c2f9405" +dependencies = [ + "memchr", +] + +[[package]] +name = "nonmax" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "610a5acd306ec67f907abe5567859a3c693fb9886eb1f012ab8f2a47bef3db51" + +[[package]] +name = "nu-ansi-term" +version = "0.50.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" +dependencies = [ + "windows-sys 0.61.2", +] + [[package]] name = "num-traits" version = "0.2.19" @@ -2002,13 +4076,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e4e89ad9e3d7d297152b17d39ed92cd50ca8063a89a9fa569046d41568891eff" dependencies = [ "bitflags 2.13.2", - "block2", + "block2 0.5.1", "libc", "objc2 0.5.3", "objc2-core-data", "objc2-core-image", "objc2-foundation 0.2.2", - "objc2-quartz-core", + "objc2-quartz-core 0.2.2", ] [[package]] @@ -2031,7 +4105,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "74dd3b56391c7a0596a295029734d3c1c5e7e510a4cb30245f8221ccea96b009" dependencies = [ "bitflags 2.13.2", - "block2", + "block2 0.5.1", "objc2 0.5.3", "objc2-core-location", "objc2-foundation 0.2.2", @@ -2043,7 +4117,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a5ff520e9c33812fd374d8deecef01d4a840e7b41862d849513de77e44aa4889" dependencies = [ - "block2", + "block2 0.5.1", "objc2 0.5.3", "objc2-foundation 0.2.2", ] @@ -2055,7 +4129,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "617fbf49e071c178c0b24c080767db52958f716d9eabdf0890523aeae54773ef" dependencies = [ "bitflags 2.13.2", - "block2", + "block2 0.5.1", "objc2 0.5.3", "objc2-foundation 0.2.2", ] @@ -2090,10 +4164,10 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "55260963a527c99f1819c4f8e3b47fe04f9650694ef348ffd2227e8196d34c80" dependencies = [ - "block2", + "block2 0.5.1", "objc2 0.5.3", "objc2-foundation 0.2.2", - "objc2-metal", + "objc2-metal 0.2.2", ] [[package]] @@ -2102,7 +4176,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "000cfee34e683244f284252ee206a27953279d370e309649dc3ee317b37e5781" dependencies = [ - "block2", + "block2 0.5.1", "objc2 0.5.3", "objc2-contacts", "objc2-foundation 0.2.2", @@ -2121,7 +4195,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8" dependencies = [ "bitflags 2.13.2", - "block2", + "block2 0.5.1", "dispatch", "libc", "objc2 0.5.3", @@ -2155,7 +4229,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1a1ae721c5e35be65f01a03b6d2ac13a54cb4fa70d8a5da293d7b0020261398" dependencies = [ - "block2", + "block2 0.5.1", "objc2 0.5.3", "objc2-app-kit 0.2.2", "objc2-foundation 0.2.2", @@ -2168,11 +4242,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6" dependencies = [ "bitflags 2.13.2", - "block2", + "block2 0.5.1", "objc2 0.5.3", "objc2-foundation 0.2.2", ] +[[package]] +name = "objc2-metal" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0125f776a10d00af4152d74616409f0d4a2053a6f57fa5b7d6aa2854ac04794" +dependencies = [ + "bitflags 2.13.2", + "block2 0.6.2", + "objc2 0.6.5", + "objc2-foundation 0.3.2", +] + [[package]] name = "objc2-quartz-core" version = "0.2.2" @@ -2180,10 +4266,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a" dependencies = [ "bitflags 2.13.2", - "block2", + "block2 0.5.1", "objc2 0.5.3", "objc2-foundation 0.2.2", - "objc2-metal", + "objc2-metal 0.2.2", +] + +[[package]] +name = "objc2-quartz-core" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96c1358452b371bf9f104e21ec536d37a650eb10f7ee379fff67d2e08d537f1f" +dependencies = [ + "bitflags 2.13.2", + "objc2 0.6.5", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-foundation 0.3.2", + "objc2-metal 0.3.2", ] [[package]] @@ -2203,7 +4303,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8bb46798b20cd6b91cbd113524c490f1686f4c4e8f49502431415f3512e2b6f" dependencies = [ "bitflags 2.13.2", - "block2", + "block2 0.5.1", "objc2 0.5.3", "objc2-cloud-kit", "objc2-core-data", @@ -2211,7 +4311,7 @@ dependencies = [ "objc2-core-location", "objc2-foundation 0.2.2", "objc2-link-presentation", - "objc2-quartz-core", + "objc2-quartz-core 0.2.2", "objc2-symbols", "objc2-uniform-type-identifiers", "objc2-user-notifications", @@ -2223,7 +4323,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "44fa5f9748dbfe1ca6c0b79ad20725a11eca7c2218bceb4b005cb1be26273bfe" dependencies = [ - "block2", + "block2 0.5.1", "objc2 0.5.3", "objc2-foundation 0.2.2", ] @@ -2235,12 +4335,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "76cfcbf642358e8689af64cee815d139339f3ed8ad05103ed5eaf73db8d84cb3" dependencies = [ "bitflags 2.13.2", - "block2", + "block2 0.5.1", "objc2 0.5.3", "objc2-core-location", "objc2-foundation 0.2.2", ] +[[package]] +name = "offset-allocator" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e234d535da3521eb95106f40f0b73483d80bfb3aacf27c40d7e2b72f1a3e00a2" +dependencies = [ + "log", + "nonmax", +] + [[package]] name = "once_cell" version = "1.21.4" @@ -2282,6 +4392,16 @@ dependencies = [ "pin-project-lite", ] +[[package]] +name = "os_pipe" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d8fae84b431384b68627d0f9b3b1245fcf9f46f6c0e3dc902e9dce64edd1967" +dependencies = [ + "libc", + "windows-sys 0.61.2", +] + [[package]] name = "owned_ttf_parser" version = "0.25.1" @@ -2320,6 +4440,39 @@ dependencies = [ "windows-link 0.2.1", ] +[[package]] +name = "parlance" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73072a9470554c8e794778acece2312661218aaabb635600957d952cf01c716e" + +[[package]] +name = "parley" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22d2ff88bd3f7d68d1d9b09c7e6209f9a8e8c05088295140a2bcf2e9b17038c5" +dependencies = [ + "fontique", + "harfrust", + "hashbrown 0.17.1", + "icu_normalizer", + "icu_properties", + "icu_segmenter", + "linebender_resource_handle", + "parlance", + "parley_data", + "skrifa", +] + +[[package]] +name = "parley_data" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1567535334d6ba2d3cde19221ba9a7bd0fabb3cbd99046ddfb10ae061cfcc889" +dependencies = [ + "icu_properties", +] + [[package]] name = "paste" version = "1.0.15" @@ -2332,6 +4485,17 @@ version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" +[[package]] +name = "petgraph" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8701b58ea97060d5e5b155d383a69952a60943f0e6dfe30b04c287beb0b27455" +dependencies = [ + "fixedbitset", + "hashbrown 0.15.5", + "indexmap", +] + [[package]] name = "pin-project" version = "1.1.13" @@ -2414,12 +4578,23 @@ version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05c8b63e8d9609db387f0324918f81d68fe27748f084ef092fb35954d0539a85" +[[package]] +name = "portable-atomic-util" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10ab3eb7f3becc3a1cbc4f2c6f20267996cfc1a6467a873763411b136a122715" +dependencies = [ + "portable-atomic", +] + [[package]] name = "potential_utf" version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d83eb9bc6d8e5cf568e7a1101d60ee05e81ed50ea106026f3d18deeb046d7661" dependencies = [ + "serde_core", + "writeable", "zerovec", ] @@ -2495,6 +4670,38 @@ version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" +[[package]] +name = "radsort" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "019b4b213425016d7d84a153c4c73afb0946fbb4840e4eece7ba8848b9d6da22" + +[[package]] +name = "rand" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65c9fb96cbc91e3478eaae79a69fcd3f1ae4ad052e471fe6732fff548984b4af" +dependencies = [ + "getrandom 0.4.3", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63b8176103e19a2643978565ca18b50549f6101881c443590420e4dc998a3c69" + +[[package]] +name = "rand_distr" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d431c2703ccf129de4d45253c03f49ebb22b97d6ad79ee3ecfc7e3f4862c1d8" +dependencies = [ + "num-traits", + "rand", +] + [[package]] name = "range-alloc" version = "0.1.5" @@ -2507,6 +4714,35 @@ version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539" +[[package]] +name = "raw-window-metal" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40d213455a5f1dc59214213c7330e074ddf8114c9a42411eb890c767357ce135" +dependencies = [ + "objc2 0.6.5", + "objc2-core-foundation", + "objc2-foundation 0.3.2", + "objc2-quartz-core 0.3.2", +] + +[[package]] +name = "read-fonts" +version = "0.41.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "046a7d674daf459825b32f5062056d6882db0d2f5a479fbd76ccfc870ac18709" +dependencies = [ + "bytemuck", + "font-types", + "once_cell", +] + +[[package]] +name = "rectangle-pack" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0d463f2884048e7153449a55166f91028d5b0ea53c79377099ce4e8cf0cf9bb" + [[package]] name = "redox_syscall" version = "0.4.1" @@ -2534,6 +4770,23 @@ dependencies = [ "bitflags 2.13.2", ] +[[package]] +name = "regex-automata" +version = "0.4.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad8553b9b26413251cbf30e620595c7a41b3887f03da04579c0e6b0d6a06b4b2" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4" + [[package]] name = "renderdoc-sys" version = "1.1.0" @@ -2552,6 +4805,20 @@ dependencies = [ "serde_derive", ] +[[package]] +name = "ron" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81116b9531d61eabc41aeb228e4b6b2435bcca3233b98cf3b3077d4e6e9debb3" +dependencies = [ + "bitflags 2.13.2", + "once_cell", + "serde", + "serde_derive", + "typeid", + "unicode-ident", +] + [[package]] name = "rustc-hash" version = "1.1.0" @@ -2645,6 +4912,12 @@ version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" +[[package]] +name = "send_wrapper" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" + [[package]] name = "serde" version = "1.0.229" @@ -2708,6 +4981,24 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_spanned" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e7523beb55eece201a2356bee0bbca0d1ab466c14c07703b2e0ee6d42cb0c2c" +dependencies = [ + "serde_core", +] + +[[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 = "2.0.1" @@ -2746,6 +5037,16 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" +[[package]] +name = "skrifa" +version = "0.44.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819ab7d62b1d3e72d9d9dea5650bac30424f9111364bb94928dbf5ecad1baa68" +dependencies = [ + "bytemuck", + "read-fonts", +] + [[package]] name = "slab" version = "0.4.12" @@ -2839,6 +5140,15 @@ dependencies = [ "serde", ] +[[package]] +name = "spin" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0134f9043ed38b087ac4f7d4af44c79e2c9e5094421fe3164f435ce585953b10" +dependencies = [ + "portable-atomic", +] + [[package]] name = "spirv" version = "0.3.0+sdk-1.3.268.0" @@ -2848,12 +5158,30 @@ dependencies = [ "bitflags 2.13.2", ] +[[package]] +name = "spirv" +version = "0.4.0+sdk-1.4.341.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9571ea910ebd84c86af4b3ed27f9dbdc6ad06f17c5f96146b2b671e2976744f" +dependencies = [ + "bitflags 2.13.2", +] + [[package]] name = "stable_deref_trait" version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" +[[package]] +name = "stackfuture" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115beb9c69db2393ff10b75a1b8587a51716e5551d015001e55320ed279d32f9" +dependencies = [ + "const_panic", +] + [[package]] name = "static_assertions" version = "1.1.0" @@ -2894,6 +5222,17 @@ dependencies = [ "syn 2.0.119", ] +[[package]] +name = "swash" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c2499c2d826531388872b2268718aed907a39bd785ab0dcfe57fab26283f92e" +dependencies = [ + "skrifa", + "yazi", + "zeno", +] + [[package]] name = "syn" version = "2.0.119" @@ -2927,6 +5266,27 @@ dependencies = [ "syn 3.0.9", ] +[[package]] +name = "sys-locale" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eab9a99a024a169fe8a903cf9d4a3b3601109bcc13bd9e3c6fff259138626c4" +dependencies = [ + "libc", +] + +[[package]] +name = "taffy" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "639627c87f43b9181c811f40a6296409e093a17bc761214cba3c15df74f86b99" +dependencies = [ + "arrayvec", + "serde", + "slotmap", + "smallvec", +] + [[package]] name = "tempfile" version = "3.27.0" @@ -2989,6 +5349,15 @@ dependencies = [ "syn 3.0.9", ] +[[package]] +name = "thread_local" +version = "1.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ad99c4c6d32803332c548b1af0540b357b3f5fc0be8f6c6bfe8b2e6ae784070" +dependencies = [ + "cfg-if", +] + [[package]] name = "tiff" version = "0.11.3" @@ -3035,9 +5404,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "abc840c238154d58f9e86b2792261edfde565a17696e1cda1a449de27979801a" dependencies = [ "displaydoc", + "serde_core", "zerovec", ] +[[package]] +name = "tinyvec" +version = "1.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd3ca314f692efd6c868f8408f53fe444634a845f96c028b97d35f6a1f79f0ee" + [[package]] name = "tokio" version = "1.54.1" @@ -3054,11 +5430,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" dependencies = [ "serde", - "serde_spanned", + "serde_spanned 0.6.9", "toml_datetime 0.6.11", "toml_edit 0.22.27", ] +[[package]] +name = "toml" +version = "1.1.8+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20489e00e4d8741d6be680764cc12e270655e375a20d1011e844a9c3379e678d" +dependencies = [ + "indexmap", + "serde_core", + "serde_spanned 1.1.2", + "toml_datetime 1.1.2+spec-1.1.0", + "toml_parser", + "toml_writer", + "winnow 1.0.4", +] + [[package]] name = "toml_datetime" version = "0.6.11" @@ -3085,7 +5476,7 @@ checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" dependencies = [ "indexmap", "serde", - "serde_spanned", + "serde_spanned 0.6.9", "toml_datetime 0.6.11", "toml_write", "winnow 0.7.15", @@ -3118,6 +5509,12 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" +[[package]] +name = "toml_writer" +version = "1.1.3+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06bdbd8cfc056b8d2e2e85f29b56a3bdbecb527cef81eb39e3e7b98af4652770" + [[package]] name = "tracing" version = "0.1.44" @@ -3148,6 +5545,70 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" dependencies = [ "once_cell", + "valuable", +] + +[[package]] +name = "tracing-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-oslog" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d76902d2a8d5f9f55a81155c08971734071968c90f2d9bfe645fe700579b2950" +dependencies = [ + "cc", + "cfg-if", + "tracing-core", + "tracing-subscriber", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7f578e5945fb242538965c2d0b04418d38ec25c79d160cd279bf0731c8d319" +dependencies = [ + "matchers", + "nu-ansi-term", + "once_cell", + "regex-automata", + "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 = "tree_magic_mini" +version = "3.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8765b90061cba6c22b5831f675da109ae5561588290f9fa2317adab2714d5a6" +dependencies = [ + "memchr", + "nom", + "petgraph", ] [[package]] @@ -3165,6 +5626,18 @@ dependencies = [ "rustc-hash 2.1.3", ] +[[package]] +name = "typeid" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" + +[[package]] +name = "typewit" +version = "1.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "214ca0b2191785cbc06209b9ca1861e048e39b5ba33574b3cedd58363d5bb5f6" + [[package]] name = "uds_windows" version = "1.2.1" @@ -3194,6 +5667,23 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254" +[[package]] +name = "unicode-xid" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" + +[[package]] +name = "unsynn" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "501a7adf1a4bd9951501e5c66621e972ef8874d787628b7f90e64f936ef7ec0a" +dependencies = [ + "mutants", + "proc-macro2", + "rustc-hash 2.1.3", +] + [[package]] name = "url" version = "2.5.8" @@ -3224,11 +5714,28 @@ version = "1.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4a0e2d11620c50695fe12bbbfde96b3477fe606e7284c22d505c12ce51214514" dependencies = [ + "getrandom 0.4.3", "js-sys", "serde_core", "wasm-bindgen", ] +[[package]] +name = "valuable" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" + +[[package]] +name = "variadics_please" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b53d0f7f2d0182759a549f1f313ce16b07d8f9ba93098157b5fa10ee3e61117f" +dependencies = [ + "quote", + "unsynn", +] + [[package]] name = "version_check" version = "0.9.5" @@ -3317,7 +5824,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38a91b4eaddff87b1cd1074985e3713da4af2c49742d1b356b2c01670a67a078" dependencies = [ "cc", - "downcast-rs", + "downcast-rs 1.2.1", "rustix 1.1.6", "scoped-tls", "smallvec", @@ -3445,6 +5952,16 @@ dependencies = [ "pkg-config", ] +[[package]] +name = "weak-table" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5eba2ec791141b0bf4db542f6b038a8f9310cee33e076cb181245780b09a24ff" +dependencies = [ + "cfg-if", + "hashbrown 0.16.1", +] + [[package]] name = "web-sys" version = "0.3.106" @@ -3455,6 +5972,18 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "web-task" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cdc136a53ccd64a1211f107ccc34404769fbcc0f165f1afa065f5d88ab93538" +dependencies = [ + "async-task", + "cfg-if", + "js-sys", + "wasm-bindgen", +] + [[package]] name = "web-time" version = "1.1.0" @@ -3487,6 +6016,46 @@ version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a28ac98ddc8b9274cb41bb4d9d4d5c425b6020c50c46f25559911905610b4a88" +[[package]] +name = "wesl" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdd8f9619baa4c7bde4df0899d6f626b70ee92d6e9c18c5f74473419b5bb6fa6" +dependencies = [ + "annotate-snippets", + "anstream", + "derive_more", + "glob", + "half", + "itertools 0.15.0", + "num-traits", + "serde", + "thiserror 2.0.21", + "toml 1.1.8+spec-1.1.0", + "wesl-core", + "wesl-macros", + "wgsl-parse", + "wgsl-types", +] + +[[package]] +name = "wesl-core" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84dd3e600497eda0b47afcd21bd84c8953a9dfce7e93ed27a38ba97ac0747e03" + +[[package]] +name = "wesl-macros" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac8767ec26e75262a8e581d5f188b1f63a288baaf885bb33c9f4f73a693e06fc" +dependencies = [ + "itertools 0.15.0", + "proc-macro2", + "quote", + "syn 3.0.9", +] + [[package]] name = "wgpu" version = "25.0.2" @@ -3500,7 +6069,7 @@ dependencies = [ "hashbrown 0.15.5", "js-sys", "log", - "naga", + "naga 25.0.1", "parking_lot", "portable-atomic", "profiling", @@ -3510,9 +6079,33 @@ dependencies = [ "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "wgpu-core", - "wgpu-hal", - "wgpu-types", + "wgpu-core 25.0.2", + "wgpu-hal 25.0.2", + "wgpu-types 25.0.0", +] + +[[package]] +name = "wgpu" +version = "30.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "527ccdf43dd5b2e8676eed9984ce00e2bbb0a1b85b70c1969dcb6cd2eb55ab9e" +dependencies = [ + "arrayvec", + "bitflags 2.13.2", + "bytemuck", + "cfg-if", + "cfg_aliases", + "document-features", + "hashbrown 0.17.1", + "log", + "portable-atomic", + "profiling", + "raw-window-handle", + "smallvec", + "static_assertions", + "wgpu-core 30.0.1", + "wgpu-hal 30.0.1", + "wgpu-types 30.0.1", ] [[package]] @@ -3522,15 +6115,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f7b882196f8368511d613c6aeec80655160db6646aebddf8328879a88d54e500" dependencies = [ "arrayvec", - "bit-set", - "bit-vec", + "bit-set 0.8.0", + "bit-vec 0.8.0", "bitflags 2.13.2", "cfg_aliases", "document-features", "hashbrown 0.15.5", "indexmap", "log", - "naga", + "naga 25.0.1", "once_cell", "parking_lot", "portable-atomic", @@ -3539,11 +6132,44 @@ dependencies = [ "rustc-hash 1.1.0", "smallvec", "thiserror 2.0.21", - "wgpu-core-deps-apple", + "wgpu-core-deps-apple 25.0.0", "wgpu-core-deps-emscripten", - "wgpu-core-deps-windows-linux-android", - "wgpu-hal", - "wgpu-types", + "wgpu-core-deps-windows-linux-android 25.0.0", + "wgpu-hal 25.0.2", + "wgpu-types 25.0.0", +] + +[[package]] +name = "wgpu-core" +version = "30.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14c018fce9b6270aa203c2fdd56f3cce996713534bd757e4ea58c8560b121f14" +dependencies = [ + "arrayvec", + "bit-set 0.10.0", + "bit-vec 0.9.1", + "bitflags 2.13.2", + "bytemuck", + "cfg_aliases", + "document-features", + "hashbrown 0.17.1", + "indexmap", + "log", + "naga 30.0.1", + "naga-types", + "once_cell", + "parking_lot", + "portable-atomic", + "profiling", + "raw-window-handle", + "rustc-hash 1.1.0", + "smallvec", + "thiserror 2.0.21", + "wgpu-core-deps-apple 30.0.1", + "wgpu-core-deps-windows-linux-android 30.0.1", + "wgpu-hal 30.0.1", + "wgpu-naga-bridge", + "wgpu-types 30.0.1", ] [[package]] @@ -3552,7 +6178,16 @@ version = "25.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cfd488b3239b6b7b185c3b045c39ca6bf8af34467a4c5de4e0b1a564135d093d" dependencies = [ - "wgpu-hal", + "wgpu-hal 25.0.2", +] + +[[package]] +name = "wgpu-core-deps-apple" +version = "30.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "061f3d319a40d39d00b1ecc2c33b89fe21d4e6fe01859df3500a3a8ecccd6b68" +dependencies = [ + "wgpu-hal 30.0.1", ] [[package]] @@ -3561,7 +6196,7 @@ version = "25.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f09ad7aceb3818e52539acc679f049d3475775586f3f4e311c30165cf2c00445" dependencies = [ - "wgpu-hal", + "wgpu-hal 25.0.2", ] [[package]] @@ -3570,7 +6205,16 @@ version = "25.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cba5fb5f7f9c98baa7c889d444f63ace25574833df56f5b817985f641af58e46" dependencies = [ - "wgpu-hal", + "wgpu-hal 25.0.2", +] + +[[package]] +name = "wgpu-core-deps-windows-linux-android" +version = "30.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7586165fd5f6d881cb9ce4bb71f40d6caab2c0f1837e3fc1d9788a197fb6004f" +dependencies = [ + "wgpu-hal 30.0.1", ] [[package]] @@ -3582,7 +6226,7 @@ dependencies = [ "android_system_properties", "arrayvec", "ash", - "bit-set", + "bit-set 0.8.0", "bitflags 2.13.2", "block", "bytemuck", @@ -3592,7 +6236,7 @@ dependencies = [ "glow", "glutin_wgl_sys", "gpu-alloc", - "gpu-allocator", + "gpu-allocator 0.27.0", "gpu-descriptor", "hashbrown 0.15.5", "js-sys", @@ -3601,7 +6245,7 @@ dependencies = [ "libloading", "log", "metal", - "naga", + "naga 25.0.1", "ndk-sys 0.5.0+25.2.9519653", "objc", "ordered-float", @@ -3615,11 +6259,68 @@ dependencies = [ "thiserror 2.0.21", "wasm-bindgen", "web-sys", - "wgpu-types", + "wgpu-types 25.0.0", "windows 0.58.0", "windows-core 0.58.0", ] +[[package]] +name = "wgpu-hal" +version = "30.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6b7fb58561a792bc237628ba0792e332de418fefe145f13b5ed8201e6d52f58" +dependencies = [ + "android_system_properties", + "arrayvec", + "ash", + "bit-set 0.10.0", + "bitflags 2.13.2", + "block2 0.6.2", + "bytemuck", + "cfg-if", + "cfg_aliases", + "gpu-allocator 0.28.0", + "hashbrown 0.17.1", + "libc", + "libloading", + "log", + "naga 30.0.1", + "naga-types", + "objc2 0.6.5", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-foundation 0.3.2", + "objc2-metal 0.3.2", + "objc2-quartz-core 0.3.2", + "once_cell", + "ordered-float", + "parking_lot", + "portable-atomic", + "portable-atomic-util", + "profiling", + "range-alloc", + "raw-window-handle", + "raw-window-metal", + "renderdoc-sys", + "smallvec", + "static_assertions", + "thiserror 2.0.21", + "wgpu-naga-bridge", + "wgpu-types 30.0.1", + "windows 0.62.2", + "windows-core 0.62.2", +] + +[[package]] +name = "wgpu-naga-bridge" +version = "30.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2f62e73117bb7a62bfd9c5a5841438a823f6566c6442a808ee269d2d055c081" +dependencies = [ + "naga 30.0.1", + "wgpu-types 30.0.1", +] + [[package]] name = "wgpu-types" version = "25.0.0" @@ -3634,6 +6335,50 @@ dependencies = [ "web-sys", ] +[[package]] +name = "wgpu-types" +version = "30.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99dad6f1fbdbbdb4c278a6508b059d44688f5cebddf78d005a46a31340269286" +dependencies = [ + "bitflags 2.13.2", + "bytemuck", + "js-sys", + "log", + "naga-types", + "raw-window-handle", + "serde", + "static_assertions", + "web-sys", +] + +[[package]] +name = "wgsl-parse" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37cee524ba5cfabfd65d10a316b646f8a4c50f3663e7e787471f21b783261f47" +dependencies = [ + "annotate-snippets", + "derive_more", + "itertools 0.15.0", + "lalrpop-util", + "lexical", + "logos", + "thiserror 2.0.21", + "wgsl-types", +] + +[[package]] +name = "wgsl-types" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e119dd12e57d937397535201959ddddb5dbf26505402db5ef305ebb1ca9a7e5f" +dependencies = [ + "half", + "itertools 0.15.0", + "num-traits", +] + [[package]] name = "winapi" version = "0.3.9" @@ -3681,11 +6426,23 @@ version = "0.61.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893" dependencies = [ - "windows-collections", + "windows-collections 0.2.0", "windows-core 0.61.2", - "windows-future", + "windows-future 0.2.1", "windows-link 0.1.3", - "windows-numerics", + "windows-numerics 0.2.0", +] + +[[package]] +name = "windows" +version = "0.62.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "527fadee13e0c05939a6a05d5bd6eec6cd2e3dbd648b9f8e447c6518133d8580" +dependencies = [ + "windows-collections 0.3.2", + "windows-core 0.62.2", + "windows-future 0.3.2", + "windows-numerics 0.3.1", ] [[package]] @@ -3697,6 +6454,15 @@ dependencies = [ "windows-core 0.61.2", ] +[[package]] +name = "windows-collections" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b2d95af1a8a14a3c7367e1ed4fc9c20e0a26e79551b1454d72583c97cc6610" +dependencies = [ + "windows-core 0.62.2", +] + [[package]] name = "windows-core" version = "0.58.0" @@ -3723,6 +6489,19 @@ dependencies = [ "windows-strings 0.4.2", ] +[[package]] +name = "windows-core" +version = "0.62.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" +dependencies = [ + "windows-implement 0.60.2", + "windows-interface 0.59.3", + "windows-link 0.2.1", + "windows-result 0.4.1", + "windows-strings 0.5.1", +] + [[package]] name = "windows-future" version = "0.2.1" @@ -3731,7 +6510,18 @@ checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" dependencies = [ "windows-core 0.61.2", "windows-link 0.1.3", - "windows-threading", + "windows-threading 0.1.0", +] + +[[package]] +name = "windows-future" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1d6f90251fe18a279739e78025bd6ddc52a7e22f921070ccdc67dde84c605cb" +dependencies = [ + "windows-core 0.62.2", + "windows-link 0.2.1", + "windows-threading 0.2.1", ] [[package]] @@ -3800,6 +6590,16 @@ dependencies = [ "windows-link 0.1.3", ] +[[package]] +name = "windows-numerics" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e2e40844ac143cdb44aead537bbf727de9b044e107a0f1220392177d15b0f26" +dependencies = [ + "windows-core 0.62.2", + "windows-link 0.2.1", +] + [[package]] name = "windows-result" version = "0.2.0" @@ -3818,6 +6618,15 @@ dependencies = [ "windows-link 0.1.3", ] +[[package]] +name = "windows-result" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" +dependencies = [ + "windows-link 0.2.1", +] + [[package]] name = "windows-strings" version = "0.1.0" @@ -3837,6 +6646,15 @@ dependencies = [ "windows-link 0.1.3", ] +[[package]] +name = "windows-strings" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" +dependencies = [ + "windows-link 0.2.1", +] + [[package]] name = "windows-sys" version = "0.52.0" @@ -3889,6 +6707,15 @@ dependencies = [ "windows-link 0.1.3", ] +[[package]] +name = "windows-threading" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3949bd5b99cafdf1c7ca86b43ca564028dfe27d66958f2470940f73d86d75b37" +dependencies = [ + "windows-link 0.2.1", +] + [[package]] name = "windows_aarch64_gnullvm" version = "0.52.6" @@ -3947,7 +6774,7 @@ dependencies = [ "android-activity", "atomic-waker", "bitflags 2.13.2", - "block2", + "block2 0.5.1", "bytemuck", "calloop 0.13.0", "cfg_aliases", @@ -4013,6 +6840,24 @@ version = "0.57.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" +[[package]] +name = "wl-clipboard-rs" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "959c7ac3b8afde864f7a7448ac16f29b2b83350b7eccbf77fb781c3999aa6848" +dependencies = [ + "libc", + "log", + "os_pipe", + "rustix 1.1.6", + "thiserror 2.0.21", + "tree_magic_mini", + "wayland-backend", + "wayland-client", + "wayland-protocols", + "wayland-protocols-wlr", +] + [[package]] name = "writeable" version = "0.6.4" @@ -4082,6 +6927,12 @@ version = "0.8.29" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e450f9b2ed1dff33c94c12589a87338689467b9c4f5d8a5710bd09a847d2c8a7" +[[package]] +name = "yazi" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e01738255b5a16e78bbb83e7fbba0a1e7dd506905cfc53f4622d89015a03fbb5" + [[package]] name = "yoke" version = "0.8.4" @@ -4211,6 +7062,12 @@ dependencies = [ "serde", ] +[[package]] +name = "zeno" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6df3dc4292935e51816d896edcd52aa30bc297907c26167fec31e2b0c6a32524" + [[package]] name = "zerocopy" version = "0.8.63" @@ -4261,6 +7118,7 @@ dependencies = [ "displaydoc", "yoke", "zerofrom", + "zerovec", ] [[package]] @@ -4269,6 +7127,7 @@ version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f58a2799cfe9a1670c7ea8edbd52ef8edb93cb37a7f83bf31ba9e35d9dae6a40" dependencies = [ + "serde", "yoke", "zerofrom", "zerovec-derive", diff --git a/Cargo.toml b/Cargo.toml index e15fc94..b0e443f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,6 +3,7 @@ members = [ "crates/bevy_forge_core", "crates/bevy_forge_editor", "crates/bevy_forge_cli", + "crates/bevy_forge_runtime", ] exclude = ["compat/bsn-smoke"] resolver = "2" diff --git a/README.md b/README.md index 2040633..b0bcf5f 100644 --- a/README.md +++ b/README.md @@ -24,6 +24,20 @@ the output easy to review, diff and check in. Live in-game editing (a Bevy plugin with a remote protocol) is a roadmap item, not part of this editor. +## v2 live editor (M0 spike) + +The `v2-live-editor` branch moves editing into the game as a **Bevy 0.20 plugin** with native Bevy +UI and official `bevy_ui_widgets` — no egui in the runtime crate. M0 ships the `EditorPlugin`, a +fixed editor shell, live hierarchy, reflection inspector, translate gizmo, editor camera and +deterministic screenshots at 1440×900 / 1000×640. + +```bash +cargo run -p bevy_forge_runtime --example editor_spike +``` + +See [docs/m0-spike.md](docs/m0-spike.md) for controls, architecture and M0 limits. The v1 standalone +editor below remains the current released workflow. + ## Two viewports | 2D scene editing | 3D wireframe preview | diff --git a/crates/bevy_forge_runtime/Cargo.toml b/crates/bevy_forge_runtime/Cargo.toml new file mode 100644 index 0000000..54366f1 --- /dev/null +++ b/crates/bevy_forge_runtime/Cargo.toml @@ -0,0 +1,45 @@ +[package] +name = "bevy_forge_runtime" +version.workspace = true +edition.workspace = true +rust-version.workspace = true +license.workspace = true +authors.workspace = true +repository.workspace = true +publish = false +description = "Live in-game scene editor plugin for Bevy 0.20 (M0 spike)" + +[dependencies] +# Frozen M0 feature set. Do not add `tonemapping_luts` (ktx2/zstd) — cameras use +# `Tonemapping::AcesFitted` instead of the LUT-based default. +bevy = { version = "0.20", default-features = false, features = [ + "std", + "async_executor", + "multi_threaded", + "bevy_asset", + "bevy_log", + "bevy_color", + "bevy_image", + "bevy_camera", + "bevy_light", + "bevy_mesh", + "bevy_pbr", + "bevy_render", + "bevy_core_pipeline", + "bevy_ui", + "bevy_ui_render", + "bevy_ui_widgets", + "bevy_text", + "bevy_input_focus", + "bevy_window", + "bevy_winit", + "bevy_picking", + "ui_picking", + "bevy_gizmos", + "bevy_gizmos_render", + "default_font", + "png", + "x11", + "wayland", + "reflect_auto_register", +] } diff --git a/crates/bevy_forge_runtime/examples/editor_spike.rs b/crates/bevy_forge_runtime/examples/editor_spike.rs new file mode 100644 index 0000000..1626a2d --- /dev/null +++ b/crates/bevy_forge_runtime/examples/editor_spike.rs @@ -0,0 +1,155 @@ +//! M0 spike demo: a small hardcoded 3D scene plus the Bevy Forge editor plugin. +//! +//! Run: +//! cargo run -p bevy_forge_runtime --example editor_spike +//! +//! Deterministic screenshot: +//! FORGE_SCREENSHOT=$PWD/.swarm/m0/evidence/m0-1440x900.png \ +//! FORGE_SCREENSHOT_SIZE=1440x900 \ +//! cargo run -p bevy_forge_runtime --example editor_spike + +use bevy::{prelude::*, render::view::Tonemapping, window::WindowResolution}; +use bevy_forge_runtime::{EditorPlugin, Selection}; + +fn main() { + App::new() + .add_plugins(DefaultPlugins.set(WindowPlugin { + primary_window: Some(Window { + title: "Bevy Forge — M0 Spike".into(), + resolution: WindowResolution::new(1440, 900).with_scale_factor_override(1.0), + ..default() + }), + ..default() + })) + .add_plugins(EditorPlugin) + .add_systems(Startup, demo_scene) + .run(); +} + +fn demo_scene( + mut commands: Commands, + mut meshes: ResMut>, + mut materials: ResMut>, + mut selection: ResMut, +) { + commands.insert_resource(GlobalAmbientLight { + color: Color::WHITE, + brightness: 600.0, + ..default() + }); + + let ground = materials.add(StandardMaterial { + base_color: Color::srgb(0.16, 0.20, 0.17), + perceptual_roughness: 0.95, + metallic: 0.0, + ..default() + }); + commands.spawn(( + Name::new("Ground"), + Mesh3d(meshes.add(Plane3d::default().mesh().size(14.0, 14.0))), + MeshMaterial3d(ground), + Transform::from_xyz(0.0, -0.02, 0.0), + )); + + let hero_mat = materials.add(StandardMaterial { + base_color: Color::srgb(0.85, 0.55, 0.25), + perceptual_roughness: 0.65, + metallic: 0.0, + ..default() + }); + let hat_mat = materials.add(StandardMaterial { + base_color: Color::srgb(0.25, 0.45, 0.75), + perceptual_roughness: 0.5, + metallic: 0.0, + ..default() + }); + let hero = commands + .spawn(( + Name::new("Hero Cube"), + Mesh3d(meshes.add(Cuboid::new(1.0, 1.0, 1.0))), + MeshMaterial3d(hero_mat), + Transform::from_xyz(0.0, 0.5, 0.0), + )) + .with_children(|parent| { + parent.spawn(( + Name::new("Hat"), + Mesh3d(meshes.add(Cuboid::new(0.55, 0.18, 0.55))), + MeshMaterial3d(hat_mat), + Transform::from_xyz(0.0, 0.62, 0.0), + )); + }) + .id(); + + let red_mat = materials.add(StandardMaterial { + base_color: Color::srgb(0.75, 0.18, 0.16), + perceptual_roughness: 0.7, + ..default() + }); + let blue_mat = materials.add(StandardMaterial { + base_color: Color::srgb(0.18, 0.35, 0.78), + perceptual_roughness: 0.7, + ..default() + }); + commands.spawn(( + Name::new("Red Cube"), + Mesh3d(meshes.add(Cuboid::new(0.8, 0.8, 0.8))), + MeshMaterial3d(red_mat), + Transform::from_xyz(-2.6, 0.4, 0.6), + )); + commands.spawn(( + Name::new("Blue Cube"), + Mesh3d(meshes.add(Cuboid::new(0.8, 0.8, 0.8))), + MeshMaterial3d(blue_mat), + Transform::from_xyz(2.6, 0.4, -0.6), + )); + + let crate_mat = materials.add(StandardMaterial { + base_color: Color::srgb(0.55, 0.38, 0.20), + perceptual_roughness: 0.9, + ..default() + }); + let stack = commands + .spawn(( + Name::new("Crate Stack"), + Transform::from_xyz(0.0, 0.0, -2.8), + Visibility::default(), + )) + .with_children(|parent| { + parent.spawn(( + Name::new("Crate A"), + Mesh3d(meshes.add(Cuboid::new(0.8, 0.8, 0.8))), + MeshMaterial3d(crate_mat.clone()), + Transform::from_xyz(0.0, 0.4, 0.0), + )); + parent.spawn(( + Name::new("Crate B"), + Mesh3d(meshes.add(Cuboid::new(0.8, 0.8, 0.8))), + MeshMaterial3d(crate_mat), + Transform::from_xyz(0.0, 1.2, 0.0), + )); + }) + .id(); + + commands.spawn(( + Name::new("Sun"), + DirectionalLight { + illuminance: 12_000.0, + ..default() + }, + Transform::from_xyz(4.0, 8.0, 4.0).looking_at(Vec3::ZERO, Vec3::Y), + )); + + // Placeholder camera. T04 adopts it for the editor orbit/pan/zoom controls. + commands.spawn(( + Name::new("Editor Camera"), + Camera3d::default(), + Tonemapping::AcesFitted, + Transform::from_xyz(6.0, 5.0, 10.0).looking_at(Vec3::new(0.0, 0.5, 0.0), Vec3::Y), + )); + + selection.0 = Some(hero); + info!( + "demo scene ready: hero={hero:?}, stack={stack:?}, selected={:?}", + selection.0 + ); +} diff --git a/crates/bevy_forge_runtime/src/gizmo.rs b/crates/bevy_forge_runtime/src/gizmo.rs new file mode 100644 index 0000000..96c25aa --- /dev/null +++ b/crates/bevy_forge_runtime/src/gizmo.rs @@ -0,0 +1,727 @@ +//! Translate gizmo and editor camera. +//! +//! M0 scope: +//! - adopt the host app's placeholder `Camera3d` (or spawn one) and drive it with +//! right-drag orbit, middle-drag pan and wheel zoom; +//! - draw world-aligned RGB axes on the selected entity's `GlobalTransform`; +//! - pick an axis in screen space, then drag it with a ray/plane calculation and +//! write the result back to the selected entity's `Transform.translation`. +//! +//! M0 limit: the world-space drag delta is converted into parent-local space +//! with the parent's *inverse rotation* only. Parent scale is ignored, so a +//! scaled parent makes the gizmo travel at the wrong world-space rate. Generic +//! component editing, local-space gizmos and snapping are M1+. + +use bevy::{ + input::mouse::{MouseMotion, MouseScrollUnit, MouseWheel}, + prelude::*, + render::view::Tonemapping, + window::PrimaryWindow, +}; + +use crate::{ + plugin::{editor_active, Selection}, + ui::EditorLayout, +}; + +/// Screen-space distance (logical pixels) within which a click hits a gizmo axis. +pub const AXIS_PICK_RADIUS_PX: f32 = 12.0; + +const GIZMO_LENGTH_PER_DISTANCE: f32 = 0.18; +const GIZMO_MIN_LENGTH: f32 = 0.8; +const GIZMO_MAX_LENGTH: f32 = 3.0; + +const MIN_CAMERA_DISTANCE: f32 = 2.0; +const MAX_CAMERA_DISTANCE: f32 = 40.0; +const DEFAULT_CAMERA_DISTANCE: f32 = 12.5; +const MAX_CAMERA_PITCH: f32 = 85.0 * std::f32::consts::PI / 180.0; + +const ORBIT_SENSITIVITY: f32 = 0.005; +const PAN_SENSITIVITY: f32 = 0.0015; +const ZOOM_STEP: f32 = 0.9; + +const RAY_EPSILON: f32 = 1e-6; + +/// Orbit/pan/zoom state of the one editor camera. +/// +/// The camera position is derived from `focus`, `yaw`, `pitch` and `distance` +/// instead of being stored directly so the controls stay a simple orbit model. +#[derive(Component, Debug, Clone, Copy, PartialEq)] +pub struct EditorCamera { + /// World-space point the camera orbits around and looks at. + pub focus: Vec3, + /// Rotation around `Vec3::Y`, radians. + pub yaw: f32, + /// Elevation above the focus plane, radians, clamped to ±85°. + pub pitch: f32, + /// Distance from `focus` to the camera, clamped to `2.0..=40.0`. + pub distance: f32, +} + +impl Default for EditorCamera { + /// The M0 placeholder pose from the demo scene: eye `(6, 5, 10)`, looking + /// at `(0, 0.5, 0)`. + fn default() -> Self { + let placeholder = + Transform::from_xyz(6.0, 5.0, 10.0).looking_at(Vec3::new(0.0, 0.5, 0.0), Vec3::Y); + editor_camera_from_transform(&placeholder) + } +} + +/// One of the three translate axes. +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub enum GizmoAxis { + /// World +X. + X, + /// World +Y. + Y, + /// World +Z. + Z, +} + +impl GizmoAxis { + /// All axes in RGB order. + pub const ALL: [Self; 3] = [Self::X, Self::Y, Self::Z]; + + /// Unit world-space direction of this axis. + pub fn direction(self) -> Vec3 { + match self { + Self::X => Vec3::X, + Self::Y => Vec3::Y, + Self::Z => Vec3::Z, + } + } +} + +/// Active translate-gizmo drag. Reset to `Default` when no drag is running. +#[derive(Resource, Default, Debug, Clone)] +pub struct GizmoDrag { + /// Whether a drag is currently in progress. + pub active: bool, + /// The entity being moved. + pub entity: Option, + /// The axis being dragged. + pub axis: Option, + /// `Transform.translation` of the entity when the drag began (parent-local). + pub start_translation: Vec3, + /// First ray/plane hit in world space. + pub start_world_hit: Vec3, + /// World-space gizmo origin when the drag began. + pub origin: Vec3, + /// Unit world-space direction of the dragged axis. + pub axis_world: Vec3, + /// Normal of the drag plane (perpendicular to the axis). + pub plane_normal: Vec3, +} + +impl GizmoDrag { + /// Ends the current drag and clears all stored state. + pub fn clear(&mut self) { + *self = Self::default(); + } +} + +/// Adds the editor camera controls and the translate gizmo. +pub struct GizmoPlugin; + +impl Plugin for GizmoPlugin { + fn build(&self, app: &mut App) { + app.init_resource::() + // `PostStartup` deliberately runs after the host app's `Startup` scene + // so the placeholder camera exists and can be adopted. + .add_systems(PostStartup, ensure_editor_camera) + .add_systems( + Update, + ( + editor_camera_control, + log_selection, + begin_gizmo_drag, + update_gizmo_drag, + draw_gizmo, + ) + .chain() + .run_if(editor_active), + ) + // Always clean up, even if the editor was disabled mid-drag. + .add_systems(Update, end_gizmo_drag); + } +} + +/// Adopts the host app's placeholder `Camera3d`, or spawns one if there is none. +/// +/// Adoption never touches the existing `Transform`, so the initial framing is +/// preserved; only the orbit state is derived from it. A spawned camera uses the +/// M0 placeholder pose and `Tonemapping::AcesFitted` (no LUT assets). +fn ensure_editor_camera( + mut commands: Commands, + existing: Query<(), With>, + cameras: Query<(Entity, &Transform), With>, +) { + if !existing.is_empty() { + info!("gizmo: camera ready"); + return; + } + + if let Some((entity, transform)) = cameras.iter().next() { + commands + .entity(entity) + .insert(editor_camera_from_transform(transform)); + debug!("gizmo: adopted camera {entity}"); + info!("gizmo: camera ready"); + return; + } + + let editor = EditorCamera::default(); + let transform = camera_transform(&editor); + commands.spawn(( + Name::new("Editor Camera"), + Camera3d::default(), + Tonemapping::AcesFitted, + transform, + GlobalTransform::from(transform), + editor, + )); + debug!("gizmo: spawned camera"); + info!("gizmo: camera ready"); +} + +/// Derives orbit state from a camera transform by looking along its forward ray. +/// +/// The distance is estimated as the camera's distance from the world origin, +/// which keeps the placeholder framing stable while giving the orbit controls a +/// sensible pivot. Returns the default distance for a camera at the origin. +pub fn editor_camera_from_transform(transform: &Transform) -> EditorCamera { + let position = transform.translation; + let mut distance = position.length(); + if !distance.is_finite() || distance < 0.01 { + distance = DEFAULT_CAMERA_DISTANCE; + } + + let focus = position + *transform.forward() * distance; + let offset = position - focus; + let horizontal = Vec2::new(offset.x, offset.z).length(); + let yaw = offset.x.atan2(offset.z); + let pitch = offset + .y + .atan2(horizontal) + .clamp(-MAX_CAMERA_PITCH, MAX_CAMERA_PITCH); + + EditorCamera { + focus, + yaw, + pitch, + distance, + } +} + +/// Builds a camera transform from orbit state. `looking_at` keeps roll at zero. +pub fn camera_transform(camera: &EditorCamera) -> Transform { + let (sin_yaw, cos_yaw) = camera.yaw.sin_cos(); + let (sin_pitch, cos_pitch) = camera.pitch.sin_cos(); + let offset = Vec3::new(cos_pitch * sin_yaw, sin_pitch, cos_pitch * cos_yaw) * camera.distance; + + Transform::from_translation(camera.focus + offset).looking_at(camera.focus, Vec3::Y) +} + +/// Gizmo axis length for a camera distance: roughly screen-constant, clamped. +pub fn gizmo_length(camera_distance: f32) -> f32 { + (camera_distance * GIZMO_LENGTH_PER_DISTANCE).clamp(GIZMO_MIN_LENGTH, GIZMO_MAX_LENGTH) +} + +/// Right-drag orbit, middle-drag pan, wheel zoom while the cursor is in the viewport. +fn editor_camera_control( + windows: Query<&Window, With>, + layout: Res, + mouse: Res>, + mut motion: MessageReader, + mut wheel: MessageReader, + mut cameras: Query<(&mut EditorCamera, &mut Transform)>, +) { + // Consume input every frame so a dragged-then-released button does not leave + // stale deltas queued for the next drag. + let motion_delta = motion + .read() + .fold(Vec2::ZERO, |total, event| total + event.delta); + let wheel_delta: f32 = wheel + .read() + .map(|event| match event.unit { + MouseScrollUnit::Line => event.y, + MouseScrollUnit::Pixel => event.y / 100.0, + }) + .sum(); + + let Ok(window) = windows.single() else { + return; + }; + let in_viewport = window + .cursor_position() + .is_some_and(|cursor| layout.viewport_rect(window).contains(cursor)); + if !in_viewport { + return; + } + + let Ok((mut camera, mut transform)) = cameras.single_mut() else { + return; + }; + let mut changed = false; + + if mouse.pressed(MouseButton::Right) && motion_delta != Vec2::ZERO { + camera.yaw -= motion_delta.x * ORBIT_SENSITIVITY; + camera.pitch = (camera.pitch + motion_delta.y * ORBIT_SENSITIVITY) + .clamp(-MAX_CAMERA_PITCH, MAX_CAMERA_PITCH); + changed = true; + } else if mouse.pressed(MouseButton::Middle) && motion_delta != Vec2::ZERO { + let right = *transform.right(); + let up = *transform.up(); + let scale = camera.distance * PAN_SENSITIVITY; + camera.focus += (-right * motion_delta.x + up * motion_delta.y) * scale; + changed = true; + } + + if wheel_delta != 0.0 { + camera.distance = (camera.distance * ZOOM_STEP.powf(wheel_delta)) + .clamp(MIN_CAMERA_DISTANCE, MAX_CAMERA_DISTANCE); + changed = true; + } + + if changed { + *transform = camera_transform(&camera); + } +} + +/// Logs `gizmo: selected {entity}` once per selection, not once per frame. +fn log_selection(selection: Res, mut last_logged: Local>) { + if *last_logged == selection.0 { + return; + } + *last_logged = selection.0; + if let Some(entity) = selection.0 { + info!("gizmo: selected {entity}"); + } +} + +/// Draws the world-aligned axes at the selected entity's global position. +fn draw_gizmo( + mut gizmos: Gizmos, + selection: Res, + entities: Query<&GlobalTransform>, + cameras: Query<&EditorCamera>, +) { + let Some(entity) = selection.0 else { + return; + }; + let Ok(global) = entities.get(entity) else { + return; + }; + + let distance = cameras + .iter() + .next() + .map_or(DEFAULT_CAMERA_DISTANCE, |camera| camera.distance); + let length = gizmo_length(distance); + gizmos.axes(Transform::from_translation(global.translation()), length); +} + +/// Picks the nearest axis on left press inside the viewport and starts a drag. +fn begin_gizmo_drag( + mouse: Res>, + windows: Query<&Window, With>, + layout: Res, + selection: Res, + targets: Query<(&Transform, &GlobalTransform)>, + cameras: Query<(&Camera, &GlobalTransform, &EditorCamera)>, + mut drag: ResMut, +) { + if !mouse.just_pressed(MouseButton::Left) { + return; + } + + let Ok(window) = windows.single() else { + return; + }; + let Some(cursor) = window.cursor_position() else { + return; + }; + if !layout.viewport_rect(window).contains(cursor) { + return; + } + + let Some(entity) = selection.0 else { + return; + }; + let Ok((target_transform, target_global)) = targets.get(entity) else { + return; + }; + let Ok((camera, camera_global, editor_camera)) = cameras.single() else { + return; + }; + + let origin = target_global.translation(); + let length = gizmo_length(editor_camera.distance); + let Ok(origin_screen) = camera.world_to_viewport(camera_global, origin) else { + return; + }; + + let mut endpoints = [(GizmoAxis::X, Vec2::ZERO); 3]; + let mut endpoint_count = 0; + for axis in GizmoAxis::ALL { + let world_end = origin + axis.direction() * length; + if let Ok(screen_end) = camera.world_to_viewport(camera_global, world_end) { + endpoints[endpoint_count] = (axis, screen_end); + endpoint_count += 1; + } + } + + let Some(axis) = pick_axis( + cursor, + origin_screen, + &endpoints[..endpoint_count], + AXIS_PICK_RADIUS_PX, + ) else { + return; + }; + + let axis_world = axis.direction(); + let normal = axis_plane_normal(axis_world, *camera_global.forward()); + let Ok(ray) = camera.viewport_to_world(camera_global, cursor) else { + return; + }; + let Some(start_world_hit) = ray_plane_hit(ray.origin, *ray.direction, origin, normal) else { + return; + }; + + *drag = GizmoDrag { + active: true, + entity: Some(entity), + axis: Some(axis), + start_translation: target_transform.translation, + start_world_hit, + origin, + axis_world, + plane_normal: normal, + }; +} + +/// Updates the dragged translation while the left button stays held. +fn update_gizmo_drag( + mouse: Res>, + windows: Query<&Window, With>, + layout: Res, + cameras: Query<(&Camera, &GlobalTransform)>, + parents: Query<&ChildOf>, + globals: Query<&GlobalTransform>, + mut transforms: Query<&mut Transform>, + mut drag: ResMut, +) { + if !drag.active { + return; + } + if !mouse.pressed(MouseButton::Left) { + drag.clear(); + return; + } + let (Some(entity), Some(_axis)) = (drag.entity, drag.axis) else { + drag.clear(); + return; + }; + + let Ok(window) = windows.single() else { + return; + }; + let Some(cursor) = window.cursor_position() else { + return; + }; + if !layout.viewport_rect(window).contains(cursor) { + return; + } + let Ok((camera, camera_global)) = cameras.single() else { + return; + }; + let Ok(ray) = camera.viewport_to_world(camera_global, cursor) else { + return; + }; + let Some(hit) = ray_plane_hit(ray.origin, *ray.direction, drag.origin, drag.plane_normal) + else { + return; + }; + + let parent_rotation = parent_rotation_of(entity, &parents, &globals); + let translation = dragged_translation( + drag.start_translation, + drag.start_world_hit, + hit, + drag.axis_world, + parent_rotation, + ); + + let Ok(mut transform) = transforms.get_mut(entity) else { + drag.clear(); + return; + }; + transform.translation = translation; +} + +/// Ends the drag on left release. Runs even when the editor is disabled. +fn end_gizmo_drag(mouse: Res>, mut drag: ResMut) { + if drag.active && mouse.just_released(MouseButton::Left) { + drag.clear(); + } +} + +/// Reads the parent's global rotation for a selected entity, or identity. +fn parent_rotation_of( + entity: Entity, + parents: &Query<&ChildOf>, + globals: &Query<&GlobalTransform>, +) -> Quat { + parents + .get(entity) + .ok() + .and_then(|child_of| globals.get(child_of.parent()).ok()) + .map(GlobalTransform::rotation) + .unwrap_or(Quat::IDENTITY) +} + +/// Screen-space distance from `point` to the segment `start..end`. +pub fn point_segment_distance(point: Vec2, start: Vec2, end: Vec2) -> f32 { + let segment = end - start; + let length_squared = segment.length_squared(); + if length_squared <= f32::EPSILON { + return point.distance(start); + } + let t = ((point - start).dot(segment) / length_squared).clamp(0.0, 1.0); + point.distance(start + segment * t) +} + +/// Picks the nearest axis segment within `max_distance_px`, independent of order. +pub fn pick_axis( + cursor: Vec2, + origin: Vec2, + endpoints: &[(GizmoAxis, Vec2)], + max_distance_px: f32, +) -> Option { + let mut best: Option<(GizmoAxis, f32)> = None; + for &(axis, endpoint) in endpoints { + let distance = point_segment_distance(cursor, origin, endpoint); + if distance > max_distance_px { + continue; + } + if best.is_none_or(|(_, best_distance)| distance < best_distance) { + best = Some((axis, distance)); + } + } + best.map(|(axis, _)| axis) +} + +/// Returns the drag-plane normal for an axis: camera forward projected onto the +/// plane perpendicular to the axis. Falls back to any perpendicular vector when +/// the view direction and the axis are (nearly) parallel. +pub fn axis_plane_normal(axis: Vec3, camera_forward: Vec3) -> Vec3 { + let axis = axis.normalize_or_zero(); + let projected = camera_forward - axis * camera_forward.dot(axis); + if projected.length_squared() > RAY_EPSILON * RAY_EPSILON { + projected.normalize() + } else { + axis.any_orthonormal_vector() + } +} + +/// Intersects a ray with a plane. Returns `None` for parallel rays and hits +/// behind the ray origin. +pub fn ray_plane_hit( + ray_origin: Vec3, + ray_direction: Vec3, + plane_origin: Vec3, + plane_normal: Vec3, +) -> Option { + let denominator = ray_direction.dot(plane_normal); + if denominator.abs() <= RAY_EPSILON { + return None; + } + let t = (plane_origin - ray_origin).dot(plane_normal) / denominator; + if t < 0.0 { + return None; + } + Some(ray_origin + ray_direction * t) +} + +/// Scalar distance a plane hit moved along `axis`. +pub fn axis_delta(start_hit: Vec3, current_hit: Vec3, axis: Vec3) -> f32 { + (current_hit - start_hit).dot(axis.normalize_or_zero()) +} + +/// Converts a world-space delta into the parent's local space. +/// +/// M0 limit: only the parent's inverse rotation is applied; parent scale is +/// intentionally ignored. A scaled parent therefore changes the effective +/// world-space speed of the drag. +pub fn world_delta_to_local(world_delta: Vec3, parent_rotation: Quat) -> Vec3 { + parent_rotation.inverse() * world_delta +} + +/// Computes the new parent-local translation for a drag from two plane hits. +pub fn dragged_translation( + start_translation: Vec3, + start_hit: Vec3, + current_hit: Vec3, + axis_world: Vec3, + parent_rotation: Quat, +) -> Vec3 { + let scalar = axis_delta(start_hit, current_hit, axis_world); + let world_delta = axis_world * scalar; + start_translation + world_delta_to_local(world_delta, parent_rotation) +} + +#[cfg(test)] +mod tests { + use super::*; + + fn assert_approx(actual: f32, expected: f32) { + assert!( + (actual - expected).abs() < 1e-4, + "expected {expected}, got {actual}" + ); + } + + fn assert_vec3_approx(actual: Vec3, expected: Vec3) { + assert!( + actual.abs_diff_eq(expected, 1e-4), + "expected {expected:?}, got {actual:?}" + ); + } + + #[test] + fn point_segment_distance_inside_and_outside() { + let start = Vec2::new(0.0, 0.0); + let end = Vec2::new(10.0, 0.0); + + // Perpendicular projection lands inside the segment. + assert_approx(point_segment_distance(Vec2::new(5.0, 3.0), start, end), 3.0); + // Outside the segment, nearest point is the start cap. + assert_approx( + point_segment_distance(Vec2::new(-4.0, 3.0), start, end), + 5.0, + ); + // Outside the segment, nearest point is the end cap. + assert_approx( + point_segment_distance(Vec2::new(14.0, -3.0), start, end), + 5.0, + ); + // Degenerate segment. + assert_approx( + point_segment_distance(Vec2::new(3.0, 4.0), start, start), + 5.0, + ); + } + + #[test] + fn nearest_axis_is_picked_within_the_screen_threshold() { + let origin = Vec2::new(100.0, 100.0); + let endpoints = [ + (GizmoAxis::X, Vec2::new(160.0, 100.0)), + (GizmoAxis::Y, Vec2::new(100.0, 40.0)), + (GizmoAxis::Z, Vec2::new(40.0, 100.0)), + ]; + + assert_eq!( + pick_axis(Vec2::new(140.0, 104.0), origin, &endpoints, 12.0), + Some(GizmoAxis::X) + ); + assert_eq!( + pick_axis(Vec2::new(100.0, 44.0), origin, &endpoints, 12.0), + Some(GizmoAxis::Y) + ); + // Far away from every axis segment. + assert_eq!( + pick_axis(Vec2::new(100.0, 130.0), origin, &endpoints, 12.0), + None + ); + } + + #[test] + fn ray_plane_hit_returns_expected_point_and_rejects_parallel() { + let hit = ray_plane_hit(Vec3::new(0.0, 5.0, 0.0), Vec3::NEG_Y, Vec3::ZERO, Vec3::Y) + .expect("downward ray should hit the XZ plane"); + assert_vec3_approx(hit, Vec3::ZERO); + + // Parallel ray never intersects the plane. + assert_eq!( + ray_plane_hit(Vec3::ZERO, Vec3::X, Vec3::new(0.0, 1.0, 0.0), Vec3::Y), + None + ); + + // A hit behind the ray origin is not a valid hit. + assert_eq!( + ray_plane_hit(Vec3::new(0.0, 1.0, 0.0), Vec3::Y, Vec3::ZERO, Vec3::Y), + None + ); + } + + #[test] + fn axis_delta_projects_a_plane_hit_onto_the_axis() { + let start = Vec3::new(0.0, 0.0, 0.0); + let current = Vec3::new(2.5, 9.0, -4.0); + + assert_approx(axis_delta(start, current, Vec3::X), 2.5); + assert_approx(axis_delta(start, current, Vec3::Y), 9.0); + // Non-normalized axis directions are normalized before projecting. + assert_approx(axis_delta(start, current, Vec3::Z * 2.0), -4.0); + } + + #[test] + fn world_delta_to_local_uses_the_inverse_parent_rotation() { + // Parent rotated +90° around Y: a world +X delta is local +Z. + let parent_rotation = Quat::from_rotation_y(std::f32::consts::FRAC_PI_2); + let local = world_delta_to_local(Vec3::new(2.0, 0.0, 0.0), parent_rotation); + assert_vec3_approx(local, Vec3::new(0.0, 0.0, 2.0)); + } + + #[test] + fn drag_helper_changes_transform_by_expected_axis_delta() { + let start_translation = Vec3::new(1.0, 2.0, 3.0); + let start_hit = Vec3::ZERO; + let current_hit = Vec3::new(2.0, 7.0, -3.0); + + let translation = dragged_translation( + start_translation, + start_hit, + current_hit, + Vec3::X, + Quat::IDENTITY, + ); + let mut transform = Transform::from_translation(start_translation); + transform.translation = translation; + assert_vec3_approx(transform.translation, Vec3::new(3.0, 2.0, 3.0)); + + // Under a parent rotated +90° around Y, the same world delta becomes +2 on local Z. + let parent_rotation = Quat::from_rotation_y(std::f32::consts::FRAC_PI_2); + let translation = dragged_translation( + start_translation, + start_hit, + current_hit, + Vec3::X, + parent_rotation, + ); + let mut transform = Transform::from_translation(start_translation); + transform.translation = translation; + assert_vec3_approx(transform.translation, Vec3::new(1.0, 2.0, 5.0)); + } + + #[test] + fn gizmo_length_scales_with_distance_and_clamps() { + assert_approx(gizmo_length(2.0), GIZMO_MIN_LENGTH); + assert_approx(gizmo_length(12.5), 2.25); + assert_approx(gizmo_length(40.0), GIZMO_MAX_LENGTH); + } + + #[test] + fn adopted_camera_keeps_its_position() { + let transform = + Transform::from_xyz(6.0, 5.0, 10.0).looking_at(Vec3::new(0.0, 0.5, 0.0), Vec3::Y); + let camera = editor_camera_from_transform(&transform); + let rebuilt = camera_transform(&camera); + + assert_vec3_approx(rebuilt.translation, transform.translation); + assert_vec3_approx(*rebuilt.forward(), *transform.forward()); + } +} diff --git a/crates/bevy_forge_runtime/src/hierarchy.rs b/crates/bevy_forge_runtime/src/hierarchy.rs new file mode 100644 index 0000000..db1144a --- /dev/null +++ b/crates/bevy_forge_runtime/src/hierarchy.rs @@ -0,0 +1,510 @@ +//! Live hierarchy panel. +//! +//! Collects the scene tree from `ChildOf` / `Children`, renders it as an +//! indented, scrollable [`ListBox`] inside the left [`HierarchyPanel`] and binds +//! row activation to [`Selection`]. +//! +//! The panel is rebuilt only when the scene snapshot changes. Editor-owned UI +//! entities, observers and window entities are not part of the scene snapshot, +//! so rebuilding the panel can never feed back into itself. + +use std::collections::HashSet; + +use bevy::{ + picking::hover::Hovered, + prelude::*, + text::FontSize, + ui::{ScrollPosition, Selected}, + ui_widgets::{ListBox, ListItem, ScrollArea, ValueChange}, +}; + +use crate::{ + plugin::{editor_active, Selection}, + ui::{HierarchyPanel, UiTheme}, +}; + +/// Largest depth a hierarchy row may have. Deeper descendants are not listed. +const MAX_DEPTH: usize = 64; + +/// One row of the hierarchy tree, in render order. +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct HierarchyRowData { + /// Entity this row represents. + pub entity: Entity, + /// Display name: the entity's `Name`, or `Entity#{index}` when missing. + pub name: String, + /// Zero-based depth. Roots have depth `0`. + pub depth: usize, +} + +/// Marker component on a list row, mapping it to the scene entity it selects. +#[derive(Component, Debug, Clone, Copy, PartialEq, Eq)] +pub struct HierarchyRow { + /// Scene entity selected when this row is activated. + pub target: Entity, +} + +/// Marker for the single list entity inside the hierarchy panel. +#[derive(Component)] +struct HierarchyList; + +/// One collected tree row including its parent, used for snapshot comparison. +#[derive(Debug, Clone, PartialEq, Eq)] +struct TreeRow { + entity: Entity, + name: String, + parent: Option, + depth: usize, +} + +/// Snapshot of the last rendered tree: `(entity, name, parent, depth)` in render order. +#[derive(Resource, Default)] +struct HierarchyTreeState { + signature: Vec<(Entity, String, Option, usize)>, + rows: usize, + roots: usize, +} + +/// Adds the live hierarchy panel. +pub struct HierarchyPlugin; + +impl Plugin for HierarchyPlugin { + fn build(&self, app: &mut App) { + app.init_resource::().add_systems( + Update, + (rebuild_hierarchy, sync_selected_rows, style_hierarchy_rows) + .chain() + .run_if(editor_active), + ); + } +} + +/// Collects the full world tree: roots first, children in `Children` order. +/// +/// Roots are entities without `ChildOf`, sorted by [`Entity`]. Unnamed entities +/// fall back to `Entity#{index}`. A visited set prevents duplicate rows and a +/// depth cap of [`MAX_DEPTH`] prevents pathological trees from stalling the UI. +pub fn collect_rows(world: &mut World) -> Vec { + collect_tree(world, false) + .into_iter() + .map(|row| HierarchyRowData { + entity: row.entity, + name: row.name, + depth: row.depth, + }) + .collect() +} + +/// Collects the scene tree: only named, non-UI spatial entities may be roots. +/// +/// Children of a scene root are listed regardless of whether they have a +/// `Name`, so unnamed scene children still show up with the index fallback. +fn collect_scene_rows(world: &World) -> Vec { + collect_tree(world, true) +} + +/// Shared tree walk. +/// +/// When `scene_only` is set, roots additionally require `Name` and reject +/// `Node`, which keeps the editor UI, global observers and window entities out +/// of the hierarchy (and out of the rebuild snapshot). +fn collect_tree(world: &World, scene_only: bool) -> Vec { + let mut roots: Vec = world + .iter_entities() + .filter_map(|entity| { + let id = entity.id(); + if entity.get::().is_some() { + return None; + } + if scene_only && !is_scene_root(world, id) { + return None; + } + Some(id) + }) + .collect(); + roots.sort(); + + let mut rows = Vec::new(); + let mut visited = HashSet::new(); + for root in roots { + push_subtree(world, root, None, 0, &mut visited, &mut rows); + } + rows +} + +/// Whether an entity is a root of the editable scene rather than of the editor +/// or of an engine-internal helper (UI nodes, observers, window and gizmo +/// renderer entities, ...). +fn is_scene_root(world: &World, entity: Entity) -> bool { + world.get::(entity).is_some() + && world.get::(entity).is_some() + && world.get::(entity).is_none() +} + +/// Depth-first, in-order push of one entity and its descendants. +fn push_subtree( + world: &World, + entity: Entity, + parent: Option, + depth: usize, + visited: &mut HashSet, + rows: &mut Vec, +) { + if depth > MAX_DEPTH || !visited.insert(entity) { + return; + } + + let name = world + .get::(entity) + .map(|name| name.as_str().to_owned()) + .unwrap_or_else(|| format!("Entity#{}", entity.index())); + let children: Vec = world + .get::(entity) + .map(|children| children.to_vec()) + .unwrap_or_default(); + + rows.push(TreeRow { + entity, + name, + parent, + depth, + }); + + if depth >= MAX_DEPTH { + return; + } + for child in children { + push_subtree(world, child, Some(entity), depth + 1, visited, rows); + } +} + +/// Rebuilds the panel contents when the scene tree snapshot changes. +/// +/// This is an exclusive system so the old list is despawned and the new one is +/// spawned in the same tick: `sync_selected_rows` never observes stale rows and +/// a rebuild can never run twice for one snapshot. +fn rebuild_hierarchy(world: &mut World) { + let rows = collect_scene_rows(world); + let root_count = rows.iter().filter(|row| row.depth == 0).count(); + let signature: Vec<(Entity, String, Option, usize)> = rows + .iter() + .map(|row| (row.entity, row.name.clone(), row.parent, row.depth)) + .collect(); + + let previous = { + let state = world.resource::(); + (state.signature.clone(), state.rows, state.roots) + }; + if previous.0 == signature { + return; + } + + let panel = world + .query_filtered::>() + .iter(world) + .next(); + let Some(panel) = panel else { + return; + }; + + let theme = world.resource::().clone(); + let selection = *world.resource::(); + + // Drop the previous list (and its rows) before re-populating the panel. + let mut list_query = world.query_filtered::>(); + let old_lists: Vec = list_query.iter(world).collect(); + drop(list_query); + for list in old_lists { + world.despawn(list); + } + // The shell's placeholder ("Waiting for scene...") is replaced by the list. + world.entity_mut(panel).despawn_children(); + + let header = world + .spawn(hierarchy_label("Hierarchy", 14.0, theme.text)) + .id(); + world.entity_mut(panel).add_child(header); + + let list = world + .spawn(( + HierarchyList, + ListBox, + ScrollArea, + ScrollPosition::default(), + Node { + width: percent(100), + flex_grow: 1.0, + flex_direction: FlexDirection::Column, + overflow: Overflow::scroll_y(), + ..default() + }, + BackgroundColor(Color::NONE), + )) + .id(); + world.entity_mut(list).observe(hierarchy_row_activated); + world.entity_mut(panel).add_child(list); + + for row in &rows { + let is_selected = selection.0 == Some(row.entity); + let row_entity = world + .spawn(( + ListItem, + HierarchyRow { target: row.entity }, + Node { + width: percent(100), + height: px(22.0), + flex_shrink: 0.0, + padding: UiRect::left(px(6.0 + row.depth as f32 * 14.0)), + align_items: AlignItems::Center, + ..default() + }, + BackgroundColor(if is_selected { + theme.row_selected + } else { + Color::NONE + }), + Hovered::default(), + )) + .id(); + if is_selected { + world.entity_mut(row_entity).insert(Selected); + } + + let text = world + .spawn(hierarchy_label( + row.name.clone(), + 13.0, + if is_selected { + theme.text + } else { + theme.text_muted + }, + )) + .id(); + world.entity_mut(row_entity).add_child(text); + world.entity_mut(list).add_child(row_entity); + } + + let count_changed = previous.1 != rows.len() || previous.2 != root_count; + *world.resource_mut::() = HierarchyTreeState { + signature, + rows: rows.len(), + roots: root_count, + }; + if count_changed || previous.1 == 0 { + info!("hierarchy: {} rows, {} roots", rows.len(), root_count); + debug!( + "hierarchy rows: {:?}", + rows.iter().map(|row| row.name.as_str()).collect::>() + ); + } +} + +/// Creates a plain editor label bundle. +fn hierarchy_label(value: impl Into, size: f32, color: Color) -> impl Bundle { + ( + Text::new(value.into()), + TextFont { + font: FontSource::default(), + font_size: FontSize::Px(size), + ..default() + }, + TextColor(color), + ) +} + +/// Observer on the list entity: a committed row activation selects its target. +fn hierarchy_row_activated( + change: On>, + rows: Query<&HierarchyRow>, + mut selection: ResMut, +) { + let value = change.event().value; + let Ok(row) = rows.get(value) else { + return; + }; + if selection.0 != Some(row.target) { + selection.0 = Some(row.target); + } +} + +/// Keeps the widget's `Selected` marker in sync with [`Selection`]. +fn sync_selected_rows( + mut commands: Commands, + selection: Res, + rows: Query<(Entity, &HierarchyRow, Has)>, +) { + for (entity, row, selected) in &rows { + let should_select = selection.0 == Some(row.target); + if should_select && !selected { + commands.entity(entity).insert(Selected); + } else if !should_select && selected { + commands.entity(entity).remove::(); + } + } +} + +/// Styles rows from [`UiTheme`] using the `Selected` marker and pointer hover. +fn style_hierarchy_rows( + theme: Res, + selection: Res, + mut rows: Query<( + &HierarchyRow, + &mut BackgroundColor, + Has, + &Hovered, + &Children, + )>, + mut texts: Query<&mut TextColor>, +) { + for (row, mut background, selected, hovered, children) in &mut rows { + let is_selected = selected || selection.0 == Some(row.target); + let is_hovered = hovered.get() && !is_selected; + let background_color = if is_selected { + theme.row_selected + } else if is_hovered { + theme.row_hover + } else { + Color::NONE + }; + if background.0 != background_color { + background.0 = background_color; + } + + let text_color = if is_selected || is_hovered { + theme.text + } else { + theme.text_muted + }; + for child in children.iter() { + if let Ok(mut color) = texts.get_mut(child) { + if color.0 != text_color { + color.0 = text_color; + } + } + } + } +} + +#[cfg(test)] +mod tests { + use super::*; + + /// Keeps only the rows for entities spawned by a test. + /// + /// A bare [`World`] can contain internal entities (for example the reserved + /// index-zero entity); they are valid hierarchy roots but not part of these + /// focused ordering tests. + fn rows_for(world: &mut World, entities: &[Entity]) -> Vec { + collect_rows(world) + .into_iter() + .filter(|row| entities.contains(&row.entity)) + .collect() + } + + #[test] + fn collect_rows_walks_three_levels_in_children_order() { + let mut world = World::new(); + let root = world.spawn(Name::new("Root")).id(); + let child = world.spawn((Name::new("Child"), ChildOf(root))).id(); + let grandchild = world.spawn((Name::new("Grandchild"), ChildOf(child))).id(); + let sibling = world.spawn((Name::new("Sibling"), ChildOf(root))).id(); + + let rows = rows_for(&mut world, &[root, child, grandchild, sibling]); + let order: Vec<(&str, usize)> = rows + .iter() + .map(|row| (row.name.as_str(), row.depth)) + .collect(); + assert_eq!( + order, + vec![("Root", 0), ("Child", 1), ("Grandchild", 2), ("Sibling", 1),] + ); + assert_eq!(rows[0].entity, root); + assert_eq!(rows[1].entity, child); + assert_eq!(rows[2].entity, grandchild); + assert_eq!(rows[3].entity, sibling); + } + + #[test] + fn collect_rows_falls_back_to_entity_index() { + let mut world = World::new(); + let root = world.spawn(Name::new("Root")).id(); + let unnamed_child = world.spawn(ChildOf(root)).id(); + let unnamed_root = world.spawn_empty().id(); + + let rows = rows_for(&mut world, &[root, unnamed_child, unnamed_root]); + assert_eq!(rows.len(), 3); + let row = |entity: Entity| { + rows.iter() + .find(|row| row.entity == entity) + .expect("row for entity") + }; + assert_eq!(row(root).name, "Root"); + assert_eq!(row(root).depth, 0); + assert_eq!( + row(unnamed_child).name, + format!("Entity#{}", unnamed_child.index()) + ); + assert_eq!(row(unnamed_child).depth, 1); + assert_eq!( + row(unnamed_root).name, + format!("Entity#{}", unnamed_root.index()) + ); + assert_eq!(row(unnamed_root).depth, 0); + } + + #[test] + fn collect_rows_caps_depth_at_64() { + let mut world = World::new(); + let mut parent = world.spawn(Name::new("0")).id(); + let mut chain = vec![parent]; + for depth in 1..70 { + parent = world + .spawn((Name::new(format!("{depth}")), ChildOf(parent))) + .id(); + chain.push(parent); + } + + let rows = rows_for(&mut world, &chain); + assert_eq!(rows.len(), MAX_DEPTH + 1); + assert_eq!(rows.last().expect("rows").depth, MAX_DEPTH); + assert!(rows.iter().all(|row| row.depth <= MAX_DEPTH)); + } + + #[test] + fn value_change_selects_the_row_target() { + let mut world = World::new(); + world.init_resource::(); + + let list = world.spawn(HierarchyList).id(); + let target = world.spawn(Name::new("Target")).id(); + let row = world.spawn((ListItem, HierarchyRow { target })).id(); + world.entity_mut(list).observe(hierarchy_row_activated); + + world.trigger(ValueChange:: { + source: list, + value: row, + is_final: true, + }); + + assert_eq!(world.resource::().0, Some(target)); + } + + #[test] + fn value_change_ignores_entities_without_a_row() { + let mut world = World::new(); + world.init_resource::(); + + let list = world.spawn(HierarchyList).id(); + let stranger = world.spawn(Name::new("Stranger")).id(); + world.entity_mut(list).observe(hierarchy_row_activated); + + world.trigger(ValueChange:: { + source: list, + value: stranger, + is_final: true, + }); + + assert_eq!(world.resource::().0, None); + } +} diff --git a/crates/bevy_forge_runtime/src/inspector.rs b/crates/bevy_forge_runtime/src/inspector.rs new file mode 100644 index 0000000..28461a2 --- /dev/null +++ b/crates/bevy_forge_runtime/src/inspector.rs @@ -0,0 +1,784 @@ +//! Reflection-driven inspector for the selected entity. +//! +//! M0 inspects three known components (`Name`, `Transform`, `Visibility`): they are +//! fetched with typed queries and then walked with `bevy_reflect`. Generic discovery +//! of arbitrary component types through `TypeRegistry` is explicitly **M1** work and +//! is not implemented here; this panel only shows the three M0 components the brief +//! promises. + +use bevy::{ + prelude::*, + reflect::{enums::VariantType, PartialReflect, ReflectMut, ReflectRef}, + text::FontSize, + ui_widgets::{ + Slider, SliderRange, SliderStep, SliderThumb, SliderValue, TrackClick, ValueChange, + }, +}; + +use crate::{ + plugin::{editor_active, Selection}, + ui::{InspectorPanel, UiTheme}, +}; + +/// Minimum / maximum value of the translation sliders. +const SLIDER_MIN: f32 = -20.0; +const SLIDER_MAX: f32 = 20.0; +/// Step used by keyboard interaction and by the widget's step notifications. +const SLIDER_STEP: f32 = 0.1; +/// Above this delta the slider value is considered stale and is re-synced. +const SYNC_TOLERANCE: f32 = 0.001; +/// Maximum reflection nesting depth for the field summary. +const MAX_SUMMARY_DEPTH: usize = 4; + +/// One flattened, displayable reflection field. +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct ReflectedField { + /// Dotted display label, e.g. `translation.x`. + pub label: String, + /// Formatted value, e.g. `1.5`. + pub value: String, + /// Path of field names (or tuple indices) below the summarized root. + pub path: Vec, + /// Whether this leaf is a scalar numeric value a generic editor could edit. + pub editable: bool, +} + +/// Flattens the reflected field tree below `value` into display rows. +/// +/// Named structs, tuple structs, enums and scalar leaves are handled. The walk is +/// depth-limited so opaque wrappers (for example the hash wrapper inside [`Name`]) +/// cannot recurse forever. +pub fn summarize_reflect(value: &dyn Reflect) -> Vec { + // `Name` wraps a pre-hashed `Hashed>`, whose reflection is opaque and + // whose Display output is a debug dump. Present the readable name instead; the + // value still comes from a reflected downcast, not from a hard-coded string. + if let Some(name) = value.downcast_ref::() { + return vec![ReflectedField { + label: "Name".to_string(), + value: name.as_str().to_string(), + path: vec!["name".to_string()], + editable: false, + }]; + } + + let mut fields = Vec::new(); + collect_fields(value.as_partial_reflect(), &mut Vec::new(), 0, &mut fields); + fields +} + +/// Writes `value` into an `f32` field at `path`, e.g. `["translation", "x"]`. +/// +/// Returns `false` (without panicking) when a path segment does not exist or when +/// the addressed field is not an `f32`. +pub fn apply_f32_path(root: &mut dyn Reflect, path: &[&str], value: f32) -> bool { + apply_f32_in(root.as_partial_reflect_mut(), path, value) +} + +/// Slider attached to one translation axis of the selected entity. +#[derive(Component, Debug, Clone, Copy, PartialEq, Eq)] +pub struct InspectorSlider { + /// Entity whose `Transform` is edited by this slider. + pub entity: Entity, + /// Translation axis edited by this slider. + pub axis: TransformAxis, +} + +/// Translation axis edited by an [`InspectorSlider`]. +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub enum TransformAxis { + /// X axis. + X, + /// Y axis. + Y, + /// Z axis. + Z, +} + +impl TransformAxis { + const ALL: [Self; 3] = [Self::X, Self::Y, Self::Z]; + + fn index(self) -> usize { + match self { + Self::X => 0, + Self::Y => 1, + Self::Z => 2, + } + } + + fn name(self) -> &'static str { + match self { + Self::X => "x", + Self::Y => "y", + Self::Z => "z", + } + } +} + +/// Adds the editor inspector panel behavior. +pub struct InspectorPlugin; + +impl Plugin for InspectorPlugin { + fn build(&self, app: &mut App) { + app.init_resource::().add_systems( + Update, + // Sync the current sliders before a selection change rebuilds/despawns + // them. The reverse order queues a SliderValue insert for an entity that + // the rebuild has already despawned, which panics in Bevy's command queue. + (sync_inspector_from_transform, rebuild_inspector) + .chain() + .run_if(editor_active), + ); + } +} + +/// Value label next to one translation slider. +#[derive(Component)] +struct InspectorValueLabel { + axis: TransformAxis, +} + +/// Tracks what the panel currently displays so it only rebuilds on selection change. +#[derive(Resource, Default)] +struct InspectorBuildState { + initialized: bool, + selection: Option, +} + +/// Owned description of the selected entity, built once per selection change. +struct InspectorView { + name: String, + translation: [f32; 3], + rotation: String, + scale: String, + visibility: String, + has_transform: bool, + has_visibility: bool, +} + +/// Rebuilds the inspector body when the selection changes. +fn rebuild_inspector( + mut commands: Commands, + panels: Query<(Entity, Option<&Children>), With>, + selection: Res, + names: Query<&Name>, + transforms: Query<&Transform>, + visibilities: Query<&Visibility>, + theme: Res, + mut built: ResMut, +) { + if built.initialized && built.selection == selection.0 { + return; + } + let Some((panel_entity, children)) = panels.iter().next() else { + return; + }; + + built.initialized = true; + built.selection = selection.0; + + if let Some(children) = children { + for child in children.iter() { + commands.entity(child).despawn(); + } + } + + let selected = selection.0; + let view = selected.map(|entity| build_view(entity, &names, &transforms, &visibilities)); + + if let Some(entity) = selected { + let name = view + .as_ref() + .map(|view| view.name.as_str()) + .unwrap_or(""); + info!("inspector: selected {entity} ({name})"); + } + + commands.entity(panel_entity).with_children(|panel| { + panel.spawn(label("Inspector", 14.0, theme.text)); + + let Some(view) = &view else { + panel.spawn(label( + "Select an entity in the hierarchy", + 11.0, + theme.text_muted, + )); + return; + }; + + spawn_read_only_row(panel, "Name", &view.name, &theme); + panel.spawn(label("Transform", 11.0, theme.accent)); + + if view.has_transform { + if let Some(entity) = selected { + for axis in TransformAxis::ALL { + spawn_slider_row(panel, entity, axis, view.translation[axis.index()], &theme); + } + } + spawn_read_only_row(panel, "Rotation", &view.rotation, &theme); + spawn_read_only_row(panel, "Scale", &view.scale, &theme); + } else { + panel.spawn(label("No Transform component", 11.0, theme.text_muted)); + } + + if view.has_visibility { + spawn_read_only_row(panel, "Visibility", &view.visibility, &theme); + } else { + panel.spawn(label("No Visibility component", 11.0, theme.text_muted)); + } + }); +} + +/// Applies a slider edit to the selected entity's `Transform` through reflection. +fn on_slider_value_change( + change: On>, + sliders: Query<&InspectorSlider>, + mut transforms: Query<&mut Transform>, + mut commands: Commands, +) { + let Ok(slider) = sliders.get(change.source) else { + return; + }; + let Ok(mut transform) = transforms.get_mut(slider.entity) else { + return; + }; + + let path = ["translation", slider.axis.name()]; + if apply_f32_path(transform.as_reflect_mut(), &path, change.value) { + // Keep the widget's own state in step with the edit; the gizmo-facing + // sync system below handles external Transform changes. + commands + .entity(change.source) + .insert(SliderValue(change.value)); + } +} + +/// Copies the selected entity's `Transform.translation` into slider state and labels. +/// +/// This runs every frame while the editor is active. The small tolerance prevents a +/// slider drag (which already applied the value to the `Transform`) from being +/// overwritten by a slightly stale widget value. +fn sync_inspector_from_transform( + mut commands: Commands, + selection: Res, + transforms: Query<&Transform>, + sliders: Query<(Entity, &InspectorSlider, &SliderValue, &SliderRange)>, + children: Query<&Children>, + mut thumbs: Query<&mut Node, With>, + mut labels: Query<(&InspectorValueLabel, &mut Text)>, +) { + let Some(entity) = selection.0 else { + return; + }; + let Ok(transform) = transforms.get(entity) else { + return; + }; + let translation = transform.translation; + let values = [translation.x, translation.y, translation.z]; + + for (slider_entity, slider, current, range) in &sliders { + let target = range.clamp(values[slider.axis.index()]); + if (current.0 - target).abs() > SYNC_TOLERANCE { + commands.entity(slider_entity).insert(SliderValue(target)); + } + + let thumb_percent = percent(range.thumb_position(target) * 100.0); + for descendant in children.iter_descendants(slider_entity) { + if let Ok(mut thumb) = thumbs.get_mut(descendant) { + if thumb.left != thumb_percent { + thumb.left = thumb_percent; + } + break; + } + } + } + + for (label, mut text) in &mut labels { + let formatted = format!("{:.1}", values[label.axis.index()]); + if text.0 != formatted { + text.0 = formatted; + } + } +} + +/// Builds the owned display model for one entity with reflection traversal. +fn build_view( + entity: Entity, + names: &Query<&Name>, + transforms: &Query<&Transform>, + visibilities: &Query<&Visibility>, +) -> InspectorView { + let mut view = InspectorView { + name: format!("Entity#{}", entity.index()), + translation: [0.0; 3], + rotation: "-".to_string(), + scale: "-".to_string(), + visibility: "-".to_string(), + has_transform: false, + has_visibility: false, + }; + + if let Ok(name) = names.get(entity) { + let fields = summarize_reflect(name); + view.name = fields + .first() + .map(|field| field.value.clone()) + .unwrap_or_else(|| name.as_str().to_string()); + } + + if let Ok(transform) = transforms.get(entity) { + let fields = summarize_reflect(transform); + for axis in TransformAxis::ALL { + view.translation[axis.index()] = field_f32(&fields, &["translation", axis.name()]) + .unwrap_or_else(|| translation_component(transform.translation, axis)); + } + view.rotation = joined_component_values(&fields, "rotation"); + view.scale = joined_component_values(&fields, "scale"); + view.has_transform = true; + } + + if let Ok(visibility) = visibilities.get(entity) { + let fields = summarize_reflect(visibility); + view.visibility = fields + .first() + .map(|field| field.value.clone()) + .unwrap_or_else(|| format!("{visibility:?}")); + view.has_visibility = true; + } + + view +} + +fn translation_component(translation: Vec3, axis: TransformAxis) -> f32 { + match axis { + TransformAxis::X => translation.x, + TransformAxis::Y => translation.y, + TransformAxis::Z => translation.z, + } +} + +/// Spawns one `X`/`Y`/`Z` slider row with its value label. +fn spawn_slider_row( + parent: &mut ChildSpawnerCommands, + entity: Entity, + axis: TransformAxis, + value: f32, + theme: &UiTheme, +) { + parent + .spawn(Node { + width: percent(100), + height: px(24), + flex_direction: FlexDirection::Row, + align_items: AlignItems::Center, + column_gap: px(6), + ..default() + }) + .with_children(|row| { + row.spawn(label(axis.name(), 12.0, theme.text_muted)); + + row.spawn(( + Node { + flex_grow: 1.0, + height: px(12), + display: Display::Flex, + flex_direction: FlexDirection::Column, + justify_content: JustifyContent::Center, + align_items: AlignItems::Stretch, + ..default() + }, + Slider { + track_click: TrackClick::Snap, + ..default() + }, + SliderValue(value), + SliderRange::new(SLIDER_MIN, SLIDER_MAX), + SliderStep(SLIDER_STEP), + InspectorSlider { entity, axis }, + )) + .observe(on_slider_value_change) + .with_children(|slider| { + // Background rail. + slider.spawn(( + Node { + height: px(6), + border_radius: BorderRadius::all(px(3)), + ..default() + }, + BackgroundColor(theme.panel_bg_alt), + )); + + // Invisible track, inset by the thumb width so percent placement works. + slider + .spawn(Node { + display: Display::Flex, + position_type: PositionType::Absolute, + left: px(0), + right: px(12), + top: px(0), + bottom: px(0), + ..default() + }) + .with_children(|track| { + track.spawn(( + SliderThumb, + Node { + display: Display::Flex, + width: px(12), + height: px(12), + position_type: PositionType::Absolute, + left: percent(slider_thumb_percent(value, SLIDER_MIN, SLIDER_MAX)), + border_radius: BorderRadius::MAX, + ..default() + }, + BackgroundColor(theme.accent), + )); + }); + }); + + row.spawn(( + InspectorValueLabel { axis }, + Text::new(format!("{value:.1}")), + TextFont { + font: FontSource::default(), + font_size: FontSize::Px(11.0), + ..default() + }, + TextColor(theme.text_muted), + Node { + width: px(44), + ..default() + }, + )); + }); +} + +/// Spawns a label/value row for read-only data. +fn spawn_read_only_row( + parent: &mut ChildSpawnerCommands, + name: &str, + value: &str, + theme: &UiTheme, +) { + parent + .spawn(Node { + width: percent(100), + min_height: px(18), + flex_direction: FlexDirection::Row, + justify_content: JustifyContent::SpaceBetween, + align_items: AlignItems::Center, + column_gap: px(8), + ..default() + }) + .with_children(|row| { + row.spawn(label(name, 12.0, theme.text_muted)); + row.spawn(label(value, 12.0, theme.text)); + }); +} + +/// Builds a UI label bundle with the split `Text` / `TextFont` / `TextColor` API. +fn label(value: impl Into, size: f32, color: Color) -> impl Bundle { + ( + Text::new(value.into()), + TextFont { + font: FontSource::default(), + font_size: FontSize::Px(size), + ..default() + }, + TextColor(color), + ) +} + +fn slider_thumb_percent(value: f32, min: f32, max: f32) -> f32 { + if max <= min { + return 0.0; + } + ((value - min) / (max - min) * 100.0).clamp(0.0, 100.0) +} + +// --------------------------------------------------------------------------- +// Reflection helpers +// --------------------------------------------------------------------------- + +fn collect_fields( + value: &dyn PartialReflect, + path: &mut Vec, + depth: usize, + out: &mut Vec, +) { + if depth > MAX_SUMMARY_DEPTH { + push_leaf(value, path, out); + return; + } + + match value.reflect_ref() { + ReflectRef::Struct(struct_value) => { + let field_count = struct_value.field_len(); + if field_count == 0 { + push_leaf(value, path, out); + return; + } + for index in 0..field_count { + let Some(field) = struct_value.field_at(index) else { + continue; + }; + let field_name = struct_value.name_at(index).unwrap_or("?"); + path.push(field_name.to_string()); + collect_fields(field, path, depth + 1, out); + path.pop(); + } + } + ReflectRef::TupleStruct(tuple_struct) => { + let field_count = tuple_struct.field_len(); + if field_count == 0 { + push_leaf(value, path, out); + return; + } + for index in 0..field_count { + let Some(field) = tuple_struct.field(index) else { + continue; + }; + path.push(index.to_string()); + collect_fields(field, path, depth + 1, out); + path.pop(); + } + } + ReflectRef::Enum(enum_value) => match enum_value.variant_type() { + VariantType::Unit => { + let label = if path.is_empty() { + short_type_label(value) + } else { + path.join(".") + }; + out.push(ReflectedField { + label, + value: enum_value.variant_name().to_string(), + path: path.clone(), + editable: false, + }); + } + VariantType::Tuple | VariantType::Struct => { + for index in 0..enum_value.field_len() { + let Some(field) = enum_value.field_at(index) else { + continue; + }; + let field_name = enum_value + .name_at(index) + .map(str::to_string) + .unwrap_or_else(|| index.to_string()); + path.push(field_name); + collect_fields(field, path, depth + 1, out); + path.pop(); + } + } + }, + _ => push_leaf(value, path, out), + } +} + +fn push_leaf(value: &dyn PartialReflect, path: &[String], out: &mut Vec) { + let label = if path.is_empty() { + short_type_label(value) + } else { + path.join(".") + }; + out.push(ReflectedField { + label, + value: display_value(value), + path: path.to_vec(), + editable: is_numeric(value), + }); +} + +fn apply_f32_in(value: &mut dyn PartialReflect, path: &[&str], new_value: f32) -> bool { + let Some((head, tail)) = path.split_first() else { + return false; + }; + let Some(field) = reflected_field_mut(value, head) else { + return false; + }; + if tail.is_empty() { + match field.try_downcast_mut::() { + Some(slot) => { + *slot = new_value; + true + } + None => false, + } + } else { + apply_f32_in(field, tail, new_value) + } +} + +fn reflected_field_mut<'a>( + value: &'a mut dyn PartialReflect, + name: &str, +) -> Option<&'a mut dyn PartialReflect> { + match value.reflect_mut() { + ReflectMut::Struct(struct_value) => struct_value.field_mut(name), + ReflectMut::TupleStruct(tuple_struct) => name + .parse::() + .ok() + .and_then(|index| tuple_struct.field_mut(index)), + ReflectMut::Enum(enum_value) => enum_value.field_mut(name), + _ => None, + } +} + +fn field_f32(fields: &[ReflectedField], path: &[&str]) -> Option { + field_by_path(fields, path).and_then(|field| field.value.parse::().ok()) +} + +fn field_by_path<'a>(fields: &'a [ReflectedField], path: &[&str]) -> Option<&'a ReflectedField> { + fields.iter().find(|field| { + field + .path + .iter() + .map(String::as_str) + .eq(path.iter().copied()) + }) +} + +fn joined_component_values(fields: &[ReflectedField], group: &str) -> String { + let values: Vec<&str> = fields + .iter() + .filter(|field| field.path.first().map(String::as_str) == Some(group)) + .map(|field| field.value.as_str()) + .collect(); + if values.is_empty() { + "-".to_string() + } else { + values.join(", ") + } +} + +fn short_type_label(value: &dyn PartialReflect) -> String { + value + .reflect_type_path() + .rsplit("::") + .next() + .unwrap_or("value") + .to_string() +} + +fn is_numeric(value: &dyn PartialReflect) -> bool { + value.try_downcast_ref::().is_some() || value.try_downcast_ref::().is_some() +} + +fn display_value(value: &dyn PartialReflect) -> String { + if let Some(value) = value.try_downcast_ref::() { + return format_f32(*value); + } + if let Some(value) = value.try_downcast_ref::() { + return format_f64(*value); + } + if let Some(value) = value.try_downcast_ref::() { + return value.to_string(); + } + if let Some(value) = value.try_downcast_ref::() { + return value.clone(); + } + value.to_string() +} + +fn format_f32(value: f32) -> String { + format_number(value as f64) +} + +fn format_f64(value: f64) -> String { + format_number(value) +} + +fn format_number(value: f64) -> String { + let rounded = (value * 1000.0).round() / 1000.0; + if rounded == 0.0 { + "0.0".to_string() + } else if rounded.fract() == 0.0 { + format!("{rounded:.1}") + } else { + format!("{rounded}") + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[derive(Reflect)] + struct Pair(f32, bool); + + #[derive(Reflect)] + struct Point { + x: f32, + y: f32, + } + + fn field<'a>(fields: &'a [ReflectedField], path: &[&str]) -> &'a ReflectedField { + field_by_path(fields, path) + .unwrap_or_else(|| panic!("missing field {path:?} in {fields:?}")) + } + + #[test] + fn transform_summary_contains_translation_axes() { + let transform = Transform::from_xyz(1.5, -2.0, 3.25); + let fields = summarize_reflect(&transform); + + assert_eq!(field(&fields, &["translation", "x"]).label, "translation.x"); + assert_eq!(field(&fields, &["translation", "x"]).value, "1.5"); + assert_eq!(field(&fields, &["translation", "y"]).value, "-2.0"); + assert_eq!(field(&fields, &["translation", "z"]).value, "3.25"); + assert!(field(&fields, &["translation", "x"]).editable); + assert!(field_by_path(&fields, &["rotation", "w"]).is_some()); + assert!(field_by_path(&fields, &["scale", "y"]).is_some()); + } + + #[test] + fn name_summary_contains_the_name() { + let fields = summarize_reflect(&Name::new("Cube")); + assert_eq!(fields.len(), 1); + assert_eq!(fields[0].value, "Cube"); + assert!(!fields[0].editable); + } + + #[test] + fn visibility_summary_is_non_empty_and_contains_variant() { + let fields = summarize_reflect(&Visibility::Visible); + assert!(!fields.is_empty()); + assert!(fields.iter().any(|field| field.value.contains("Visible"))); + } + + #[test] + fn tuple_struct_summary_uses_index_paths() { + let fields = summarize_reflect(&Pair(1.25, true)); + assert_eq!(field(&fields, &["0"]).value, "1.25"); + assert_eq!(field(&fields, &["1"]).value, "true"); + } + + #[test] + fn named_struct_summary_flattens_fields() { + let fields = summarize_reflect(&Point { x: 2.0, y: -0.5 }); + assert_eq!(field(&fields, &["x"]).value, "2.0"); + assert_eq!(field(&fields, &["y"]).value, "-0.5"); + } + + #[test] + fn apply_f32_path_changes_translation_x() { + let mut transform = Transform::from_xyz(0.0, 0.0, 0.0); + assert!(apply_f32_path(&mut transform, &["translation", "x"], 2.5)); + assert_eq!(transform.translation, Vec3::new(2.5, 0.0, 0.0)); + } + + #[test] + fn apply_f32_path_rejects_wrong_path_without_panicking() { + let mut transform = Transform::default(); + assert!(!apply_f32_path(&mut transform, &[], 1.0)); + assert!(!apply_f32_path(&mut transform, &["translation"], 1.0)); + assert!(!apply_f32_path(&mut transform, &["translation", "w"], 1.0)); + assert!(!apply_f32_path( + &mut transform, + &["translation", "x", "extra"], + 1.0 + )); + assert!(!apply_f32_path(&mut transform, &["nonexistent"], 1.0)); + assert_eq!(transform, Transform::default()); + } +} diff --git a/crates/bevy_forge_runtime/src/lib.rs b/crates/bevy_forge_runtime/src/lib.rs new file mode 100644 index 0000000..8ccc0bd --- /dev/null +++ b/crates/bevy_forge_runtime/src/lib.rs @@ -0,0 +1,30 @@ +//! Bevy Forge live editor runtime (v2 M0 spike). +//! +//! [`EditorPlugin`] installs the editor resources, the fixed Bevy UI shell +//! (toolbar, hierarchy panel, inspector panel, status bar) and the module plugins +//! that provide hierarchy, inspector, gizmo and screenshot behavior. +//! +//! The plugin is designed to be added after `DefaultPlugins`: +//! +//! ```ignore +//! App::new() +//! .add_plugins(DefaultPlugins) +//! .add_plugins(EditorPlugin) +//! .run(); +//! ``` + +pub mod gizmo; +pub mod hierarchy; +pub mod inspector; +pub mod plugin; +pub mod screenshot; +pub mod ui; + +pub use gizmo::GizmoPlugin; +pub use hierarchy::HierarchyPlugin; +pub use inspector::InspectorPlugin; +pub use plugin::{editor_active, EditorPlugin, EditorState, InspectorSource, Selection}; +pub use screenshot::ScreenshotPlugin; +pub use ui::{ + EditorLayout, EditorRoot, HierarchyPanel, InspectorPanel, StatusBar, Toolbar, UiTheme, +}; diff --git a/crates/bevy_forge_runtime/src/plugin.rs b/crates/bevy_forge_runtime/src/plugin.rs new file mode 100644 index 0000000..5af857b --- /dev/null +++ b/crates/bevy_forge_runtime/src/plugin.rs @@ -0,0 +1,151 @@ +//! The root editor plugin and the shared editor resources. + +use bevy::prelude::*; + +use crate::{ + gizmo::GizmoPlugin, hierarchy::HierarchyPlugin, inspector::InspectorPlugin, + screenshot::ScreenshotPlugin, ui::shell::EditorUiPlugin, +}; + +/// Installs the Bevy Forge live editor on top of `DefaultPlugins`. +/// +/// The plugin is usable exactly once per app. It does not overwrite the +/// [`EditorState`] or [`Selection`] resources when the host app has already +/// inserted them. +pub struct EditorPlugin; + +impl Plugin for EditorPlugin { + fn build(&self, app: &mut App) { + app.init_resource::() + .init_resource::() + .add_plugins(( + EditorUiPlugin, + HierarchyPlugin, + InspectorPlugin, + GizmoPlugin, + ScreenshotPlugin, + )) + .add_systems(Update, clear_dead_selection); + } +} + +/// Whether the editor UI and behavior are currently enabled. +#[derive(Resource, Debug, Clone)] +pub struct EditorState { + /// `true` while the editor is shown. Defaults to `true`. + pub enabled: bool, +} + +impl Default for EditorState { + fn default() -> Self { + Self { enabled: true } + } +} + +impl EditorState { + /// Flips the editor on or off. + pub fn toggle(&mut self) { + self.enabled = !self.enabled; + } +} + +/// Current single selection. `Selection(None)` means nothing is selected. +#[derive(Resource, Debug, Default, Clone, Copy, PartialEq, Eq)] +pub struct Selection(pub Option); + +/// Optional bridge between the inspector and host-app-specific reflection data. +/// +/// M0 does not need a concrete implementation; T03 uses typed `Transform` / +/// `Name` / `Visibility` queries. The trait is part of the frozen public API so +/// M1 can plug in a component registry without changing the plugin surface. +pub trait InspectorSource { + /// Returns the reflected component data for `entity`, if any. + fn reflect_component(&self, entity: Entity) -> Option<&dyn Reflect>; +} + +/// Run condition: systems gated on this only run while the editor is enabled. +pub fn editor_active(state: Res) -> bool { + state.enabled +} + +/// Clears [`Selection`] when the selected entity was despawned. +fn clear_dead_selection(mut selection: ResMut, entities: Query) { + let cleared = clear_selection_if_dead(&mut selection, |entity| entities.get(entity).is_ok()); + if cleared { + debug!("selection: cleared (entity no longer exists)"); + } +} + +/// Clears the selection if `entity_alive` reports that it is gone. +/// +/// Returns `true` when a selection was cleared. Extracted so the cleanup rule +/// can be unit tested without configuring a full app. +pub(crate) fn clear_selection_if_dead( + selection: &mut Selection, + entity_alive: impl Fn(Entity) -> bool, +) -> bool { + let Some(entity) = selection.0 else { + return false; + }; + if entity_alive(entity) { + return false; + } + selection.0 = None; + true +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn editor_state_defaults_to_enabled() { + assert!(EditorState::default().enabled); + } + + #[test] + fn editor_state_toggles() { + let mut state = EditorState::default(); + state.toggle(); + assert!(!state.enabled); + state.toggle(); + assert!(state.enabled); + } + + #[test] + fn selection_defaults_to_none() { + assert_eq!(Selection::default().0, None); + } + + #[test] + fn dead_selection_is_cleared() { + let mut selection = Selection(Some(Entity::PLACEHOLDER)); + assert!(clear_selection_if_dead(&mut selection, |_| false)); + assert_eq!(selection.0, None); + } + + #[test] + fn live_selection_is_kept() { + let mut selection = Selection(Some(Entity::PLACEHOLDER)); + assert!(!clear_selection_if_dead(&mut selection, |_| true)); + assert_eq!(selection.0, Some(Entity::PLACEHOLDER)); + } + + #[test] + fn no_selection_is_a_no_op() { + let mut selection = Selection(None); + assert!(!clear_selection_if_dead(&mut selection, |_| false)); + assert_eq!(selection.0, None); + } + + #[test] + fn plugin_registers_resources_without_overwriting_existing_ones() { + let mut app = App::new(); + app.insert_resource(EditorState { enabled: false }); + app.add_plugins(EditorPlugin); + + assert!(app.world().contains_resource::()); + assert_eq!(app.world().resource::().0, None); + assert!(!app.world().resource::().enabled); + } +} diff --git a/crates/bevy_forge_runtime/src/screenshot.rs b/crates/bevy_forge_runtime/src/screenshot.rs new file mode 100644 index 0000000..064cbb5 --- /dev/null +++ b/crates/bevy_forge_runtime/src/screenshot.rs @@ -0,0 +1,374 @@ +//! Deterministic screenshot plugin. +//! +//! Opt-in environment contract: +//! +//! | Variable | Default | Meaning | +//! |---|---|---| +//! | `FORGE_SCREENSHOT` | unset | output PNG path; unset disables the mode | +//! | `FORGE_SCREENSHOT_SIZE` | `1440x900` | `WIDTHxHEIGHT`, each `320..=7680` | +//! | `FORGE_SCREENSHOT_FRAMES` | `300` | frames before capture, `1..=1200` | +//! | `FORGE_SCREENSHOT_WARMUP_SECS` | `10` | wall-clock seconds, `0..=120` | +//! +//! Unset means a complete no-op: no systems, no window resize, no exit. Invalid +//! values log an error and disable the mode. Capture waits for both thresholds +//! because the probe showed mesh/PBR pipelines need about ten seconds to warm up +//! (a 30-frame shot is blank). Success saves the PNG and writes +//! [`AppExit::Success`]; if no capture is confirmed within 300 frames, a fallback +//! exits with an error. + +use std::path::{Path, PathBuf}; + +use bevy::{ + prelude::*, + render::view::screenshot::{save_to_disk, Screenshot, ScreenshotCaptured}, + window::{PrimaryWindow, WindowResolution}, +}; + +const PATH_ENV: &str = "FORGE_SCREENSHOT"; +const SIZE_ENV: &str = "FORGE_SCREENSHOT_SIZE"; +const FRAMES_ENV: &str = "FORGE_SCREENSHOT_FRAMES"; +const WARMUP_ENV: &str = "FORGE_SCREENSHOT_WARMUP_SECS"; + +const DEFAULT_WIDTH: u32 = 1440; +const DEFAULT_HEIGHT: u32 = 900; +const DEFAULT_FRAMES: u32 = 300; +const DEFAULT_WARMUP_SECS: u32 = 10; + +const MIN_DIMENSION: u32 = 320; +const MAX_DIMENSION: u32 = 7680; +const MIN_FRAMES: u32 = 1; +const MAX_FRAMES: u32 = 1200; +const MAX_WARMUP_SECS: u32 = 120; +const FALLBACK_FRAMES: u32 = 300; + +/// Adds opt-in deterministic screenshot capture (`FORGE_SCREENSHOT`). +pub struct ScreenshotPlugin; + +impl Plugin for ScreenshotPlugin { + fn build(&self, app: &mut App) { + match config_from_env() { + Ok(config) => configure(app, config), + Err(error) => error!("screenshot: {error}; screenshot mode disabled"), + } + } +} + +#[derive(Resource, Debug, Clone, PartialEq, Eq)] +struct ScreenshotConfig { + path: PathBuf, + width: u32, + height: u32, + frames: u32, + warmup_secs: u32, +} + +#[derive(Resource, Debug, Default)] +struct ScreenshotState { + frames_elapsed: u32, + capture_requested: bool, + frames_since_capture: u32, + exit_requested: bool, +} + +/// Installs the mode only when `config` is `Some`; `None` is a complete no-op. +fn configure(app: &mut App, config: Option) { + let Some(config) = config else { + return; + }; + app.insert_resource(config) + .init_resource::() + .add_systems(Startup, apply_screenshot_window) + .add_systems(Update, request_screenshot); +} + +/// Forces the primary window to the requested physical size at scale factor 1.0. +fn apply_screenshot_window( + config: Res, + mut windows: Query<&mut Window, With>, +) { + let Ok(mut window) = windows.single_mut() else { + error!( + "screenshot: no primary window; cannot set {}x{}", + config.width, config.height + ); + return; + }; + window.resolution = + WindowResolution::new(config.width, config.height).with_scale_factor_override(1.0); + info!( + "screenshot: window set to {}x{} (scale factor 1.0)", + config.width, config.height + ); +} + +/// Requests one capture after both thresholds, then exits on capture or fallback. +fn request_screenshot( + mut commands: Commands, + config: Res, + mut state: ResMut, + real_time: Res>, + mut exit: MessageWriter, +) { + if state.exit_requested { + return; + } + if state.capture_requested { + state.frames_since_capture = state.frames_since_capture.saturating_add(1); + if state.frames_since_capture >= FALLBACK_FRAMES { + warn!("screenshot: capture was not confirmed within {FALLBACK_FRAMES} frames; exiting"); + state.exit_requested = true; + exit.write(AppExit::error()); + } + return; + } + + state.frames_elapsed = state.frames_elapsed.saturating_add(1); + let warmup_elapsed = real_time.elapsed_secs_f64() >= f64::from(config.warmup_secs); + if state.frames_elapsed < config.frames || !warmup_elapsed { + return; + } + if let Err(error) = create_parent_dirs(&config.path) { + error!("screenshot: {error}; exiting"); + state.exit_requested = true; + exit.write(AppExit::error()); + return; + } + info!( + "screenshot: saving {} ({}x{})", + config.path.display(), + config.width, + config.height + ); + commands + .spawn(Screenshot::primary_window()) + .observe(save_to_disk(config.path.clone())) + .observe(exit_after_screenshot); + state.capture_requested = true; +} + +fn exit_after_screenshot(_captured: On, mut exit: MessageWriter) { + exit.write(AppExit::Success); +} + +fn create_parent_dirs(path: &Path) -> Result<(), String> { + match path.parent() { + Some(parent) if !parent.as_os_str().is_empty() => { + std::fs::create_dir_all(parent).map_err(|error| { + format!( + "cannot create output directory {}: {error}", + parent.display() + ) + }) + } + _ => Ok(()), + } +} + +/// Reads the environment once; the path is checked first so unset stays a no-op +/// even when one of the other variables is malformed. +fn config_from_env() -> Result, String> { + let Some(path) = std::env::var_os(PATH_ENV) else { + return Ok(None); + }; + let path = PathBuf::from(path); + let size = env_string(SIZE_ENV)?; + let frames = env_string(FRAMES_ENV)?; + let warmup_secs = env_string(WARMUP_ENV)?; + parse_config( + Some(&path), + size.as_deref(), + frames.as_deref(), + warmup_secs.as_deref(), + ) +} + +fn env_string(name: &str) -> Result, String> { + match std::env::var(name) { + Ok(value) => Ok(Some(value)), + Err(std::env::VarError::NotPresent) => Ok(None), + Err(std::env::VarError::NotUnicode(_)) => Err(format!("{name} must be valid UTF-8")), + } +} + +/// Returns `Ok(None)` when the path is absent; `Err` when it is malformed. +fn parse_config( + path: Option<&Path>, + size: Option<&str>, + frames: Option<&str>, + warmup_secs: Option<&str>, +) -> Result, String> { + let Some(path) = path else { + return Ok(None); + }; + if path.as_os_str().is_empty() { + return Err(format!("{PATH_ENV} must not be empty")); + } + let (width, height) = match size { + Some(raw) => parse_size(raw)?, + None => (DEFAULT_WIDTH, DEFAULT_HEIGHT), + }; + let frames = match frames { + Some(raw) => parse_decimal(FRAMES_ENV, raw, MIN_FRAMES, MAX_FRAMES)?, + None => DEFAULT_FRAMES, + }; + let warmup_secs = match warmup_secs { + Some(raw) => parse_decimal(WARMUP_ENV, raw, 0, MAX_WARMUP_SECS)?, + None => DEFAULT_WARMUP_SECS, + }; + Ok(Some(ScreenshotConfig { + path: path.to_path_buf(), + width, + height, + frames, + warmup_secs, + })) +} + +fn parse_size(raw: &str) -> Result<(u32, u32), String> { + let Some((width, height)) = raw.split_once('x') else { + return Err(format!("{SIZE_ENV} must be WIDTHxHEIGHT, got {raw:?}")); + }; + Ok(( + parse_decimal("width", width, MIN_DIMENSION, MAX_DIMENSION) + .map_err(|error| format!("{SIZE_ENV}: {error}"))?, + parse_decimal("height", height, MIN_DIMENSION, MAX_DIMENSION) + .map_err(|error| format!("{SIZE_ENV}: {error}"))?, + )) +} + +fn parse_decimal(label: &str, raw: &str, min: u32, max: u32) -> Result { + if raw.is_empty() || !raw.bytes().all(|byte| byte.is_ascii_digit()) { + return Err(format!("{label} must be a decimal integer, got {raw:?}")); + } + let value: u32 = raw + .parse() + .map_err(|_| format!("{label} is out of range, got {raw:?}"))?; + if !(min..=max).contains(&value) { + return Err(format!("{label} must be in {min}..={max}, got {value}")); + } + Ok(value) +} + +#[cfg(test)] +mod tests { + use super::*; + + fn path() -> &'static Path { + Path::new("/tmp/forge-screenshot.png") + } + + #[test] + fn screenshot_defaults_are_1440x900_300_frames_10_seconds() { + let config = parse_config(Some(path()), None, None, None) + .expect("defaults must parse") + .expect("a path enables the mode"); + assert_eq!( + (config.width, config.height), + (DEFAULT_WIDTH, DEFAULT_HEIGHT) + ); + assert_eq!((config.width, config.height), (1440, 900)); + assert_eq!(config.frames, 300); + assert_eq!(config.warmup_secs, 10); + assert_eq!(config.path, PathBuf::from(path())); + } + + #[test] + fn screenshot_parses_valid_size_and_limits() { + let config = parse_config(Some(path()), Some("1000x640"), Some("12"), Some("0")) + .expect("valid values must parse") + .expect("a path enables the mode"); + assert_eq!((config.width, config.height), (1000, 640)); + assert_eq!(config.frames, 12); + assert_eq!(config.warmup_secs, 0); + + let min = parse_config(Some(path()), Some("320x320"), Some("1"), Some("120")) + .unwrap() + .unwrap(); + assert_eq!((min.width, min.height), (320, 320)); + assert_eq!((min.frames, min.warmup_secs), (1, 120)); + + let max = parse_config(Some(path()), Some("7680x7680"), Some("1200"), None) + .unwrap() + .unwrap(); + assert_eq!((max.width, max.height), (7680, 7680)); + assert_eq!(max.frames, 1200); + } + + #[test] + fn screenshot_rejects_invalid_sizes() { + for raw in [ + "", + "abc", + "1440", + "1440x", + "x900", + "1440X900", + "1440 x 900", + "0x900", + "1440x0", + "319x900", + "1440x319", + "7681x900", + "1440x7681", + "1440x900x2", + "-1440x900", + ] { + assert!( + parse_config(Some(path()), Some(raw), None, None).is_err(), + "{raw:?} must be rejected" + ); + } + } + + #[test] + fn screenshot_rejects_invalid_frames_and_warmup() { + for raw in ["", "abc", "0", "1201", "-1", "300.0"] { + assert!( + parse_config(Some(path()), None, Some(raw), None).is_err(), + "frames {raw:?} must be rejected" + ); + } + for raw in ["", "abc", "121", "-1", "10.0"] { + assert!( + parse_config(Some(path()), None, None, Some(raw)).is_err(), + "warmup {raw:?} must be rejected" + ); + } + } + + #[test] + fn screenshot_unset_path_is_disabled_even_with_invalid_values() { + let config = parse_config(None, Some("not-a-size"), Some("0"), Some("999")) + .expect("an absent path must short-circuit validation"); + assert!(config.is_none()); + } + + #[test] + fn screenshot_unset_mode_touches_no_window_and_installs_no_systems() { + let config = parse_config(None, None, None, None).expect("unset is not an error"); + assert!(config.is_none()); + + let mut app = App::new(); + configure(&mut app, config); + app.update(); + + assert!(!app.world().contains_resource::()); + assert!(!app.world().contains_resource::()); + let mut windows = app.world_mut().query::<&Window>(); + assert_eq!(windows.iter(app.world()).count(), 0); + let mut screenshots = app.world_mut().query::<&Screenshot>(); + assert_eq!(screenshots.iter(app.world()).count(), 0); + } + + #[test] + fn screenshot_enabled_config_installs_mode_state() { + let config = parse_config(Some(path()), Some("1000x640"), None, None) + .unwrap() + .unwrap(); + let mut app = App::new(); + configure(&mut app, Some(config)); + assert!(app.world().contains_resource::()); + assert!(app.world().contains_resource::()); + assert_eq!(app.world().resource::().width, 1000); + } +} diff --git a/crates/bevy_forge_runtime/src/ui/mod.rs b/crates/bevy_forge_runtime/src/ui/mod.rs new file mode 100644 index 0000000..8c6abd3 --- /dev/null +++ b/crates/bevy_forge_runtime/src/ui/mod.rs @@ -0,0 +1,10 @@ +//! Editor UI: the fixed shell, its layout metrics and the shared theme. + +pub(crate) mod shell; +pub mod theme; + +pub use shell::{ + EditorLayout, EditorRoot, EntityCountText, HierarchyPanel, InspectorPanel, StatusBar, + StatusText, Toolbar, +}; +pub use theme::UiTheme; diff --git a/crates/bevy_forge_runtime/src/ui/shell.rs b/crates/bevy_forge_runtime/src/ui/shell.rs new file mode 100644 index 0000000..f267db1 --- /dev/null +++ b/crates/bevy_forge_runtime/src/ui/shell.rs @@ -0,0 +1,377 @@ +//! Fixed editor UI shell: toolbar, hierarchy panel, inspector panel and status bar. +//! +//! The center of the window is deliberately not a UI node: the 3D camera renders +//! full-window behind the panels and [`EditorLayout::viewport_rect`] is the +//! authoritative rectangle for viewport-only input (used by the gizmo). + +use bevy::{ + prelude::*, + text::FontSize, + ui_widgets::{Activate, Button as UiButton}, +}; + +use crate::{ + plugin::{EditorState, Selection}, + ui::theme::UiTheme, +}; + +/// Full-window root of the editor overlay. Hidden as a whole when the editor is disabled. +#[derive(Component)] +pub struct EditorRoot; + +/// Left-hand scene hierarchy panel. +#[derive(Component)] +pub struct HierarchyPanel; + +/// Right-hand inspector panel. +#[derive(Component)] +pub struct InspectorPanel; + +/// Top toolbar. +#[derive(Component)] +pub struct Toolbar; + +/// Bottom status bar. +#[derive(Component)] +pub struct StatusBar; + +/// The status bar's primary text node. +#[derive(Component)] +pub struct StatusText; + +/// Toolbar text that reports how many scene entities exist. +#[derive(Component)] +pub struct EntityCountText; + +/// Screen-space metrics of the overlay panels. +/// +/// The viewport is the area left uncovered by the panels: +/// `x = left`, `y = top`, `width = window - left - right`, +/// `height = window - top - bottom`. +#[derive(Resource, Debug, Clone, Copy)] +pub struct EditorLayout { + /// Width of the left hierarchy panel in logical pixels. + pub left: f32, + /// Width of the right inspector panel in logical pixels. + pub right: f32, + /// Height of the top toolbar in logical pixels. + pub top: f32, + /// Height of the bottom status bar in logical pixels. + pub bottom: f32, +} + +impl Default for EditorLayout { + fn default() -> Self { + Self { + left: 260.0, + right: 300.0, + top: 38.0, + bottom: 26.0, + } + } +} + +impl EditorLayout { + /// Rectangle of the 3D viewport in logical window coordinates. + /// + /// Width and height are clamped to be non-negative for tiny windows. + pub fn viewport_rect(&self, window: &Window) -> Rect { + let width = (window.width() - self.left - self.right).max(0.0); + let height = (window.height() - self.top - self.bottom).max(0.0); + Rect::new(self.left, self.top, self.left + width, self.top + height) + } +} + +/// Installs the fixed editor shell and its state-sync systems. +pub(crate) struct EditorUiPlugin; + +impl Plugin for EditorUiPlugin { + fn build(&self, app: &mut App) { + app.init_resource::() + .init_resource::() + .add_systems(Startup, build_shell) + .add_systems( + Update, + ( + toggle_editor_f1, + sync_editor_visibility, + update_status_text, + update_entity_count, + ) + .chain(), + ); + } +} + +/// Builds the editor overlay. Runs at `Startup`, before host-app scene spawning. +fn build_shell(mut commands: Commands, theme: Res, layout: Res) { + commands + .spawn(( + EditorRoot, + Node { + position_type: PositionType::Absolute, + width: percent(100), + height: percent(100), + ..default() + }, + BackgroundColor(Color::NONE), + )) + .with_children(|root| { + // --- Toolbar --------------------------------------------------- + root.spawn(( + Toolbar, + Node { + position_type: PositionType::Absolute, + top: px(0), + left: px(0), + right: px(0), + height: px(layout.top), + flex_direction: FlexDirection::Row, + align_items: AlignItems::Center, + column_gap: px(10), + padding: UiRect::horizontal(px(10)), + border: UiRect::bottom(px(1)), + ..default() + }, + BackgroundColor(theme.toolbar_bg), + BorderColor::all(theme.border), + )) + .with_children(|bar| { + bar.spawn(label("Bevy Forge", 15.0, theme.accent)); + + bar.spawn(( + UiButton, + Node { + height: px(24), + padding: UiRect::horizontal(px(10)), + justify_content: JustifyContent::Center, + align_items: AlignItems::Center, + border: UiRect::all(px(1)), + ..default() + }, + BackgroundColor(theme.panel_bg_alt), + BorderColor::all(theme.border), + )) + .observe(toggle_editor_on_activate) + .with_children(|button| { + button.spawn(label("Editor (F1)", 13.0, theme.text)); + }); + + bar.spawn(Node { + flex_grow: 1.0, + ..default() + }); + bar.spawn(( + EntityCountText, + label("Entities: 0", 12.0, theme.text_muted), + )); + }); + + // --- Left hierarchy panel -------------------------------------- + root.spawn(( + HierarchyPanel, + Node { + position_type: PositionType::Absolute, + left: px(0), + top: px(layout.top), + bottom: px(layout.bottom), + width: px(layout.left), + flex_direction: FlexDirection::Column, + padding: UiRect::all(px(8)), + row_gap: px(4), + border: UiRect::right(px(1)), + ..default() + }, + BackgroundColor(theme.panel_bg), + BorderColor::all(theme.border), + )) + .with_children(|panel| { + panel.spawn(label("Hierarchy", 14.0, theme.text)); + panel.spawn(label("Waiting for scene...", 11.0, theme.text_muted)); + }); + + // --- Right inspector panel ------------------------------------- + root.spawn(( + InspectorPanel, + Node { + position_type: PositionType::Absolute, + right: px(0), + top: px(layout.top), + bottom: px(layout.bottom), + width: px(layout.right), + flex_direction: FlexDirection::Column, + padding: UiRect::all(px(8)), + row_gap: px(4), + border: UiRect::left(px(1)), + ..default() + }, + BackgroundColor(theme.panel_bg), + BorderColor::all(theme.border), + )) + .with_children(|panel| { + panel.spawn(label("Inspector", 14.0, theme.text)); + panel.spawn(label("Waiting for selection...", 11.0, theme.text_muted)); + }); + + // --- Bottom status bar ----------------------------------------- + root.spawn(( + StatusBar, + Node { + position_type: PositionType::Absolute, + left: px(0), + right: px(0), + bottom: px(0), + height: px(layout.bottom), + flex_direction: FlexDirection::Row, + align_items: AlignItems::Center, + padding: UiRect::horizontal(px(10)), + border: UiRect::top(px(1)), + ..default() + }, + BackgroundColor(theme.status_bg), + BorderColor::all(theme.border), + )) + .with_children(|bar| { + bar.spawn(( + StatusText, + label( + "No selection | Editor: on | F1 editor", + 12.0, + theme.text_muted, + ), + )); + }); + }); + + info!("editor shell ready (toolbar, hierarchy, inspector, status)"); +} + +/// Builds a UI label bundle with the split `Text` / `TextFont` / `TextColor` API. +fn label(value: impl Into, size: f32, color: Color) -> impl Bundle { + ( + Text::new(value.into()), + TextFont { + font: FontSource::default(), + font_size: FontSize::Px(size), + ..default() + }, + TextColor(color), + ) +} + +/// Flips [`EditorState`] when the toolbar button is activated. +fn toggle_editor_on_activate(_activate: On, mut state: ResMut) { + state.toggle(); +} + +/// F1 toggles the editor; the toolbar button uses the same state. +fn toggle_editor_f1(keys: Res>, mut state: ResMut) { + if keys.just_pressed(KeyCode::F1) { + state.toggle(); + } +} + +/// Matches the [`EditorRoot`] display mode to [`EditorState`]. +/// +/// The root is hidden as a whole; child panels keep their own display mode. +fn sync_editor_visibility(state: Res, mut roots: Query<&mut Node, With>) { + if !state.is_changed() { + return; + } + let display = if state.enabled { + Display::Flex + } else { + Display::None + }; + for mut node in &mut roots { + if node.display != display { + node.display = display; + } + } +} + +/// Updates the status line from the current selection, the selected entity's +/// `Name` and the editor state. +fn update_status_text( + mut status: Query<&mut Text, With>, + selection: Res, + names: Query<&Name>, + state: Res, +) { + let mut value = match selection.0 { + Some(entity) => match names.get(entity) { + Ok(name) => format!("Selected: {}", name.as_str()), + Err(_) => format!("Selected: {entity}"), + }, + None => "No selection".to_string(), + }; + value.push_str(if state.enabled { + " | Editor: on | F1 editor" + } else { + " | Editor: off | F1 editor" + }); + + for mut text in &mut status { + if text.0 != value { + text.0 = value.clone(); + } + } +} + +/// Updates the toolbar entity count for named, non-UI scene entities. +fn update_entity_count( + mut counters: Query<&mut Text, With>, + scene_entities: Query<(), (With, With, Without)>, +) { + let value = format!("Entities: {}", scene_entities.iter().count()); + for mut text in &mut counters { + if text.0 != value { + text.0 = value.clone(); + } + } +} + +#[cfg(test)] +mod tests { + use super::*; + use bevy::window::WindowResolution; + + fn window(width: u32, height: u32) -> Window { + Window { + resolution: WindowResolution::new(width, height).with_scale_factor_override(1.0), + ..default() + } + } + + #[test] + fn default_layout_matches_contract() { + let layout = EditorLayout::default(); + assert_eq!(layout.left, 260.0); + assert_eq!(layout.right, 300.0); + assert_eq!(layout.top, 38.0); + assert_eq!(layout.bottom, 26.0); + } + + #[test] + fn viewport_rect_1440x900() { + let rect = EditorLayout::default().viewport_rect(&window(1440, 900)); + assert_eq!(rect.min, Vec2::new(260.0, 38.0)); + assert_eq!(rect.max, Vec2::new(1140.0, 874.0)); + assert_eq!(rect.size(), Vec2::new(880.0, 836.0)); + } + + #[test] + fn viewport_rect_1000x640() { + let rect = EditorLayout::default().viewport_rect(&window(1000, 640)); + assert_eq!(rect.min, Vec2::new(260.0, 38.0)); + assert_eq!(rect.max, Vec2::new(700.0, 614.0)); + assert_eq!(rect.size(), Vec2::new(440.0, 576.0)); + } + + #[test] + fn viewport_rect_clamps_tiny_windows() { + let rect = EditorLayout::default().viewport_rect(&window(400, 100)); + assert_eq!(rect.size(), Vec2::new(0.0, 36.0)); + assert!(rect.size().cmple(Vec2::new(400.0, 100.0)).all()); + } +} diff --git a/crates/bevy_forge_runtime/src/ui/theme.rs b/crates/bevy_forge_runtime/src/ui/theme.rs new file mode 100644 index 0000000..2ddec09 --- /dev/null +++ b/crates/bevy_forge_runtime/src/ui/theme.rs @@ -0,0 +1,51 @@ +//! Dark slate color theme shared by the editor UI. + +use bevy::prelude::*; + +/// Colors used by the editor shell and by later hierarchy/inspector/gizmo work. +/// +/// All colors are stored as [`Color`] so widgets can use them directly in +/// `TextColor`, `BackgroundColor` and `BorderColor` components. +#[derive(Resource, Debug, Clone)] +pub struct UiTheme { + /// Background of the left and right panels. + pub panel_bg: Color, + /// Alternate background used for buttons and rows. + pub panel_bg_alt: Color, + /// Border and divider color. + pub border: Color, + /// Primary text color. + pub text: Color, + /// Secondary text color for hints and read-only values. + pub text_muted: Color, + /// Accent color for the title, selection and gizmo hints. + pub accent: Color, + /// Row background on hover. + pub row_hover: Color, + /// Row background while selected. + pub row_selected: Color, + /// Toolbar background. + pub toolbar_bg: Color, + /// Status bar background. + pub status_bg: Color, + /// Warning / destructive color. + pub danger: Color, +} + +impl Default for UiTheme { + fn default() -> Self { + Self { + panel_bg: Color::srgba(0.074, 0.086, 0.102, 0.94), + panel_bg_alt: Color::srgb(0.121, 0.141, 0.172), + border: Color::srgba(0.258, 0.290, 0.337, 0.85), + text: Color::srgb(0.878, 0.898, 0.925), + text_muted: Color::srgb(0.576, 0.615, 0.674), + accent: Color::srgb(0.309, 0.576, 0.949), + row_hover: Color::srgb(0.168, 0.200, 0.247), + row_selected: Color::srgb(0.196, 0.333, 0.510), + toolbar_bg: Color::srgba(0.098, 0.113, 0.137, 0.96), + status_bg: Color::srgba(0.086, 0.098, 0.118, 0.96), + danger: Color::srgb(0.851, 0.298, 0.278), + } + } +} diff --git a/docs/m0-spike-1000x640.png b/docs/m0-spike-1000x640.png new file mode 100644 index 0000000000000000000000000000000000000000..67037ff062065d744371966b8f705d1ae4f6b7e1 GIT binary patch literal 258783 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 vVPE~%K~;PE{Pf-Kzj`>PC|g{T$ literal 0 HcmV?d00001 diff --git a/docs/m0-spike-1440x900.png b/docs/m0-spike-1440x900.png new file mode 100644 index 0000000000000000000000000000000000000000..a0690de7201f1333853a0f0d661821228951ff2b GIT binary patch literal 555646 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�l>@iF{df2&okU9n>a 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
  • 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�M&dHPtfDBupgR%L6(%#(~zG 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О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 z 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 literal 0 HcmV?d00001 diff --git a/docs/m0-spike.md b/docs/m0-spike.md new file mode 100644 index 0000000..866a3c4 --- /dev/null +++ b/docs/m0-spike.md @@ -0,0 +1,163 @@ +# Bevy Forge v2 — M0 Spike + +Status: **M0 spike**, not a release. It proves the v2 architecture: a real in-game Bevy 0.20 editor +plugin with native Bevy UI, a live hierarchy, a reflection inspector, one translate gizmo and +deterministic screenshots. No egui is involved in the runtime crate. + +![Bevy Forge M0 spike](m0-spike-1440x900.png) + +_1000×640 variant: [m0-spike-1000x640.png](m0-spike-1000x640.png)._ + +## What M0 delivers + +- `bevy_forge_runtime` — a new crate in the workspace, added to a game with + `.add_plugins(EditorPlugin)` after `DefaultPlugins`. +- Fixed editor shell: toolbar, hierarchy (left), inspector (right), status bar; F1 or the toolbar + button toggles the whole editor. +- Live hierarchy: `Children`/`ChildOf` tree, indentation, scrolling, click selection, selected-row + highlight. +- Reflection inspector for `Name`, `Transform` and `Visibility`; translation X/Y/Z are editable via + `bevy_ui_widgets` sliders and update the ECS entity. Rotation/scale/visibility are read-only in + M0. +- Editor camera (right-drag orbit, middle-drag pan, wheel zoom) and a translate gizmo with + screen-space axis picking and ray/plane dragging. +- Deterministic screenshot mode at fixed sizes with a scale factor override. +- A small hardcoded 3D demo scene (nine named scene entities plus the editor camera) in + `crates/bevy_forge_runtime/examples/editor_spike.rs`. + +## Requirements + +- Rust 1.85+ (the workspace pins `rust-version = "1.85"`; this environment used 1.99). +- Linux with Vulkan/GL and a windowing session (Wayland or X11). The reference run is Wayland with + an NVIDIA RTX 3050; the UI and screenshots also work through the probe on this machine. +- No Bevy installation is required; Bevy 0.20.0 is a normal Cargo dependency. + +## Run + +```bash +cd bevy-forge +cargo run -p bevy_forge_runtime --example editor_spike +``` + +The first run compiles the Bevy UI/PBR pipeline and is slow. The window opens at 1440×900. + +## Controls + +| Input | Action | +|---|---| +| F1 / toolbar **Editor (F1)** | Show or hide the editor UI | +| Left click a hierarchy row | Select that entity | +| Left drag a gizmo axis | Translate the selected entity along X/Y/Z | +| Right drag in the viewport | Orbit the editor camera | +| Middle drag in the viewport | Pan the editor camera | +| Mouse wheel | Zoom the editor camera | + +The inspector sliders edit `Transform.translation.x/y/z` in the range -20..=20 with 0.1 steps. +A gizmo drag updates the ECS `Transform`, and the inspector sliders follow. + +## Deterministic screenshots + +The screenshot mode is opt-in and exits after saving: + +```bash +FORGE_SCREENSHOT=$PWD/.swarm/m0/evidence/m0-1440x900.png \ +FORGE_SCREENSHOT_SIZE=1440x900 \ +cargo run -p bevy_forge_runtime --example editor_spike + +FORGE_SCREENSHOT=$PWD/.swarm/m0/evidence/m0-1000x640.png \ +FORGE_SCREENSHOT_SIZE=1000x640 \ +cargo run -p bevy_forge_runtime --example editor_spike +``` + +| Variable | Default | Meaning | +|---|---|---| +| `FORGE_SCREENSHOT` | unset | output PNG; unset disables the mode | +| `FORGE_SCREENSHOT_SIZE` | `1440x900` | `WIDTHxHEIGHT`, 320..=7680 | +| `FORGE_SCREENSHOT_FRAMES` | `300` | minimum frames before capture | +| `FORGE_SCREENSHOT_WARMUP_SECS` | `10` | minimum wall-clock seconds before capture | + +The warmup is deliberate: UI/gizmo shaders are ready quickly, but the 3D mesh/PBR pipeline can take +~10 s to compile on a cold run. A 30-frame screenshot is blank; the mode waits for both thresholds. +The window is forced to `WindowResolution::new(w, h).with_scale_factor_override(1.0)`, so the PNG is +exactly the requested size on HiDPI displays. + +**Determinism caveat:** the hierarchy hover highlight follows the pointer. Park the cursor outside +the editor window before capturing if you need byte-identical pixels; the committed evidence was +captured that way. The screenshot mode fixes size, scene and frame timing, but does not currently +neutralise pointer hover. + +## Architecture + +``` +crates/bevy_forge_runtime/ +├── src/lib.rs public prelude: EditorPlugin, EditorState, Selection, InspectorSource +├── src/plugin.rs resources, plugin registration, selection cleanup +├── src/ui/ fixed shell, theme, markers, EditorLayout +├── src/hierarchy.rs live ListBox/ScrollArea tree + selection observer +├── src/inspector.rs reflection summary/apply, transform sliders, live sync +├── src/gizmo.rs editor camera, axes drawing, picking/drag +├── src/screenshot.rs deterministic PNG mode +└── examples/editor_spike.rs +``` + +The editor UI is an overlay: the 3D camera renders full-window and the panels cover the left/right +edges. `EditorLayout::viewport_rect` defines the center rectangle used by gizmo input. + +## M0 acceptance + +The full evidence is in `.swarm/m0/reviews/V01.md` and `.swarm/m0/final-report.md`; the commands +are listed in `.swarm/m0/plan.md`. In short: + +- `cargo check -p bevy_forge_runtime` passes; `cargo test -p bevy_forge_runtime` is **38 passed, + 0 failed, 0 ignored** plus one ignored doctest; the full workspace is **384 passed, 0 failed, + 2 ignored** (v1 + M0). +- `cargo tree -p bevy_forge_runtime -i egui` finds no egui; a plain tree grep for `egui` is empty. + The v1 editor still uses egui; the runtime crate does not. `bevy_ui_widgets` resolves to 0.20.0. +- The example launches, logs `editor shell ready`, `hierarchy: 10 rows, 7 roots`, + `inspector: selected ... (Hero Cube)` and `gizmo: camera ready`, with no warnings/panics. +- The gizmo is visible on the selected entity; its drag math is unit-tested (including a rotated + parent). Computer-use on 2026-10-27 clicked hierarchy rows, dragged the inspector X slider and + the X gizmo axis, toggled the UI and zoomed the camera; selection, inspector, ECS and gizmo + followed, with no panic. +- Screenshots are exactly 1440×900 and 1000×640; both show the shell, hierarchy, inspector and gizmo. +- No v1/core/CLI source changes; only the workspace member/lock, the new crate, docs and README. +- Independent review: **pass_with_risks** (`.swarm/m0/reviews/V01.md`, local coordination artifact). + All acceptance gates pass; the residual risks are right/middle orbit-pan (not scripted) and the + disclosed hierarchy root filter. + +## Interactive verification (computer-use, 2026-10-27) + +The editor was driven through the KDE Wayland remote-desktop portal with the computer-use tool: + +- clicked `Red Cube`, `Blue Cube`, `Ground` and `Hero Cube` in the hierarchy — selection, inspector + fields and gizmo moved to the clicked entity every time; +- dragged the Red Cube Translation X slider from −2.6 to 3.2 — the cube and gizmo moved and the + inspector value updated; +- dragged the Hero Cube X gizmo axis from 0.0 to 1.0 — the cube moved and the inspector slider + followed; +- the toolbar button hid the UI; F1 restored it; wheel zoom changed the camera distance. + +This found a real bug that unit tests missed: on a selection change, the inspector's transform-sync +system ran after the panel rebuild and queued a `SliderValue` insert for a slider that had just been +despawned, panicking in Bevy's command queue. The systems are now chained **sync-first, then +rebuild**; repeated selection/slider/gizmo runs are clean. Orbit and pan (right/middle drag) are not +scripted by the portal drag helper and remain a manual check; wheel zoom is covered. + +## Limits (M0, by design) + +- No save/load of `.forge.ron`, no BSN export from the UI, no undo/redo, no play/pause, no asset + browser, no docking, no multi-select, no rotate/scale gizmo. +- The demo scene is hardcoded; `bevy_forge_core` is not a runtime dependency yet. +- The live hierarchy panel lists named, transformed scene roots and their descendants; unnamed root + entities are omitted in M0 (a full-world mode is M1 work). `collect_rows` remains the literal tree + model for tests. +- The inspector covers `Name`/`Transform`/`Visibility`; generic `TypeRegistry` component discovery + is M1 work. +- Parent scale is ignored during gizmo drags (M0); rotations are honored. +- 3D only in the demo; the v2 plan adds 2D and scene loading in M1/M2. + +## Next + +M1 Core: `.forge.ron` save/load via `bevy_forge_core`, selection API/multi-select, undo/redo command +stack, editor camera polish, and the first integration tests against the real scene format. Do not +start M1 until M0 is accepted by the verifier and the actual request/token spend is recorded.