From 084fa44330ae5e1032f1679dbd3af11ecac44962 Mon Sep 17 00:00:00 2001 From: Nova Date: Thu, 23 Feb 2023 08:43:09 -0500 Subject: [PATCH] feat: update fusion and molecules --- Cargo.lock | 186 ++++++++++++++++++++++++++++++------------- Cargo.toml | 9 ++- examples/app_grid.rs | 2 +- src/main.rs | 2 +- src/protostar.rs | 26 +++--- 5 files changed, 152 insertions(+), 73 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2dfdd5b..cc0d90b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -101,9 +101,9 @@ dependencies = [ [[package]] name = "base64" -version = "0.13.1" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" +checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a" [[package]] name = "bit_field" @@ -429,6 +429,18 @@ version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797" +[[package]] +name = "enum_dispatch" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11f36e95862220b211a6e2aa5eca09b4fa391b13cd52ceb8035a24bf65a79de2" +dependencies = [ + "once_cell", + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "errno" version = "0.2.8" @@ -492,13 +504,12 @@ checksum = "cda653ca797810c02f7ca4b804b40b8b95ae046eb989d356bce17919a8c25499" [[package]] name = "flatbuffers" -version = "2.1.2" +version = "23.1.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b428b715fdbdd1c364b84573b5fdc0f84f8e423661b9f398735278bc7f2b6a" +checksum = "77f5399c2c9c50ae9418e522842ad362f61ee48b346ac106807bd355a8a7c619" dependencies = [ "bitflags", - "smallvec", - "thiserror", + "rustc_version", ] [[package]] @@ -549,14 +560,14 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2be17a530a842f8a7a60f4397a08e8f08872849a5e31b20c7bd7301dac483296" dependencies = [ - "roxmltree", + "roxmltree 0.15.1", ] [[package]] name = "fontdb" -version = "0.10.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8131752b3f3b876a20f42b3d08233ad177d6e7ec6d18aaa6954489a201071be5" +checksum = "ff20bef7942a72af07104346154a70a70b089c572e454b41bef6eb6cb10e9c06" dependencies = [ "fontconfig-parser", "log", @@ -605,6 +616,16 @@ dependencies = [ "weezl", ] +[[package]] +name = "gif" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80792593675e051cf94a4b111980da2ba60d4a83e43e0048c5693baab3977045" +dependencies = [ + "color_quant", + "weezl", +] + [[package]] name = "gimli" version = "0.27.0" @@ -620,6 +641,15 @@ dependencies = [ "mint", ] +[[package]] +name = "glam" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e4afd9ad95555081e109fe1d21f2a30c691b5f0919c67dfa690a2e1eb6bd51c" +dependencies = [ + "mint", +] + [[package]] name = "half" version = "1.8.2" @@ -693,7 +723,7 @@ dependencies = [ "byteorder", "color_quant", "exr", - "gif", + "gif 0.11.4", "jpeg-decoder", "num-rational", "num-traits", @@ -704,9 +734,9 @@ dependencies = [ [[package]] name = "imagesize" -version = "0.10.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df19da1e92fbfec043ca97d622955381b1f3ee72a180ec999912df31b1ccd951" +checksum = "b72ad49b554c1728b1e83254a1b1565aea4161e28dabbfa171fc15fe62299caf" [[package]] name = "indenter" @@ -772,6 +802,15 @@ dependencies = [ "arrayvec", ] +[[package]] +name = "kurbo" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e119590a03caff1f7a582e8ee8c2164ddcc975791701188132fd1d1b518d3871" +dependencies = [ + "arrayvec", +] + [[package]] name = "lazy_static" version = "1.4.0" @@ -1224,7 +1263,7 @@ dependencies = [ "directories", "dirs", "ez-pixmap", - "glam", + "glam 0.22.0", "image", "lazy_static", "manifest-dir-macros", @@ -1232,6 +1271,7 @@ dependencies = [ "nix", "resvg", "rustc-hash", + "stardust-xr-fusion", "stardust-xr-molecules", "tempdir", "tokio", @@ -1400,18 +1440,18 @@ dependencies = [ [[package]] name = "resvg" -version = "0.28.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c115863f2d3621999cf187e318bc92b16402dfeff6a48c74df700d77381394c1" +checksum = "76888219c0881e22b0ceab06fddcfe83163cd81642bd60c7842387f9c968a72e" dependencies = [ - "gif", + "gif 0.12.0", "jpeg-decoder", "log", "pico-args", "png", "rgb", "svgfilters", - "svgtypes", + "svgtypes 0.10.0", "tiny-skia", "usvg", "usvg-text-layout", @@ -1426,6 +1466,19 @@ dependencies = [ "bytemuck", ] +[[package]] +name = "rosvgtree" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdc23d1ace03d6b8153c7d16f0708cd80b61ee8e80304954803354e67e40d150" +dependencies = [ + "log", + "roxmltree 0.18.0", + "simplecss", + "siphasher", + "svgtypes 0.9.0", +] + [[package]] name = "roxmltree" version = "0.15.1" @@ -1435,6 +1488,15 @@ dependencies = [ "xmlparser", ] +[[package]] +name = "roxmltree" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8f595a457b6b8c6cda66a48503e92ee8d19342f905948f29c383200ec9eb1d8" +dependencies = [ + "xmlparser", +] + [[package]] name = "rustc-demangle" version = "0.1.21" @@ -1447,6 +1509,15 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver", +] + [[package]] name = "rustix" version = "0.36.7" @@ -1463,9 +1534,9 @@ dependencies = [ [[package]] name = "rustybuzz" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab9e34ecf6900625412355a61bda0bd68099fe674de707c67e5e4aed2c05e489" +checksum = "162bdf42e261bee271b3957691018634488084ef577dddeb6420a9684cab2a6a" dependencies = [ "bitflags", "bytemuck", @@ -1504,6 +1575,12 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8132065adcfd6e02db789d9285a0deb2f3fcb04002865ab67d5fb103533898" +[[package]] +name = "semver" +version = "1.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58bc9567378fc7690d6b2addae4e60ac2eeea07becb2c64b9f218b53865cba2a" + [[package]] name = "serde" version = "1.0.152" @@ -1595,9 +1672,7 @@ dependencies = [ [[package]] name = "stardust-xr" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd8541caad6c5c3e9c43ce4fa43a330f7a3df5ec293c88fd062fff46172ceb97" +version = "0.11.0" dependencies = [ "chrono", "cluFlock", @@ -1615,14 +1690,12 @@ dependencies = [ [[package]] name = "stardust-xr-fusion" -version = "0.34.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd60cde6226782ea4b2eac83740f140c59adb7ab1cc38618401e474cc1663edd" +version = "0.38.0" dependencies = [ "anyhow", "color-rs", + "enum_dispatch", "flagset", - "glam", "mint", "nanoid", "parking_lot 0.12.1", @@ -1638,13 +1711,10 @@ dependencies = [ [[package]] name = "stardust-xr-molecules" -version = "0.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8675431b05c71a734748badea127c2872d2f6754a2da80f418b6e53a43347ffa" +version = "0.21.0" dependencies = [ "color-rs", - "flexbuffers", - "glam", + "glam 0.23.0", "lazy_static", "mint", "rustc-hash", @@ -1657,13 +1727,11 @@ dependencies = [ [[package]] name = "stardust-xr-schemas" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12b2b760187d18535aadf608d6221506b1364a4fff14653f31c51a2fd6696fd9" +version = "1.4.0" dependencies = [ "flatbuffers", "flexbuffers", - "glam", + "glam 0.22.0", "mint", "ouroboros", "serde", @@ -1703,10 +1771,21 @@ dependencies = [ [[package]] name = "svgtypes" -version = "0.8.2" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22975e8a2bac6a76bb54f898a6b18764633b00e780330f0b689f65afb3975564" +checksum = "c9ee29c1407a5b18ccfe5f6ac82ac11bab3b14407e09c209a6c1a32098b19734" dependencies = [ + "kurbo 0.8.3", + "siphasher", +] + +[[package]] +name = "svgtypes" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98ffacedcdcf1da6579c907279b4f3c5492fbce99fbbf227f5ed270a589c2765" +dependencies = [ + "kurbo 0.9.0", "siphasher", ] @@ -1802,9 +1881,9 @@ dependencies = [ [[package]] name = "tiny-skia" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ae12c22601b6853f4d93abb178e13bf0e1cc8e2454100c85d4d3a59ac71b3f7" +checksum = "bfef3412c6975196fdfac41ef232f910be2bb37b9dd3313a49a1a6bc815a5bdb" dependencies = [ "arrayref", "arrayvec", @@ -1816,9 +1895,9 @@ dependencies = [ [[package]] name = "tiny-skia-path" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd665853ce64402daabef6edda442dbb4f8ee93ea80957b66ba1af419f11a104" +checksum = "a4b5edac058fc98f51c935daea4d805b695b38e2f151241cad125ade2a2ac20d" dependencies = [ "arrayref", "bytemuck", @@ -1827,9 +1906,9 @@ dependencies = [ [[package]] name = "tokio" -version = "1.24.1" +version = "1.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d9f76183f91ecfb55e1d7d5602bd1d979e38a3a522fe900241cf195624d67ae" +checksum = "c8e00990ebabbe4c14c08aca901caed183ecd5c09562a12c824bb53d3c3fd3af" dependencies = [ "autocfg", "bytes", @@ -1939,9 +2018,9 @@ dependencies = [ [[package]] name = "ttf-parser" -version = "0.17.1" +version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "375812fa44dab6df41c195cd2f7fecb488f6c09fbaafb62807488cefab642bff" +checksum = "0609f771ad9c6155384897e1df4d948e692667cc0588548b68eb44d052b27633" [[package]] name = "tween" @@ -2011,32 +2090,29 @@ dependencies = [ [[package]] name = "usvg" -version = "0.28.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b5b7c2b30845b3348c067ca3d09e20cc6e327c288f0ca4c48698712abf432e9" +checksum = "63b6bb4e62619d9f68aa2d8a823fea2bff302340a1f2d45c264d5b0be170832e" dependencies = [ "base64", "data-url", "flate2", "imagesize", - "kurbo", + "kurbo 0.9.0", "log", "rctree", - "roxmltree", - "simplecss", - "siphasher", + "rosvgtree", "strict-num", - "svgtypes", ] [[package]] name = "usvg-text-layout" -version = "0.28.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c9550670848028641bf976b06f5c520ffdcd6f00ee7ee7eb0853f78e2c249d7" +checksum = "195386e01bc35f860db024de275a76e7a31afdf975d18beb6d0e44764118b4db" dependencies = [ "fontdb", - "kurbo", + "kurbo 0.9.0", "log", "rustybuzz", "unicode-bidi", diff --git a/Cargo.toml b/Cargo.toml index d800206..b5b5bf3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,9 +15,10 @@ lazy_static = "1.4.0" manifest-dir-macros = "0.1.16" mint = "0.5.9" nix = "0.26.1" -resvg = "0.28.0" +resvg = "0.29.0" rustc-hash = "1.1.0" -stardust-xr-molecules = "0.17.0" +stardust-xr-fusion = "0.38.0" +stardust-xr-molecules = "0.21.0" tokio = { version = "1.24.1", features = ["full"] } tracing-subscriber = { version = "0.3.16", features = ["env-filter"] } tween = "2.0.0" @@ -26,3 +27,7 @@ walkdir = "2.3.2" [dev-dependencies] tempdir = "0.3.7" + +[patch.crates-io] +stardust-xr-molecules = { path = "../../molecules" } +stardust-xr-fusion = { path = "../../core/fusion" } \ No newline at end of file diff --git a/examples/app_grid.rs b/examples/app_grid.rs index 393c421..82bb2e0 100644 --- a/examples/app_grid.rs +++ b/examples/app_grid.rs @@ -5,7 +5,7 @@ use protostar::{ protostar::ProtoStar, xdg::{get_desktop_files, parse_desktop_file, DesktopFile}, }; -use stardust_xr_molecules::fusion::{ +use stardust_xr_fusion::{ client::{Client, FrameInfo, RootHandler}, spatial::Spatial, }; diff --git a/src/main.rs b/src/main.rs index a47c509..008a92f 100644 --- a/src/main.rs +++ b/src/main.rs @@ -5,7 +5,7 @@ use color_eyre::{ }; use manifest_dir_macros::directory_relative_path; use protostar::{protostar::ProtoStar, xdg::parse_desktop_file}; -use stardust_xr_molecules::fusion::client::Client; +use stardust_xr_fusion::client::Client; use std::path::PathBuf; #[derive(Debug, Parser)] diff --git a/src/protostar.rs b/src/protostar.rs index 89dc36d..9d3b92c 100644 --- a/src/protostar.rs +++ b/src/protostar.rs @@ -3,18 +3,16 @@ use color_eyre::eyre::{eyre, Result}; use glam::Quat; use mint::Vector3; use nix::unistd::{execv, fork}; -use stardust_xr_molecules::{ - fusion::{ - client::{Client, FrameInfo, RootHandler}, - core::values::Transform, - drawable::{MaterialParameter, Model, ResourceID}, - fields::BoxField, - node::NodeType, - spatial::Spatial, - startup_settings::StartupSettings, - }, - GrabData, Grabbable, +use stardust_xr_fusion::{ + client::{Client, FrameInfo, RootHandler}, + core::values::Transform, + drawable::{MaterialParameter, Model, ResourceID}, + fields::BoxField, + node::NodeType, + spatial::Spatial, + startup_settings::StartupSettings, }; +use stardust_xr_molecules::{GrabData, Grabbable}; use std::{f32::consts::PI, ffi::CStr, sync::Arc}; use tween::{QuartInOut, Tweener}; use ustr::ustr; @@ -79,8 +77,7 @@ impl ProtoStar { match icon.as_ref() { Some(Icon::Png(_)) => [0.05, 0.0665, 0.005], _ => [0.05; 3], - } - .into(), + }, )?; let grabbable = Grabbable::new( parent, @@ -88,6 +85,7 @@ impl ProtoStar { &field, GrabData { max_distance: 0.025, + ..Default::default() }, )?; field.set_spatial_parent(grabbable.content_parent())?; @@ -115,7 +113,7 @@ impl ProtoStar { } impl RootHandler for ProtoStar { fn frame(&mut self, info: FrameInfo) { - self.grabbable.update(); + self.grabbable.update(&info); if let Some(icon_shrink) = &mut self.icon_shrink { if !icon_shrink.is_finished() {