diff --git a/Cargo.lock b/Cargo.lock index 845826aa..05a07aa8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -112,19 +112,8 @@ checksum = "330a5ed07fa54e4702c9d6c4174f74427fc0ef6e214bbd677ae50a5099946470" [[package]] name = "anyrender" -version = "0.11.1" -source = "git+https://github.com/FastTrackStudios/blitz?tag=fts-pointer-2026-10#98cc00f65e92760abdc29a859be31e1b429ff314" -dependencies = [ - "kurbo 0.13.1", - "peniko", - "raw-window-handle", - "smallvec 1.16.0", -] - -[[package]] -name = "anyrender" -version = "0.13.0" -source = "git+https://github.com/DioxusLabs/anyrender.git?branch=main#b0ef17ec3937a378a2efcfd9901d9074ddbc8403" +version = "0.14.0" +source = "git+https://github.com/FastTrackStudios/blitz?tag=fts-upstream-2026-11#c330545234ba0fdedf74403e7edf1602fbce389f" dependencies = [ "kurbo 0.13.1", "peniko", @@ -134,23 +123,11 @@ dependencies = [ [[package]] name = "anyrender_svg" -version = "0.12.0" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2c1ecd7b35cea3ca88e8310eef73c5c06f7d8b0f878a2ac415ab6cf45de3ec6" -dependencies = [ - "anyrender 0.11.1", - "image", - "kurbo 0.13.1", - "peniko", - "usvg 0.46.0", -] - -[[package]] -name = "anyrender_svg" -version = "0.14.0" -source = "git+https://github.com/DioxusLabs/anyrender.git?branch=main#b0ef17ec3937a378a2efcfd9901d9074ddbc8403" +checksum = "39327debd1bdca190d086c107825a5dc4c665be31e99e5c0854345a050d08cad" dependencies = [ - "anyrender 0.13.0", + "anyrender", "image", "kurbo 0.13.1", "peniko", @@ -159,10 +136,10 @@ dependencies = [ [[package]] name = "anyrender_vello" -version = "0.14.0" -source = "git+https://github.com/DioxusLabs/anyrender.git?branch=main#b0ef17ec3937a378a2efcfd9901d9074ddbc8403" +version = "0.15.0" +source = "git+https://github.com/FastTrackStudios/vendor?tag=v0.7.1#d17f671fbff9bd722e00a6a281b24149d142a849" dependencies = [ - "anyrender 0.13.0", + "anyrender", "debug_timer", "futures-channel", "kurbo 0.13.1", @@ -199,7 +176,7 @@ checksum = "042f9d025c80b2e625b4f0f10eda56a652444ef916025e855a292937bb8a949a" [[package]] name = "architect" version = "0.1.0" -source = "git+https://github.com/FastTrackStudios/architect?tag=v0.9.31#89338f66fd386daa981367e4c2749f2d6f73e1bb" +source = "git+https://github.com/FastTrackStudios/architect?tag=v0.10.0#068614c209b71b16c68613eaa2e784e3a87267d1" dependencies = [ "architect-action-derive", "architect-derive", @@ -224,7 +201,7 @@ dependencies = [ [[package]] name = "architect-action-derive" version = "0.1.0" -source = "git+https://github.com/FastTrackStudios/architect?tag=v0.9.31#89338f66fd386daa981367e4c2749f2d6f73e1bb" +source = "git+https://github.com/FastTrackStudios/architect?tag=v0.10.0#068614c209b71b16c68613eaa2e784e3a87267d1" dependencies = [ "proc-macro2", "quote", @@ -234,7 +211,7 @@ dependencies = [ [[package]] name = "architect-derive" version = "0.1.0" -source = "git+https://github.com/FastTrackStudios/architect?tag=v0.9.31#89338f66fd386daa981367e4c2749f2d6f73e1bb" +source = "git+https://github.com/FastTrackStudios/architect?tag=v0.10.0#068614c209b71b16c68613eaa2e784e3a87267d1" dependencies = [ "heck 0.5.0", "proc-macro2", @@ -242,10 +219,37 @@ dependencies = [ "syn 2.0.119", ] +[[package]] +name = "architect-devices" +version = "0.1.0" +source = "git+https://github.com/FastTrackStudios/architect?tag=v0.10.0#068614c209b71b16c68613eaa2e784e3a87267d1" +dependencies = [ + "architect", + "architect-orgs", + "architect-permissions", + "facet", + "facet-json", + "thiserror 2.0.20", + "tokio", + "tracing", + "uuid", +] + +[[package]] +name = "architect-orgs" +version = "0.1.0" +source = "git+https://github.com/FastTrackStudios/architect?tag=v0.10.0#068614c209b71b16c68613eaa2e784e3a87267d1" +dependencies = [ + "facet", + "facet-json", + "futures-util", + "uuid", +] + [[package]] name = "architect-permissions" version = "0.1.0" -source = "git+https://github.com/FastTrackStudios/architect?tag=v0.9.31#89338f66fd386daa981367e4c2749f2d6f73e1bb" +source = "git+https://github.com/FastTrackStudios/architect?tag=v0.10.0#068614c209b71b16c68613eaa2e784e3a87267d1" dependencies = [ "serde", "serde_json", @@ -255,7 +259,7 @@ dependencies = [ [[package]] name = "architect-rpc-derive" version = "0.1.0" -source = "git+https://github.com/FastTrackStudios/architect?tag=v0.9.31#89338f66fd386daa981367e4c2749f2d6f73e1bb" +source = "git+https://github.com/FastTrackStudios/architect?tag=v0.10.0#068614c209b71b16c68613eaa2e784e3a87267d1" dependencies = [ "proc-macro2", "quote", @@ -279,7 +283,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8454c8a44ce2cb9cc7e7fae67fc6128465b343b92c6631e94beca3c8d1524ea5" dependencies = [ - "unicode-width 0.2.2", + "unicode-width", "yansi", ] @@ -439,9 +443,9 @@ dependencies = [ [[package]] name = "bit-set" -version = "0.9.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34ddef2995421ab6a5c779542c81ee77c115206f4ad9d5a8e05f4ff49716a3dd" +checksum = "09ec2f926cc3060f09db9ebc5b52823d85268d24bb917e472c0c4bea35780a7d" dependencies = [ "bit-vec 0.9.1", ] @@ -708,7 +712,7 @@ checksum = "af491d569909a7e4dee0ad7db7f5341fef5c614d5b8ec8cf765732aba3cff681" dependencies = [ "serde", "termcolor", - "unicode-width 0.1.14", + "unicode-width", ] [[package]] @@ -873,15 +877,19 @@ dependencies = [ [[package]] name = "crdt" version = "0.1.0" -source = "git+https://github.com/FastTrackStudios/architect?tag=v0.9.31#89338f66fd386daa981367e4c2749f2d6f73e1bb" +source = "git+https://github.com/FastTrackStudios/architect?tag=v0.10.0#068614c209b71b16c68613eaa2e784e3a87267d1" dependencies = [ "architect", + "architect-devices", + "architect-orgs", "architect-permissions", "async-trait", "chrono", + "crc32fast", "crdt-derive", "loro", "loro-internal", + "sha2", "thiserror 2.0.20", "tokio", "tracing", @@ -892,7 +900,7 @@ dependencies = [ [[package]] name = "crdt-derive" version = "0.1.0" -source = "git+https://github.com/FastTrackStudios/architect?tag=v0.9.31#89338f66fd386daa981367e4c2749f2d6f73e1bb" +source = "git+https://github.com/FastTrackStudios/architect?tag=v0.10.0#068614c209b71b16c68613eaa2e784e3a87267d1" dependencies = [ "proc-macro2", "quote", @@ -1241,7 +1249,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -1316,7 +1324,7 @@ dependencies = [ [[package]] name = "facet-core" version = "0.50.0-rc.7" -source = "git+https://github.com/FastTrackStudios/vendor?tag=v0.4.1#c2a29c0437270b36051fb3441f61ed63e1475c0e" +source = "git+https://github.com/FastTrackStudios/vendor?tag=v0.4.0#b58441601ee53a6851b802b4ab65957d659468c4" dependencies = [ "autocfg", "camino", @@ -1580,12 +1588,6 @@ 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" @@ -1710,10 +1712,8 @@ dependencies = [ name = "frame" version = "0.1.0" dependencies = [ - "anyrender 0.11.1", - "anyrender 0.13.0", - "anyrender_svg 0.12.0", - "anyrender_svg 0.14.0", + "anyrender", + "anyrender_svg", "anyrender_vello", "architect", "base64 0.22.1", @@ -1922,7 +1922,7 @@ dependencies = [ "log", "rustversion", "windows-link", - "windows-result 0.4.1", + "windows-result", ] [[package]] @@ -2029,7 +2029,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d99fc21d493812643aae86d53b7bbd02f376434a90317e8a790bc209fdd6605e" dependencies = [ "bytemuck", - "foldhash 0.2.0", + "foldhash", "hashbrown 0.17.1", "log", "peniko", @@ -2082,27 +2082,7 @@ dependencies = [ "log", "presser", "thiserror 2.0.20", - "windows 0.58.0", -] - -[[package]] -name = "gpu-descriptor" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b89c83349105e3732062a895becfc71a8f921bb71ecbbdd8ff99263e3b53a0ca" -dependencies = [ - "bitflags 2.13.1", - "gpu-descriptor-types", - "hashbrown 0.15.5", -] - -[[package]] -name = "gpu-descriptor-types" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdf242682df893b86f33a73828fb09ca4b2d3bb6cc95249707fc684d27484b91" -dependencies = [ - "bitflags 2.13.1", + "windows", ] [[package]] @@ -2194,15 +2174,6 @@ version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" -[[package]] -name = "hashbrown" -version = "0.15.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" -dependencies = [ - "foldhash 0.1.5", -] - [[package]] name = "hashbrown" version = "0.16.1" @@ -2211,7 +2182,7 @@ checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" dependencies = [ "allocator-api2", "equivalent", - "foldhash 0.2.0", + "foldhash", ] [[package]] @@ -2222,7 +2193,7 @@ checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" dependencies = [ "allocator-api2", "equivalent", - "foldhash 0.2.0", + "foldhash", ] [[package]] @@ -2283,12 +2254,6 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" -[[package]] -name = "hexf-parse" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfa686283ad6dd069f105e5ab091b04c62850d3e4cf5d67debad1933f55023df" - [[package]] name = "http" version = "1.5.0" @@ -2397,7 +2362,7 @@ dependencies = [ "libc", "percent-encoding", "pin-project-lite", - "socket2 0.5.10", + "socket2", "system-configuration", "tokio", "tower-service", @@ -2417,7 +2382,7 @@ dependencies = [ "js-sys", "log", "wasm-bindgen", - "windows-core 0.58.0", + "windows-core", ] [[package]] @@ -2519,7 +2484,7 @@ checksum = "8450e1521a7518a32addf0b805ffcfbc8f9c558d2ad5769f068f2aeef5a81126" dependencies = [ "allocator-api2", "equivalent", - "foldhash 0.2.0", + "foldhash", "hashbrown 0.17.1", ] @@ -2604,12 +2569,6 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "edcd27d72f2f071c64249075f42e205ff93c9a4c5f6c6da53e79ed9f9832c285" -[[package]] -name = "imagesize" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09e54e57b4c48b40f7aec75635392b12b3421fa26fe8b4332e63138ed278459c" - [[package]] name = "imagesize" version = "0.15.0" @@ -2682,7 +2641,7 @@ checksum = "3640c1c38b8e4e43584d8df18be5fc6b0aa314ce6ebf51b53313d4306cca8e46" dependencies = [ "hermit-abi", "libc", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -2791,9 +2750,9 @@ checksum = "00810f1d8b74be64b13dbf3db89ac67740615d6c891f0e7b6179326533011a07" [[package]] name = "js-sys" -version = "0.3.103" +version = "0.3.107" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53b44bfcdb3f8d5837a46dae1ca9660a837176eee74a28b229bc626816589102" +checksum = "8dc09d2154098bbf4ef54eab6b117a3c24cbbffe94046b16ee6d6d4510584d3a" dependencies = [ "cfg-if", "futures-util", @@ -3125,7 +3084,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "079df84bf12a2a718fa39c4f2b389a470140ba7bed2661a6141956e713d302c8" dependencies = [ "facet", - "unicode-width 0.2.2", + "unicode-width", ] [[package]] @@ -3136,7 +3095,7 @@ checksum = "b5e190abf1f018543b36f8e2b40462449f79df52d3c077bffe07c22916fa412d" dependencies = [ "arborium-theme", "margin", - "unicode-width 0.2.2", + "unicode-width", ] [[package]] @@ -3230,22 +3189,22 @@ checksum = "bc0287524726960e07b119cebd01678f852f147742ae0d925e6a520dca956126" [[package]] name = "naga" -version = "29.0.4" +version = "30.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2bf919621e7975acb27d881bae2fb993e0d45c8e0446e85e6272971e00dc8df" +checksum = "a616d2fb8c89516ac2723a581f69d6c18576046bed761bd6b305e5618e6ae130" dependencies = [ "arrayvec", - "bit-set 0.9.1", + "bit-set 0.10.0", "bitflags 2.13.1", "cfg-if", "cfg_aliases", "codespan-reporting", "half", - "hashbrown 0.16.1", - "hexf-parse", + "hashbrown 0.17.1", "indexmap 2.14.1", "libm", "log", + "naga-types", "num-traits", "once_cell", "rustc-hash 1.1.0", @@ -3254,6 +3213,18 @@ dependencies = [ "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 2.14.1", + "rustc-hash 1.1.0", + "thiserror 2.0.20", +] + [[package]] name = "native-tls" version = "0.2.18" @@ -3310,7 +3281,7 @@ checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" [[package]] name = "nice-plug-core" version = "0.3.0" -source = "git+https://github.com/FastTrackStudios/nice-plug.git?branch=fts-baseview-03#4e1204f4a64b23348efebe316e9cb6e55f2d3544" +source = "git+https://github.com/FastTrackStudios/nice-plug.git?tag=fts-upstream-2026-11#9fb4741c4453ac6c7e80ba0a3b71655aa7777b49" dependencies = [ "atomic_float", "atomic_refcell", @@ -3329,7 +3300,7 @@ dependencies = [ [[package]] name = "nice-plug-derive" version = "0.1.2" -source = "git+https://github.com/FastTrackStudios/nice-plug.git?branch=fts-baseview-03#4e1204f4a64b23348efebe316e9cb6e55f2d3544" +source = "git+https://github.com/FastTrackStudios/nice-plug.git?tag=fts-upstream-2026-11#9fb4741c4453ac6c7e80ba0a3b71655aa7777b49" dependencies = [ "proc-macro2", "quote", @@ -3363,7 +3334,7 @@ version = "0.50.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" dependencies = [ - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -3567,6 +3538,18 @@ dependencies = [ "objc2 0.6.4", ] +[[package]] +name = "objc2-core-graphics" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e022c9d066895efa1345f8e33e584b9f958da2fd4cd116792e15e07e4720a807" +dependencies = [ + "dispatch2", + "objc2 0.6.4", + "objc2-core-foundation", + "objc2-io-surface", +] + [[package]] name = "objc2-core-image" version = "0.2.2" @@ -3621,6 +3604,17 @@ dependencies = [ "objc2-core-foundation", ] +[[package]] +name = "objc2-io-surface" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "180788110936d59bab6bd83b6060ffdfffb3b922ba1396b312ae795e1de9d81d" +dependencies = [ + "bitflags 2.13.1", + "objc2 0.6.4", + "objc2-core-foundation", +] + [[package]] name = "objc2-link-presentation" version = "0.2.2" @@ -3679,6 +3673,7 @@ dependencies = [ "bitflags 2.13.1", "objc2 0.6.4", "objc2-core-foundation", + "objc2-core-graphics", "objc2-foundation 0.3.2", "objc2-metal 0.3.2", ] @@ -3944,7 +3939,7 @@ dependencies = [ [[package]] name = "phon" version = "0.2.0-rc.7" -source = "git+https://github.com/FastTrackStudios/vendor?tag=v0.4.1#c2a29c0437270b36051fb3441f61ed63e1475c0e" +source = "git+https://github.com/FastTrackStudios/vendor?tag=v0.4.0#b58441601ee53a6851b802b4ab65957d659468c4" dependencies = [ "facet", "facet-value", @@ -4469,7 +4464,7 @@ checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539" [[package]] name = "raw-window-metal" version = "1.1.0" -source = "git+https://github.com/FastTrackStudios/vendor?tag=v0.6.1#ae09c12a6637ca5cd0b1bfe5dbde745b61024950" +source = "git+https://github.com/FastTrackStudios/vendor?tag=v0.7.1#d17f671fbff9bd722e00a6a281b24149d142a849" dependencies = [ "objc2 0.6.4", "objc2-core-foundation", @@ -4778,7 +4773,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys 0.12.1", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -5109,6 +5104,17 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbfa15b3dddfee50a0fff136974b3e1bde555604ba463834a7eb7deb6417705d" +[[package]] +name = "sha2" +version = "0.10.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" +dependencies = [ + "cfg-if", + "cpufeatures 0.2.17", + "digest", +] + [[package]] name = "sharded-slab" version = "0.1.7" @@ -5284,16 +5290,6 @@ dependencies = [ "serde", ] -[[package]] -name = "socket2" -version = "0.5.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - [[package]] name = "socket2" version = "0.6.5" @@ -5301,7 +5297,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3d1e2c7f27f8d4cb10542a02c49005dbd6e93095799d6f3be745fae9f8fedd4" dependencies = [ "libc", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -5591,7 +5587,7 @@ dependencies = [ "getrandom 0.4.3", "once_cell", "rustix 1.1.4", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -5773,7 +5769,7 @@ dependencies = [ "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2 0.6.5", + "socket2", "tokio-macros", "windows-sys 0.61.2", ] @@ -6108,12 +6104,6 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b1d386ff53b415b7fe27b50bb44679e2cc4660272694b7b6f3326d8480823a94" -[[package]] -name = "unicode-width" -version = "0.1.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" - [[package]] name = "unicode-width" version = "0.2.2" @@ -6176,33 +6166,6 @@ dependencies = [ "xmlwriter", ] -[[package]] -name = "usvg" -version = "0.46.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e419dff010bb12512b0ae9e3d2f318dfbdf0167fde7eb05465134d4e8756076f" -dependencies = [ - "base64 0.22.1", - "data-url", - "flate2", - "fontdb 0.23.0", - "imagesize 0.14.0", - "kurbo 0.13.1", - "log", - "pico-args", - "roxmltree 0.21.1", - "rustybuzz", - "simplecss", - "siphasher", - "strict-num", - "svgtypes 0.16.1", - "tiny-skia-path 0.11.4", - "unicode-bidi", - "unicode-script", - "unicode-vo", - "xmlwriter", -] - [[package]] name = "usvg" version = "0.48.1" @@ -6274,9 +6237,9 @@ checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" [[package]] name = "vello" -version = "0.10.0" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af76ceb17b2869be23598baef40a9c8db4de86b87c60510c3bc245559275a617" +checksum = "913abde56cab6131b62c0cc69b1a93b671d3c34b3097beb3714fd1dc93be8115" dependencies = [ "bytemuck", "futures-intrusive", @@ -6321,9 +6284,9 @@ dependencies = [ [[package]] name = "vello_encoding" -version = "0.10.0" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e31cd622201690d8dfe9fd8fea8d1ae59db1bfeea414856a617d1d03438418c" +checksum = "b1fb9548d2b46b0f79137b5b1d208ecbd76d432f74e7a2ba838615d117f11532" dependencies = [ "bytemuck", "guillotiere", @@ -6334,9 +6297,9 @@ dependencies = [ [[package]] name = "vello_shaders" -version = "0.10.0" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abf943bd2920bfd22928a9c1bad39866f7ffcc1109b6ed924ab52773e3868a83" +checksum = "2e653222cee49f2571729c3e4b0fa99bc4f826c6bb9487dbb88b825d552b3a27" dependencies = [ "bytemuck", "log", @@ -6565,12 +6528,11 @@ dependencies = [ [[package]] name = "wasm-bindgen" -version = "0.2.126" +version = "0.2.130" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b067c0c11094aef6b7a801c1e34a26affafdf3d051dba08456b868789aaf9a4" +checksum = "a0181c14ddd6c7b8b0b0132a5f1ea2f32be0d893cd3ea97b6e3b28886b8a3d1c" dependencies = [ "cfg-if", - "once_cell", "rustversion", "serde", "wasm-bindgen-macro", @@ -6579,19 +6541,20 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.76" +version = "0.4.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c62df1340f32221cb9c54d6a27b030e3dba64361d4a95bed55f9aacb44da291d" +checksum = "5e14e0327cb5368ad60ccb22d04a9827a693c95a926d8d125e9fa39e0baec501" dependencies = [ "js-sys", + "tokio", "wasm-bindgen", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.126" +version = "0.2.130" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "167ce5e579f6bcf889c4f7175a8a5a585de84e8ff93976ce393efa5f2837aab1" +checksum = "6e931a02a39abdbf66966fc35902b5ed58344750a70885bed4ebb3d8eaf28ed9" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -6599,22 +6562,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.126" +version = "0.2.130" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3997c7839262f4ef12cf90b818d6340c18e80f263f1a94bf157d0ec4420380e" +checksum = "2ca4b54280e455bd831e33a6b8e734baf432fe63fbc35c42ac14ce67a043a53a" dependencies = [ "bumpalo", "proc-macro2", "quote", - "syn 2.0.119", + "syn 3.0.4", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.126" +version = "0.2.130" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc1b4cb0cc549fcf58d7dfc081778139b3d283a081644e833e84682ad71cea24" +checksum = "3b1f9c3798725016c6ee5f2f57869ec0831e8bbc0ab0310a86e787e97f41389e" dependencies = [ "unicode-ident", ] @@ -6749,9 +6712,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.103" +version = "0.3.107" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8622dcb61c0bcc9fffa6938bed81210af2da9a7e4a1a834b2e37a59b6dfb6141" +checksum = "d7d179596ff5ec0f6de4db64d54011bde6289cc49603d3a6e4ce3f329207ab88" dependencies = [ "js-sys", "wasm-bindgen", @@ -6775,9 +6738,9 @@ checksum = "a28ac98ddc8b9274cb41bb4d9d4d5c425b6020c50c46f25559911905610b4a88" [[package]] name = "wgpu" -version = "29.0.4" +version = "30.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76e8840e1ba2881d4cbb18d2147627a56af426ff064c0401eb0c8410c6325d07" +checksum = "527ccdf43dd5b2e8676eed9984ce00e2bbb0a1b85b70c1969dcb6cd2eb55ab9e" dependencies = [ "arrayvec", "bitflags 2.13.1", @@ -6785,7 +6748,7 @@ dependencies = [ "cfg-if", "cfg_aliases", "document-features", - "hashbrown 0.16.1", + "hashbrown 0.17.1", "js-sys", "log", "naga", @@ -6805,21 +6768,22 @@ dependencies = [ [[package]] name = "wgpu-core" -version = "29.0.4" +version = "30.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f519832254e56965a9940c4af57dcb75f702b6f6fa4a0b172f685395843a4d7" +checksum = "14c018fce9b6270aa203c2fdd56f3cce996713534bd757e4ea58c8560b121f14" dependencies = [ "arrayvec", - "bit-set 0.9.1", + "bit-set 0.10.0", "bit-vec 0.9.1", "bitflags 2.13.1", "bytemuck", "cfg_aliases", "document-features", - "hashbrown 0.16.1", + "hashbrown 0.17.1", "indexmap 2.14.1", "log", "naga", + "naga-types", "once_cell", "parking_lot", "portable-atomic", @@ -6838,40 +6802,40 @@ dependencies = [ [[package]] name = "wgpu-core-deps-apple" -version = "29.0.4" +version = "30.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5e39e26c4c0e07589e67d18546cf79ff45383659fc72fca4dd293358a0347f3" +checksum = "061f3d319a40d39d00b1ecc2c33b89fe21d4e6fe01859df3500a3a8ecccd6b68" dependencies = [ "wgpu-hal", ] [[package]] name = "wgpu-core-deps-emscripten" -version = "29.0.4" +version = "30.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01e09be551dc939498bdd5f6b2c66e55ab275dad25825267a08605a80fc9f0af" +checksum = "d98b86cf4abf524a902dd35f18ca6a3f08fc2ae9847c8f10b48e30491b1f0b86" dependencies = [ "wgpu-hal", ] [[package]] name = "wgpu-core-deps-windows-linux-android" -version = "29.0.4" +version = "30.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e592c1bbef6ad047647ae6e666ebd8cee7a32bb4544d9700ec96cbf73230257" +checksum = "7586165fd5f6d881cb9ce4bb71f40d6caab2c0f1837e3fc1d9788a197fb6004f" dependencies = [ "wgpu-hal", ] [[package]] name = "wgpu-hal" -version = "29.0.4" -source = "git+https://github.com/FastTrackStudios/vendor?tag=v0.6.1#ae09c12a6637ca5cd0b1bfe5dbde745b61024950" +version = "30.0.1" +source = "git+https://github.com/FastTrackStudios/vendor?tag=v0.7.1#d17f671fbff9bd722e00a6a281b24149d142a849" dependencies = [ "android_system_properties", "arrayvec", "ash", - "bit-set 0.9.1", + "bit-set 0.10.0", "bitflags 2.13.1", "block2 0.6.2", "bytemuck", @@ -6880,17 +6844,18 @@ dependencies = [ "glow", "glutin_wgl_sys", "gpu-allocator", - "gpu-descriptor", - "hashbrown 0.16.1", + "hashbrown 0.17.1", "js-sys", "khronos-egl", "libc", "libloading", "log", "naga", + "naga-types", "ndk-sys", "objc2 0.6.4", "objc2-core-foundation", + "objc2-core-graphics", "objc2-foundation 0.3.2", "objc2-metal 0.3.2", "objc2-quartz-core 0.3.2", @@ -6905,22 +6870,23 @@ dependencies = [ "raw-window-metal", "renderdoc-sys", "smallvec 1.16.0", + "static_assertions", "thiserror 2.0.20", "wasm-bindgen", "wayland-sys", "web-sys", "wgpu-naga-bridge", "wgpu-types", - "windows 0.62.2", - "windows-core 0.62.2", - "windows-result 0.4.1", + "windows", + "windows-core", + "windows-result", ] [[package]] name = "wgpu-naga-bridge" -version = "29.0.4" +version = "30.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95226013f547544b223281cd16a4fb549aa9dcb562adbda0faae4c73ffbbc161" +checksum = "d2f62e73117bb7a62bfd9c5a5841438a823f6566c6442a808ee269d2d055c081" dependencies = [ "naga", "wgpu-types", @@ -6928,22 +6894,25 @@ dependencies = [ [[package]] name = "wgpu-types" -version = "29.0.4" +version = "30.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84bf84cd9ca8ca45e2b223a3868f1adf9bfc0c66aeac212e76ee7e40fdadf8f5" +checksum = "99dad6f1fbdbbdb4c278a6508b059d44688f5cebddf78d005a46a31340269286" dependencies = [ "bitflags 2.13.1", "bytemuck", "js-sys", "log", + "naga-types", "raw-window-handle", + "static_assertions", "web-sys", ] [[package]] name = "wgpu_context" -version = "0.9.0" -source = "git+https://github.com/DioxusLabs/anyrender.git?branch=main#b0ef17ec3937a378a2efcfd9901d9074ddbc8403" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5277f9d30e7087f1eeb0034206dce7d3377e76da017fdceb8aa4faebb1df68e2" dependencies = [ "futures-intrusive", "wgpu", @@ -6955,17 +6924,7 @@ version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys 0.48.0", -] - -[[package]] -name = "windows" -version = "0.58.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6" -dependencies = [ - "windows-core 0.58.0", - "windows-targets 0.52.6", + "windows-sys 0.61.2", ] [[package]] @@ -6975,7 +6934,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "527fadee13e0c05939a6a05d5bd6eec6cd2e3dbd648b9f8e447c6518133d8580" dependencies = [ "windows-collections", - "windows-core 0.62.2", + "windows-core", "windows-future", "windows-numerics", ] @@ -6986,20 +6945,7 @@ 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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99" -dependencies = [ - "windows-implement 0.58.0", - "windows-interface 0.58.0", - "windows-result 0.2.0", - "windows-strings 0.1.0", - "windows-targets 0.52.6", + "windows-core", ] [[package]] @@ -7008,11 +6954,11 @@ 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-implement", + "windows-interface", "windows-link", - "windows-result 0.4.1", - "windows-strings 0.5.1", + "windows-result", + "windows-strings", ] [[package]] @@ -7021,22 +6967,11 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1d6f90251fe18a279739e78025bd6ddc52a7e22f921070ccdc67dde84c605cb" dependencies = [ - "windows-core 0.62.2", + "windows-core", "windows-link", "windows-threading", ] -[[package]] -name = "windows-implement" -version = "0.58.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.119", -] - [[package]] name = "windows-implement" version = "0.60.2" @@ -7048,17 +6983,6 @@ dependencies = [ "syn 2.0.119", ] -[[package]] -name = "windows-interface" -version = "0.58.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.119", -] - [[package]] name = "windows-interface" version = "0.59.3" @@ -7082,7 +7006,7 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e2e40844ac143cdb44aead537bbf727de9b044e107a0f1220392177d15b0f26" dependencies = [ - "windows-core 0.62.2", + "windows-core", "windows-link", ] @@ -7093,17 +7017,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "02752bf7fbdcce7f2a27a742f798510f3e5ad88dbe84871e5168e2120c3d5720" dependencies = [ "windows-link", - "windows-result 0.4.1", - "windows-strings 0.5.1", -] - -[[package]] -name = "windows-result" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" -dependencies = [ - "windows-targets 0.52.6", + "windows-result", + "windows-strings", ] [[package]] @@ -7115,16 +7030,6 @@ dependencies = [ "windows-link", ] -[[package]] -name = "windows-strings" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" -dependencies = [ - "windows-result 0.2.0", - "windows-targets 0.52.6", -] - [[package]] name = "windows-strings" version = "0.5.1" @@ -7134,22 +7039,13 @@ dependencies = [ "windows-link", ] -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.5", -] - [[package]] name = "windows-sys" version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.6", + "windows-targets", ] [[package]] @@ -7158,16 +7054,7 @@ version = "0.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-sys" -version = "0.60.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" -dependencies = [ - "windows-targets 0.53.5", + "windows-targets", ] [[package]] @@ -7179,52 +7066,20 @@ dependencies = [ "windows-link", ] -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", -] - [[package]] name = "windows-targets" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "windows_aarch64_gnullvm 0.52.6", - "windows_aarch64_msvc 0.52.6", - "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm 0.52.6", - "windows_i686_msvc 0.52.6", - "windows_x86_64_gnu 0.52.6", - "windows_x86_64_gnullvm 0.52.6", - "windows_x86_64_msvc 0.52.6", -] - -[[package]] -name = "windows-targets" -version = "0.53.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" -dependencies = [ - "windows-link", - "windows_aarch64_gnullvm 0.53.1", - "windows_aarch64_msvc 0.53.1", - "windows_i686_gnu 0.53.1", - "windows_i686_gnullvm 0.53.1", - "windows_i686_msvc 0.53.1", - "windows_x86_64_gnu 0.53.1", - "windows_x86_64_gnullvm 0.53.1", - "windows_x86_64_msvc 0.53.1", + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_gnullvm", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", ] [[package]] @@ -7236,144 +7091,54 @@ dependencies = [ "windows-link", ] -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - [[package]] name = "windows_aarch64_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - [[package]] name = "windows_aarch64_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" -[[package]] -name = "windows_aarch64_msvc" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" - -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - [[package]] name = "windows_i686_gnu" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" -[[package]] -name = "windows_i686_gnu" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" - [[package]] name = "windows_i686_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" -[[package]] -name = "windows_i686_gnullvm" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - [[package]] name = "windows_i686_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" -[[package]] -name = "windows_i686_msvc" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - [[package]] name = "windows_x86_64_gnu" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" -[[package]] -name = "windows_x86_64_gnu" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - [[package]] name = "windows_x86_64_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - [[package]] name = "windows_x86_64_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" -[[package]] -name = "windows_x86_64_msvc" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" - [[package]] name = "winit" version = "0.30.13" diff --git a/Cargo.toml b/Cargo.toml index 592e5681..3d4b704f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -33,18 +33,20 @@ authors = ["FastTrack Studios"] license = "MIT OR Apache-2.0" repository = "https://github.com/FastTrackStudios/frame" -# The versions Studio pinned at the cut (studio@fc6b1954), so Frame builds -# with exactly what it built with there. +# architect v0.10.0's pins (its Cargo.toml and lock): vox rc.7, facet rc.7, +# vello 0.11, wgpu 30, anyrender 0.14 / anyrender_vello 0.15, Blitz and +# nice-plug at fts-upstream-2026-11. A Frame consumer repeats the [patch] +# tables below. [workspace.dependencies] -anyrender_0_11 = { package = "anyrender", git = "https://github.com/FastTrackStudios/blitz", tag = "fts-pointer-2026-10" } -anyrender_svg = { git = "https://github.com/DioxusLabs/anyrender.git", branch = "main" } -anyrender_svg_0_12 = { version = "0.12", package = "anyrender_svg" } -architect = { git = "https://github.com/FastTrackStudios/architect", tag = "v0.9.31" } +anyrender = "0.14" +anyrender_vello = "0.15" +anyrender_svg = "0.15" +architect = { git = "https://github.com/FastTrackStudios/architect", tag = "v0.10.0" } base64 = "0.22.1" blake3 = { version = "1.8" } chrono = { version = "0.4", default-features = false, features = ["clock", "std", "wasmbind"] } -crdt = { git = "https://github.com/FastTrackStudios/architect", tag = "v0.9.31" } -facet = { version = "0.50.0-rc.5", features = ["reflect", "chrono", "uuid"] } +crdt = { git = "https://github.com/FastTrackStudios/architect", tag = "v0.10.0" } +facet = { version = "0.50.0-rc.7", features = ["reflect", "chrono", "uuid"] } facet-json = { version = "0.50.0-rc.7" } facet-styx = { version = "5.0.0-rc.7" } figma-api = { git = "https://github.com/gridaco/figma-api-rust.git" } @@ -52,7 +54,7 @@ fixed = "1.28" image = { version = "0.25", default-features = false, features = ["png"] } kurbo = "0.13" miniz_oxide = "0.8" -nice-plug-core = { git = "https://github.com/FastTrackStudios/nice-plug.git", branch = "fts-baseview-03" } +nice-plug-core = { git = "https://github.com/FastTrackStudios/nice-plug.git", tag = "fts-upstream-2026-11" } peniko = "0.6" pollster = "0.4.0" proptest = "1" @@ -67,22 +69,26 @@ thiserror = "2.0" tokio = { version = "1.48", features = ["full"] } uuid = { version = "1", features = ["v4", "v5", "v7", "serde"] } vello_cpu = { version = "0.0.9", default-features = false } -vox = { version = "0.10.0-rc.5", default-features = false, features = ["runtime"] } -vox-core = { version = "0.10.0-rc.5" } +vox = { version = "0.10.0-rc.7", default-features = false, features = ["runtime"] } +vox-core = { version = "0.10.0-rc.7" } vox-websocket = { version = "0.10.0-rc.5" } winit = "0.30" +vello = "0.11" +wgpu = "30" zip = { version = "2", default-features = false } -# Studio's patch tables, the entries that reach Frame's graph. +# architect v0.10.0's patch tables (FastTrackStudios/vendor at v0.7.1 where +# architect has v0.7.0), the entries that reach Frame's graph. [patch.crates-io] -anyrender = { git = "https://github.com/FastTrackStudios/blitz", tag = "fts-pointer-2026-10" } -wgpu-hal = { git = "https://github.com/FastTrackStudios/vendor", tag = "v0.6.1" } -raw-window-metal = { git = "https://github.com/FastTrackStudios/vendor", tag = "v0.6.1" } +anyrender = { git = "https://github.com/FastTrackStudios/blitz", tag = "fts-upstream-2026-11" } +anyrender_vello = { git = "https://github.com/FastTrackStudios/vendor", tag = "v0.7.1" } +wgpu-hal = { git = "https://github.com/FastTrackStudios/vendor", tag = "v0.7.1" } +raw-window-metal = { git = "https://github.com/FastTrackStudios/vendor", tag = "v0.7.1" } styx-format = { git = "https://github.com/FastTrackStudios/vendor", tag = "v0.1.0" } -vox-phon = { git = "https://github.com/FastTrackStudios/vendor", tag = "v0.3.0" } -phon = { git = "https://github.com/FastTrackStudios/vendor", tag = "v0.4.1" } -facet-core = { git = "https://github.com/FastTrackStudios/vendor", tag = "v0.4.1" } +phon = { git = "https://github.com/FastTrackStudios/vendor", tag = "v0.4.0" } phon-jit = { git = "https://github.com/FastTrackStudios/vendor", tag = "v0.2.3" } +facet-core = { git = "https://github.com/FastTrackStudios/vendor", tag = "v0.4.0" } +vox-phon = { git = "https://github.com/FastTrackStudios/vendor", tag = "v0.3.0" } [workspace.lints.rust] # Flipped from "allow" 2026-07-28 (task cleanup): the blanket allows are diff --git a/crates/frame/Cargo.toml b/crates/frame/Cargo.toml index 01d55c65..7df073ee 100644 --- a/crates/frame/Cargo.toml +++ b/crates/frame/Cargo.toml @@ -12,8 +12,10 @@ workspace = true [features] default = ["vox"] +# A host's anyrender `PaintScene` (Blitz's) as a paint target: the +# anyrender crate alone, the same 0.14 Blitz and architect use. +host-scene = ["dep:anyrender"] anyrender = ["dep:anyrender", "dep:anyrender_svg", "dep:anyrender_vello", "dep:image", "dep:peniko", "dep:pollster", "dep:skrifa", "dep:vello", "dep:winit", "svg_export"] -anyrender-0-11 = ["dep:anyrender_0_11", "dep:anyrender_svg_0_12"] codec = ["io"] cpu = ["dep:image", "dep:vello_cpu"] design = ["io", "render", "runtime"] @@ -36,14 +38,9 @@ theme = ["render"] vox = ["architect/vox", "dep:vox", "rpc"] [dependencies] -anyrender = { git = "https://github.com/DioxusLabs/anyrender.git", branch = "main", optional = true } -# The host scene anyrender (0.11): the blitz fork the workspace patches -# crates.io anyrender to, named directly — dx's metadata reader cannot -# match a renamed dependency to a patched source. -anyrender_0_11 = { workspace = true, optional = true } -anyrender_svg_0_12 = { workspace = true, optional = true } +anyrender = { workspace = true, optional = true } anyrender_svg = { workspace = true, optional = true } -anyrender_vello = { git = "https://github.com/DioxusLabs/anyrender.git", branch = "main", optional = true } +anyrender_vello = { workspace = true, optional = true } architect = { workspace = true, optional = true } base64 = { workspace = true, optional = true } blake3 = { workspace = true } @@ -69,7 +66,7 @@ taffy = { workspace = true, optional = true } thiserror = { workspace = true } tokio = { workspace = true, optional = true } uuid = { workspace = true } -vello = { version = "0.10.0", optional = true } +vello = { workspace = true, optional = true } vello_cpu = { workspace = true, features = ["std", "u8_pipeline"], optional = true } vox = { workspace = true, optional = true } vox-core = { workspace = true, optional = true } @@ -80,7 +77,7 @@ zip = { workspace = true, features = ["deflate"], optional = true } [dev-dependencies] # Its own tests and examples, with the features they need (see their # required-features): a plain `cargo test` of the workspace builds them all. -frame = { path = ".", features = ["anyrender", "cpu", "design", "dsp", "embed", "figma", "io", "library", "live", "render", "runtime", "surface-runtime-rpc", "theme"] } +frame = { path = ".", features = ["anyrender", "cpu", "design", "dsp", "embed", "figma", "host-scene", "io", "library", "live", "nice-plug", "render", "runtime", "surface-runtime-rpc", "theme"] } architect = { workspace = true, features = ["vox", "local"] } facet = { workspace = true } facet-json = { workspace = true } @@ -90,10 +87,10 @@ pollster = { workspace = true } proptest = { workspace = true } serde_json = { workspace = true } tokio = { workspace = true } -vello = { version = "0.10.0" } +vello = { workspace = true } vox-core = { workspace = true } vox-websocket = { workspace = true } -wgpu = { version = "29" } +wgpu = { workspace = true } [[example]] name = "strips" diff --git a/crates/frame/examples/face_frames.rs b/crates/frame/examples/face_frames.rs index 6185ce6c..c7461a02 100644 --- a/crates/frame/examples/face_frames.rs +++ b/crates/frame/examples/face_frames.rs @@ -43,7 +43,9 @@ fn read(device: &wgpu::Device, queue: &wgpu::Queue, texture: &wgpu::Texture) -> let slice = buffer.slice(..); slice.map_async(wgpu::MapMode::Read, |_| {}); let _ = device.poll(wgpu::PollType::wait_indefinitely()); - let mapped = slice.get_mapped_range(); + let mapped = slice + .get_mapped_range() + .expect("the buffer is mapped: the poll above waited for it"); let mut rgba = vec![0_u8; (unpadded * rows) as usize]; for row in 0..rows as usize { rgba[row * unpadded as usize..(row + 1) * unpadded as usize].copy_from_slice( diff --git a/crates/frame/src/embed/mod.rs b/crates/frame/src/embed/mod.rs index bc3f3077..11913876 100644 --- a/crates/frame/src/embed/mod.rs +++ b/crates/frame/src/embed/mod.rs @@ -10,7 +10,7 @@ //! two paint passes (params, recorded once; feeds and motion, live), //! pointer routing in strip-local coordinates. //! - [`Canvas`]: what it paints into — the host's own scene. An anyrender -//! 0.11 `PaintScene` (feature `anyrender-0-11`, session's mixer), frame's +//! `PaintScene` (feature `host-scene`, session's mixer), frame's //! replayable [`Recording`], or the CPU rasteriser ([`cpu`], REAPER's //! LICE bitmap, tests). //! - [`tone`]: session's Tone rack (EQ, gate, compressor, saturator, @@ -50,7 +50,7 @@ pub mod tone; // The painting seam, shared with the theme runtime. pub use crate::render::canvas::{canvas, paint, text}; -#[cfg(feature = "anyrender-0-11")] +#[cfg(feature = "host-scene")] pub use canvas::AnyRender; pub use canvas::{Canvas, CanvasExt, Recording, Tally}; pub use embed::{ diff --git a/crates/frame/src/live/mod.rs b/crates/frame/src/live/mod.rs index aa4d6dd3..1fc61833 100644 --- a/crates/frame/src/live/mod.rs +++ b/crates/frame/src/live/mod.rs @@ -15,7 +15,7 @@ //! hand. A host with an engine feeds the engine's values in with //! [`LiveSurface::apply_values`]. -#[cfg(feature = "anyrender-0-11")] +#[cfg(feature = "host-scene")] mod vectors; use std::path::{Path, PathBuf}; use std::time::{Duration, Instant}; @@ -764,13 +764,13 @@ impl LiveSurface { /// Paint the surface's vectors at `width × height` physical px /// (`scale` physical px per element px) into `scene`, a host's anyrender - /// 0.11 scene — the path for a host whose renderer gives no Vello GPU to + /// scene — the path for a host whose renderer gives no Vello GPU to /// [`render`](Self::render) with (vello-hybrid on the iOS simulator, /// whose Metal has no indirect execution). The same frame as `render`, /// painted by the same painter; the GPU effects stage is left out (a /// glow is drawn as a soft copy, as frame's fallback mode draws it). - #[cfg(feature = "anyrender-0-11")] - pub fn paint_vectors( + #[cfg(feature = "host-scene")] + pub fn paint_vectors( &mut self, scene: &mut S, width: u32, @@ -802,7 +802,7 @@ impl LiveSurface { ty: physical.ty / scale, }; let doc = self.rt.frame(t); - let mut target = vectors::AnyRender011(scene); + let mut target = vectors::HostScene(scene); let bounds = kurbo::Rect::new(0.0, 0.0, f64::from(w), f64::from(h)); crate::render::PaintTarget::fill( &mut target, @@ -835,8 +835,8 @@ impl LiveSurface { /// drawn over a host's own picture, as one block of its grid, its /// transparent margin showing what is under it. The same frame as /// [`paint_vectors`](Self::paint_vectors), by the same painter. - #[cfg(feature = "anyrender-0-11")] - pub fn paint_vectors_at( + #[cfg(feature = "host-scene")] + pub fn paint_vectors_at( &mut self, scene: &mut S, width: f64, @@ -854,7 +854,7 @@ impl LiveSurface { let view = View::fit(self.content, width.max(1.0), height.max(1.0)); self.view = view; let doc = self.rt.frame(t); - let mut target = vectors::AnyRender011(scene); + let mut target = vectors::HostScene(scene); let prims = crate::render::build_scene_primitives_with( &doc, self.page, diff --git a/crates/frame/src/live/vectors.rs b/crates/frame/src/live/vectors.rs index 93ed49b9..79c0a827 100644 --- a/crates/frame/src/live/vectors.rs +++ b/crates/frame/src/live/vectors.rs @@ -1,23 +1,21 @@ -//! A host's anyrender 0.11 scene as frame's paint target — Blitz's, drawn +//! A host's anyrender scene as frame's paint target — Blitz's, drawn //! by whatever renderer the host runs: vello-hybrid on the iOS simulator, //! whose Metal has no indirect execution for Vello's compute stages. What //! that API has no word for is approximated: a luminance mask draws its -//! content unmasked, and clips are non-zero. +//! content unmasked. //! -//! Here rather than in `render`, under the crates' own names: `render` also -//! links frame's anyrender (git main), and a renamed dependency that a host -//! redirects with `[patch]` (signal's, to the blitz fork) breaks dx's -//! dependency scan. +//! Frame and its hosts share one anyrender (0.14, Blitz's fork, the +//! version architect pins), so a host's scene and frame's are one type. use kurbo::{Affine, Rect, Shape, Stroke}; use peniko::{BlendMode, BrushRef, Color, Fill}; use crate::render::{GlyphRun, PaintTarget}; -/// An anyrender 0.11 `PaintScene` as a [`PaintTarget`]. -pub struct AnyRender011<'s, S: anyrender_0_11::PaintScene>(pub &'s mut S); +/// A host's anyrender `PaintScene` as a [`PaintTarget`]. +pub struct HostScene<'s, S: anyrender::PaintScene>(pub &'s mut S); -impl PaintTarget for AnyRender011<'_, S> { +impl PaintTarget for HostScene<'_, S> { fn fill<'b>( &mut self, style: Fill, @@ -32,9 +30,10 @@ impl PaintTarget for AnyRender011<'_, S> { if let BrushRef::Image(image) = &brush && image.sampler.alpha < 1.0 { - let mut opaque = image.clone(); + let mut opaque = *image; opaque.sampler.alpha = 1.0; self.0.push_layer( + Fill::NonZero, BlendMode::default(), image.sampler.alpha, transform, @@ -45,7 +44,7 @@ impl PaintTarget for AnyRender011<'_, S> { self.0.fill( style, transform, - anyrender_0_11::PaintRef::Image(opaque), + anyrender::PaintRef::Image(opaque), brush_transform, shape, ); @@ -55,7 +54,7 @@ impl PaintTarget for AnyRender011<'_, S> { self.0.fill( style, transform, - anyrender_0_11::PaintRef::from(brush), + anyrender::PaintRef::from(brush), brush_transform, shape, ); @@ -73,7 +72,7 @@ impl PaintTarget for AnyRender011<'_, S> { self.0.stroke( style, transform, - anyrender_0_11::PaintRef::from(brush), + anyrender::PaintRef::from(brush), brush_transform, shape, ); @@ -81,29 +80,37 @@ impl PaintTarget for AnyRender011<'_, S> { fn push_layer( &mut self, - _clip_style: Fill, + clip_style: Fill, blend: impl Into, alpha: f32, transform: Affine, clip: &impl Shape, ) { - self.0.push_layer(blend, alpha, transform, clip, None, None); + self.0 + .push_layer(clip_style, blend, alpha, transform, clip, None, None); } - fn push_clip_layer(&mut self, _clip_style: Fill, transform: Affine, clip: &impl Shape) { - self.0.push_clip_layer(transform, clip); + fn push_clip_layer(&mut self, clip_style: Fill, transform: Affine, clip: &impl Shape) { + self.0.push_clip_layer(clip_style, transform, clip); } fn push_luminance_mask_layer( &mut self, - _clip_style: Fill, + clip_style: Fill, alpha: f32, transform: Affine, clip: &impl Shape, ) { // No luminance masks here: the mask's content draws unmasked. - self.0 - .push_layer(BlendMode::default(), alpha, transform, clip, None, None); + self.0.push_layer( + clip_style, + BlendMode::default(), + alpha, + transform, + clip, + None, + None, + ); } fn pop_layer(&mut self) { @@ -123,7 +130,7 @@ impl PaintTarget for AnyRender011<'_, S> { } fn draw_glyph_run(&mut self, run: &GlyphRun<'_>) { - let glyphs = run.glyphs.iter().map(|g| anyrender_0_11::Glyph { + let glyphs = run.glyphs.iter().map(|g| anyrender::Glyph { id: g.id, x: g.x, y: g.y, @@ -135,7 +142,7 @@ impl PaintTarget for AnyRender011<'_, S> { run.normalized_coords, run.embolden, Fill::NonZero, - anyrender_0_11::PaintRef::from(run.brush.clone()), + anyrender::PaintRef::from(run.brush), run.brush_alpha, run.transform, run.glyph_transform, @@ -157,18 +164,17 @@ impl PaintTarget for AnyRender011<'_, S> { let Some(tree) = svg_tree(svg_text) else { return false; }; - anyrender_svg_0_12::render_svg_tree(&mut *self.0, &tree, transform); + anyrender_svg::render_svg_tree(&mut *self.0, &tree, transform); true } } -/// SVG trees parsed by anyrender_svg 0.12's usvg, by text — frame's own -/// cache holds the other usvg's. -fn svg_tree(svg_text: &str) -> Option> { +/// SVG trees parsed by anyrender_svg's usvg, by text. +fn svg_tree(svg_text: &str) -> Option> { use std::collections::HashMap; use std::hash::{Hash, Hasher}; use std::sync::{Arc, LazyLock, Mutex}; - static TREES: LazyLock>>>> = + static TREES: LazyLock>>>> = LazyLock::new(|| Mutex::new(HashMap::new())); let mut hasher = std::collections::hash_map::DefaultHasher::new(); svg_text.hash(&mut hasher); @@ -177,12 +183,9 @@ fn svg_tree(svg_text: &str) -> Option mapped, + Err(e) => return Some(Err(format!("get_mapped_range failed: {e}"))), + }; let (unpadded, padded) = (self.unpadded as usize, self.padded as usize); let mut rgba = vec![0_u8; unpadded * self.rows as usize]; for row in 0..self.rows as usize { diff --git a/crates/frame/src/theme/runtime/mod.rs b/crates/frame/src/theme/runtime/mod.rs index 344febd3..424b75e1 100644 --- a/crates/frame/src/theme/runtime/mod.rs +++ b/crates/frame/src/theme/runtime/mod.rs @@ -75,5 +75,5 @@ pub use schema::Schema; pub use crate::render::canvas::{Canvas, Font, Recording, TextAlign, TextRun}; pub use crate::theme::expr::{Rgba, Value}; -#[cfg(feature = "anyrender-0-11")] +#[cfg(feature = "host-scene")] pub use crate::render::canvas::AnyRender; diff --git a/crates/frame/tools/cli/Cargo.toml b/crates/frame/tools/cli/Cargo.toml index e7c63c78..e56b84f9 100644 --- a/crates/frame/tools/cli/Cargo.toml +++ b/crates/frame/tools/cli/Cargo.toml @@ -16,7 +16,7 @@ roxmltree = { workspace = true } kurbo = { workspace = true, optional = true } peniko = { workspace = true, optional = true } skrifa = { version = "0.26", optional = true } -vello = { version = "0.10.0", optional = true } # frame's own version (not the workspace's) +vello = { workspace = true, optional = true } winit = { workspace = true, optional = true } image = { version = "0.25", optional = true } # frame's own version (not the workspace's) pollster = { workspace = true, optional = true } diff --git a/crates/frame/tools/cli/src/bin/wgpu_preview.rs b/crates/frame/tools/cli/src/bin/wgpu_preview.rs index 1468959c..e4028050 100644 --- a/crates/frame/tools/cli/src/bin/wgpu_preview.rs +++ b/crates/frame/tools/cli/src/bin/wgpu_preview.rs @@ -661,7 +661,7 @@ impl ApplicationHandler for App { .create_view(&wgpu::TextureViewDescriptor::default()), ); device_handle.queue.submit([encoder.finish()]); - surface_texture.present(); + device_handle.queue.present(surface_texture); let _ = device_handle.device.poll(wgpu::PollType::Poll); let now = Instant::now(); diff --git a/crates/frame/tools/desktop/Cargo.toml b/crates/frame/tools/desktop/Cargo.toml index d5aba685..980cd384 100644 --- a/crates/frame/tools/desktop/Cargo.toml +++ b/crates/frame/tools/desktop/Cargo.toml @@ -15,7 +15,7 @@ frame = { path = "../..", features = ["anyrender", "design", "io", "library", "r serde_json = { workspace = true } kurbo = { workspace = true } peniko = { workspace = true } -vello = { version = "0.10.0" } # frame's own version (not the workspace's) +vello = { workspace = true } winit = { workspace = true } pollster = { workspace = true } image = { version = "0.25" } # frame's own version (not the workspace's) diff --git a/crates/frame/tools/desktop/src/window.rs b/crates/frame/tools/desktop/src/window.rs index 8db74314..f365ad3d 100644 --- a/crates/frame/tools/desktop/src/window.rs +++ b/crates/frame/tools/desktop/src/window.rs @@ -457,7 +457,7 @@ impl App { .create_view(&wgpu::TextureViewDescriptor::default()), ); device.queue.submit([encoder.finish()]); - texture.present(); + device.queue.present(texture); let _ = device.device.poll(wgpu::PollType::Poll); if let Some(stats) = &mut self.stats { stats.add(started.elapsed(), Instant::now()); diff --git a/docs/frame-themes.md b/docs/frame-themes.md index 3a85860e..6890cf3d 100644 --- a/docs/frame-themes.md +++ b/docs/frame-themes.md @@ -59,7 +59,7 @@ change at runtime. **Frame** already has these parts for one surface at a time: -- `frame-embed` paints into an anyrender 0.11 scene in two passes, `record` +- `frame-embed` paints into an anyrender scene in two passes, `record` and `live`. It uses session's width tiers and has a frame version of the Tone rack. - `surface-runtime` routes pointer gestures and runs meter ballistics. @@ -167,8 +167,7 @@ provides the native image, and frame's visual-diff harness compares the two. - Add a `Skin` seam in session-daw that the current painters implement as `NativeSkin`, with no change in output or bench numbers. 1. **Frame core** (in frame): variables and modes, components and instances - with props, host binding, compile-to-plan, and plan replay into anyrender - 0.11. Frame-side micro-benches. + with props, host binding, compile-to-plan, and plan replay into anyrender. Frame-side micro-benches. 2. **The mixer strip.** - `fts-dark` `mcp.strip` and `mcp.master` as frame components, behind a feature flag.