diff --git a/Cargo.lock b/Cargo.lock index 900209c..dea8e88 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -37,9 +37,9 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "0.7.19" +version = "0.7.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4f55bd91a0978cbfd91c457a164bab8b4001c833b7f323132c0a4e1922dd44e" +checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac" dependencies = [ "memchr", ] @@ -116,20 +116,20 @@ checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" [[package]] name = "ash" -version = "0.37.0+1.3.209" +version = "0.37.1+1.3.235" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "006ca68e0f2b03f22d6fa9f2860f85aed430d257fec20f8879b2145e7c7ae1a6" +checksum = "911015c962d56e2e4052f40182ca5462ba60a3d2ff04e827c365a0ab3d65726d" dependencies = [ "libloading", ] [[package]] name = "async-channel" -version = "1.7.1" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e14485364214912d3b19cc3435dde4df66065127f05fa0d75c712f36f12c2f28" +checksum = "cf46fee83e5ccffc220104713af3292ff9bc7c64c7de289f66dae8e38d826833" dependencies = [ - "concurrent-queue 1.2.4", + "concurrent-queue 2.0.0", "event-listener", "futures-core", ] @@ -184,9 +184,9 @@ checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" [[package]] name = "bevy" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3654d60973fcde065efcfe0c9066c81a76987d28c45233998b2ccdc581dcd914" +checksum = "dae99b246505811f5bc19d2de1e406ec5d2816b421d58fa223779eb576f472c9" dependencies = [ "bevy_dylib", "bevy_internal", @@ -194,9 +194,9 @@ dependencies = [ [[package]] name = "bevy_animation" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc8187ba04e1cd4c390a5407502bdb40828e568e2aae9e1628bfe9ebac744f3f" +checksum = "d43b8073f299eb60ce9e1d60fa293b348590dd57aca8321d6859d9e7aa57d2da" dependencies = [ "bevy_app", "bevy_asset", @@ -212,9 +212,9 @@ dependencies = [ [[package]] name = "bevy_app" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7240e455d6976b20d24bf8eda37cd9154116fe9cc2beef7bdc009b4c6fff139" +checksum = "536e4d0018347478545ed8b6cb6e57b9279ee984868e81b7c0e78e0fb3222e42" dependencies = [ "bevy_derive", "bevy_ecs", @@ -227,9 +227,9 @@ dependencies = [ [[package]] name = "bevy_asset" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86ca05c472cd4939aed5b2980ad9b416a250ae4674824e8c4b569ddf18ab5230" +checksum = "6db1bb550168304df69c867c09125e1aae7ff51cf21575396e1598bf293442c4" dependencies = [ "anyhow", "bevy_app", @@ -255,9 +255,9 @@ dependencies = [ [[package]] name = "bevy_audio" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "064d3733a2b4396ba0ca27f187d3957b1621c83d9ae65e7da458e57627d3541b" +checksum = "29a05efc6c23bef37520e44029943c65b7e8a4fe4f5e54cb3f96e63ce0b3d361" dependencies = [ "anyhow", "bevy_app", @@ -271,9 +271,9 @@ dependencies = [ [[package]] name = "bevy_core" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d344ff340874fb3f1e458f03eca2b731cb8174495e9c0828f5e4569765489cb" +checksum = "96299aceb3c8362cb4aa39ff81c7ef758a5f4e768d16b5046a91628eff114ac0" dependencies = [ "bevy_app", "bevy_ecs", @@ -286,9 +286,9 @@ dependencies = [ [[package]] name = "bevy_core_pipeline" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13523e290f9aad62987e04836d66819fb97afeaf794847b6f64121c62a4db916" +checksum = "dc128a9860aadf16fb343ae427f2768986fd91dce64d945455acda9759c48014" dependencies = [ "bevy_app", "bevy_asset", @@ -306,9 +306,9 @@ dependencies = [ [[package]] name = "bevy_derive" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a12e50d2ff8423438e971c44a90baefc9e351edd45b50b8d077f9ad4f7a0a2a5" +checksum = "7baf73c58d41c353c6fd08e6764a2e7420c9f19e8227b391c50981db6d0282a6" dependencies = [ "bevy_macro_utils", "quote", @@ -317,9 +317,9 @@ dependencies = [ [[package]] name = "bevy_diagnostic" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3415f3a220d8706daac84986d744374fd18883add3a22e894af8cddf2cf1c29" +checksum = "63bf96ec7980fa25b77ff6c72dfafada477936c0dab76c1edf6c028c0e5fe0e4" dependencies = [ "bevy_app", "bevy_core", @@ -331,18 +331,18 @@ dependencies = [ [[package]] name = "bevy_dylib" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d52cc91729fc26ea7038ad49ed773e0577688e328b6f7466be3d5070b45cea9" +checksum = "5d193c3d56e3bdd106596327d15dd67ddfd862f8b5aa8260677efefe3ddef736" dependencies = [ "bevy_internal", ] [[package]] name = "bevy_ecs" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43b29e39772df5e8939f7f540ee152569eebeb3c2cc35a68670688ae008ba2cf" +checksum = "d4c071d7c6bc9801253485e05d0c257284150de755391902746837ba21c0cf74" dependencies = [ "async-channel", "bevy_ecs_macros", @@ -360,9 +360,9 @@ dependencies = [ [[package]] name = "bevy_ecs_macros" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10b8e7e7fb3ab9554c77e0f8a2531abd05d40ddb0145a8dfa72434cefa52ee5c" +checksum = "c15bd45438eeb681ad74f2d205bb07a5699f98f9524462a30ec764afab2742ce" dependencies = [ "bevy_macro_utils", "proc-macro2", @@ -372,9 +372,9 @@ dependencies = [ [[package]] name = "bevy_encase_derive" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a0773119830d63dde225338c0c556f84cd68e8e69de5b62a1b172fdddc5b915" +checksum = "962b6bb0d30e92ec2e6c29837acce9e55b920733a634e7c3c5fd5a514bea7a24" dependencies = [ "bevy_macro_utils", "encase_derive_impl", @@ -382,9 +382,9 @@ dependencies = [ [[package]] name = "bevy_gilrs" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a26d02e390b192c3d3b1b746fc2e049420b03f7b8319e7cf3a747babd7d88127" +checksum = "4af552dad82f854b2fae24f36a389fd8ee99d65fe86ae876e854e70d53ff16d9" dependencies = [ "bevy_app", "bevy_ecs", @@ -395,9 +395,9 @@ dependencies = [ [[package]] name = "bevy_gltf" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd77158983e09cbbb8115a2c629bdf3249cfff58e8e19f1c62861b1e5495eaf1" +checksum = "e853e346ba412354e02292c7aa5b9a9dccdfa748e273b1b7ebf8f6a172f89712" dependencies = [ "anyhow", "base64", @@ -424,9 +424,9 @@ dependencies = [ [[package]] name = "bevy_hierarchy" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23b5181dc3d621c3d18a1209791e82199409d6ddf5376ee19f2e26ad7bfd9b06" +checksum = "8dd6d50c48c6e1bcb5e08a768b765323292bb3bf3a439b992754c57ffb85b23a" dependencies = [ "bevy_app", "bevy_core", @@ -439,9 +439,9 @@ dependencies = [ [[package]] name = "bevy_input" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10f72c3037535eb41b863a22c2e58d3845a096401f9b92204b6a240e36a5151b" +checksum = "3378b5171284f4c4c0e8307081718a9fe458f846444616bd82d69110dcabca51" dependencies = [ "bevy_app", "bevy_ecs", @@ -453,9 +453,9 @@ dependencies = [ [[package]] name = "bevy_internal" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ff89c2c2644c588d72cf505f15ad515479705c82ad7aa359ad2249646995a76" +checksum = "4c46014b7e885b1311de06b6039e448454a4db55b8d35464798ba88faa186e11" dependencies = [ "bevy_animation", "bevy_app", @@ -491,9 +491,9 @@ dependencies = [ [[package]] name = "bevy_log" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66c1d5f2cbcf5c3ce87d42afb6ba98177f8f758278364cbc79a2b3bf38415f0e" +checksum = "6c480bac54cf4ae76edc3ae9ae3fa7c5e1b385e7f2111ef5ec3fd00cf3a7998b" dependencies = [ "android_log-sys", "bevy_app", @@ -507,9 +507,9 @@ dependencies = [ [[package]] name = "bevy_macro_utils" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "656fa7b3434ac5d5c2883dde3c075f834ff51178f2f48ef2454b6f2ada75cb15" +checksum = "022bb69196deeea691b6997414af85bbd7f2b34a8914c4aa7a7ff4dfa44f7677" dependencies = [ "quote", "syn", @@ -518,9 +518,9 @@ dependencies = [ [[package]] name = "bevy_math" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b26459575a5f9695788e3487aa0a5f9252562e0fc57065e6f35f370dbfac7d4a" +checksum = "d434c77ab766c806ed9062ef8a7285b3b02b47df51f188d4496199c3ac062eaf" dependencies = [ "glam", "serde", @@ -528,18 +528,18 @@ dependencies = [ [[package]] name = "bevy_mikktspace" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e67d9caff1be480eb097e1a5ee7332762e19a2ea3d07496017fc8221ea6bc46" +checksum = "bbfb5908d33fd613069be516180b8f138aaaf6e41c36b1fd98c6c29c00c24a13" dependencies = [ "glam", ] [[package]] name = "bevy_pbr" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a2e5069b351743e5660f837671135a7aac585cd2c1d7d0b90d92a2d84c2a1fd" +checksum = "310b1f260a475d81445623e138e1b7245759a42310bc1f84b550a3f4ff8763bf" dependencies = [ "bevy_app", "bevy_asset", @@ -559,15 +559,15 @@ dependencies = [ [[package]] name = "bevy_ptr" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c36f4d3af0cda50c07e2010d0351ab79594681116edd280592ca394db73ef32b" +checksum = "8ec44f7655039546bc5d34d98de877083473f3e9b2b81d560c528d6d74d3eff4" [[package]] name = "bevy_reflect" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c39f74d7786a0016c74b6bfb57f44928d536bef8bf6db7505d4cbe9435aeda7b" +checksum = "6deae303a7f69dc243b2fa35b5e193cc920229f448942080c8eb2dbd9de6d37a" dependencies = [ "bevy_math", "bevy_ptr", @@ -585,9 +585,9 @@ dependencies = [ [[package]] name = "bevy_reflect_derive" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b2c0aab36b060e88cd93c56710d9ce8ab6107596dc4cbb8a9d84ba98f39c63b" +checksum = "a2bf4cb9cd5acb4193f890f36cb63679f1502e2de025e66a63b194b8b133d018" dependencies = [ "bevy_macro_utils", "bit-set", @@ -599,9 +599,9 @@ dependencies = [ [[package]] name = "bevy_render" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14033813fdd9587663ffa6b6d84327f30bd0398b40386677704bd4d608625420" +checksum = "2e3282a8f8779d2aced93207fbed73f740937c6c2bd27bd84f0799b081c7fca5" dependencies = [ "anyhow", "bevy_app", @@ -641,9 +641,9 @@ dependencies = [ [[package]] name = "bevy_render_macros" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e29db44fb38743a08e71bed324a19b8ce2e9f2853abcb4640e03625dd55cc186" +checksum = "b7acae697776ac05bea523e1725cf2660c91c53abe72c66782ea1e1b9eedb572" dependencies = [ "bevy_macro_utils", "proc-macro2", @@ -653,9 +653,9 @@ dependencies = [ [[package]] name = "bevy_scene" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b98c58cba6417961856a57ba1116d78db3364b8e791ac517175f04b9abdb6b" +checksum = "ea9c66a628c833d53bae54fe94cbc0d3f12c29e9d2e6c3f2356d45ad57db0c8c" dependencies = [ "anyhow", "bevy_app", @@ -675,9 +675,9 @@ dependencies = [ [[package]] name = "bevy_sprite" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b135b2ccf7c5eaf9b3e20e39ef80081842f122081c8ce988cb2054afd1af270e" +checksum = "5ec01c7db7f698d95bcb70708527c3ae6bcdc78fc247abe74f935cae8f0a1145" dependencies = [ "bevy_app", "bevy_asset", @@ -700,9 +700,9 @@ dependencies = [ [[package]] name = "bevy_tasks" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5d91d94d2db1476d7452509c1967fe83d66da5f683f5d49ba31e0f455adfcdc" +checksum = "680b16b53df9c9f24681dd95f4d772d83760bd19adf8bca00f358a3aad997853" dependencies = [ "async-channel", "async-executor", @@ -715,9 +715,9 @@ dependencies = [ [[package]] name = "bevy_text" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe4282d77fb5dd38bb2a7736a770f5e499782b8c546b9f7d73f6893ab04c8041" +checksum = "60c74c1bdaabde7db28f6728aa13bc7b1d744a2201b2bbfd83d2224404c57f5c" dependencies = [ "ab_glyph", "anyhow", @@ -738,9 +738,9 @@ dependencies = [ [[package]] name = "bevy_time" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a259a4b04f5ae2d02998247a69e5a711b0754eb22971320bf727c6f4d7bf38fa" +checksum = "1a5c38a6d3ea929c7f81e6adf5a6c62cf7e8c40f5106c2174d6057e9d8ea624d" dependencies = [ "bevy_app", "bevy_ecs", @@ -751,9 +751,9 @@ dependencies = [ [[package]] name = "bevy_transform" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7b4cdac87f8a58c3ec166b5673dd35565c61eb0ec648e3b0cc30083170c0fb3" +checksum = "ba13c57a040b89767191a6f6d720a635b7792793628bfa41a9e38b7026484aec" dependencies = [ "bevy_app", "bevy_ecs", @@ -764,9 +764,9 @@ dependencies = [ [[package]] name = "bevy_ui" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da6d85fcefe5a2bf259c2ff58a7a29b6102070242dc385b42a2656f4e8918883" +checksum = "60e82ace6156f11fcdf2319102ff8fb8367b82d1e32b7d05d387a1963602f965" dependencies = [ "bevy_app", "bevy_asset", @@ -793,9 +793,9 @@ dependencies = [ [[package]] name = "bevy_utils" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d7473635355a99fcf7181091a2ac11df03561706b1696cb0cc72e4ddd010571" +checksum = "16750aae52cd35bd7b60eb61cee883420b250e11b4a290b8d44b2b2941795739" dependencies = [ "ahash", "getrandom", @@ -807,9 +807,9 @@ dependencies = [ [[package]] name = "bevy_window" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07a0d03022a6d1ec0d05c01a77f5592a9602bbc1cfc11ba457788b69f9ca175d" +checksum = "0a44d3f3bd54a2261f4f57f614bf7bccc8d2832761493c0cd7dab81d98cc151e" dependencies = [ "bevy_app", "bevy_ecs", @@ -822,9 +822,9 @@ dependencies = [ [[package]] name = "bevy_winit" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc7b4e4f83e268dcbd6f9c4e1c18f7382e457f5f1b160da4c85d9a3f489771a" +checksum = "c7b7e647ecd0b3577468da37767dcdd7c26ca9f80da0060b2ec4c77336b6d2e1" dependencies = [ "approx", "bevy_app", @@ -921,9 +921,9 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" [[package]] name = "bytes" -version = "1.2.1" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec8a7b6a70fde80372154c65702f00a0f56f3e1c36abbc6c440484be248856db" +checksum = "dfb24e866b15a1af2a1b663f10c6b6b8f397a84aadb828f12e5b289ec23a3a3c" [[package]] name = "cache-padded" @@ -933,9 +933,9 @@ checksum = "c1db59621ec70f09c5e9b597b220c7a2b43611f4710dc03ceb8748637775692c" [[package]] name = "cc" -version = "1.0.76" +version = "1.0.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76a284da2e6fe2092f2353e51713435363112dfd60030e22add80be333fb928f" +checksum = "e9f73505338f7d905b19d18738976aae232eb46b8efc15554ffc56deb5d9ebe4" dependencies = [ "jobserver", ] @@ -1065,9 +1065,9 @@ dependencies = [ [[package]] name = "const_panic" -version = "0.2.6" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed2b28323eee4fb66bb824401daa3e46bd445b9a9298a3d382b320710ba69dd" +checksum = "58baae561b85ca19b3122a9ddd35c8ec40c3bcd14fe89921824eae73f7baffbf" [[package]] name = "core-foundation" @@ -1152,7 +1152,7 @@ dependencies = [ "thiserror", "wasm-bindgen", "web-sys", - "windows", + "windows 0.37.0", ] [[package]] @@ -1176,9 +1176,9 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.12" +version = "0.8.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edbafec5fa1f196ca66527c1b12c2ec4745ca14b50f1ad8f9f6f720b55d11fac" +checksum = "4fb766fa798726286dbbb842f174001dab8abc7b627a1dd86e0b7222a95d929f" dependencies = [ "cfg-if", ] @@ -1348,12 +1348,12 @@ checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" [[package]] name = "flate2" -version = "1.0.24" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6" +checksum = "a8a2db397cb1c8772f31494cb8917e48cd1e64f0fa7efac59fbd741a0a8ce841" dependencies = [ "crc32fast", - "miniz_oxide 0.5.4", + "miniz_oxide", ] [[package]] @@ -1437,9 +1437,9 @@ dependencies = [ [[package]] name = "gilrs" -version = "0.9.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d6ba7c37bf8ea7ba0c3e3795dfa1a7771b1e47c4bb417c4d27c7b338d79685f" +checksum = "7d0342acdc7b591d171212e17c9350ca02383b86d5f9af33c6e3598e03a6c57e" dependencies = [ "fnv", "gilrs-core", @@ -1450,9 +1450,9 @@ dependencies = [ [[package]] name = "gilrs-core" -version = "0.4.1" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96a8d94a7fc5afd27e894e08a4cfe5a49237f85bcc7140e90721bad3399c7d02" +checksum = "1e4e9fae0d270709ce2c8aacb34f2b7293d4828ce748360ec364ccb7c1585e53" dependencies = [ "core-foundation", "io-kit-sys", @@ -1460,13 +1460,12 @@ dependencies = [ "libc", "libudev-sys", "log", - "nix 0.24.2", - "rusty-xinput", + "nix 0.25.0", "uuid", "vec_map", "wasm-bindgen", "web-sys", - "winapi", + "windows 0.43.0", ] [[package]] @@ -1667,9 +1666,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "1.9.1" +version = "1.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e" +checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399" dependencies = [ "autocfg", "hashbrown", @@ -1928,15 +1927,6 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" -[[package]] -name = "miniz_oxide" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96590ba8f175222643a85693f33d26e9c8a015f599c216509b1a6894af675d34" -dependencies = [ - "adler", -] - [[package]] name = "miniz_oxide" version = "0.6.2" @@ -2001,7 +1991,7 @@ checksum = "451422b7e4718271c8b5b3aadf5adedba43dc76312454b387e98fae0fc951aa0" dependencies = [ "bitflags", "jni-sys", - "ndk-sys 0.4.0", + "ndk-sys 0.4.1+23.1.7779620", "num_enum", "raw-window-handle 0.5.0", "thiserror", @@ -2025,7 +2015,7 @@ dependencies = [ "ndk 0.7.0", "ndk-context", "ndk-macro", - "ndk-sys 0.4.0", + "ndk-sys 0.4.1+23.1.7779620", "once_cell", "parking_lot", ] @@ -2054,9 +2044,9 @@ dependencies = [ [[package]] name = "ndk-sys" -version = "0.4.0" +version = "0.4.1+23.1.7779620" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21d83ec9c63ec5bf950200a8e508bdad6659972187b625469f58ef8c08e29046" +checksum = "3cf2aae958bd232cac5069850591667ad422d263686d75b52a065f9badeee5a3" dependencies = [ "jni-sys", ] @@ -2074,17 +2064,6 @@ dependencies = [ "memoffset", ] -[[package]] -name = "nix" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "195cdbc1741b8134346d515b3a56a1c94b0912758009cfd53f99ea0f57b065fc" -dependencies = [ - "bitflags", - "cfg-if", - "libc", -] - [[package]] name = "nix" version = "0.25.0" @@ -2289,9 +2268,9 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dc9e0dc2adc1c69d09143aff38d3d30c5c3f0df0dad82e6d25547af174ebec0" +checksum = "7ff9f3fef3968a3ec5945535ed654cb38ff72d7495a25619e2247fb15a2ed9ba" dependencies = [ "cfg-if", "libc", @@ -2339,6 +2318,7 @@ name = "pix_space" version = "0.1.0" dependencies = [ "bevy", + "rand", ] [[package]] @@ -2356,7 +2336,7 @@ dependencies = [ "bitflags", "crc32fast", "flate2", - "miniz_oxide 0.6.2", + "miniz_oxide", ] [[package]] @@ -2368,6 +2348,12 @@ dependencies = [ "unicode-xid", ] +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + [[package]] name = "proc-macro-crate" version = "1.2.1" @@ -2409,6 +2395,36 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "17fd96390ed3feda12e1dfe2645ed587e0bea749e319333f104a33ff62f77a0b" +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom", +] + [[package]] name = "range-alloc" version = "0.1.2" @@ -2516,17 +2532,6 @@ dependencies = [ "semver", ] -[[package]] -name = "rusty-xinput" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2aa654bc32eb9ca14cce1a084abc9dfe43949a4547c35269a094c39272db3bb" -dependencies = [ - "lazy_static", - "log", - "winapi", -] - [[package]] name = "ryu" version = "1.0.11" @@ -2571,18 +2576,18 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] name = "serde" -version = "1.0.147" +version = "1.0.148" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d193d69bae983fc11a79df82342761dfbf28a99fc8d203dca4c3c1b590948965" +checksum = "e53f64bb4ba0191d6d0676e1b141ca55047d83b74f5607e6d8eb88126c52c2dc" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.147" +version = "1.0.148" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f1d362ca8fc9c3e3a7484440752472d68a6caa98f1ab81d99b5dfe517cec852" +checksum = "a55492425aa53521babf6137309e7d34c20bbfbbfcfe2c7f3a047fd1f6b92c0c" dependencies = [ "proc-macro2", "quote", @@ -2591,9 +2596,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.87" +version = "1.0.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ce777b7b150d76b9cf60d28b55f5847135a003f7d7350c6be7a773508ce7d45" +checksum = "020ff22c755c2ed3f8cf162dbb41a7268d934702f3ed3631656ea597e08fc3db" dependencies = [ "itoa", "ryu", @@ -2736,9 +2741,9 @@ checksum = "8fb1df15f412ee2e9dfc1c504260fa695c1c3f10fe9f4a6ee2d2184d7d6450e2" [[package]] name = "syn" -version = "1.0.103" +version = "1.0.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a864042229133ada95abf3b54fdc62ef5ccabe9515b64717bcb9a1919e59445d" +checksum = "60b9b43d45702de4c839cb9b51d9f529c5dd26a4aff255b42b1ebc03e88ee908" dependencies = [ "proc-macro2", "quote", @@ -3052,9 +3057,9 @@ dependencies = [ [[package]] name = "wgpu" -version = "0.14.0" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2272b17bffc8a0c7d53897435da7c1db587c87d3a14e8dae9cdb8d1d210fc0f" +checksum = "81f643110d228fd62a60c5ed2ab56c4d5b3704520bd50561174ec4ec74932937" dependencies = [ "arrayvec", "js-sys", @@ -3074,9 +3079,9 @@ dependencies = [ [[package]] name = "wgpu-core" -version = "0.14.0" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73d14cad393054caf992ee02b7da6a372245d39a484f7461c1f44f6f6359bd28" +checksum = "6000d1284ef8eec6076fd5544a73125fd7eb9b635f18dceeb829d826f41724ca" dependencies = [ "arrayvec", "bit-vec", @@ -3188,6 +3193,21 @@ dependencies = [ "windows_x86_64_msvc 0.37.0", ] +[[package]] +name = "windows" +version = "0.43.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04662ed0e3e5630dfa9b26e4cb823b817f1a9addda855d973a9458c236556244" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc 0.42.0", + "windows_i686_gnu 0.42.0", + "windows_i686_msvc 0.42.0", + "windows_x86_64_gnu 0.42.0", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc 0.42.0", +] + [[package]] name = "windows-sys" version = "0.36.1" @@ -3349,9 +3369,9 @@ dependencies = [ [[package]] name = "x11-dl" -version = "2.20.0" +version = "2.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c83627bc137605acc00bb399c7b908ef460b621fc37c953db2b09f88c449ea6" +checksum = "b1536d6965a5d4e573c7ef73a2c15ebcd0b2de3347bdf526c34c297c00ac40f0" dependencies = [ "lazy_static", "libc", diff --git a/Cargo.toml b/Cargo.toml index 9eed193..92bd5c6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,5 +7,6 @@ edition = "2021" [dependencies] # bevy = "0.9.0" -bevy = { version = "0.9.0", features = ["dynamic"] } +bevy = { version = "0.9.1", features = ["dynamic"] } +rand = "0.8.4" # vrpn = "0.1.0" # not compatible with 2021 diff --git a/README.md b/README.md index 00857a8..db7c31e 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,14 @@ # PixSpace -A viewing tool for projective Virtual Reality (VR) +A model viewer using projective Virtual Reality (VR) It deals with: - getting tracking data from a VRPN server - render a composited view allowing for non-linear distortions - loading 3D files -- providing a +- providing a simple way to extend the system with interactions Ideas are derived from a software written several years ago called VisionSpace. @@ -19,3 +19,12 @@ Ideas are derived from a software written several years ago called VisionSpace. * [ ] custom projection matrices (https://bevy-cheatbook.github.io/cookbook/custom-projection.html) * [ ] render to texture * [ ] VRPN (https://github.com/seichter/vrpn-rs) - sync_client.rs seems to do what we need - issue it is Rust 2018 + + +# Suggestions + +@bevy@mastodon.social suggested the following three examples + +https://github.com/bevyengine/bevy/blob/main/examples/3d/two_passes.rs +https://github.com/bevyengine/bevy/blob/main/examples/3d/split_screen.rs +https://github.com/bevyengine/bevy/blob/main/examples/3d/render_to_texture.rs \ No newline at end of file diff --git a/src/main.rs b/src/main.rs index d319cc5..3f64228 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,8 +1,10 @@ use crate::scene::*; -use bevy::{prelude::*, window::PresentMode}; +use bevy::{prelude::*, window::PresentMode, render::camera::CameraProjectionPlugin}; +use offaxis::{offaxis_camera_setup, OffAxisProjection}; mod offaxis; mod scene; +mod screeninfo; fn main() { App::new() @@ -35,7 +37,14 @@ fn main() { // ) // .add_system(hello_world) .add_startup_system(build_scene) - .add_system(print_positions) + .add_system(modify_projection) + .add_startup_system(offaxis_camera_setup) + // .add_system(print_positions) + // .add_system(modify_frustum) + + .add_plugin(CameraProjectionPlugin::::default()) + + .add_system(update_offaxis) .run(); } @@ -50,3 +59,14 @@ fn cycle_msaa(input: Res>, mut msaa: ResMut) { } } } + +fn update_offaxis(mut query : Query<&mut OffAxisProjection>) +{ + for mut q in query.iter_mut() { + + // we fake access to far for updating the matrix + (*q).far *= 1.0; + + println!("Update {:?}",q); + } +} diff --git a/src/offaxis.rs b/src/offaxis.rs index 2ed816f..f926641 100644 --- a/src/offaxis.rs +++ b/src/offaxis.rs @@ -4,16 +4,21 @@ use bevy::render::camera::{Camera, CameraProjection}; use bevy::render::primitives::Frustum; use bevy::render::view::VisibleEntities; -#[derive(Component)] + + + + +#[derive(Component, Debug, Clone, Reflect)] +#[reflect(Component, Default)] pub struct OffAxisProjection { near: f32, - far: f32, + pub far: f32, aspect: f32, } impl CameraProjection for OffAxisProjection { fn get_projection_matrix(&self) -> Mat4 { - println!("Here we go!"); + println!("Here we go! {:?}",self); Mat4::orthographic_rh(-self.aspect, self.aspect, -1.0, 1.0, self.near, self.far) } @@ -45,23 +50,20 @@ impl Default for OffAxisProjection { } } -pub fn camera_setup(mut commands: Commands) { +pub fn offaxis_camera_setup(mut commands: Commands) { print!("Setup {0}", line!()); // We need all the components that Bevy's built-in camera bundles would add let projection = OffAxisProjection::default(); - let camera = Camera { - // near: projection.near, - // far: projection.far, - ..default() - }; - print!("Setup {0}", line!()); + + println!("Setup {0}", line!()); // position the camera like bevy would do by default for 2D: let transform = Transform::from_xyz(0.0, 0.0, projection.far - 0.1); + // frustum construction code copied from Bevy let view_projection = projection.get_projection_matrix() * transform.compute_matrix().inverse(); @@ -75,15 +77,17 @@ pub fn camera_setup(mut commands: Commands) { print!("Setup {0}\n", line!()); commands.spawn(( - camera, + bevy::render::camera::CameraRenderGraph::new(bevy::core_pipeline::core_3d::graph::NAME), projection, frustum, - VisibleEntities::default(), transform, GlobalTransform::default(), + VisibleEntities::default(), + Camera::default(), + Camera3d::default() )); - print!("Setup {0}\t{1}\n", line!(), file!()); + println!("Setup {0}\t{1}\n", line!(), file!()); } // fn main() { diff --git a/src/scene.rs b/src/scene.rs index 57cc6af..98ebf65 100644 --- a/src/scene.rs +++ b/src/scene.rs @@ -1,4 +1,7 @@ -use bevy::{prelude::*, math::bool}; +use bevy::{prelude::*, math::bool, render::primitives::Frustum}; +use rand::prelude::*; +use bevy::render::primitives::Plane; + pub struct BuildScenePlugin; @@ -33,7 +36,15 @@ pub struct ProjectionScreen { } -fn compute_offaxis_frustum ( + + +fn generalized_projection_stereo(eyePos : Vec3) +{ + +} + + +fn generalized_projection ( projectionScreen: ProjectionScreen, eyePos: Vec3, mut camera: Camera3dBundle, @@ -49,7 +60,9 @@ fn compute_offaxis_frustum ( let vr = projectionScreen.dir_right; let vn = projectionScreen.dir_normal; - let m = projectionScreen.matrix; + // let m = projectionScreen.matrix; + + //let m = Mat4::from_cols(vu., y_axis, z_axis, w_axis) let va = pa - eyePos; let vb = pb - eyePos; @@ -60,7 +73,9 @@ fn compute_offaxis_frustum ( let d = -va.dot(vn); - if (clampNearPlane) { + + if clampNearPlane { + _ = 33; // camera.frustum.planes[4]. // should be near } } @@ -99,12 +114,15 @@ pub fn build_scene( let mut cam = Camera3dBundle { transform: Transform::from_xyz(-2.0, 2.5, 5.0).looking_at(Vec3::ZERO, Vec3::Y), + ..default() }; - commands.spawn(cam); - commands.spawn((Person, Position { x: 10.0, y: 10.0 })); + + // commands.spawn(cam); + + // commands.spawn((Person, Position { x: 10.0, y: 10.0 })); // commands.spawn() // .insert(Person) // .insert(Position { x: 10.0, y: 10.0 } ); @@ -116,9 +134,52 @@ pub fn build_scene( // }); } + + +pub fn modify_frustum(mut query: Query<&Frustum>) +{ + let mut rng = rand::thread_rng(); + + for mut q in query.iter() { + + for mut p in q.planes { + + println!("{:?}",p); + + let mut n = p.normal_d(); + + n.w += rng.gen::(); + + p = Plane::new(n); + + println!("{:?}",p); + + + + // p.normal_d() += rng.gen(); + } + + // println!("{:?}",q.frustum.planes.len()); + } +} + + +pub fn modify_projection(mut query: Query<&Projection>) +{ + let mut rng = rand::thread_rng(); + + for mut q in query.iter() { + + print!("{:?}",q); + } +} + pub fn print_positions(query: Query<&Position>) { for _position in query.iter() { _ = 33; // println!("position {:?} {:?}", position.x, position.y) } } + +// Problem with off-axis +// projection 2401, 240 \ No newline at end of file diff --git a/src/screeninfo.rs b/src/screeninfo.rs new file mode 100644 index 0000000..be7857a --- /dev/null +++ b/src/screeninfo.rs @@ -0,0 +1,65 @@ + +use bevy::{prelude::*, math::bool, render::primitives::Frustum}; +use rand::prelude::*; +use bevy::render::primitives::Plane; +enum EyePos { + Left, + Right +} + +pub struct ScreenInfo { + name : String, // main + width : f32, // 3.08 + height : f32, // 2.33 + + center : Vec3, // 0.0 -1.15 -3.08 + normal : Vec3, // 0.0 0.0 1.0 + up: Vec3, // 0.0 1.0 0.0 (vertical) + horizontal: Vec3, + + top : Vec3, + bottom : Vec3, + left : Vec3, + right : Vec3 +} + +impl ScreenInfo { + + + fn update(&mut self) { + + // compute right as up ^ forward + self.horizontal = self.up.cross(self.normal); + + // points of screen + self.top = self.center + self.up * (self.height * 0.5); + self.bottom = self.center - self.up * (self.height * 0.5); + self.left = self.center - self.horizontal * (self.height * 0.5); + self.right = self.center + self.horizontal * (self.height * 0.5); + + } + + fn intersection( + &self, + p1: Vec3, + p2: Vec3) -> (bool,Vec3) + { + + let u = self.normal.dot(self.center - p1) / self.normal.dot(p2 - p1); + + let intersection_point = p1 + ((p2 - p1) * u); + + (u >= 0.0 && u <= 1.0,intersection_point) + } + + + fn normal_intersection(&self, + p1: Vec3) -> (bool,Vec3) + { + let p2 = p1 - self.normal * 10.0; + + self.intersection(p1, p2) + } + + +}