From e73625f09db0148181ffdca9f0a9833e3fb00d5b Mon Sep 17 00:00:00 2001 From: Blake Nedved Date: Sat, 10 Apr 2021 02:08:53 -0500 Subject: [PATCH] update to 0.20 (#39) --- Cargo.lock | 1374 ++++++++++------- Cargo.toml | 10 +- src/bin/basic-compute-shader.rs | 6 +- src/bin/buffer-pool.rs | 12 +- src/bin/debug.rs | 6 +- .../deferred/frame/ambient_lighting_system.rs | 4 +- .../frame/directional_lighting_system.rs | 4 +- src/bin/deferred/frame/mod.rs | 4 +- .../deferred/frame/point_lighting_system.rs | 4 +- src/bin/deferred/frame/system.rs | 9 +- src/bin/deferred/main.rs | 6 +- src/bin/deferred/triangle_draw_system.rs | 4 +- src/bin/dynamic-local-size.rs | 12 +- src/bin/image/main.rs | 15 +- src/bin/indirect.rs | 16 +- src/bin/instancing.rs | 12 +- src/bin/msaa-renderpass.rs | 10 +- src/bin/multi-window.rs | 12 +- src/bin/pipeline-caching.rs | 165 ++ src/bin/push-constants.rs | 9 +- src/bin/runtime-shader/frag.glsl | 4 +- src/bin/runtime-shader/main.rs | 13 +- src/bin/runtime-shader/vert.glsl | 4 +- src/bin/shader-include/main.rs | 6 +- src/bin/shader-types-derive.rs | 137 ++ src/bin/specialization-constants.rs | 12 +- src/bin/teapot/main.rs | 8 +- src/bin/tessellation.rs | 12 +- src/bin/triangle.rs | 12 +- src/lib.rs | 4 +- 30 files changed, 1268 insertions(+), 638 deletions(-) create mode 100644 src/bin/pipeline-caching.rs create mode 100644 src/bin/shader-types-derive.rs diff --git a/Cargo.lock b/Cargo.lock index b1dde53..f8e5010 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,1207 +1,1485 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. +[[package]] +name = "ab_glyph_rasterizer" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9fe5e32de01730eb1f6b7f5b51c17e03e2325bf40a74f754f04f130043affff" + [[package]] name = "adler32" version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e522997b529f05601e05166c07ed17789691f562762c7f3b987263d2dedee5c" [[package]] name = "andrew" -version = "0.2.1" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c4afb09dd642feec8408e33f92f3ffc4052946f6b20f32fb99c1f58cd4fa7cf" dependencies = [ - "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "line_drawing 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "rusttype 0.7.7 (registry+https://github.com/rust-lang/crates.io-index)", - "walkdir 2.2.8 (registry+https://github.com/rust-lang/crates.io-index)", - "xdg 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "xml-rs 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags", + "rusttype", + "walkdir", + "xdg", + "xml-rs", ] -[[package]] -name = "android_glue" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "approx" version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0e60b75072ecd4168020818c0107f2857bb6c4e64252d8d3983f6263b40a5c3" dependencies = [ - "num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", + "num-traits", ] [[package]] name = "arrayvec" version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92c7fb76bc8826a8b33b4ee5bb07a247a81e76764ab4d55e8f73e3a4d8808c71" dependencies = [ - "nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", + "nodrop", ] [[package]] name = "autocfg" version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e49efa51329a5fd37e7c79db4621af617cd4e3e5bc224939808d076077077bf" [[package]] -name = "backtrace" -version = "0.3.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "backtrace-sys 0.1.30 (registry+https://github.com/rust-lang/crates.io-index)", - "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", - "rustc-demangle 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "backtrace-sys" -version = "0.1.30" +name = "base64" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", -] +checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" [[package]] name = "bitflags" -version = "1.1.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" [[package]] name = "block" version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" [[package]] name = "byteorder" version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7c3dd8985a7111efc5c80b44e23ecdd8c007de8ade3b96595387e812b957cf5" + +[[package]] +name = "calloop" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b036167e76041694579972c28cf4877b4f92da222560ddb49008937b6a6727c" +dependencies = [ + "log", + "nix", +] [[package]] name = "cc" version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39f75544d7bbaf57560d2168f28fd649ff9c76153874db88bdbdfd839b1a7e7d" [[package]] name = "cfg-if" -version = "0.1.9" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" + +[[package]] +name = "cfg-if" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "cgmath" version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "283944cdecc44bf0b8dd010ec9af888d3b4f142844fdbe026c20ef68148d6fe7" dependencies = [ - "approx 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", + "approx", + "num-traits", + "rand", ] [[package]] name = "cloudabi" version = "0.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" dependencies = [ - "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags", ] [[package]] name = "cmake" version = "0.1.40" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ca4386c8954b76a8415b63959337d940d724b336cabd3afe189c2b51a7e1ff0" dependencies = [ - "cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)", + "cc", ] [[package]] name = "cocoa" -version = "0.18.4" +version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c49e86fc36d5704151f5996b7b3795385f50ce09e3be0f47a0cfde869681cf8" dependencies = [ - "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "block 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "core-foundation 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", - "core-graphics 0.17.3 (registry+https://github.com/rust-lang/crates.io-index)", - "foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", - "objc 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags", + "block", + "core-foundation 0.7.0", + "core-graphics 0.19.2", + "foreign-types", + "libc", + "objc", ] [[package]] -name = "color_quant" -version = "1.0.1" +name = "cocoa" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f63902e9223530efb4e26ccd0cf55ec30d592d3b42e21a28defc42a9586e832" +dependencies = [ + "bitflags", + "block", + "cocoa-foundation", + "core-foundation 0.9.1", + "core-graphics 0.22.2", + "foreign-types", + "libc", + "objc", +] + +[[package]] +name = "cocoa-foundation" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ade49b65d560ca58c403a479bb396592b155c0185eada742ee323d1d68d6318" +dependencies = [ + "bitflags", + "block", + "core-foundation 0.9.1", + "core-graphics-types", + "foreign-types", + "libc", + "objc", +] [[package]] name = "core-foundation" -version = "0.6.4" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57d24c7a13c43e870e37c1556b74555437870a04514f7685f5b354e090567171" +dependencies = [ + "core-foundation-sys 0.7.0", + "libc", +] + +[[package]] +name = "core-foundation" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a89e2ae426ea83155dccf10c0fa6b1463ef6d5fcb44cee0b224a408fa640a62" dependencies = [ - "core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", + "core-foundation-sys 0.8.2", + "libc", ] [[package]] name = "core-foundation-sys" -version = "0.6.2" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3a71ab494c0b5b860bdc8407ae08978052417070c2ced38573a9157ad75b8ac" + +[[package]] +name = "core-foundation-sys" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea221b5284a47e40033bf9b66f35f984ec0ea2931eb03505246cd27a963f981b" [[package]] name = "core-graphics" -version = "0.17.3" +version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3889374e6ea6ab25dba90bb5d96202f61108058361f6dc72e8b03e6f8bbe923" dependencies = [ - "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "core-foundation 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", - "foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags", + "core-foundation 0.7.0", + "foreign-types", + "libc", ] [[package]] -name = "crossbeam" -version = "0.7.1" +name = "core-graphics" +version = "0.22.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "269f35f69b542b80e736a20a89a05215c0ce80c2c03c514abb2e318b78379d86" dependencies = [ - "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-deque 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-epoch 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-queue 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags", + "core-foundation 0.9.1", + "core-graphics-types", + "foreign-types", + "libc", ] [[package]] -name = "crossbeam-channel" -version = "0.3.8" +name = "core-graphics-types" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a68b68b3446082644c91ac778bf50cd4104bfb002b5a6a7c44cca5a2c70788b" dependencies = [ - "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", - "smallvec 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags", + "core-foundation 0.9.1", + "foreign-types", + "libc", ] [[package]] -name = "crossbeam-deque" -version = "0.6.3" +name = "core-video-sys" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34ecad23610ad9757664d644e369246edde1803fcb43ed72876565098a5d3828" dependencies = [ - "crossbeam-epoch 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.10", + "core-foundation-sys 0.7.0", + "core-graphics 0.19.2", + "libc", + "objc", +] + +[[package]] +name = "crc32fast" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81156fece84ab6a9f2afdb109ce3ae577e42b1228441eded99bd77f627953b1a" +dependencies = [ + "cfg-if 1.0.0", +] + +[[package]] +name = "crossbeam" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b14492071ca110999a20bf90e3833406d5d66bfd93b4e52ec9539025ff43fe0d" +dependencies = [ + "cfg-if 0.1.10", + "crossbeam-channel", + "crossbeam-deque", + "crossbeam-epoch", + "crossbeam-queue", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-channel" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f0ed1a4de2235cabda8558ff5840bffb97fcb64c97827f354a451307df5f72b" +dependencies = [ + "crossbeam-utils", + "smallvec 0.6.10", ] [[package]] name = "crossbeam-deque" version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b18cd2e169ad86297e6bc0ad9aa679aee9daa4f19e8163860faf7c164e4f5a71" dependencies = [ - "crossbeam-epoch 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-epoch", + "crossbeam-utils", ] [[package]] name = "crossbeam-epoch" version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04c9e3102cc2d69cd681412141b390abd55a362afc1540965dad0ad4d34280b4" dependencies = [ - "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", - "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", + "arrayvec", + "cfg-if 0.1.10", + "crossbeam-utils", + "lazy_static", + "memoffset", + "scopeguard 0.3.3", ] [[package]] name = "crossbeam-queue" version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c979cd6cfe72335896575c6b5688da489e420d36a27a0b9eb0c73db574b4a4b" dependencies = [ - "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-utils", ] [[package]] name = "crossbeam-utils" version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8306fcef4a7b563b76b7dd949ca48f52bc1141aa067d2ea09565f3e2652aa5c" dependencies = [ - "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.10", + "lazy_static", +] + +[[package]] +name = "darling" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d706e75d87e35569db781a9b5e2416cff1236a47ed380831f959382ccd5f858" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0c960ae2da4de88a91b2d920c2a7233b400bc33cb28453a2987822d8392519b" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn", +] + +[[package]] +name = "darling_macro" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b5a2f4ac4969822c62224815d069952656cadc7084fdca9751e6d959189b72" +dependencies = [ + "darling_core", + "quote", + "syn", ] [[package]] name = "deflate" version = "0.7.20" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "707b6a7b384888a70c8d2e8650b3e60170dfc6a67bb4aa67b6dfca57af4bedb4" +dependencies = [ + "adler32", + "byteorder", +] + +[[package]] +name = "derivative" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eaed5874effa6cde088c644ddcdcb4ffd1511391c5be4fdd7a5ccd02c7e4a183" dependencies = [ - "adler32 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", - "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2", + "quote", + "syn", ] +[[package]] +name = "dispatch" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" + [[package]] name = "dlib" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77e51249a9d823a4cb79e3eca6dcd756153e8ed0157b6c04775d04bf1b13b76a" dependencies = [ - "libloading 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", + "libloading", ] [[package]] name = "downcast-rs" version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "either" -version = "1.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2b92dfd5c2f75260cbf750572f95d387e7ca0ba5e3fbe9e1a33f23025be020f" [[package]] name = "examples" version = "0.1.0" dependencies = [ - "cgmath 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)", - "image 0.21.2 (registry+https://github.com/rust-lang/crates.io-index)", - "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", - "vulkano 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)", - "vulkano-shaders 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)", - "vulkano-win 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)", - "winit 0.19.1 (registry+https://github.com/rust-lang/crates.io-index)", + "cgmath", + "png", + "ron", + "serde", + "time", + "vulkano", + "vulkano-shaders", + "vulkano-win", + "winit", ] [[package]] name = "fnv" version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3" [[package]] name = "foreign-types" version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" dependencies = [ - "foreign-types-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "foreign-types-shared", ] [[package]] name = "foreign-types-shared" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "fuchsia-cprng" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" + +[[package]] +name = "fuchsia-zircon" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" +dependencies = [ + "bitflags", + "fuchsia-zircon-sys", +] + +[[package]] +name = "fuchsia-zircon-sys" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" [[package]] name = "gcc" version = "0.3.55" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f5f3913fa0bfe7ee1fd8248b6b9f42a5af4b9d65ec2dd2c3c26132b950ecfc2" [[package]] -name = "gif" -version = "0.10.2" +name = "half" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "color_quant 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "lzw 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", -] +checksum = "d36fab90f82edc3c747f9d438e06cf0a491055896f2a279638bb5beed6c40177" [[package]] -name = "half" -version = "1.3.0" +name = "ident_case" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] -name = "image" -version = "0.21.2" +name = "inflate" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cdb29978cc5797bd8dcc8e5bf7de604891df2a8dc576973d71a281e916db2ff" dependencies = [ - "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "gif 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", - "jpeg-decoder 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", - "lzw 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", - "num-iter 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)", - "num-rational 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", - "png 0.14.1 (registry+https://github.com/rust-lang/crates.io-index)", - "scoped_threadpool 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", - "tiff 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", + "adler32", ] [[package]] -name = "inflate" -version = "0.4.5" +name = "instant" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61124eeebbd69b8190558df225adf7e4caafce0d743919e5d6b19652314ec5ec" dependencies = [ - "adler32 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 1.0.0", ] [[package]] -name = "jpeg-decoder" -version = "0.1.15" +name = "iovec" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e" dependencies = [ - "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "rayon 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libc", +] + +[[package]] +name = "jni-sys" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" + +[[package]] +name = "kernel32-sys" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" +dependencies = [ + "winapi 0.2.8", + "winapi-build", ] [[package]] name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "lazycell" version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.58" +version = "0.2.82" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89203f3fba0a3795506acaad8ebce3c80c0af93f994d5a1d7a0b1eeb23271929" [[package]] name = "libloading" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5692f82b51823e27c4118b3e5c0d98aee9be90633ebc71ad12afef380b50219" dependencies = [ - "cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", + "cc", + "winapi 0.3.9", ] [[package]] -name = "line_drawing" -version = "0.7.0" +name = "lock_api" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd96ffd135b2fd7b973ac026d28085defbe8983df057ced3eb4f2130b0831312" dependencies = [ - "num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", + "scopeguard 1.1.0", ] [[package]] -name = "lock_api" -version = "0.1.5" +name = "log" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b" dependencies = [ - "owning_ref 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.10", ] [[package]] -name = "log" -version = "0.4.6" +name = "malloc_buf" +version = "0.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" dependencies = [ - "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", + "libc", ] [[package]] -name = "lzw" -version = "0.10.0" +name = "maybe-uninit" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00" [[package]] -name = "malloc_buf" -version = "0.0.6" +name = "memchr" +version = "2.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", -] +checksum = "0ee1c47aaa256ecabcaea351eae4a9b01ef39ed810004e298d2511ed284b1525" [[package]] -name = "memmap" -version = "0.7.0" +name = "memmap2" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b70ca2a6103ac8b665dc150b142ef0e4e89df640c9e6cf295d189c3caebe5a" dependencies = [ - "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", + "libc", ] [[package]] name = "memoffset" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f9dc261e2b62d7a622bf416ea3c5245cdd5d9a7fcc428c0d06804dfce1775b3" [[package]] name = "metal" -version = "0.13.1" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e198a0ee42bdbe9ef2c09d0b9426f3b2b47d90d93a4a9b0395c4cea605e92dc0" dependencies = [ - "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "block 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "cocoa 0.18.4 (registry+https://github.com/rust-lang/crates.io-index)", - "core-graphics 0.17.3 (registry+https://github.com/rust-lang/crates.io-index)", - "foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "objc 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", - "objc-foundation 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "objc_id 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags", + "block", + "cocoa 0.20.2", + "core-graphics 0.19.2", + "foreign-types", + "log", + "objc", ] [[package]] -name = "nix" -version = "0.14.1" +name = "mio" +version = "0.6.23" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4afd66f5b91bf2a3bc13fad0e21caedac168ca4c707504e75585648ae80e4cc4" dependencies = [ - "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)", - "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", - "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.10", + "fuchsia-zircon", + "fuchsia-zircon-sys", + "iovec", + "kernel32-sys", + "libc", + "log", + "miow", + "net2", + "slab", + "winapi 0.2.8", ] [[package]] -name = "nodrop" -version = "0.1.13" +name = "mio-extras" +version = "2.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52403fe290012ce777c4626790c8951324a2b9e3316b3143779c72b029742f19" +dependencies = [ + "lazycell", + "log", + "mio", + "slab", +] [[package]] -name = "num-derive" -version = "0.2.5" +name = "miow" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebd808424166322d4a38da87083bfddd3ac4c131334ed55856112eb06d46944d" dependencies = [ - "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.39 (registry+https://github.com/rust-lang/crates.io-index)", + "kernel32-sys", + "net2", + "winapi 0.2.8", + "ws2_32-sys", ] [[package]] -name = "num-integer" -version = "0.1.41" +name = "ndk" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5eb167c1febed0a496639034d0c76b3b74263636045db5489eee52143c246e73" dependencies = [ - "autocfg 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", + "jni-sys", + "ndk-sys", + "num_enum", + "thiserror", ] [[package]] -name = "num-iter" -version = "0.1.39" +name = "ndk-glue" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdf399b8b7a39c6fb153c4ec32c72fd5fe789df24a647f229c239aa7adb15241" dependencies = [ - "autocfg 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "num-integer 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)", - "num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static", + "libc", + "log", + "ndk", + "ndk-macro", + "ndk-sys", ] [[package]] -name = "num-rational" -version = "0.2.2" +name = "ndk-macro" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05d1c6307dc424d0f65b9b06e94f88248e6305726b14729fd67a5e47b2dc481d" dependencies = [ - "autocfg 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "num-integer 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)", - "num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", + "darling", + "proc-macro-crate", + "proc-macro2", + "quote", + "syn", ] [[package]] -name = "num-traits" -version = "0.2.8" +name = "ndk-sys" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c44922cb3dbb1c70b5e5f443d63b64363a898564d739ba5198e3a9138442868d" + +[[package]] +name = "net2" +version = "0.2.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "391630d12b68002ae1e25e8f974306474966550ad82dac6886fb8910c19568ae" +dependencies = [ + "cfg-if 0.1.10", + "libc", + "winapi 0.3.9", +] + +[[package]] +name = "nix" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83450fe6a6142ddd95fb064b746083fc4ef1705fe81f64a64e1d4b39f54a1055" dependencies = [ - "autocfg 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags", + "cc", + "cfg-if 0.1.10", + "libc", ] [[package]] -name = "num_cpus" -version = "1.10.1" +name = "nodrop" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f9667ddcc6cc8a43afc9b7917599d7216aa09c463919ea32c59ed6cac8bc945" + +[[package]] +name = "nom" +version = "6.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88034cfd6b4a0d54dd14f4a507eceee36c0b70e5a02236c4e4df571102be17f0" dependencies = [ - "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr", + "version_check", ] [[package]] -name = "objc" -version = "0.2.6" +name = "num-traits" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ba9a427cfca2be13aa6f6403b0b7e7368fe982bfa16fccc450ce74c46cd9b32" dependencies = [ - "malloc_buf 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)", - "objc_exception 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "autocfg", ] [[package]] -name = "objc-foundation" -version = "0.1.1" +name = "num_enum" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca565a7df06f3d4b485494f25ba05da1435950f4dc263440eda7a6fa9b8e36e4" dependencies = [ - "block 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "objc 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", - "objc_id 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "derivative", + "num_enum_derive", ] [[package]] -name = "objc_exception" -version = "0.1.1" +name = "num_enum_derive" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffa5a33ddddfee04c0283a7653987d634e880347e96b5b2ed64de07efb59db9d" dependencies = [ - "gcc 0.3.55 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro-crate", + "proc-macro2", + "quote", + "syn", ] [[package]] -name = "objc_id" -version = "0.1.1" +name = "objc" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" dependencies = [ - "objc 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", + "malloc_buf", + "objc_exception", ] [[package]] -name = "ordered-float" -version = "1.0.2" +name = "objc_exception" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "098cd29a2fa3c230d3463ae069cecccc3fdfd64c0d2496ab5b96f82dab6a00dc" dependencies = [ - "num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", + "gcc", ] [[package]] -name = "owning_ref" -version = "0.4.0" +name = "once_cell" +version = "1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13bd41f508810a131401606d54ac32a467c97172d74ba7662562ebba5ad07fa0" + +[[package]] +name = "owned_ttf_parser" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f923fb806c46266c02ab4a5b239735c144bdeda724a50ed058e5226f594cde3" dependencies = [ - "stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "ttf-parser", ] [[package]] name = "parking_lot" -version = "0.7.1" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d7744ac029df22dca6284efe4e898991d28e3085c706c972bcd7da4a27a15eb" dependencies = [ - "lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "instant", + "lock_api", + "parking_lot_core", ] [[package]] name = "parking_lot_core" -version = "0.4.0" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ccb628cad4f84851442432c60ad8e1f607e29752d0bf072cbd0baf28aa34272" dependencies = [ - "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", - "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", - "smallvec 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 1.0.0", + "instant", + "libc", + "redox_syscall", + "smallvec 1.6.1", + "winapi 0.3.9", ] [[package]] name = "percent-encoding" -version = "1.0.1" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" [[package]] name = "pkg-config" version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "676e8eb2b1b4c9043511a9b7bea0915320d7e502b0a079fb03f9635a5252b18c" [[package]] name = "png" -version = "0.14.1" +version = "0.15.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef859a23054bbfee7811284275ae522f0434a3c8e7f4b74bd4a35ae7e1c4a283" +dependencies = [ + "bitflags", + "crc32fast", + "deflate", + "inflate", +] + +[[package]] +name = "proc-macro-crate" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785" dependencies = [ - "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "deflate 0.7.20 (registry+https://github.com/rust-lang/crates.io-index)", - "inflate 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", - "num-iter 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)", + "toml", ] [[package]] name = "proc-macro2" -version = "0.4.30" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e0704ee1a7e00d7bb417d0770ea303c1bccbabf0ef1667dae92b5967f5f8a71" dependencies = [ - "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "unicode-xid", ] [[package]] name = "quote" -version = "0.6.12" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "991431c3519a3f36861882da93630ce66b52918dcf1b8e2fd66b397fc96f28df" dependencies = [ - "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2", ] [[package]] name = "rand" version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca" dependencies = [ - "autocfg 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_jitter 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", + "autocfg", + "libc", + "rand_chacha", + "rand_core 0.4.0", + "rand_hc", + "rand_isaac", + "rand_jitter", + "rand_os", + "rand_pcg", + "rand_xorshift", + "winapi 0.3.9", ] [[package]] name = "rand_chacha" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef" dependencies = [ - "autocfg 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "autocfg", + "rand_core 0.3.1", ] [[package]] name = "rand_core" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b" dependencies = [ - "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.4.0", ] [[package]] name = "rand_core" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0e7a549d590831370895ab7ba4ea0c1b6b011d106b5ff2da6eee112615e6dc0" [[package]] name = "rand_hc" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4" dependencies = [ - "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.3.1", ] [[package]] name = "rand_isaac" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08" dependencies = [ - "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.3.1", ] [[package]] name = "rand_jitter" version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b" dependencies = [ - "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", + "libc", + "rand_core 0.4.0", + "winapi 0.3.9", ] [[package]] name = "rand_os" version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071" dependencies = [ - "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", - "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", + "cloudabi", + "fuchsia-cprng", + "libc", + "rand_core 0.4.0", + "rdrand", + "winapi 0.3.9", ] [[package]] name = "rand_pcg" version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44" dependencies = [ - "autocfg 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "autocfg", + "rand_core 0.4.0", ] [[package]] name = "rand_xorshift" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c" dependencies = [ - "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "rayon" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "crossbeam-deque 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", - "either 1.5.2 (registry+https://github.com/rust-lang/crates.io-index)", - "rayon-core 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.3.1", ] [[package]] -name = "rayon-core" -version = "1.5.0" +name = "raw-window-handle" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a441a7a6c80ad6473bd4b74ec1c9a4c951794285bf941c2126f607c72e48211" dependencies = [ - "crossbeam-deque 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-queue 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "num_cpus 1.10.1 (registry+https://github.com/rust-lang/crates.io-index)", + "libc", ] [[package]] name = "rdrand" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" dependencies = [ - "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.3.1", ] [[package]] name = "redox_syscall" -version = "0.1.54" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "rustc-demangle" -version = "0.1.15" +version = "0.1.57" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce" [[package]] -name = "rustc_version" -version = "0.2.3" +name = "ron" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "064ea8613fb712a19faf920022ec8ddf134984f100090764a4e1d768f3827f1f" dependencies = [ - "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "base64", + "bitflags", + "serde", ] [[package]] name = "rusttype" -version = "0.7.7" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc7c727aded0be18c5b80c1640eae0ac8e396abf6fa8477d96cb37d18ee5ec59" dependencies = [ - "approx 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", - "ordered-float 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "stb_truetype 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", + "ab_glyph_rasterizer", + "owned_ttf_parser", ] [[package]] name = "same-file" version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f20c4be53a8a1ff4c1f1b2bd14570d2f634628709752f0702ecdd2b3f9a5267" dependencies = [ - "winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi-util", ] [[package]] -name = "scoped_threadpool" -version = "0.1.9" +name = "scoped-tls" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea6a9290e3c9cf0f18145ef7ffa62d68ee0bf5fcd651017e586dc7fd5da448c2" [[package]] name = "scopeguard" version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27" [[package]] -name = "semver" -version = "0.9.0" +name = "scopeguard" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" + +[[package]] +name = "serde" +version = "1.0.118" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06c64263859d87aa2eb554587e2d23183398d617427327cf2b3d0ed8c69e4800" dependencies = [ - "semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive", ] [[package]] -name = "semver-parser" -version = "0.7.0" +name = "serde_derive" +version = "1.0.118" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c84d3526699cd55261af4b941e4e725444df67aa4f9e6a3564f18030d12672df" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] [[package]] name = "shaderc" -version = "0.5.0" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50b8aeaae10b9bda5cba66736a7e265f67698e912e1cc6a4678acba286e22be9" dependencies = [ - "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", - "shaderc-sys 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libc", + "shaderc-sys", ] [[package]] name = "shaderc-sys" -version = "0.5.0" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b12d7c62d6732884c9dfab587503fa3a795b108df152415a89da23812d4737e" dependencies = [ - "cmake 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", + "cmake", + "libc", ] [[package]] name = "shared_library" version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a9e7e0f2bfae24d8a5b5a66c5b257a83c7412304311512a0c054cd5e619da11" dependencies = [ - "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static", + "libc", ] +[[package]] +name = "slab" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8" + [[package]] name = "smallvec" version = "0.6.10" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab606a9c5e214920bb66c458cd7be8ef094f813f20fe77a54cc7dbfff220d4b7" + +[[package]] +name = "smallvec" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e" [[package]] name = "smithay-client-toolkit" -version = "0.4.6" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "316e13a3eb853ce7bf72ad3530dc186cb2005c57c521ef5f4ada5ee4eed74de6" dependencies = [ - "andrew 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "dlib 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "memmap 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "nix 0.14.1 (registry+https://github.com/rust-lang/crates.io-index)", - "wayland-client 0.21.13 (registry+https://github.com/rust-lang/crates.io-index)", - "wayland-commons 0.21.13 (registry+https://github.com/rust-lang/crates.io-index)", - "wayland-protocols 0.21.13 (registry+https://github.com/rust-lang/crates.io-index)", + "andrew", + "bitflags", + "calloop", + "dlib", + "lazy_static", + "log", + "memmap2", + "nix", + "wayland-client", + "wayland-cursor", + "wayland-protocols", ] [[package]] -name = "stable_deref_trait" -version = "1.1.1" +name = "strsim" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6446ced80d6c486436db5c078dde11a9f73d42b57fb273121e160b84f63d894c" [[package]] -name = "stb_truetype" -version = "0.2.6" +name = "syn" +version = "1.0.58" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc60a3d73ea6594cd712d830cc1f0390fd71542d8c8cd24e70cc54cdfd5e05d5" dependencies = [ - "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2", + "quote", + "unicode-xid", ] [[package]] -name = "syn" -version = "0.15.39" +name = "thiserror" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76cc616c6abf8c8928e2fdcc0dbfab37175edd8fb49a4641066ad1364fdab146" dependencies = [ - "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", - "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "thiserror-impl", ] [[package]] -name = "tiff" -version = "0.2.2" +name = "thiserror-impl" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9be73a2caec27583d0046ef3796c3794f868a5bc813db689eed00c7631275cd1" dependencies = [ - "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "lzw 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", - "num-derive 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", - "num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2", + "quote", + "syn", ] [[package]] name = "time" version = "0.1.42" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db8dcfca086c1143c9270ac42a2bbd8a7ee477b78ac8e45b19abfb0cbede4b6f" +dependencies = [ + "libc", + "redox_syscall", + "winapi 0.3.9", +] + +[[package]] +name = "toml" +version = "0.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaa" dependencies = [ - "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.54 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", + "serde", ] +[[package]] +name = "ttf-parser" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e5d7cd7ab3e47dda6e56542f4bbf3824c15234958c6e1bd6aaa347e93499fdc" + [[package]] name = "unicode-xid" -version = "0.1.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564" [[package]] -name = "vk-sys" -version = "0.4.0" +name = "version_check" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed" [[package]] -name = "void" -version = "1.0.2" +name = "vk-sys" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e7b00b858d5a65e4272e3dfd83f795a31467ba67425d853f32b966a09c907" [[package]] name = "vulkano" -version = "0.13.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f566b50e4f42000f48027dad19b38c41068657193feb59aa0b399664f5bf80d" dependencies = [ - "crossbeam 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", - "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", - "half 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "shared_library 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", - "smallvec 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", - "vk-sys 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam", + "fnv", + "half", + "lazy_static", + "parking_lot", + "shared_library", + "smallvec 1.6.1", + "vk-sys", ] [[package]] name = "vulkano-shaders" -version = "0.13.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67d1d768877bf11729725bebec9e642b853207357abb89c239be598f0a1ddfbf" dependencies = [ - "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", - "shaderc 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.39 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2", + "quote", + "shaderc", + "syn", ] [[package]] name = "vulkano-win" -version = "0.13.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aa56544406650fb1472510fc75a28078316df9a27e4123504f080261e3c3406" dependencies = [ - "cocoa 0.18.4 (registry+https://github.com/rust-lang/crates.io-index)", - "metal 0.13.1 (registry+https://github.com/rust-lang/crates.io-index)", - "objc 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", - "vulkano 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)", - "winit 0.19.1 (registry+https://github.com/rust-lang/crates.io-index)", + "cocoa 0.20.2", + "metal", + "objc", + "raw-window-handle", + "vulkano", + "winit", ] [[package]] name = "walkdir" -version = "2.2.8" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "777182bc735b6424e1a57516d35ed72cb8019d85c8c9bf536dccb3445c1a2f7d" dependencies = [ - "same-file 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "same-file", + "winapi 0.3.9", + "winapi-util", ] [[package]] name = "wayland-client" -version = "0.21.13" +version = "0.28.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdbdbe01d03b2267809f3ed99495b37395387fde789e0f2ebb78e8b43f75b6d7" dependencies = [ - "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "downcast-rs 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", - "nix 0.14.1 (registry+https://github.com/rust-lang/crates.io-index)", - "wayland-commons 0.21.13 (registry+https://github.com/rust-lang/crates.io-index)", - "wayland-scanner 0.21.13 (registry+https://github.com/rust-lang/crates.io-index)", - "wayland-sys 0.21.13 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags", + "downcast-rs", + "libc", + "nix", + "scoped-tls", + "wayland-commons", + "wayland-scanner", + "wayland-sys", ] [[package]] name = "wayland-commons" -version = "0.21.13" +version = "0.28.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "480450f76717edd64ad04a4426280d737fc3d10a236b982df7b1aee19f0e2d56" +dependencies = [ + "nix", + "once_cell", + "smallvec 1.6.1", + "wayland-sys", +] + +[[package]] +name = "wayland-cursor" +version = "0.28.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6eb122c160223a7660feeaf949d0100281d1279acaaed3720eb3c9894496e5f" dependencies = [ - "nix 0.14.1 (registry+https://github.com/rust-lang/crates.io-index)", - "wayland-sys 0.21.13 (registry+https://github.com/rust-lang/crates.io-index)", + "nix", + "wayland-client", + "xcursor", ] [[package]] name = "wayland-protocols" -version = "0.21.13" +version = "0.28.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "319a82b4d3054dd25acc32d9aee0f84fa95b63bc983fffe4703b6b8d47e01a30" dependencies = [ - "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "wayland-client 0.21.13 (registry+https://github.com/rust-lang/crates.io-index)", - "wayland-commons 0.21.13 (registry+https://github.com/rust-lang/crates.io-index)", - "wayland-scanner 0.21.13 (registry+https://github.com/rust-lang/crates.io-index)", - "wayland-sys 0.21.13 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags", + "wayland-client", + "wayland-commons", + "wayland-scanner", ] [[package]] name = "wayland-scanner" -version = "0.21.13" +version = "0.28.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7010ba5767b3fcd350decc59055390b4ebe6bd1b9279a9feb1f1888987f1133d" dependencies = [ - "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", - "xml-rs 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2", + "quote", + "xml-rs", ] [[package]] name = "wayland-sys" -version = "0.21.13" +version = "0.28.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6793834e0c35d11fd96a97297abe03d37be627e1847da52e17d7e0e3b51cc099" dependencies = [ - "dlib 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "dlib", + "lazy_static", + "pkg-config", ] [[package]] name = "winapi" -version = "0.3.7" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" + +[[package]] +name = "winapi" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" dependencies = [ - "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", ] +[[package]] +name = "winapi-build" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" + [[package]] name = "winapi-i686-pc-windows-gnu" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7168bab6e1daee33b4557efd0e95d5ca70a03706d39fa5f3fe7a236f584b03c9" dependencies = [ - "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.9", ] [[package]] name = "winapi-x86_64-pc-windows-gnu" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "winit" -version = "0.19.1" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da4eda6fce0eb84bd0a33e3c8794eb902e1033d0a1d5a31bc4f19b1b4bbff597" +dependencies = [ + "bitflags", + "cocoa 0.24.0", + "core-foundation 0.9.1", + "core-graphics 0.22.2", + "core-video-sys", + "dispatch", + "instant", + "lazy_static", + "libc", + "log", + "mio", + "mio-extras", + "ndk", + "ndk-glue", + "ndk-sys", + "objc", + "parking_lot", + "percent-encoding", + "raw-window-handle", + "smithay-client-toolkit", + "wayland-client", + "winapi 0.3.9", + "x11-dl", +] + +[[package]] +name = "ws2_32-sys" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" dependencies = [ - "android_glue 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", - "backtrace 0.3.32 (registry+https://github.com/rust-lang/crates.io-index)", - "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "cocoa 0.18.4 (registry+https://github.com/rust-lang/crates.io-index)", - "core-foundation 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", - "core-graphics 0.17.3 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "objc 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", - "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", - "percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "smithay-client-toolkit 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "wayland-client 0.21.13 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", - "x11-dl 2.18.3 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.2.8", + "winapi-build", ] [[package]] name = "x11-dl" -version = "2.18.3" +version = "2.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bf981e3a5b3301209754218f962052d4d9ee97e478f4d26d4a6eced34c1fef8" +dependencies = [ + "lazy_static", + "libc", + "maybe-uninit", + "pkg-config", +] + +[[package]] +name = "xcursor" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a9a231574ae78801646617cefd13bfe94be907c0e4fa979cfd8b770aa3c5d08" dependencies = [ - "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)", - "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", + "nom", ] [[package]] name = "xdg" version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d089681aa106a86fade1b0128fb5daf07d5867a509ab036d99988dec80429a57" [[package]] name = "xml-rs" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[metadata] -"checksum adler32 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7e522997b529f05601e05166c07ed17789691f562762c7f3b987263d2dedee5c" -"checksum andrew 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9b7f09f89872c2b6b29e319377b1fbe91c6f5947df19a25596e121cf19a7b35e" -"checksum android_glue 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "000444226fcff248f2bc4c7625be32c63caccfecc2723a2b9f78a7487a49c407" -"checksum approx 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f0e60b75072ecd4168020818c0107f2857bb6c4e64252d8d3983f6263b40a5c3" -"checksum arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "92c7fb76bc8826a8b33b4ee5bb07a247a81e76764ab4d55e8f73e3a4d8808c71" -"checksum autocfg 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "0e49efa51329a5fd37e7c79db4621af617cd4e3e5bc224939808d076077077bf" -"checksum backtrace 0.3.32 (registry+https://github.com/rust-lang/crates.io-index)" = "18b50f5258d1a9ad8396d2d345827875de4261b158124d4c819d9b351454fae5" -"checksum backtrace-sys 0.1.30 (registry+https://github.com/rust-lang/crates.io-index)" = "5b3a000b9c543553af61bc01cbfc403b04b5caa9e421033866f2e98061eb3e61" -"checksum bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3d155346769a6855b86399e9bc3814ab343cd3d62c7e985113d46a0ec3c281fd" -"checksum block 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" -"checksum byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a7c3dd8985a7111efc5c80b44e23ecdd8c007de8ade3b96595387e812b957cf5" -"checksum cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)" = "39f75544d7bbaf57560d2168f28fd649ff9c76153874db88bdbdfd839b1a7e7d" -"checksum cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "b486ce3ccf7ffd79fdeb678eac06a9e6c09fc88d33836340becb8fffe87c5e33" -"checksum cgmath 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)" = "283944cdecc44bf0b8dd010ec9af888d3b4f142844fdbe026c20ef68148d6fe7" -"checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" -"checksum cmake 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)" = "2ca4386c8954b76a8415b63959337d940d724b336cabd3afe189c2b51a7e1ff0" -"checksum cocoa 0.18.4 (registry+https://github.com/rust-lang/crates.io-index)" = "cf79daa4e11e5def06e55306aa3601b87de6b5149671529318da048f67cdd77b" -"checksum color_quant 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0dbbb57365263e881e805dc77d94697c9118fd94d8da011240555aa7b23445bd" -"checksum core-foundation 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "25b9e03f145fd4f2bf705e07b900cd41fc636598fe5dc452fd0db1441c3f496d" -"checksum core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e7ca8a5221364ef15ce201e8ed2f609fc312682a8f4e0e3d4aa5879764e0fa3b" -"checksum core-graphics 0.17.3 (registry+https://github.com/rust-lang/crates.io-index)" = "56790968ab1c8a1202a102e6de05fc6e1ec87da99e4e93e9a7d13efbfc1e95a9" -"checksum crossbeam 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b14492071ca110999a20bf90e3833406d5d66bfd93b4e52ec9539025ff43fe0d" -"checksum crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "0f0ed1a4de2235cabda8558ff5840bffb97fcb64c97827f354a451307df5f72b" -"checksum crossbeam-deque 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "05e44b8cf3e1a625844d1750e1f7820da46044ff6d28f4d43e455ba3e5bb2c13" -"checksum crossbeam-deque 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b18cd2e169ad86297e6bc0ad9aa679aee9daa4f19e8163860faf7c164e4f5a71" -"checksum crossbeam-epoch 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "04c9e3102cc2d69cd681412141b390abd55a362afc1540965dad0ad4d34280b4" -"checksum crossbeam-queue 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7c979cd6cfe72335896575c6b5688da489e420d36a27a0b9eb0c73db574b4a4b" -"checksum crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "f8306fcef4a7b563b76b7dd949ca48f52bc1141aa067d2ea09565f3e2652aa5c" -"checksum deflate 0.7.20 (registry+https://github.com/rust-lang/crates.io-index)" = "707b6a7b384888a70c8d2e8650b3e60170dfc6a67bb4aa67b6dfca57af4bedb4" -"checksum dlib 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "77e51249a9d823a4cb79e3eca6dcd756153e8ed0157b6c04775d04bf1b13b76a" -"checksum downcast-rs 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "f2b92dfd5c2f75260cbf750572f95d387e7ca0ba5e3fbe9e1a33f23025be020f" -"checksum either 1.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "5527cfe0d098f36e3f8839852688e63c8fff1c90b2b405aef730615f9a7bcf7b" -"checksum fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3" -"checksum foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -"checksum foreign-types-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" -"checksum fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" -"checksum gcc 0.3.55 (registry+https://github.com/rust-lang/crates.io-index)" = "8f5f3913fa0bfe7ee1fd8248b6b9f42a5af4b9d65ec2dd2c3c26132b950ecfc2" -"checksum gif 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)" = "86c2f2b597d6e05c86ee5947b2223bda468fe8dad3e88e2a6520869322aaf568" -"checksum half 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9353c2a89d550b58fa0061d8ed8d002a7d8cdf2494eb0e432859bd3a9e543836" -"checksum image 0.21.2 (registry+https://github.com/rust-lang/crates.io-index)" = "99198e595d012efccf12abf4abc08da2d97be0b0355a2b08d101347527476ba4" -"checksum inflate 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "1cdb29978cc5797bd8dcc8e5bf7de604891df2a8dc576973d71a281e916db2ff" -"checksum jpeg-decoder 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)" = "c8b7d43206b34b3f94ea9445174bda196e772049b9bddbc620c9d29b2d20110d" -"checksum lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bc5729f27f159ddd61f4df6228e827e86643d4d3e7c32183cb30a1c08f604a14" -"checksum libc 0.2.58 (registry+https://github.com/rust-lang/crates.io-index)" = "6281b86796ba5e4366000be6e9e18bf35580adf9e63fbe2294aadb587613a319" -"checksum libloading 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a5692f82b51823e27c4118b3e5c0d98aee9be90633ebc71ad12afef380b50219" -"checksum line_drawing 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5cc7ad3d82c845bdb5dde34ffdcc7a5fb4d2996e1e1ee0f19c33bc80e15196b9" -"checksum lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "62ebf1391f6acad60e5c8b43706dde4582df75c06698ab44511d15016bc2442c" -"checksum log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c84ec4b527950aa83a329754b01dbe3f58361d1c5efacd1f6d68c494d08a17c6" -"checksum lzw 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7d947cbb889ed21c2a84be6ffbaebf5b4e0f4340638cba0444907e38b56be084" -"checksum malloc_buf 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" -"checksum memmap 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6585fd95e7bb50d6cc31e20d4cf9afb4e2ba16c5846fc76793f11218da9c475b" -"checksum memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0f9dc261e2b62d7a622bf416ea3c5245cdd5d9a7fcc428c0d06804dfce1775b3" -"checksum metal 0.13.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7de9c2b83c946ab01c9942928388f911d93486b97636d9927541345905fea65d" -"checksum nix 0.14.1 (registry+https://github.com/rust-lang/crates.io-index)" = "6c722bee1037d430d0f8e687bbdbf222f27cc6e4e68d5caf630857bb2b6dbdce" -"checksum nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "2f9667ddcc6cc8a43afc9b7917599d7216aa09c463919ea32c59ed6cac8bc945" -"checksum num-derive 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "eafd0b45c5537c3ba526f79d3e75120036502bebacbb3f3220914067ce39dbf2" -"checksum num-integer 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)" = "b85e541ef8255f6cf42bbfe4ef361305c6c135d10919ecc26126c4e5ae94bc09" -"checksum num-iter 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)" = "76bd5272412d173d6bf9afdf98db8612bbabc9a7a830b7bfc9c188911716132e" -"checksum num-rational 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f2885278d5fe2adc2f75ced642d52d879bffaceb5a2e0b1d4309ffdfb239b454" -"checksum num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "6ba9a427cfca2be13aa6f6403b0b7e7368fe982bfa16fccc450ce74c46cd9b32" -"checksum num_cpus 1.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "bcef43580c035376c0705c42792c294b66974abbfd2789b511784023f71f3273" -"checksum objc 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "31d20fd2b37e07cf5125be68357b588672e8cefe9a96f8c17a9d46053b3e590d" -"checksum objc-foundation 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9" -"checksum objc_exception 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "098cd29a2fa3c230d3463ae069cecccc3fdfd64c0d2496ab5b96f82dab6a00dc" -"checksum objc_id 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b" -"checksum ordered-float 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "18869315e81473c951eb56ad5558bbc56978562d3ecfb87abb7a1e944cea4518" -"checksum owning_ref 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "49a4b8ea2179e6a2e27411d3bca09ca6dd630821cf6894c6c7c8467a8ee7ef13" -"checksum parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ab41b4aed082705d1056416ae4468b6ea99d52599ecf3169b00088d43113e337" -"checksum parking_lot_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "94c8c7923936b28d546dfd14d4472eaf34c99b14e1c973a32b3e6d4eb04298c9" -"checksum percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831" -"checksum pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)" = "676e8eb2b1b4c9043511a9b7bea0915320d7e502b0a079fb03f9635a5252b18c" -"checksum png 0.14.1 (registry+https://github.com/rust-lang/crates.io-index)" = "63daf481fdd0defa2d1d2be15c674fbfa1b0fd71882c303a91f9a79b3252c359" -"checksum proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)" = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" -"checksum quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)" = "faf4799c5d274f3868a4aae320a0a182cbd2baee377b378f080e16a23e9d80db" -"checksum rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca" -"checksum rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef" -"checksum rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b" -"checksum rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d0e7a549d590831370895ab7ba4ea0c1b6b011d106b5ff2da6eee112615e6dc0" -"checksum rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4" -"checksum rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08" -"checksum rand_jitter 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b" -"checksum rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071" -"checksum rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44" -"checksum rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c" -"checksum rayon 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a4b0186e22767d5b9738a05eab7c6ac90b15db17e5b5f9bd87976dd7d89a10a4" -"checksum rayon-core 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ebbe0df8435ac0c397d467b6cad6d25543d06e8a019ef3f6af3c384597515bd2" -"checksum rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" -"checksum redox_syscall 0.1.54 (registry+https://github.com/rust-lang/crates.io-index)" = "12229c14a0f65c4f1cb046a3b52047cdd9da1f4b30f8a39c5063c8bae515e252" -"checksum rustc-demangle 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)" = "a7f4dccf6f4891ebcc0c39f9b6eb1a83b9bf5d747cb439ec6fba4f3b977038af" -"checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" -"checksum rusttype 0.7.7 (registry+https://github.com/rust-lang/crates.io-index)" = "654103d61a05074b268a107cf6581ce120f0fc0115f2610ed9dfea363bb81139" -"checksum same-file 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8f20c4be53a8a1ff4c1f1b2bd14570d2f634628709752f0702ecdd2b3f9a5267" -"checksum scoped_threadpool 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "1d51f5df5af43ab3f1360b429fa5e0152ac5ce8c0bd6485cae490332e96846a8" -"checksum scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27" -"checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" -"checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" -"checksum shaderc 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e69dfded77806e7573fa5e6532eb12abebb9453384fa51752e29090c5e20f07b" -"checksum shaderc-sys 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "97b32a24ba53aef590e950f3727a8477014408410d7b3d1710c51f995d53cc47" -"checksum shared_library 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "5a9e7e0f2bfae24d8a5b5a66c5b257a83c7412304311512a0c054cd5e619da11" -"checksum smallvec 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)" = "ab606a9c5e214920bb66c458cd7be8ef094f813f20fe77a54cc7dbfff220d4b7" -"checksum smithay-client-toolkit 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2ccb8c57049b2a34d2cc2b203fa785020ba0129d31920ef0d317430adaf748fa" -"checksum stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dba1a27d3efae4351c8051072d619e3ade2820635c3958d826bfea39d59b54c8" -"checksum stb_truetype 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "69b7df505db8e81d54ff8be4693421e5b543e08214bd8d99eb761fcb4d5668ba" -"checksum syn 0.15.39 (registry+https://github.com/rust-lang/crates.io-index)" = "b4d960b829a55e56db167e861ddb43602c003c7be0bee1d345021703fac2fb7c" -"checksum tiff 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1e4834f28a0330cb9f3f2c87d2649dca723cb33802e2bdcf18da32759fbec7ce" -"checksum time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "db8dcfca086c1143c9270ac42a2bbd8a7ee477b78ac8e45b19abfb0cbede4b6f" -"checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" -"checksum vk-sys 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "36f5fd4a7d6d5d19808610583131c0aed271556527cad4cb71c436831a28e059" -"checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" -"checksum vulkano 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c6f294e6ee35791705302dcfbadae018e9ec407b5c2116c1855e1bfe2e0fdffa" -"checksum vulkano-shaders 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "116098075a36f2265dc40d1dd73dc6c255502088fa8a845cc372c3ca42320742" -"checksum vulkano-win 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6d67280a00aadee8d7730cabb48dd3fc86c1726791dfdfcc399f0053a69dc87f" -"checksum walkdir 2.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "c7904a7e2bb3cdf0cf5e783f44204a85a37a93151738fa349f06680f59a98b45" -"checksum wayland-client 0.21.13 (registry+https://github.com/rust-lang/crates.io-index)" = "49963e5f9eeaf637bfcd1b9f0701c99fd5cd05225eb51035550d4272806f2713" -"checksum wayland-commons 0.21.13 (registry+https://github.com/rust-lang/crates.io-index)" = "40c08896768b667e1df195d88a62a53a2d1351a1ed96188be79c196b35bb32ec" -"checksum wayland-protocols 0.21.13 (registry+https://github.com/rust-lang/crates.io-index)" = "4afde2ea2a428eee6d7d2c8584fdbe8b82eee8b6c353e129a434cd6e07f42145" -"checksum wayland-scanner 0.21.13 (registry+https://github.com/rust-lang/crates.io-index)" = "bf3828c568714507315ee425a9529edc4a4aa9901409e373e9e0027e7622b79e" -"checksum wayland-sys 0.21.13 (registry+https://github.com/rust-lang/crates.io-index)" = "520ab0fd578017a0ee2206623ba9ef4afe5e8f23ca7b42f6acfba2f4e66b1628" -"checksum winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "f10e386af2b13e47c89e7236a7a14a086791a2b88ebad6df9bf42040195cf770" -"checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" -"checksum winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7168bab6e1daee33b4557efd0e95d5ca70a03706d39fa5f3fe7a236f584b03c9" -"checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" -"checksum winit 0.19.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d233301129ddd33260b47f76900b50e154b7254546e2edba0e5468a1a5fe4de3" -"checksum x11-dl 2.18.3 (registry+https://github.com/rust-lang/crates.io-index)" = "940586acb859ea05c53971ac231685799a7ec1dee66ac0bccc0e6ad96e06b4e3" -"checksum xdg 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d089681aa106a86fade1b0128fb5daf07d5867a509ab036d99988dec80429a57" -"checksum xml-rs 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "541b12c998c5b56aa2b4e6f18f03664eef9a4fd0a246a55594efae6cc2d964b5" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b07db065a5cf61a7e4ba64f29e67db906fb1787316516c4e6e5ff0fea1efcd8a" diff --git a/Cargo.toml b/Cargo.toml index 5929d12..6e9001d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,16 +7,18 @@ publish = false [dependencies] # The `vulkano` crate is the main crate that you must use to use Vulkan. -vulkano = "0.19.0" +vulkano = "0.20" # Provides the `shader!` macro that is used to generate code for using shaders. -vulkano-shaders = "0.19.0" +vulkano-shaders = "0.20" # The Vulkan library doesn't provide any functionality to create and handle windows, as # this would be out of scope. In order to open a window, we are going to use the `winit` crate. -winit = "0.22" +winit = "0.24" # The `vulkano_win` crate is the link between `vulkano` and `winit`. Vulkano doesn't know about winit, # and winit doesn't know about vulkano, so import a crate that will provide a link between the two. -vulkano-win = "0.19.0" +vulkano-win = "0.20" cgmath = "0.17" png = "0.15.0" time = "0.1.38" +serde = { version="1.0.114", features = ["derive"] } +ron = "0.6.0" diff --git a/src/bin/basic-compute-shader.rs b/src/bin/basic-compute-shader.rs index 42d6211..d7428f1 100644 --- a/src/bin/basic-compute-shader.rs +++ b/src/bin/basic-compute-shader.rs @@ -1,8 +1,8 @@ // Copyright (c) 2017 The vulkano developers // Licensed under the Apache License, Version 2.0 // or the MIT -// license , +// https://www.apache.org/licenses/LICENSE-2.0> or the MIT +// license , // at your option. All files in the project carrying such // notice may not be copied, modified, or distributed except // according to those terms. @@ -99,7 +99,7 @@ fn main() { } } let shader = cs::Shader::load(device.clone()).unwrap(); - ComputePipeline::new(device.clone(), &shader.main_entry_point(), &()).unwrap() + ComputePipeline::new(device.clone(), &shader.main_entry_point(), &(), None).unwrap() }); // We start by creating the buffer that will store the data. diff --git a/src/bin/buffer-pool.rs b/src/bin/buffer-pool.rs index 35c0648..b544815 100644 --- a/src/bin/buffer-pool.rs +++ b/src/bin/buffer-pool.rs @@ -1,8 +1,8 @@ // Copyright (c) 2020 The vulkano developers // Licensed under the Apache License, Version 2.0 // or the MIT -// license , +// https://www.apache.org/licenses/LICENSE-2.0> or the MIT +// license , // at your option. All files in the project carrying such // notice may not be copied, modified, or distributed except // according to those terms. @@ -20,7 +20,7 @@ // Finally, I have not profiled CpuBufferPool against CpuAccessibleBuffer use vulkano::buffer::CpuBufferPool; -use vulkano::command_buffer::{AutoCommandBufferBuilder, DynamicState}; +use vulkano::command_buffer::{AutoCommandBufferBuilder, DynamicState, SubpassContents}; use vulkano::device::{Device, DeviceExtensions}; use vulkano::framebuffer::{Framebuffer, FramebufferAbstract, RenderPassAbstract, Subpass}; use vulkano::image::{ImageUsage, SwapchainImage}; @@ -279,7 +279,11 @@ fn main() { ) .unwrap(); builder - .begin_render_pass(framebuffers[image_num].clone(), false, clear_values) + .begin_render_pass( + framebuffers[image_num].clone(), + SubpassContents::Inline, + clear_values, + ) .unwrap() // Draw our buffer .draw(pipeline.clone(), &dynamic_state, buffer, (), ()) diff --git a/src/bin/debug.rs b/src/bin/debug.rs index 272e880..3253a22 100644 --- a/src/bin/debug.rs +++ b/src/bin/debug.rs @@ -1,8 +1,8 @@ // Copyright (c) 2016 The vulkano developers // Licensed under the Apache License, Version 2.0 // or the MIT -// license , +// https://www.apache.org/licenses/LICENSE-2.0> or the MIT +// license , // at your option. All files in the project carrying such // notice may not be copied, modified, or distributed except // according to those terms. @@ -11,6 +11,7 @@ use vulkano::device::{Device, DeviceExtensions}; use vulkano::format::Format; use vulkano::image::Dimensions; use vulkano::image::ImmutableImage; +use vulkano::image::MipmapsCount; use vulkano::instance; use vulkano::instance::debug::{DebugCallback, MessageSeverity, MessageType}; use vulkano::instance::{Instance, InstanceExtensions, PhysicalDevice}; @@ -130,6 +131,7 @@ fn main() { let _ = ImmutableImage::from_iter( DATA.iter().cloned(), dimensions, + MipmapsCount::One, pixel_format, queue.clone(), ) diff --git a/src/bin/deferred/frame/ambient_lighting_system.rs b/src/bin/deferred/frame/ambient_lighting_system.rs index 1d9e89a..d9f08b6 100644 --- a/src/bin/deferred/frame/ambient_lighting_system.rs +++ b/src/bin/deferred/frame/ambient_lighting_system.rs @@ -1,8 +1,8 @@ // Copyright (c) 2017 The vulkano developers // Licensed under the Apache License, Version 2.0 // or the MIT -// license , +// https://www.apache.org/licenses/LICENSE-2.0> or the MIT +// license , // at your option. All files in the project carrying such // notice may not be copied, modified, or distributed except // according to those terms. diff --git a/src/bin/deferred/frame/directional_lighting_system.rs b/src/bin/deferred/frame/directional_lighting_system.rs index 5bf3ec9..3b04146 100644 --- a/src/bin/deferred/frame/directional_lighting_system.rs +++ b/src/bin/deferred/frame/directional_lighting_system.rs @@ -1,8 +1,8 @@ // Copyright (c) 2017 The vulkano developers // Licensed under the Apache License, Version 2.0 // or the MIT -// license , +// https://www.apache.org/licenses/LICENSE-2.0> or the MIT +// license , // at your option. All files in the project carrying such // notice may not be copied, modified, or distributed except // according to those terms. diff --git a/src/bin/deferred/frame/mod.rs b/src/bin/deferred/frame/mod.rs index 25ddcc9..ce0d122 100644 --- a/src/bin/deferred/frame/mod.rs +++ b/src/bin/deferred/frame/mod.rs @@ -1,8 +1,8 @@ // Copyright (c) 2017 The vulkano developers // Licensed under the Apache License, Version 2.0 // or the MIT -// license , +// https://www.apache.org/licenses/LICENSE-2.0> or the MIT +// license , // at your option. All files in the project carrying such // notice may not be copied, modified, or distributed except // according to those terms. diff --git a/src/bin/deferred/frame/point_lighting_system.rs b/src/bin/deferred/frame/point_lighting_system.rs index 8d3c50a..c0e6a79 100644 --- a/src/bin/deferred/frame/point_lighting_system.rs +++ b/src/bin/deferred/frame/point_lighting_system.rs @@ -1,8 +1,8 @@ // Copyright (c) 2017 The vulkano developers // Licensed under the Apache License, Version 2.0 // or the MIT -// license , +// https://www.apache.org/licenses/LICENSE-2.0> or the MIT +// license , // at your option. All files in the project carrying such // notice may not be copied, modified, or distributed except // according to those terms. diff --git a/src/bin/deferred/frame/system.rs b/src/bin/deferred/frame/system.rs index d0698ca..f42b5c8 100644 --- a/src/bin/deferred/frame/system.rs +++ b/src/bin/deferred/frame/system.rs @@ -1,8 +1,8 @@ // Copyright (c) 2017 The vulkano developers // Licensed under the Apache License, Version 2.0 // or the MIT -// license , +// https://www.apache.org/licenses/LICENSE-2.0> or the MIT +// license , // at your option. All files in the project carrying such // notice may not be copied, modified, or distributed except // according to those terms. @@ -13,6 +13,7 @@ use cgmath::Vector3; use std::sync::Arc; use vulkano::command_buffer::AutoCommandBufferBuilder; use vulkano::command_buffer::CommandBuffer; +use vulkano::command_buffer::SubpassContents; use vulkano::device::Queue; use vulkano::format::Format; use vulkano::framebuffer::Framebuffer; @@ -288,7 +289,7 @@ impl FrameSystem { command_buffer_builder .begin_render_pass( framebuffer.clone(), - true, + SubpassContents::SecondaryCommandBuffers, vec![ [0.0, 0.0, 0.0, 0.0].into(), [0.0, 0.0, 0.0, 0.0].into(), @@ -359,7 +360,7 @@ impl<'a> Frame<'a> { self.command_buffer_builder .as_mut() .unwrap() - .next_subpass(true) + .next_subpass(SubpassContents::SecondaryCommandBuffers) .unwrap(); // And returning an object that will allow the user to apply lighting to the scene. diff --git a/src/bin/deferred/main.rs b/src/bin/deferred/main.rs index 1dec457..0b7f1bc 100644 --- a/src/bin/deferred/main.rs +++ b/src/bin/deferred/main.rs @@ -1,8 +1,8 @@ // Copyright (c) 2017 The vulkano developers // Licensed under the Apache License, Version 2.0 // or the MIT -// license , +// https://www.apache.org/licenses/LICENSE-2.0> or the MIT +// license , // at your option. All files in the project carrying such // notice may not be copied, modified, or distributed except // according to those terms. @@ -26,6 +26,7 @@ // drawn after the lighting, and that the whole process consumes more memory. use vulkano::device::{Device, DeviceExtensions}; +use vulkano::image::ImageUsage; use vulkano::instance::{Instance, PhysicalDevice}; use vulkano::swapchain; use vulkano::swapchain::{ @@ -34,7 +35,6 @@ use vulkano::swapchain::{ }; use vulkano::sync; use vulkano::sync::{FlushError, GpuFuture}; -use vulkano::image::ImageUsage; use vulkano_win::VkSurfaceBuild; use winit::event::{Event, WindowEvent}; diff --git a/src/bin/deferred/triangle_draw_system.rs b/src/bin/deferred/triangle_draw_system.rs index 277be9b..3380a9c 100644 --- a/src/bin/deferred/triangle_draw_system.rs +++ b/src/bin/deferred/triangle_draw_system.rs @@ -1,8 +1,8 @@ // Copyright (c) 2017 The vulkano developers // Licensed under the Apache License, Version 2.0 // or the MIT -// license , +// https://www.apache.org/licenses/LICENSE-2.0> or the MIT +// license , // at your option. All files in the project carrying such // notice may not be copied, modified, or distributed except // according to those terms. diff --git a/src/bin/dynamic-local-size.rs b/src/bin/dynamic-local-size.rs index 903a6bc..914ba26 100644 --- a/src/bin/dynamic-local-size.rs +++ b/src/bin/dynamic-local-size.rs @@ -1,8 +1,8 @@ // Copyright (c) 2020 The vulkano developers // Licensed under the Apache License, Version 2.0 // or the MIT -// license , +// https://www.apache.org/licenses/LICENSE-2.0> or the MIT +// license , // at your option. All files in the project carrying such // notice may not be copied, modified, or distributed except // according to those terms. @@ -155,7 +155,13 @@ fn main() { constant_2: local_size_y, }; let pipeline = Arc::new( - ComputePipeline::new(device.clone(), &shader.main_entry_point(), &spec_consts).unwrap(), + ComputePipeline::new( + device.clone(), + &shader.main_entry_point(), + &spec_consts, + None, + ) + .unwrap(), ); let image = StorageImage::new( diff --git a/src/bin/image/main.rs b/src/bin/image/main.rs index c5fc534..ecfb227 100644 --- a/src/bin/image/main.rs +++ b/src/bin/image/main.rs @@ -1,19 +1,19 @@ // Copyright (c) 2016 The vulkano developers // Licensed under the Apache License, Version 2.0 // or the MIT -// license , +// https://www.apache.org/licenses/LICENSE-2.0> or the MIT +// license , // at your option. All files in the project carrying such // notice may not be copied, modified, or distributed except // according to those terms. use vulkano::buffer::{BufferUsage, CpuAccessibleBuffer}; -use vulkano::command_buffer::{AutoCommandBufferBuilder, DynamicState}; +use vulkano::command_buffer::{AutoCommandBufferBuilder, DynamicState, SubpassContents}; use vulkano::descriptor::descriptor_set::PersistentDescriptorSet; use vulkano::device::{Device, DeviceExtensions}; use vulkano::format::Format; use vulkano::framebuffer::{Framebuffer, FramebufferAbstract, RenderPassAbstract, Subpass}; -use vulkano::image::{Dimensions, ImageUsage, ImmutableImage, SwapchainImage}; +use vulkano::image::{Dimensions, ImageUsage, ImmutableImage, MipmapsCount, SwapchainImage}; use vulkano::instance::{Instance, PhysicalDevice}; use vulkano::pipeline::viewport::Viewport; use vulkano::pipeline::GraphicsPipeline; @@ -163,6 +163,7 @@ fn main() { ImmutableImage::from_iter( image_data.iter().cloned(), dimensions, + MipmapsCount::One, Format::R8G8B8A8Srgb, queue.clone(), ) @@ -273,7 +274,11 @@ fn main() { AutoCommandBufferBuilder::primary_one_time_submit(device.clone(), queue.family()) .unwrap(); builder - .begin_render_pass(framebuffers[image_num].clone(), false, clear_values) + .begin_render_pass( + framebuffers[image_num].clone(), + SubpassContents::Inline, + clear_values, + ) .unwrap() .draw( pipeline.clone(), diff --git a/src/bin/indirect.rs b/src/bin/indirect.rs index 750e948..99acd95 100644 --- a/src/bin/indirect.rs +++ b/src/bin/indirect.rs @@ -1,8 +1,8 @@ // Copyright (c) 2019 The vulkano developers // Licensed under the Apache License, Version 2.0 // or the MIT -// license , +// https://www.apache.org/licenses/LICENSE-2.0> or the MIT +// license , // at your option. All files in the project carrying such // notice may not be copied, modified, or distributed except // according to those terms. @@ -31,7 +31,9 @@ extern crate vulkano_win; extern crate winit; use vulkano::buffer::{BufferUsage, CpuBufferPool}; -use vulkano::command_buffer::{AutoCommandBufferBuilder, DrawIndirectCommand, DynamicState}; +use vulkano::command_buffer::{ + AutoCommandBufferBuilder, DrawIndirectCommand, DynamicState, SubpassContents, +}; use vulkano::descriptor::descriptor_set::PersistentDescriptorSet; use vulkano::descriptor::PipelineLayoutAbstract; use vulkano::device::{Device, DeviceExtensions}; @@ -207,7 +209,7 @@ fn main() { let vertex_pool: CpuBufferPool = CpuBufferPool::new(device.clone(), BufferUsage::all()); let compute_pipeline = - Arc::new(ComputePipeline::new(device.clone(), &cs.main_entry_point(), &()).unwrap()); + Arc::new(ComputePipeline::new(device.clone(), &cs.main_entry_point(), &(), None).unwrap()); let render_pass = Arc::new( single_pass_renderpass!( @@ -349,7 +351,11 @@ fn main() { (), ) .unwrap() - .begin_render_pass(framebuffers[image_num].clone(), false, clear_values) + .begin_render_pass( + framebuffers[image_num].clone(), + SubpassContents::Inline, + clear_values, + ) .unwrap() // The indirect draw call is placed in the command buffer with a reference to the GPU buffer that will // contain the arguments when the draw is executed on the GPU diff --git a/src/bin/instancing.rs b/src/bin/instancing.rs index 7789987..0b6215c 100644 --- a/src/bin/instancing.rs +++ b/src/bin/instancing.rs @@ -1,8 +1,8 @@ // Copyright (c) 2016 The vulkano developers // Licensed under the Apache License, Version 2.0 // or the MIT -// license , +// https://www.apache.org/licenses/LICENSE-2.0> or the MIT +// license , // at your option. All files in the project carrying such // notice may not be copied, modified, or distributed except // according to those terms. @@ -19,7 +19,7 @@ extern crate vulkano_win; extern crate winit; use vulkano::buffer::{BufferUsage, CpuAccessibleBuffer}; -use vulkano::command_buffer::{AutoCommandBufferBuilder, DynamicState}; +use vulkano::command_buffer::{AutoCommandBufferBuilder, DynamicState, SubpassContents}; use vulkano::device::{Device, DeviceExtensions}; use vulkano::framebuffer::{Framebuffer, FramebufferAbstract, RenderPassAbstract, Subpass}; use vulkano::image::{ImageUsage, SwapchainImage}; @@ -318,7 +318,11 @@ fn main() { ) .unwrap(); builder - .begin_render_pass(framebuffers[image_num].clone(), false, clear_values) + .begin_render_pass( + framebuffers[image_num].clone(), + SubpassContents::Inline, + clear_values, + ) .unwrap() .draw( pipeline.clone(), diff --git a/src/bin/msaa-renderpass.rs b/src/bin/msaa-renderpass.rs index a703443..c4579c7 100644 --- a/src/bin/msaa-renderpass.rs +++ b/src/bin/msaa-renderpass.rs @@ -1,8 +1,8 @@ // Copyright (c) 2017 The vulkano developers // Licensed under the Apache License, Version 2.0 // or the MIT -// license , +// https://www.apache.org/licenses/LICENSE-2.0> or the MIT +// license , // at your option. All files in the project carrying such // notice may not be copied, modified, or distributed except // according to those terms. @@ -70,7 +70,9 @@ use std::io::BufWriter; use std::path::Path; use std::sync::Arc; use vulkano::buffer::{BufferUsage, CpuAccessibleBuffer}; -use vulkano::command_buffer::{AutoCommandBufferBuilder, CommandBuffer, DynamicState}; +use vulkano::command_buffer::{ + AutoCommandBufferBuilder, CommandBuffer, DynamicState, SubpassContents, +}; use vulkano::device::{Device, DeviceExtensions}; use vulkano::format::ClearValue; use vulkano::format::Format; @@ -267,7 +269,7 @@ fn main() { builder .begin_render_pass( framebuffer.clone(), - false, + SubpassContents::Inline, vec![[0.0, 0.0, 1.0, 1.0].into(), ClearValue::None], ) .unwrap() diff --git a/src/bin/multi-window.rs b/src/bin/multi-window.rs index b97a26c..08d9dad 100644 --- a/src/bin/multi-window.rs +++ b/src/bin/multi-window.rs @@ -1,8 +1,8 @@ // Copyright (c) 2016 The vulkano developers // Licensed under the Apache License, Version 2.0 // or the MIT -// license , +// https://www.apache.org/licenses/LICENSE-2.0> or the MIT +// license , // at your option. All files in the project carrying such // notice may not be copied, modified, or distributed except // according to those terms. @@ -17,7 +17,7 @@ // what a vertex or a shader is. use vulkano::buffer::{BufferUsage, CpuAccessibleBuffer}; -use vulkano::command_buffer::{AutoCommandBufferBuilder, DynamicState}; +use vulkano::command_buffer::{AutoCommandBufferBuilder, DynamicState, SubpassContents}; use vulkano::device::{Device, DeviceExtensions}; use vulkano::framebuffer::{Framebuffer, FramebufferAbstract, RenderPassAbstract, Subpass}; use vulkano::image::{ImageUsage, SwapchainImage}; @@ -371,7 +371,11 @@ fn main() { .unwrap(); builder - .begin_render_pass(framebuffers[image_num].clone(), false, clear_values) + .begin_render_pass( + framebuffers[image_num].clone(), + SubpassContents::Inline, + clear_values, + ) .unwrap() .draw( pipeline.clone(), diff --git a/src/bin/pipeline-caching.rs b/src/bin/pipeline-caching.rs new file mode 100644 index 0000000..6d2ac5f --- /dev/null +++ b/src/bin/pipeline-caching.rs @@ -0,0 +1,165 @@ +// Copyright (c) 2017 The vulkano developers +// Licensed under the Apache License, Version 2.0 +// or the MIT +// license , +// at your option. All files in the project carrying such +// notice may not be copied, modified, or distributed except +// according to those terms. + +// This example demonstrates how to use pipeline caching. +// +// Using a PipelineCache can improve performance significantly, +// by checking if the requested pipeline exists in the cache and if so, +// return that pipeline directly or insert that new pipeline into the +// cache. +// +// You can retrieve the data in the cache as a `Vec` and +// save that to a binary file. Later you can load that file and build a +// PipelineCache with the given data. Be aware that the Vulkan +// implementation does not check if the data is valid and vulkano +// currently does not either. Invalid data can lead to driver crashes +// or worse. Using the same cache data with a different GPU probably +// won't work, a simple driver update can lead to invalid data as well. +// To check if your data is valid you can find inspiration here: +// https://zeux.io/2019/07/17/serializing-pipeline-cache/ +// +// In the future, vulkano might implement those safety checks, but for +// now, you would have to do that yourself or trust the data and the user. + +use std::fs; +use std::fs::File; +use std::io::Read; +use std::io::Write; +use std::sync::Arc; + +use vulkano::device::{Device, DeviceExtensions}; +use vulkano::instance::{Instance, InstanceExtensions, PhysicalDevice}; +use vulkano::pipeline::cache::PipelineCache; +use vulkano::pipeline::ComputePipeline; + +fn main() { + // As with other examples, the first step is to create an instance. + let instance = Instance::new(None, &InstanceExtensions::none(), None).unwrap(); + + // Choose which physical device to use. + let physical = PhysicalDevice::enumerate(&instance).next().unwrap(); + + // Choose the queue of the physical device which is going to run our compute operation. + // + // The Vulkan specs guarantee that a compliant implementation must provide at least one queue + // that supports compute operations. + let queue_family = physical + .queue_families() + .find(|&q| q.supports_compute()) + .unwrap(); + + // Now initializing the device. + let (device, _) = Device::new( + physical, + physical.supported_features(), + &DeviceExtensions { + khr_storage_buffer_storage_class: true, + ..DeviceExtensions::none() + }, + [(queue_family, 0.5)].iter().cloned(), + ) + .unwrap(); + + println!("Device initialized"); + + // We are creating an empty PipelineCache to start somewhere. + let pipeline_cache = PipelineCache::empty(device.clone()).unwrap(); + + // We need to create the compute pipeline that describes our operation. We are using the + // shader from the basic-compute-shader example. + // + // If you are familiar with graphics pipeline, the principle is the same except that compute + // pipelines are much simpler to create. + // + // Pass the PipelineCache as an optional parameter to the ComputePipeline constructor. + // For GraphicPipelines you can use the GraphicPipelineBuilder that has a method + // `build_with_cache(cache: Arc)` + let _pipeline = Arc::new({ + mod cs { + vulkano_shaders::shader! { + ty: "compute", + src: " + #version 450 + + layout(local_size_x = 64, local_size_y = 1, local_size_z = 1) in; + + layout(set = 0, binding = 0) buffer Data { + uint data[]; + } data; + + void main() { + uint idx = gl_GlobalInvocationID.x; + data.data[idx] *= 12; + } + " + } + } + let shader = cs::Shader::load(device.clone()).unwrap(); + ComputePipeline::new( + device.clone(), + &shader.main_entry_point(), + &(), + Some(pipeline_cache.clone()), + ) + .unwrap() + }); + + // Normally you would use your pipeline for computing, but we just want to focus on the + // cache functionality. + // The cache works the same for a GraphicsPipeline, a ComputePipeline is just simpler to + // build. + // + // We are now going to retrieve the cache data into a Vec and save that to a file on + // our disk. + + if let Ok(data) = pipeline_cache.get_data() { + if let Ok(mut file) = File::create("pipeline_cache.bin.tmp") { + if let Ok(_) = file.write_all(&data) { + let _ = fs::rename("pipeline_cache.bin.tmp", "pipeline_cache.bin"); + } else { + let _ = fs::remove_file("pipeline_cache.bin.tmp"); + } + } + } + + // The PipelineCache is now saved to disk and can be loaded the next time the application + // is started. This way, the pipelines do not have to be rebuild and pipelines that might + // exist in the cache can be build far quicker. + // + // To load the cache from the file, we just need to load the data into a Vec and build + // the PipelineCache from that. Note that this function is currently unsafe as there are + // no checks, as it was mentioned at the start of this example. + let data = { + if let Ok(mut file) = File::open("pipeline_cache.bin") { + let mut data = Vec::new(); + if let Ok(_) = file.read_to_end(&mut data) { + Some(data) + } else { + None + } + } else { + None + } + }; + + let second_cache = if let Some(data) = data { + // This is unsafe because there is no way to be sure that the file contains valid data. + unsafe { PipelineCache::with_data(device.clone(), &data).unwrap() } + } else { + PipelineCache::empty(device.clone()).unwrap() + }; + + // As the PipelineCache of the Vulkan implementation saves an opaque blob of data, + // there is no real way to know if the data is correct. There might be differences + // in the byte blob here, but it should still work. + // If it doesn't, please check if there is an issue describing this problem, and if + // not open a new one, on the GitHub page. + println!("first : {:?}", pipeline_cache.get_data().unwrap()); + println!("second: {:?}", second_cache.get_data().unwrap()); +} diff --git a/src/bin/push-constants.rs b/src/bin/push-constants.rs index 2fc570e..6906389 100644 --- a/src/bin/push-constants.rs +++ b/src/bin/push-constants.rs @@ -1,8 +1,8 @@ // Copyright (c) 2017 The vulkano developers // Licensed under the Apache License, Version 2.0 // or the MIT -// license , +// https://www.apache.org/licenses/LICENSE-2.0> or the MIT +// license , // at your option. All files in the project carrying such // notice may not be copied, modified, or distributed except // according to those terms. @@ -70,8 +70,9 @@ fn main() { } let shader = cs::Shader::load(device.clone()).unwrap(); - let pipeline = - Arc::new(ComputePipeline::new(device.clone(), &shader.main_entry_point(), &()).unwrap()); + let pipeline = Arc::new( + ComputePipeline::new(device.clone(), &shader.main_entry_point(), &(), None).unwrap(), + ); let data_buffer = { let data_iter = (0..65536u32).map(|n| n); diff --git a/src/bin/runtime-shader/frag.glsl b/src/bin/runtime-shader/frag.glsl index 18d8373..8d64b08 100644 --- a/src/bin/runtime-shader/frag.glsl +++ b/src/bin/runtime-shader/frag.glsl @@ -1,8 +1,8 @@ // Copyright (c) 2017 The vulkano developers // Licensed under the Apache License, Version 2.0 // or the MIT -// license , +// https://www.apache.org/licenses/LICENSE-2.0> or the MIT +// license , // at your option. All files in the project carrying such // notice may not be copied, modified, or distributed except // according to those terms. diff --git a/src/bin/runtime-shader/main.rs b/src/bin/runtime-shader/main.rs index 78d9bb9..83a9a19 100644 --- a/src/bin/runtime-shader/main.rs +++ b/src/bin/runtime-shader/main.rs @@ -1,8 +1,8 @@ // Copyright (c) 2017 The vulkano developers // Licensed under the Apache License, Version 2.0 // or the MIT -// license , +// https://www.apache.org/licenses/LICENSE-2.0> or the MIT +// license , // at your option. All files in the project carrying such // notice may not be copied, modified, or distributed except // according to those terms. @@ -22,8 +22,7 @@ use vulkano as vk; use vulkano::buffer::cpu_access::CpuAccessibleBuffer; use vulkano::buffer::BufferUsage; -use vulkano::command_buffer::AutoCommandBufferBuilder; -use vulkano::command_buffer::DynamicState; +use vulkano::command_buffer::{AutoCommandBufferBuilder, DynamicState, SubpassContents}; use vulkano::descriptor::descriptor::DescriptorDesc; use vulkano::descriptor::descriptor::ShaderStages; use vulkano::descriptor::pipeline_layout::PipelineLayoutDesc; @@ -520,7 +519,11 @@ fn main() { let mut builder = AutoCommandBufferBuilder::new(device.clone(), queue.family()).unwrap(); builder - .begin_render_pass(framebuffers[image_num].clone(), false, clear_values) + .begin_render_pass( + framebuffers[image_num].clone(), + SubpassContents::Inline, + clear_values, + ) .unwrap() .draw( graphics_pipeline.clone(), diff --git a/src/bin/runtime-shader/vert.glsl b/src/bin/runtime-shader/vert.glsl index 3eff569..f86657f 100644 --- a/src/bin/runtime-shader/vert.glsl +++ b/src/bin/runtime-shader/vert.glsl @@ -1,8 +1,8 @@ // Copyright (c) 2017 The vulkano developers // Licensed under the Apache License, Version 2.0 // or the MIT -// license , +// https://www.apache.org/licenses/LICENSE-2.0> or the MIT +// license , // at your option. All files in the project carrying such // notice may not be copied, modified, or distributed except // according to those terms. diff --git a/src/bin/shader-include/main.rs b/src/bin/shader-include/main.rs index 3adabc7..350e74b 100644 --- a/src/bin/shader-include/main.rs +++ b/src/bin/shader-include/main.rs @@ -1,8 +1,8 @@ // Copyright (c) 2017 The vulkano developers // Licensed under the Apache License, Version 2.0 // or the MIT -// license , +// https://www.apache.org/licenses/LICENSE-2.0> or the MIT +// license , // at your option. All files in the project carrying such // notice may not be copied, modified, or distributed except // according to those terms. @@ -75,7 +75,7 @@ fn main() { } } let shader = cs::Shader::load(device.clone()).unwrap(); - ComputePipeline::new(device.clone(), &shader.main_entry_point(), &()).unwrap() + ComputePipeline::new(device.clone(), &shader.main_entry_point(), &(), None).unwrap() }); let data_buffer = { diff --git a/src/bin/shader-types-derive.rs b/src/bin/shader-types-derive.rs new file mode 100644 index 0000000..f3617c6 --- /dev/null +++ b/src/bin/shader-types-derive.rs @@ -0,0 +1,137 @@ +// Copyright (c) 2017 The vulkano developers +// Licensed under the Apache License, Version 2.0 +// or the MIT +// license , +// at your option. All files in the project carrying such +// notice may not be copied, modified, or distributed except +// according to those terms. + +// This example demonstrates how to put derives onto generated Rust structs from +// the Shader types through the "types-meta" options of +// `vulkano_shaders::shader!` macro. + +// Vulkano Shader macro is capable to generate Rust structs representing each +// type found in the shader source. These structs appear in the `ty` module +// generated in the same module where the macro was called. +// +// By default each type has only `Clone` and `Copy` implementations. For +// ergonomic purposes developer may want to implement more traits on top of each +// type. For example "standard" traits such as `Default` or `Debug`. +// +// One way to do so is implementing them manually, but it would be hard to do, +// and complicates code maintenances. +// +// Another way is to specify a macro option to automatically put derives and +// blanket impls onto each generated type by the Macro itself. +// +// The macro is capable to implement standard trait derives in smart way ignoring +// `_dummyX` fields whenever these fields make no sense. And in addition to that +// developer can also specify derives of traits from external modules/crates +// whenever such traits provide custom derive feature. + +use ron::from_str; +use ron::ser::{to_string_pretty, PrettyConfig}; +use std::fmt::{Debug, Display, Error, Formatter}; + +vulkano_shaders::shader! { + ty: "compute", + src: " + #version 450 + + struct Foo { + float x; + vec3 z; + }; + + struct Bar { + vec2 y; + Foo foo; + }; + + layout(push_constant) uniform PushConstantData { + int multiple; + } pc; + + layout(set = 0, binding = 1) buffer Bars { + Bar bar[]; + }; + + void main() {} + ", + types_meta: { + use serde::{Deserialize, Serialize}; + + #[derive(Clone, Copy, PartialEq, Debug, Default, Serialize, Deserialize)] + + impl Eq + } +} + +// In the example above the macro generated `Clone`, `Copy`, `PartialEq`, +// `Debug` and `Default` implementations for each declared +// type(`PushConstantData`, `Foo` and `Bar`) in the shader, and applied +// `impl Eq` for each of them too. And it also applied derives of +// `Serialize` and `Deserialize` traits from Serde crate, but it didn't apply +// these things to `Bars` since the `Bars` type does not have size known in +// compile time. +// +// The macro also didn't generate `Display` implementation since we didn't +// specify it. As such we still can implement this trait manually for some +// selected types. + +impl Display for crate::ty::Foo { + fn fmt(&self, formatter: &mut Formatter<'_>) -> Result<(), Error> { + Debug::fmt(self, formatter) + } +} + +fn main() { + use crate::ty::*; + + // Prints "Foo { x: 0.0, z: [100.0, 200.0, 300.0] }" skipping "_dummyX" fields. + println!( + "{}", + Foo { + z: [100.0, 200.0, 300.0], + + ..Default::default() + } + ); + + let mut bar = Bar { + y: [5.1, 6.2], + + // Fills all fields with zeroes including "_dummyX" fields, so we don't + // have to maintain them manually anymore. + ..Default::default() + }; + + // The data inside "_dummyX" has no use, but we still can fill it with + // something different from zeroes. + bar._dummy0 = [5; 8]; + + // Objects are equal since "_dummyX" fields ignoring during comparison + assert_eq!( + Bar { + y: [5.1, 6.2], + ..Default::default() + }, + bar, + ); + + assert_ne!(Bar::default(), bar); + + bar.foo.x = 125.0; + + // Since we put `Serialize` and `Deserialize` traits to derives list we can + // serialize and deserialize Shader data + + let serialized = to_string_pretty(&bar, PrettyConfig::default()).unwrap(); + + println!("Serialized Bar: {}", serialized); + + let deserialized = from_str::(&serialized).unwrap(); + + assert_eq!(deserialized.foo.x, 125.0); +} diff --git a/src/bin/specialization-constants.rs b/src/bin/specialization-constants.rs index f585faf..a8502a0 100644 --- a/src/bin/specialization-constants.rs +++ b/src/bin/specialization-constants.rs @@ -1,8 +1,8 @@ // Copyright (c) 2017 The vulkano developers // Licensed under the Apache License, Version 2.0 // or the MIT -// license , +// https://www.apache.org/licenses/LICENSE-2.0> or the MIT +// license , // at your option. All files in the project carrying such // notice may not be copied, modified, or distributed except // according to those terms. @@ -75,7 +75,13 @@ fn main() { addend: 1.0, }; let pipeline = Arc::new( - ComputePipeline::new(device.clone(), &shader.main_entry_point(), &spec_consts).unwrap(), + ComputePipeline::new( + device.clone(), + &shader.main_entry_point(), + &spec_consts, + None, + ) + .unwrap(), ); let data_buffer = { diff --git a/src/bin/teapot/main.rs b/src/bin/teapot/main.rs index 59a7341..0e7f288 100644 --- a/src/bin/teapot/main.rs +++ b/src/bin/teapot/main.rs @@ -1,15 +1,15 @@ // Copyright (c) 2016 The vulkano developers // Licensed under the Apache License, Version 2.0 // or the MIT -// license , +// https://www.apache.org/licenses/LICENSE-2.0> or the MIT +// license , // at your option. All files in the project carrying such // notice may not be copied, modified, or distributed except // according to those terms. use vulkano::buffer::cpu_pool::CpuBufferPool; use vulkano::buffer::{BufferUsage, CpuAccessibleBuffer}; -use vulkano::command_buffer::{AutoCommandBufferBuilder, DynamicState}; +use vulkano::command_buffer::{AutoCommandBufferBuilder, DynamicState, SubpassContents}; use vulkano::descriptor::descriptor_set::PersistentDescriptorSet; use vulkano::device::{Device, DeviceExtensions}; use vulkano::format::Format; @@ -255,7 +255,7 @@ fn main() { builder .begin_render_pass( framebuffers[image_num].clone(), - false, + SubpassContents::Inline, vec![[0.0, 0.0, 1.0, 1.0].into(), 1f32.into()], ) .unwrap() diff --git a/src/bin/tessellation.rs b/src/bin/tessellation.rs index e638b9d..ff0622f 100644 --- a/src/bin/tessellation.rs +++ b/src/bin/tessellation.rs @@ -1,8 +1,8 @@ // Copyright (c) 2016 The vulkano developers // Licensed under the Apache License, Version 2.0 // or the MIT -// license , +// https://www.apache.org/licenses/LICENSE-2.0> or the MIT +// license , // at your option. All files in the project carrying such // notice may not be copied, modified, or distributed except // according to those terms. @@ -12,14 +12,14 @@ // * Tessellation Control Shader https://www.khronos.org/opengl/wiki/Tessellation_Control_Shader // * Tessellation Evaluation Shader https://www.khronos.org/opengl/wiki/Tessellation_Evaluation_Shader // * Tessellation real-world usage 1 http://ogldev.atspace.co.uk/www/tutorial30/tutorial30.html -// * Tessellation real-world usage 2 http://prideout.net/blog/?p=48 +// * Tessellation real-world usage 2 https://prideout.net/blog/?p=48 // Notable elements of this example: // * tessellation control shader and a tessellation evaluation shader // * tessellation_shaders(..), patch_list(3) and polygon_mode_line() are called on the pipeline builder use vulkano::buffer::{BufferUsage, CpuAccessibleBuffer}; -use vulkano::command_buffer::{AutoCommandBufferBuilder, DynamicState}; +use vulkano::command_buffer::{AutoCommandBufferBuilder, DynamicState, SubpassContents}; use vulkano::device::{Device, DeviceExtensions}; use vulkano::framebuffer::{Framebuffer, FramebufferAbstract, RenderPassAbstract, Subpass}; use vulkano::image::{ImageUsage, SwapchainImage}; @@ -92,7 +92,7 @@ mod tcs { // if layout(quads) is used then gl_TessCoord is in cartesian coordinates. // Barrycentric coordinates are of the form (x, y, z) where x + y + z = 1 // and the values x, y and z represent the distance from a vertex of the triangle. -// http://mathworld.wolfram.com/BarycentricCoordinates.html +// https://mathworld.wolfram.com/BarycentricCoordinates.html mod tes { vulkano_shaders::shader! { @@ -351,7 +351,7 @@ fn main() { builder .begin_render_pass( framebuffers[image_num].clone(), - false, + SubpassContents::Inline, vec![[0.0, 0.0, 0.0, 1.0].into()], ) .unwrap() diff --git a/src/bin/triangle.rs b/src/bin/triangle.rs index c680f87..1da657a 100644 --- a/src/bin/triangle.rs +++ b/src/bin/triangle.rs @@ -1,8 +1,8 @@ // Copyright (c) 2016 The vulkano developers // Licensed under the Apache License, Version 2.0 // or the MIT -// license , +// https://www.apache.org/licenses/LICENSE-2.0> or the MIT +// license , // at your option. All files in the project carrying such // notice may not be copied, modified, or distributed except // according to those terms. @@ -17,7 +17,7 @@ // what a vertex or a shader is. use vulkano::buffer::{BufferUsage, CpuAccessibleBuffer}; -use vulkano::command_buffer::{AutoCommandBufferBuilder, DynamicState}; +use vulkano::command_buffer::{AutoCommandBufferBuilder, DynamicState, SubpassContents}; use vulkano::device::{Device, DeviceExtensions}; use vulkano::framebuffer::{Framebuffer, FramebufferAbstract, RenderPassAbstract, Subpass}; use vulkano::image::{ImageUsage, SwapchainImage}; @@ -461,7 +461,11 @@ fn main() { // The third parameter builds the list of values to clear the attachments with. The API // is similar to the list of attachments when building the framebuffers, except that // only the attachments that use `load: Clear` appear in the list. - .begin_render_pass(framebuffers[image_num].clone(), false, clear_values) + .begin_render_pass( + framebuffers[image_num].clone(), + SubpassContents::Inline, + clear_values, + ) .unwrap() // We are now inside the first subpass of the render pass. We add a draw command. // diff --git a/src/lib.rs b/src/lib.rs index 865d901..f2b3b64 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,8 +1,8 @@ // Copyright (c) 2016 The vulkano developers // Licensed under the Apache License, Version 2.0 // or the MIT -// license , +// https://www.apache.org/licenses/LICENSE-2.0> or the MIT +// license , // at your option. All files in the project carrying such // notice may not be copied, modified, or distributed except // according to those terms.