From 9d5a84b14211047ca74abef58cddc0f7ed1a9709 Mon Sep 17 00:00:00 2001 From: Rekai Musuka Date: Tue, 6 Apr 2021 22:40:53 -0500 Subject: [PATCH] feat: update to bevy v0.5 --- Cargo.lock | 767 ++++++++++++++++++++++------------------------ Cargo.toml | 2 +- src/main.rs | 18 +- src/mandelbrot.rs | 68 ++-- 4 files changed, 424 insertions(+), 431 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 497496c..dd73319 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -32,11 +32,17 @@ checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234" [[package]] name = "ahash" -version = "0.6.3" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "796540673305a66d127804eef19ad696f1f204b8c1025aaca4958c17eab32877" +checksum = "739f4a8db6605981345c5654f3a85b056ce52f37a39d34da03f25bf2151ea16e" + +[[package]] +name = "ahash" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f200cbb1e856866d9eade941cf3aa0c5d7dd36f74311c4273b494f4ef036957" dependencies = [ - "getrandom 0.2.2", + "getrandom", "once_cell", "version_check", ] @@ -59,7 +65,7 @@ dependencies = [ "alsa-sys", "bitflags", "libc", - "nix 0.20.0", + "nix", ] [[package]] @@ -184,12 +190,6 @@ version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4521f3e3d031370679b3b140beb36dfe4801b09ac77e30c61941f97df3ef28b" -[[package]] -name = "base64" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff" - [[package]] name = "base64" version = "0.13.0" @@ -198,11 +198,12 @@ checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" [[package]] name = "bevy" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c16660356e9a79666848ff247aecaa30d9a7bb233e902035140b32d47d0b1345" +checksum = "c6b14f8ba7c373fdf7bd27547bb95f2849b2569bf02bbf3d19ca54e9d692de4f" dependencies = [ "bevy_internal", + "syn", ] [[package]] @@ -213,12 +214,13 @@ checksum = "0d5f2f58f0aec3c50a20799792c3705e80dd7df327e79791cacec197e84e5e61" [[package]] name = "bevy_app" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d720bb8174ec9a7bc8f745ff821536a1d234d50fed205d2f8dc831e0577f76c9" +checksum = "845be45f00d9c031071f8c68f7681bf791796634efa5f58937275337154cb019" dependencies = [ "bevy_derive", "bevy_ecs", + "bevy_reflect", "bevy_utils", "serde", "wasm-bindgen", @@ -227,17 +229,19 @@ dependencies = [ [[package]] name = "bevy_asset" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f91a01d06319758b541ea1ed4a84e5b894194b56ece1fc3d09263e8830f06cdd" +checksum = "426b3557161b34230e7ec04bdc48664509985ca7a6b874491f238eadd1e7cab0" dependencies = [ "anyhow", "bevy_app", + "bevy_diagnostic", "bevy_ecs", + "bevy_log", "bevy_reflect", "bevy_tasks", "bevy_utils", - "crossbeam-channel 0.4.4", + "crossbeam-channel", "downcast-rs", "js-sys", "ndk-glue 0.2.1", @@ -254,9 +258,9 @@ dependencies = [ [[package]] name = "bevy_audio" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2db6b28a59a8941872cefab577544fcc296cfe593ce1c466c572fb22797e526" +checksum = "3ca3cf9ce76696665e37a68b27ad6f6b0e2d0d85ccad36d8f018d3006812dbde" dependencies = [ "anyhow", "bevy_app", @@ -270,9 +274,9 @@ dependencies = [ [[package]] name = "bevy_core" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "918dac4225062e3517b63a186c6a4988eee167c7e90f42eeaa7a3c3943f9a1ff" +checksum = "aa5b6d7f68752cfb5b498fc5ea9ad5cfb5de871cdd4d894f2e046fef2e2898ea" dependencies = [ "bevy_app", "bevy_derive", @@ -285,9 +289,9 @@ dependencies = [ [[package]] name = "bevy_derive" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96e17d375b833953cf0af3cabdf0aff02360591418e79db954b917bf1e6834fd" +checksum = "bd6fd06d325cfb4998b26fc84476380611ce6a2d0a8a99b501328c79d7bda104" dependencies = [ "Inflector", "find-crate", @@ -298,40 +302,43 @@ dependencies = [ [[package]] name = "bevy_diagnostic" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7db1bd6b45976a460af49ad2e325b5594cd2ef29d153301f598bb0c6c2cfaf23" +checksum = "2933425d2febac4a8aadc8aed05ddac2d5891c91ae60dd191b24a6e093dcbeba" dependencies = [ "bevy_app", "bevy_core", "bevy_ecs", + "bevy_log", "bevy_utils", "parking_lot", ] [[package]] name = "bevy_dynamic_plugin" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07b9aa16336380773e9bed0f7645f05572bcbe0343b957c86e8cef43abd96abc" +checksum = "3d3219befe938ee89dd8b2b78a02cfd835ef93fa930113a91631b093381005ed" dependencies = [ "bevy_app", - "libloading 0.6.7", + "libloading 0.7.0", ] [[package]] name = "bevy_ecs" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c412b6172d95ae55e405ca54462b0fb252531a4c3a12a5cac9eb533dcb4cf1b2" +checksum = "daf4745460111bd4285ed6c3e6caa4d882db95471edb02b88c6ad4eac89b923c" dependencies = [ + "async-channel", "bevy_ecs_macros", + "bevy_reflect", "bevy_tasks", "bevy_utils", "bitflags", "downcast-rs", - "fixedbitset", - "lazy_static", + "fixedbitset 0.4.0", + "fxhash", "parking_lot", "rand", "serde", @@ -340,9 +347,9 @@ dependencies = [ [[package]] name = "bevy_ecs_macros" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92628e92dd65cef319dd059d1392a981e0c74a8bdd4889bcbbfac55799fa759b" +checksum = "65323f6896068407b768c16ec1aa5c8891d49a28b725d0cbabc663d7f47baaec" dependencies = [ "find-crate", "proc-macro2", @@ -352,9 +359,9 @@ dependencies = [ [[package]] name = "bevy_gilrs" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfbb39c13a967a2fd462ed691a5a1a49c95463075be3872b582b5d90d7bc218f" +checksum = "3b28a12e991a63fe044605aacf806b8dcdc5aa3af2d4482ba6cb9a1b74fc9392" dependencies = [ "bevy_app", "bevy_ecs", @@ -365,14 +372,15 @@ dependencies = [ [[package]] name = "bevy_gltf" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd4253666139cdc5425d1399a033d7f4eaf685fb914b087b6d5c6a1086432995" +checksum = "9233bfb7e2cf053b51f01d2e57ea5a549438c0e5f08735d595b6a6504d00639e" dependencies = [ "anyhow", - "base64 0.12.3", + "base64", "bevy_app", "bevy_asset", + "bevy_core", "bevy_ecs", "bevy_math", "bevy_pbr", @@ -381,15 +389,14 @@ dependencies = [ "bevy_scene", "bevy_transform", "gltf", - "image", "thiserror", ] [[package]] name = "bevy_input" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d2589b547ed2e48cc204acc670e8c3002e24ca9cabbe427bb4b31d339f628a1" +checksum = "b91a3a768c59a5965f491cda74fd75a72b4cd7c51c85b5a731dd4d8688582dc5" dependencies = [ "bevy_app", "bevy_ecs", @@ -399,9 +406,9 @@ dependencies = [ [[package]] name = "bevy_internal" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad383825249f68405bd143d88194fda471ad017baf5c3240870c8c38dad8d47f" +checksum = "53c568981b2911567cba7f6dae7190bac295ffd411bca777edb1b5152b1ccd62" dependencies = [ "bevy_app", "bevy_asset", @@ -434,9 +441,9 @@ dependencies = [ [[package]] name = "bevy_log" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "463bf6a1e09f5738b5e3ab7e266ecd59dcd6cfc1d4bd9e9eb5a80825fd80e8ff" +checksum = "ae100fe4e6fc8f7bbf28c121cda0ced7ab79088374beb7ab8be39120603beb18" dependencies = [ "android_log-sys 0.2.0", "bevy_app", @@ -448,19 +455,19 @@ dependencies = [ [[package]] name = "bevy_math" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cee6066dc393c913f3eb8873c3d3978010b1664b5947f6fa38c28be326da9735" +checksum = "bb36a879cdc96f554b62dd7c7c02392a9a10e94082e4bc686a8242e1d674e7cc" dependencies = [ "bevy_reflect", - "glam 0.11.3", + "glam", ] [[package]] name = "bevy_pbr" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eadb5c93f5257279d2c88879e251c5064e244e88e288a7f640f986f04d0f046e" +checksum = "71f267c27b70d298de91ceac644908fa876cb04857ccb80615dadb1ae969425f" dependencies = [ "bevy_app", "bevy_asset", @@ -476,17 +483,15 @@ dependencies = [ [[package]] name = "bevy_reflect" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "511b41d40080cfb389b2b4d489c0ee0db9e66f09e88fa4ff6faef22c4610e777" +checksum = "7d7f57646077e9b016f079e0f39fe2826dce407bb0dccc29b481a33ef7552847" dependencies = [ - "bevy_app", - "bevy_ecs", "bevy_reflect_derive", "bevy_utils", "downcast-rs", "erased-serde", - "glam 0.11.3", + "glam", "parking_lot", "serde", "smallvec", @@ -495,9 +500,9 @@ dependencies = [ [[package]] name = "bevy_reflect_derive" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b40373d356ab3d8aac58c79dc3a56338f56632b55435f73fd009bc6f93ddddc0" +checksum = "cbc3f45d1d49c6e984b492ee13564677d1392828cac50c030e025f74f69386e1" dependencies = [ "find-crate", "proc-macro2", @@ -508,9 +513,9 @@ dependencies = [ [[package]] name = "bevy_render" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f36bfed7edfcf8989e683e122df5384efdf15fd3237fdc2367191ce4722fe374" +checksum = "765f2b966619d16bdb89132848461d9580a622acb5b2bba73cb252e43c9c8830" dependencies = [ "anyhow", "bevy-glsl-to-spirv", @@ -540,9 +545,9 @@ dependencies = [ [[package]] name = "bevy_scene" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3566aa31189d212785a902d49bf5d75aba32f633d531fe3f4ccf2e51715c7cc" +checksum = "bf1eaa680e61749cc226bcdcd0d968c396fe52c2a4e9e1718422888953ba6c3b" dependencies = [ "anyhow", "bevy_app", @@ -560,19 +565,21 @@ dependencies = [ [[package]] name = "bevy_sprite" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b89d4c644e8892f5b215d812c66fd42eb553352288e668076ee25068877e508" +checksum = "3b9ddb7699b4597794071ebb93b5a0c414407ab8956dc4dc86e59dde721a663d" dependencies = [ "bevy_app", "bevy_asset", "bevy_core", "bevy_ecs", + "bevy_log", "bevy_math", "bevy_reflect", "bevy_render", "bevy_transform", "bevy_utils", + "bevy_window", "guillotiere", "rectangle-pack", "serde", @@ -581,9 +588,9 @@ dependencies = [ [[package]] name = "bevy_tasks" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73cb02453fab099d690d08f1688f91cd026f0f9f2d06d25629eed9d8b4418d58" +checksum = "77243565dde30ce01e538c615db54bc939a36e4c468b271e86a980004bac7bc9" dependencies = [ "async-channel", "async-executor", @@ -596,9 +603,9 @@ dependencies = [ [[package]] name = "bevy_text" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "636546e42b1f8c5225f89c0408031e6e2c8c47fe2c06f611d4a678e722ec56c1" +checksum = "21dfc4f2108582afd5a8995904ea55cd594787f210dac5d1df453cbe92eaab26" dependencies = [ "ab_glyph", "anyhow", @@ -610,16 +617,18 @@ dependencies = [ "bevy_reflect", "bevy_render", "bevy_sprite", + "bevy_transform", "bevy_utils", + "bevy_window", "glyph_brush_layout", "thiserror", ] [[package]] name = "bevy_transform" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2655003cdb139b55ff2851b07345b83e910d7350c466635ad5db1a38169d2c56" +checksum = "8d166fe11f67dc195b42207e7b096f36680f611afc8f4105b3d81865b66ecf91" dependencies = [ "bevy_app", "bevy_ecs", @@ -631,9 +640,9 @@ dependencies = [ [[package]] name = "bevy_ui" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bc722420aa0d2a8eb10ba5dd7b5aa2181d37e64d71a58df13fb461551c1278c" +checksum = "ef67dfa943511b8bbca6bf730f183ac5c602a35a7659e58bdf7471154018889d" dependencies = [ "bevy_app", "bevy_asset", @@ -641,6 +650,7 @@ dependencies = [ "bevy_derive", "bevy_ecs", "bevy_input", + "bevy_log", "bevy_math", "bevy_reflect", "bevy_render", @@ -650,17 +660,18 @@ dependencies = [ "bevy_utils", "bevy_window", "serde", + "smallvec", "stretch", ] [[package]] name = "bevy_utils" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e864ce079f076445c5fb0024f0762de5a617a3572f7ea15c015c9171bc124fd" +checksum = "c384a69b670329f968f59abdcf6506f183cf18b8619d6ec1cbfe33e268e5da20" dependencies = [ - "ahash", - "getrandom 0.2.2", + "ahash 0.7.2", + "getrandom", "instant", "tracing", "uuid", @@ -668,9 +679,9 @@ dependencies = [ [[package]] name = "bevy_wgpu" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34f4ca70078bb827970bbb8fcd56245d98c66012e9136256373de70be1f68d39" +checksum = "b5e16919cc645aa9a7e988c8644836d0f91c5f1bd23e17bdd9b461a32bf7667b" dependencies = [ "bevy_app", "bevy_asset", @@ -681,8 +692,8 @@ dependencies = [ "bevy_utils", "bevy_window", "bevy_winit", - "crossbeam-channel 0.4.4", - "crossbeam-utils 0.7.2", + "crossbeam-channel", + "crossbeam-utils", "futures-lite", "parking_lot", "wgpu", @@ -690,9 +701,9 @@ dependencies = [ [[package]] name = "bevy_window" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60c2b78591e1bf568d1aa9f663b6179d17ecf33517f7ac382981bcd7b47d8036" +checksum = "b96496cb0a9c79ca6744a25e69edff4ba363c14b6070897a66a597db208405f0" dependencies = [ "bevy_app", "bevy_ecs", @@ -703,13 +714,14 @@ dependencies = [ [[package]] name = "bevy_winit" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c4c23da1c3502e5e4344cd7a9bf5c1567471dfd633c3f8e0c8ccebf1dcfafed" +checksum = "522dcea62526be0aa5ee35781e98a9f309047050cf684758bc0cd498820111f6" dependencies = [ "bevy_app", "bevy_ecs", "bevy_input", + "bevy_log", "bevy_math", "bevy_utils", "bevy_window", @@ -830,6 +842,12 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "cfg_aliases" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" + [[package]] name = "chrono" version = "0.4.19" @@ -1053,9 +1071,9 @@ dependencies = [ [[package]] name = "cpal" -version = "0.13.2" +version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "840981d3f30230d9120328d64be72319dbbedabb61bcd4c370a54cdd051238ac" +checksum = "8351ddf2aaa3c583fa388029f8b3d26f3c7035a20911fdd5f2e2ed7ab57dad25" dependencies = [ "alsa", "core-foundation-sys 0.6.2", @@ -1067,7 +1085,7 @@ dependencies = [ "mach 0.3.2", "ndk 0.3.0", "ndk-glue 0.3.0", - "nix 0.20.0", + "nix", "oboe", "parking_lot", "stdweb 0.1.3", @@ -1085,16 +1103,6 @@ dependencies = [ "cfg-if 1.0.0", ] -[[package]] -name = "crossbeam-channel" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b153fe7cbef478c567df0f972e02e6d736db11affe43dfc9c56a9374d1adfb87" -dependencies = [ - "crossbeam-utils 0.7.2", - "maybe-uninit", -] - [[package]] name = "crossbeam-channel" version = "0.5.0" @@ -1102,7 +1110,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dca26ee1f8d361640700bde38b2c37d8c22b3ce2d360e1fc1c74ea4b0aa7d775" dependencies = [ "cfg-if 1.0.0", - "crossbeam-utils 0.8.3", + "crossbeam-utils", ] [[package]] @@ -1113,7 +1121,7 @@ checksum = "94af6efb46fef72616855b036a624cf27ba656ffc9be1b9a3c931cfc7749a9a9" dependencies = [ "cfg-if 1.0.0", "crossbeam-epoch", - "crossbeam-utils 0.8.3", + "crossbeam-utils", ] [[package]] @@ -1123,23 +1131,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2584f639eb95fea8c798496315b297cf81b9b58b6d30ab066a75455333cf4b12" dependencies = [ "cfg-if 1.0.0", - "crossbeam-utils 0.8.3", + "crossbeam-utils", "lazy_static", "memoffset", "scopeguard", ] -[[package]] -name = "crossbeam-utils" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8" -dependencies = [ - "autocfg", - "cfg-if 0.1.10", - "lazy_static", -] - [[package]] name = "crossbeam-utils" version = "0.8.3" @@ -1308,9 +1305,15 @@ dependencies = [ [[package]] name = "fixedbitset" -version = "0.3.2" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45e780567ed7abc415d12fd464571d265eb4a5710ddc97cdb1a31a4c35bb479d" +checksum = "37ab347416e802de484e4d03c7316c48f1ecb56574dfd4a46a80f173ce1de04d" + +[[package]] +name = "fixedbitset" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "398ea4fabe40b9b0d885340a2a991a44c8a645624075ad966d21f88688e2b69e" [[package]] name = "fnv" @@ -1368,48 +1371,12 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" -[[package]] -name = "futures" -version = "0.3.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f55667319111d593ba876406af7c409c0ebb44dc4be6132a783ccf163ea14c1" -dependencies = [ - "futures-channel", - "futures-core", - "futures-executor", - "futures-io", - "futures-sink", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-channel" -version = "0.3.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c2dd2df839b57db9ab69c2c9d8f3e8c81984781937fe2807dc6dcf3b2ad2939" -dependencies = [ - "futures-core", - "futures-sink", -] - [[package]] name = "futures-core" version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "15496a72fabf0e62bdc3df11a59a3787429221dd0710ba8ef163d6f7a9112c94" -[[package]] -name = "futures-executor" -version = "0.3.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "891a4b7b96d84d5940084b2a37632dd65deeae662c114ceaa2c879629c9c0ad1" -dependencies = [ - "futures-core", - "futures-task", - "futures-util", -] - [[package]] name = "futures-io" version = "0.3.13" @@ -1431,50 +1398,6 @@ dependencies = [ "waker-fn", ] -[[package]] -name = "futures-macro" -version = "0.3.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea405816a5139fb39af82c2beb921d52143f556038378d6db21183a5c37fbfb7" -dependencies = [ - "proc-macro-hack", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "futures-sink" -version = "0.3.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85754d98985841b7d4f5e8e6fbfa4a4ac847916893ec511a2917ccd8525b8bb3" - -[[package]] -name = "futures-task" -version = "0.3.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa189ef211c15ee602667a6fcfe1c1fd9e07d42250d2156382820fba33c9df80" - -[[package]] -name = "futures-util" -version = "0.3.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1812c7ab8aedf8d6f2701a43e1243acdbcc2b36ab26e2ad421eb99ac963d96d1" -dependencies = [ - "futures-channel", - "futures-core", - "futures-io", - "futures-macro", - "futures-sink", - "futures-task", - "memchr", - "pin-project-lite", - "pin-utils", - "proc-macro-hack", - "proc-macro-nested", - "slab", -] - [[package]] name = "fxhash" version = "0.2.1" @@ -1484,17 +1407,6 @@ dependencies = [ "byteorder", ] -[[package]] -name = "getrandom" -version = "0.1.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" -dependencies = [ - "cfg-if 1.0.0", - "libc", - "wasi 0.9.0+wasi-snapshot-preview1", -] - [[package]] name = "getrandom" version = "0.2.2" @@ -1504,15 +1416,15 @@ dependencies = [ "cfg-if 1.0.0", "js-sys", "libc", - "wasi 0.10.2+wasi-snapshot-preview1", + "wasi", "wasm-bindgen", ] [[package]] name = "gfx-auxil" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07cd956b592970f08545b9325b87580eb95a51843b6f39da27b8667fec1a1216" +checksum = "e7b33ecf067f2117668d91c9b0f2e5f223ebd1ffec314caa2f3de27bb580186d" dependencies = [ "fxhash", "gfx-hal", @@ -1521,9 +1433,9 @@ dependencies = [ [[package]] name = "gfx-backend-dx11" -version = "0.6.17" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54b43f06089866bdffe59b5a6801022c86b74d2c1dd28940a9cf301d3d014fbc" +checksum = "f851d03c2e8f117e3702bf41201a4fafa447d5cb1276d5375870ae7573d069dd" dependencies = [ "arrayvec", "bitflags", @@ -1543,9 +1455,9 @@ dependencies = [ [[package]] name = "gfx-backend-dx12" -version = "0.6.13" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "375014deed24d76b03604736dd899f0925158a1a96db90cbefb9cce070f71af7" +checksum = "36dc6ba2b7647e2c2b27b8f74ff5ccdd53c703776588eee5b1de515fdcbd6bc9" dependencies = [ "arrayvec", "bit-set", @@ -1554,6 +1466,7 @@ dependencies = [ "gfx-auxil", "gfx-hal", "log", + "parking_lot", "range-alloc", "raw-window-handle", "smallvec", @@ -1563,9 +1476,9 @@ dependencies = [ [[package]] name = "gfx-backend-empty" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2085227c12b78f6657a900c829f2d0deb46a9be3eaf86844fde263cdc218f77c" +checksum = "9f07ef26a65954cfdd7b4c587f485100d1bb3b0bd6a51b02d817d6c87cca7a91" dependencies = [ "gfx-hal", "log", @@ -1573,10 +1486,33 @@ dependencies = [ ] [[package]] -name = "gfx-backend-metal" -version = "0.6.5" +name = "gfx-backend-gl" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "273d60d5207f96d99e0d11d0718995f67e56533a9df1444d83baf787f4c3cb32" +checksum = "c6717c50ab601efe4a669bfb44db615e3888695ac8263222aeaa702642b9fbc2" +dependencies = [ + "arrayvec", + "bitflags", + "gfx-auxil", + "gfx-hal", + "glow", + "js-sys", + "khronos-egl", + "libloading 0.6.7", + "log", + "naga", + "parking_lot", + "raw-window-handle", + "spirv_cross", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "gfx-backend-metal" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8dc54b456ece69ef49f8893269ebf24ac70969ed34ba2719c3f3abcc8fbff14e" dependencies = [ "arrayvec", "bitflags", @@ -1586,23 +1522,22 @@ dependencies = [ "foreign-types", "gfx-auxil", "gfx-hal", - "lazy_static", "log", "metal", + "naga", "objc", "parking_lot", "range-alloc", "raw-window-handle", - "smallvec", "spirv_cross", "storage-map", ] [[package]] name = "gfx-backend-vulkan" -version = "0.6.5" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a3a63cf61067a09b7d1ac480af3cb2ae0c5ede5bed294607bbd814cb1666c45" +checksum = "dabe88b1a5c91e0f969b441cc57e70364858066e4ba937deeb62065654ef9bd9" dependencies = [ "arrayvec", "ash", @@ -1610,76 +1545,52 @@ dependencies = [ "core-graphics-types", "gfx-hal", "inplace_it", - "lazy_static", "log", + "naga", "objc", + "parking_lot", "raw-window-handle", "smallvec", "winapi 0.3.9", - "x11", -] - -[[package]] -name = "gfx-descriptor" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd8c7afcd000f279d541a490e27117e61037537279b9342279abf4938fe60c6b" -dependencies = [ - "arrayvec", - "fxhash", - "gfx-hal", - "log", ] [[package]] name = "gfx-hal" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18d0754f5b7a43915fd7466883b2d1bb0800d7cc4609178d0b27bf143b9e5123" +checksum = "c1d9cc8d3b573dda62d0baca4f02e0209786e22c562caff001d77c389008781d" dependencies = [ "bitflags", + "naga", "raw-window-handle", -] - -[[package]] -name = "gfx-memory" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dccdda5d2b39412f4ca2cb15c70b5a82783a86b0606f5e985342754c8ed88f05" -dependencies = [ - "bit-set", - "fxhash", - "gfx-hal", - "log", - "slab", + "thiserror", ] [[package]] name = "gilrs" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b64ac678e1174eb012be1cfd409ff2483f23cb79bc880ce4737147245b0fbff" +checksum = "0e986f911d937f4395dfc2a39618dcef452773d32dcdbe0828c623f76588f749" dependencies = [ "fnv", "gilrs-core", "log", - "stdweb 0.4.20", "uuid", "vec_map", ] [[package]] name = "gilrs-core" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1024d4046c5c67d2adb8c90f6ed235163b58e05d35a63bf699b53f0cceeba2c6" +checksum = "9a5e5bb97bf9a0d9519a28cf38839cf1d6d9bb572b48e3c67202271fec2ed5e7" dependencies = [ "core-foundation 0.6.4", "io-kit-sys", "libc", "libudev-sys", "log", - "nix 0.18.0", + "nix", "rusty-xinput", "stdweb 0.4.20", "uuid", @@ -1689,21 +1600,12 @@ dependencies = [ [[package]] name = "glam" -version = "0.11.3" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49d9e5a6410cd46e6bea97123cec5ef1cba14274aad26a1835dd3c9b753ae069" +checksum = "70155b56080764b8b758e91e4c63d06da0262c0c939f2cd991cd1382087147df" dependencies = [ "serde", - "version_check", -] - -[[package]] -name = "glam" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ad8819b352632f676098176a51e11e324e8cee4c2518dd67e58c36b848438e6" -dependencies = [ - "version_check", + "spirv-std", ] [[package]] @@ -1712,6 +1614,18 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" +[[package]] +name = "glow" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "072136d2c3783f3a92f131acb227bc806d3886278e2a4dc1e9990ec89ef9e70b" +dependencies = [ + "js-sys", + "slotmap", + "wasm-bindgen", + "web-sys", +] + [[package]] name = "gltf" version = "0.15.2" @@ -1758,6 +1672,47 @@ dependencies = [ "xi-unicode", ] +[[package]] +name = "gpu-alloc" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e7724b9aef57ea36d70faf54e0ee6265f86e41de16bed8333efdeab5b00e16b" +dependencies = [ + "bitflags", + "gpu-alloc-types", + "tracing", +] + +[[package]] +name = "gpu-alloc-types" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54804d0d6bc9d7f26db4eaec1ad10def69b599315f487d32c334a80d1efe67a5" +dependencies = [ + "bitflags", +] + +[[package]] +name = "gpu-descriptor" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8a70f1e87a3840ed6a3e99e02c2b861e4dbdf26f0d07e38f42ea5aff46cfce2" +dependencies = [ + "bitflags", + "gpu-descriptor-types", + "hashbrown", + "tracing", +] + +[[package]] +name = "gpu-descriptor-types" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "363e3677e55ad168fef68cf9de3a4a310b53124c5e784c53a1d70e92d23f2126" +dependencies = [ + "bitflags", +] + [[package]] name = "guillotiere" version = "0.6.0" @@ -1768,6 +1723,15 @@ dependencies = [ "svg_fmt", ] +[[package]] +name = "hashbrown" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04" +dependencies = [ + "ahash 0.4.7", +] + [[package]] name = "hermit-abi" version = "0.1.18" @@ -1785,11 +1749,11 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] name = "hexasphere" -version = "3.1.1" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd045b4b2fcd330e6e17bb0fc5e91a96c1511c0802ae6e45b4f80463c55c4a8b" +checksum = "c592a42961cf144138e04a4bddbe3ef5c6f9fe6ef5eff6fd3bb767b254194171" dependencies = [ - "glam 0.12.0", + "glam", "lazy_static", ] @@ -1815,6 +1779,16 @@ dependencies = [ "scoped_threadpool", ] +[[package]] +name = "indexmap" +version = "1.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "824845a0bf897a9042383849b02c1bc219c2383772efcd5c6f9766fa4b81aef3" +dependencies = [ + "autocfg", + "hashbrown", +] + [[package]] name = "inflections" version = "1.1.1" @@ -1915,9 +1889,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.49" +version = "0.3.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc15e39392125075f60c95ba416f5381ff6c3a948ff02ab12464715adf56c821" +checksum = "cf3d7383929f7c9c7c2d0fa596f325832df98c3704f2c60553080f7127a58175" dependencies = [ "wasm-bindgen", ] @@ -1932,6 +1906,16 @@ dependencies = [ "winapi-build", ] +[[package]] +name = "khronos-egl" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b19cc4a81304db2a0ad69740e83cdc3a9364e3f9bd6d88a87288a4c2deec927b" +dependencies = [ + "libc", + "libloading 0.6.7", +] + [[package]] name = "lazy_static" version = "1.4.0" @@ -1946,9 +1930,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.91" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8916b1f6ca17130ec6568feccee27c156ad12037880833a3b842a823236502e7" +checksum = "9385f66bf6105b241aa65a61cb923ef20efc665cb9f9bb50ac2f0c4b7f378d41" [[package]] name = "libloading" @@ -1976,6 +1960,12 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7fc7aa29613bd6a620df431842069224d8bc9011086b1db4c0e0cd47fa03ec9a" +[[package]] +name = "libm" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7d73b3f436185384286bd8098d17ec07c9a7d2388a6599f824d8502b529702a" + [[package]] name = "libudev-sys" version = "0.1.4" @@ -1988,9 +1978,9 @@ dependencies = [ [[package]] name = "lock_api" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd96ffd135b2fd7b973ac026d28085defbe8983df057ced3eb4f2130b0831312" +checksum = "5a3c91c24eae6777794bb1997ad98bbb87daf92890acab859f7eaa4320333176" dependencies = [ "scopeguard", ] @@ -2063,18 +2053,18 @@ checksum = "0ee1c47aaa256ecabcaea351eae4a9b01ef39ed810004e298d2511ed284b1525" [[package]] name = "memoffset" -version = "0.6.2" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc14fc54a812b4472b4113facc3e44d099fbc0ea2ce0551fa5c703f8edfbfd38" +checksum = "f83fb6581e8ed1f85fd45c116db8405483899489e38406156c25eb743554361d" dependencies = [ "autocfg", ] [[package]] name = "metal" -version = "0.20.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c4e8a431536529327e28c9ba6992f2cb0c15d4222f0602a16e6d7695ff3bccf" +checksum = "4598d719460ade24c7d91f335daf055bf2a7eec030728ce751814c50cdd6a26c" dependencies = [ "bitflags", "block", @@ -2180,14 +2170,16 @@ dependencies = [ [[package]] name = "naga" -version = "0.2.0" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0873deb76cf44b7454fba7b2ba6a89d3de70c08aceffd2c489379b3d9d08e661" +checksum = "05089b2acdf0e6a962cdbf5e328402345a27f59fcde1a59fe97a73e8149d416f" dependencies = [ + "bit-set", "bitflags", "fxhash", "log", "num-traits", + "petgraph", "spirv_headers", "thiserror", ] @@ -2275,18 +2267,6 @@ dependencies = [ "winapi 0.3.9", ] -[[package]] -name = "nix" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83450fe6a6142ddd95fb064b746083fc4ef1705fe81f64a64e1d4b39f54a1055" -dependencies = [ - "bitflags", - "cc", - "cfg-if 0.1.10", - "libc", -] - [[package]] name = "nix" version = "0.20.0" @@ -2317,7 +2297,7 @@ checksum = "e5fd82b93434edb9c00ae65ee741e0e081cdc8c63346ab9f687935a629aaf4c3" dependencies = [ "anymap", "bitflags", - "crossbeam-channel 0.5.0", + "crossbeam-channel", "filetime", "fsevent", "fsevent-sys", @@ -2396,6 +2376,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290" dependencies = [ "autocfg", + "libm 0.2.1", ] [[package]] @@ -2552,18 +2533,22 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" +[[package]] +name = "petgraph" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "467d164a6de56270bd7c4d070df81d07beace25012d5103ced4e9ff08d6afdb7" +dependencies = [ + "fixedbitset 0.2.0", + "indexmap", +] + [[package]] name = "pin-project-lite" version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc0e1f259c92177c30a4c9d177246edd0a3568b25756a977d0632cf8fa37e905" -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - [[package]] name = "pkg-config" version = "0.3.19" @@ -2597,23 +2582,11 @@ dependencies = [ "toml", ] -[[package]] -name = "proc-macro-hack" -version = "0.5.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5" - -[[package]] -name = "proc-macro-nested" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc881b2c22681370c6a780e47af9840ef841837bc98118431d4e1868bd0c1086" - [[package]] name = "proc-macro2" -version = "1.0.24" +version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e0704ee1a7e00d7bb417d0770ea303c1bccbabf0ef1667dae92b5967f5f8a71" +checksum = "a152013215dca273577e18d2bf00fa862b89b24169fb78c4c95aeb07992c9cec" dependencies = [ "unicode-xid", ] @@ -2629,11 +2602,10 @@ dependencies = [ [[package]] name = "rand" -version = "0.7.3" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +checksum = "0ef9e7e66b4468674bfcb0c81af8b7fa0bb154fa9f28eb840da5c447baeb8d7e" dependencies = [ - "getrandom 0.1.16", "libc", "rand_chacha", "rand_core", @@ -2642,9 +2614,9 @@ dependencies = [ [[package]] name = "rand_chacha" -version = "0.2.2" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +checksum = "e12735cf05c9e10bf21534da50a147b924d555dc7a547c42e6bb2d5b6017ae0d" dependencies = [ "ppv-lite86", "rand_core", @@ -2652,18 +2624,18 @@ dependencies = [ [[package]] name = "rand_core" -version = "0.5.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +checksum = "34cf66eb183df1c5876e2dcf6b13d57340741e8dc255b48e40a26de954d06ae7" dependencies = [ - "getrandom 0.1.16", + "getrandom", ] [[package]] name = "rand_hc" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +checksum = "3190ef7066a446f2e7f42e239d161e905420ccab01eb967c9eb27d21b2322a73" dependencies = [ "rand_core", ] @@ -2701,18 +2673,18 @@ version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ab346ac5921dc62ffa9f89b7a773907511cdfa5490c572ae9be1be33e8afa4a" dependencies = [ - "crossbeam-channel 0.5.0", + "crossbeam-channel", "crossbeam-deque", - "crossbeam-utils 0.8.3", + "crossbeam-utils", "lazy_static", "num_cpus", ] [[package]] name = "rectangle-pack" -version = "0.2.2" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9df375010d0f5f61972d0d1e21d734be1cb1a62a14264628993ae5d1f1e36b40" +checksum = "831eb2fcb5b72b09c72a3f2d24c09a28d79886512827cd4674d9bac10557f16a" [[package]] name = "redox_syscall" @@ -2752,9 +2724,9 @@ checksum = "24d5f089152e60f62d28b835fbff2cd2e8dc0baf1ac13343bef92ab7eed84548" [[package]] name = "rodio" -version = "0.13.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9683532495146e98878d4948fa1a1953f584cd923f2a5f5c26b7a8701b56943" +checksum = "b65c2eda643191f6d1bb12ea323a9db8d9ba95374e9be3780b5a9fb5cfb8520f" dependencies = [ "cpal", "minimp3", @@ -2766,7 +2738,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "064ea8613fb712a19faf920022ec8ddf134984f100090764a4e1d768f3827f1f" dependencies = [ - "base64 0.13.0", + "base64", "bitflags", "serde", ] @@ -2878,9 +2850,9 @@ checksum = "2579985fda508104f7587689507983eadd6a6e84dd35d6d115361f530916fa0d" [[package]] name = "shaderc" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93896fc153a0977666b9ee0e6b3ffcebb172682e80bccb3b28a1c823e47825d0" +checksum = "1ca37955a53b37fa20380c414aec5343ab76b6993ebfd86e74facd7209bac577" dependencies = [ "libc", "shaderc-sys", @@ -2888,9 +2860,9 @@ dependencies = [ [[package]] name = "shaderc-sys" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ca380428494e9f5780e90ffd5516328aa980864f9bce36d6a636a28be07c8bd" +checksum = "da6962db4d543df2fb613d76e6f4c7bcf58ff3300709c92f2349239955ce0a9f" dependencies = [ "cmake", "libc", @@ -2928,6 +2900,12 @@ dependencies = [ "winapi 0.3.9", ] +[[package]] +name = "slotmap" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c46a3482db8f247956e464d783693ece164ca056e6e67563ee5505bdb86452cd" + [[package]] name = "smallvec" version = "1.6.1" @@ -2952,10 +2930,31 @@ dependencies = [ ] [[package]] -name = "spirv_cross" -version = "0.22.2" +name = "spirv-std" +version = "0.4.0-alpha.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ebd49af36be83ecd6290b57147e2a0e26145b832634b17146d934b197ca3713" +checksum = "6de6f1b80004dfc3e9e02fdf8eb32c663f3b85e3942f39d02b6540ed0d2460dd" +dependencies = [ + "num-traits", + "spirv-std-macros", +] + +[[package]] +name = "spirv-std-macros" +version = "0.4.0-alpha.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4972082b5236fd57a46cc47fbc315ad78b5ad07b33e51077c688a2fe28d6f2d" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "spirv_cross" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60647fadbf83c4a72f0d7ea67a7ca3a81835cf442b8deae5c134c3e0055b2e14" dependencies = [ "cc", "js-sys", @@ -3045,7 +3044,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7b0dc6d20ce137f302edf90f9cd3d278866fd7fb139efca6f246161222ad6d87" dependencies = [ "lazy_static", - "libm", + "libm 0.1.4", ] [[package]] @@ -3129,9 +3128,9 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.13" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8a9bd1db7706f2373a190b0d067146caa39350c486f3d455b0e33b431f94c07" +checksum = "c42e6fa53307c8a17e4ccd4dc81cf5ec38db9209f59b222210375b54ee40d1e2" dependencies = [ "proc-macro2", "quote", @@ -3170,9 +3169,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ab8966ac3ca27126141f7999361cc97dd6fb4b71da04c02044fa9045d98bb96" +checksum = "705096c6f83bf68ea5d357a6aa01829ddbdac531b357b45abeca842938085baa" dependencies = [ "ansi_term", "chrono", @@ -3192,9 +3191,9 @@ dependencies = [ [[package]] name = "tracing-wasm" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd96394d3d2f119de6c1078fa065b99217db4377f9aac6e87f8393276a0d7962" +checksum = "8ae741706df70547fca8715f74a8569677666e7be3454313af70f6e158034485" dependencies = [ "tracing", "tracing-subscriber", @@ -3207,12 +3206,6 @@ version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85e00391c1f3d171490a3f8bd79999b0002ae38d3da0d6a3a306c754b053d71b" -[[package]] -name = "typed-arena" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0685c84d5d54d1c26f7d3eb96cd41550adb97baed141a761cf335d3d33bcd0ae" - [[package]] name = "unicode-xid" version = "0.2.1" @@ -3225,7 +3218,7 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" dependencies = [ - "getrandom 0.2.2", + "getrandom", "serde", ] @@ -3264,12 +3257,6 @@ dependencies = [ "winapi-util", ] -[[package]] -name = "wasi" -version = "0.9.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" - [[package]] name = "wasi" version = "0.10.2+wasi-snapshot-preview1" @@ -3278,9 +3265,9 @@ checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" [[package]] name = "wasm-bindgen" -version = "0.2.72" +version = "0.2.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fe8f61dba8e5d645a4d8132dc7a0a66861ed5e1045d2c0ed940fab33bac0fbe" +checksum = "3cd364751395ca0f68cafb17666eee36b63077fb5ecd972bbcd74c90c4bf736e" dependencies = [ "cfg-if 1.0.0", "wasm-bindgen-macro", @@ -3288,9 +3275,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.72" +version = "0.2.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "046ceba58ff062da072c7cb4ba5b22a37f00a302483f7e2a6cdc18fedbdc1fd3" +checksum = "1114f89ab1f4106e5b55e688b828c0ab0ea593a1ea7c094b141b14cbaaec2d62" dependencies = [ "bumpalo", "lazy_static", @@ -3303,9 +3290,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.22" +version = "0.4.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73157efb9af26fb564bb59a009afd1c7c334a44db171d280690d0c3faaec3468" +checksum = "1fe9756085a84584ee9457a002b7cdfe0bfff169f45d2591d8be1345a6780e35" dependencies = [ "cfg-if 1.0.0", "js-sys", @@ -3315,9 +3302,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.72" +version = "0.2.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ef9aa01d36cda046f797c57959ff5f3c615c9cc63997a8d545831ec7976819b" +checksum = "7a6ac8995ead1f084a8dea1e65f194d0973800c7f571f6edd70adf06ecf77084" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -3325,9 +3312,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.72" +version = "0.2.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96eb45c1b2ee33545a813a92dbb53856418bf7eb54ab34f7f7ff1448a5b3735d" +checksum = "b5a48c72f299d80557c7c62e37e7225369ecc0c963964059509fbafe917c7549" dependencies = [ "proc-macro2", "quote", @@ -3338,15 +3325,15 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.72" +version = "0.2.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7148f4696fb4960a346eaa60bbfb42a1ac4ebba21f750f75fc1375b098d5ffa" +checksum = "7e7811dd7f9398f14cc76efd356f98f03aa30419dea46aa810d71e819fc97158" [[package]] name = "web-sys" -version = "0.3.48" +version = "0.3.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec600b26223b2948cedfde2a0aa6756dcf1fef616f43d7b3097aaf53a6c4d92b" +checksum = "222b1ef9334f92a21d3fb53dc3fd80f30836959a90f9274a626d7e06315ba3c3" dependencies = [ "js-sys", "wasm-bindgen", @@ -3354,20 +3341,18 @@ dependencies = [ [[package]] name = "wgpu" -version = "0.6.2" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "991903e4c9f5b7319732b30a3d0339e27a51ea992cea22769b5f6c7f7076af6d" +checksum = "79a0a0a63fac9492cfaf6e7e4bdf9729c128f1e94124b9e4cbc4004b8cb6d1d8" dependencies = [ "arrayvec", - "futures", - "gfx-backend-vulkan", "js-sys", - "objc", + "naga", "parking_lot", "raw-window-handle", "smallvec", + "syn", "tracing", - "typed-arena", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", @@ -3377,22 +3362,24 @@ dependencies = [ [[package]] name = "wgpu-core" -version = "0.6.5" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea487deeae90e06d77eb8e6cef945247774e7c0a0a226d238b31e90633594365" +checksum = "c89fa2cc5d72236461ac09c5be967012663e29cb62f1a972654cbf35e49dffa8" dependencies = [ "arrayvec", "bitflags", + "cfg_aliases", "copyless", "fxhash", "gfx-backend-dx11", "gfx-backend-dx12", "gfx-backend-empty", + "gfx-backend-gl", "gfx-backend-metal", "gfx-backend-vulkan", - "gfx-descriptor", "gfx-hal", - "gfx-memory", + "gpu-alloc", + "gpu-descriptor", "naga", "parking_lot", "raw-window-handle", @@ -3404,9 +3391,9 @@ dependencies = [ [[package]] name = "wgpu-types" -version = "0.6.1" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e3529528e608b54838ee618c3923b0f46e6db0334cfc6c42a16cf4ceb3bdb57" +checksum = "72fa9ba80626278fd87351555c363378d08122d7601e58319be3d6fa85a87747" dependencies = [ "bitflags", ] @@ -3504,16 +3491,6 @@ dependencies = [ "winapi-build", ] -[[package]] -name = "x11" -version = "2.18.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77ecd092546cb16f25783a5451538e73afc8d32e242648d54f4ae5459ba1e773" -dependencies = [ - "libc", - "pkg-config", -] - [[package]] name = "x11-dl" version = "2.18.5" diff --git a/Cargo.toml b/Cargo.toml index 97241f1..6c00748 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,6 +7,6 @@ edition = "2018" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -bevy = "^0.4" +bevy = "^0.5" num-complex = "^0.4" rayon = "^1.5" diff --git a/src/main.rs b/src/main.rs index 3441f90..d728941 100644 --- a/src/main.rs +++ b/src/main.rs @@ -8,7 +8,7 @@ fn main() { App::build() .add_plugins(DefaultPlugins) .add_startup_system(startup.system()) - .add_resource(TextureOptions::default()) + .insert_resource(TextureOptions::default()) .add_system(mandelbrot_render_system.system()) .add_system(transform_mandelbrot_system.system()) .run(); @@ -95,12 +95,10 @@ fn mandelbrot_render_system( let start = Instant::now(); - // FIXME: This will not work due to https://github.com/bevyengine/bevy/issues/1161 - // The workaround involves "getting a mutable borrow of the ColorMaterial you use to display the Texture" - // according to @FrancoisM#2474, a developer of Bevy on Discord texture .data .copy_from_slice(fractal.scaled_image(bounds, limit)); + let _diff = Instant::now() - start; } } @@ -109,12 +107,14 @@ fn mandelbrot_render_system( } fn startup( - commands: &mut Commands, + mut commands: Commands, mut textures: ResMut>, mut materials: ResMut>, ) { + let mut fractal = Mandelbrot::default(); + let texture_size = Extent3d::new(TEXTURE_WIDTH as u32, TEXTURE_HEIGHT as u32, 1); - let texture_data = Mandelbrot::new().image().to_vec(); + let texture_data = fractal.image().to_vec(); let texture_handle = textures.add(Texture::new( texture_size, @@ -123,11 +123,11 @@ fn startup( TextureFormat::Rgba8UnormSrgb, )); + commands.spawn_bundle(OrthographicCameraBundle::new_2d()); commands - .spawn(Camera2dBundle::default()) - .spawn(SpriteBundle { + .spawn_bundle(SpriteBundle { material: materials.add(texture_handle.into()), ..Default::default() }) - .with(Mandelbrot::new()); + .insert(fractal); } diff --git a/src/mandelbrot.rs b/src/mandelbrot.rs index 47d4ce1..90473d1 100644 --- a/src/mandelbrot.rs +++ b/src/mandelbrot.rs @@ -21,6 +21,15 @@ impl Coordinate { } } +impl Coordinate { + pub fn into_complex(self, bounds: Bounds) -> Complex { + Complex::new( + Mandelbrot::scale_width(self.x(), bounds.x()), + Mandelbrot::scale_height(self.y(), bounds.y()), + ) + } +} + #[derive(Debug, Clone, Copy)] pub struct Bounds { x: (f64, f64), @@ -45,25 +54,33 @@ pub struct Mandelbrot { frame_buffer: Box<[u8; (TEXTURE_WIDTH * TEXTURE_HEIGHT) * 4]>, } -impl Mandelbrot { - pub fn new() -> Self { +impl Default for Mandelbrot { + fn default() -> Self { Mandelbrot { frame_buffer: Box::new([0; (TEXTURE_WIDTH * TEXTURE_HEIGHT) * 4]), } } +} +impl Mandelbrot { pub fn image(&mut self) -> &[u8] { - let limit_f64 = DEFAULT_ITERATION_LIMIT as f64; + let limit = DEFAULT_ITERATION_LIMIT as f64; + let error = f64::EPSILON; self.frame_buffer .par_chunks_mut(4) .enumerate() .for_each(|(i, buf)| { - let iterations = Self::escape_time(i, DEFAULT_BOUNDS, DEFAULT_ITERATION_LIMIT); - let normalized_iters = iterations / limit_f64; + let iters = Self::escape_time(i, DEFAULT_BOUNDS, DEFAULT_ITERATION_LIMIT); + let normalized = iters / limit; + + let h = normalized * 350.0; + let v = if (iters - limit).abs() < error { + 0.0 + } else { + 1.0 + }; - let h = normalized_iters * 350.0; - let v = if iterations == limit_f64 { 0.0 } else { 1.0 }; buf.copy_from_slice(&Self::hsv_to_rgb(h, 1.0, v)); }); @@ -71,28 +88,34 @@ impl Mandelbrot { } pub fn scaled_image(&mut self, bounds: Bounds, limit: u32) -> &[u8] { + let error = f64::EPSILON; + self.frame_buffer .par_chunks_mut(4) .enumerate() .for_each(|(i, buf)| { - let limit_f64 = limit as f64; + let iters = Self::escape_time(i, bounds, limit); + let limit = limit as f64; + let normalized = iters / limit; - let iterations = Self::escape_time(i, bounds, limit); - let normalized_iters = iterations / limit_f64; + let h = normalized * 350.0; + let v = if (iters - limit).abs() < error { + 0.0 + } else { + 1.0 + }; - let h = normalized_iters * 350.0; - let v = if iterations == limit_f64 { 0.0 } else { 1.0 }; buf.copy_from_slice(&Self::hsv_to_rgb(h, 1.0, v)) }); self.frame_buffer.as_ref() } - fn escape_time(i: usize, bounds: Bounds, iteration_limit: u32) -> f64 { + fn escape_time(i: usize, bounds: Bounds, limit: u32) -> f64 { let point = Coordinate::new(i % TEXTURE_WIDTH, i / TEXTURE_WIDTH); - let c = Self::coords_to_complex(point, bounds); + let c = point.into_complex(bounds); - Self::count_iterations(c, iteration_limit) + Self::count_iterations(c, limit) } #[inline] @@ -127,16 +150,16 @@ impl Mandelbrot { [r, g, b, a] } - fn count_iterations(c: Complex, maximum: u32) -> f64 { + fn count_iterations(c: Complex, limit: u32) -> f64 { let mut z: Complex = Complex::new(0.0, 0.0); let mut count: u32 = 0; loop { - if z.norm_sqr() > 4.0 { + if count == limit { break; } - if count >= maximum { + if z.norm_sqr() > 4.0 { break; } @@ -144,20 +167,13 @@ impl Mandelbrot { count += 1; } - if count < maximum { + if count < limit { (count as f64 + 1.0) - z.norm().ln().ln() / 2f64.ln() } else { count as f64 } } - fn coords_to_complex(point: Coordinate, bounds: Bounds) -> Complex { - Complex::new( - Self::scale_width(point.x(), bounds.x()), - Self::scale_height(point.y(), bounds.y()), - ) - } - #[inline] fn scale_width(x: usize, bounds: (f64, f64)) -> f64 { // const X_MIN: f64 = -2.5;