From 8ef6e957dbb050533bfa339b20814a93914c24c1 Mon Sep 17 00:00:00 2001 From: Garrit Franke Date: Fri, 22 Jan 2021 16:19:24 +0100 Subject: [PATCH] Add wasm support --- .gitignore | 4 +- Cargo.lock | 270 ++++-------------------------------------- Cargo.toml | 6 +- contrib/build_wasm.sh | 4 + src/inventory.rs | 4 +- src/main.rs | 4 +- wasm/index.html | 14 +++ 7 files changed, 53 insertions(+), 253 deletions(-) create mode 100644 contrib/build_wasm.sh create mode 100644 wasm/index.html diff --git a/.gitignore b/.gitignore index c42d06f..5e5735f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ /target log -.vscode/ \ No newline at end of file +.vscode/ +wasm/*.js +wasm/*.wasm \ No newline at end of file diff --git a/Cargo.lock b/Cargo.lock index 2b1ee5c..f613f14 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -146,7 +146,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac06539968b64bd20c9f7e1620e3a090737ecc54b850f9527a27f961284c8b97" dependencies = [ "lazy_static", - "rand 0.7.3", + "rand", "rand_xorshift", "regex", ] @@ -168,7 +168,7 @@ dependencies = [ "lazy_static", "object-pool", "parking_lot 0.10.2", - "rand 0.7.3", + "rand", "ultraviolet", "wasm-bindgen", "wasm-timer", @@ -272,12 +272,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "const_fn" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28b9d6de7f49e22cf97ad17fc4036ece69300032f45f78f30b4a4482cdc3f4a6" - [[package]] name = "core-foundation" version = "0.7.0" @@ -335,11 +329,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69323bff1fb41c635347b8ead484a5ca6c3f11914d784170b158d8449ab07f8e" dependencies = [ "cfg-if 0.1.10", - "crossbeam-channel 0.4.4", - "crossbeam-deque 0.7.3", - "crossbeam-epoch 0.8.2", + "crossbeam-channel", + "crossbeam-deque", + "crossbeam-epoch", "crossbeam-queue", - "crossbeam-utils 0.7.2", + "crossbeam-utils", ] [[package]] @@ -348,42 +342,21 @@ version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b153fe7cbef478c567df0f972e02e6d736db11affe43dfc9c56a9374d1adfb87" dependencies = [ - "crossbeam-utils 0.7.2", + "crossbeam-utils", "maybe-uninit", ] -[[package]] -name = "crossbeam-channel" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dca26ee1f8d361640700bde38b2c37d8c22b3ce2d360e1fc1c74ea4b0aa7d775" -dependencies = [ - "cfg-if 1.0.0", - "crossbeam-utils 0.8.1", -] - [[package]] name = "crossbeam-deque" version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9f02af974daeee82218205558e51ec8768b48cf524bd01d550abe5573a608285" dependencies = [ - "crossbeam-epoch 0.8.2", - "crossbeam-utils 0.7.2", + "crossbeam-epoch", + "crossbeam-utils", "maybe-uninit", ] -[[package]] -name = "crossbeam-deque" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94af6efb46fef72616855b036a624cf27ba656ffc9be1b9a3c931cfc7749a9a9" -dependencies = [ - "cfg-if 1.0.0", - "crossbeam-epoch 0.9.1", - "crossbeam-utils 0.8.1", -] - [[package]] name = "crossbeam-epoch" version = "0.8.2" @@ -392,24 +365,10 @@ checksum = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace" dependencies = [ "autocfg", "cfg-if 0.1.10", - "crossbeam-utils 0.7.2", + "crossbeam-utils", "lazy_static", "maybe-uninit", - "memoffset 0.5.6", - "scopeguard", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1aaa739f95311c2c7887a76863f500026092fb1dce0161dab577e559ef3569d" -dependencies = [ - "cfg-if 1.0.0", - "const_fn", - "crossbeam-utils 0.8.1", - "lazy_static", - "memoffset 0.6.1", + "memoffset", "scopeguard", ] @@ -420,7 +379,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "774ba60a54c213d409d5353bda12d49cd68d14e45036a285234c8d6f91f92570" dependencies = [ "cfg-if 0.1.10", - "crossbeam-utils 0.7.2", + "crossbeam-utils", "maybe-uninit", ] @@ -435,17 +394,6 @@ dependencies = [ "lazy_static", ] -[[package]] -name = "crossbeam-utils" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02d96d1e189ef58269ebe5b97953da3274d83a93af647c2ddd6f9dab28cedb8d" -dependencies = [ - "autocfg", - "cfg-if 1.0.0", - "lazy_static", -] - [[package]] name = "deflate" version = "0.8.6" @@ -488,12 +436,6 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" -[[package]] -name = "either" -version = "1.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" - [[package]] name = "flate2" version = "1.0.19" @@ -543,15 +485,6 @@ version = "0.1.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c7e4c2612746b0df8fed4ce0c69156021b704c9aefa360311c04e6e9e002eed" -[[package]] -name = "game-of-life" -version = "0.1.0" -dependencies = [ - "noise", - "rand 0.8.2", - "rltk", -] - [[package]] name = "getrandom" version = "0.1.16" @@ -561,31 +494,10 @@ dependencies = [ "cfg-if 1.0.0", "js-sys", "libc", - "wasi 0.9.0+wasi-snapshot-preview1", + "wasi", "wasm-bindgen", ] -[[package]] -name = "getrandom" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4060f4657be78b8e766215b02b18a2e862d83745545de804638e2b545e81aee6" -dependencies = [ - "cfg-if 1.0.0", - "libc", - "wasi 0.10.1+wasi-snapshot-preview1", -] - -[[package]] -name = "gif" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02efba560f227847cb41463a7395c514d127d4f74fff12ef0137fff1b84b96c4" -dependencies = [ - "color_quant", - "weezl", -] - [[package]] name = "gl_generator" version = "0.13.1" @@ -693,15 +605,6 @@ dependencies = [ "gl_generator 0.14.0", ] -[[package]] -name = "hermit-abi" -version = "0.1.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aca5565f760fb5b220e499d72710ed156fdb74e631659e99377d9ebfbd13ae8" -dependencies = [ - "libc", -] - [[package]] name = "image" version = "0.23.12" @@ -711,14 +614,11 @@ dependencies = [ "bytemuck", "byteorder", "color_quant", - "gif", "jpeg-decoder", "num-iter", "num-rational", "num-traits", "png", - "scoped_threadpool", - "tiff", ] [[package]] @@ -755,7 +655,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cc797adac5f083b8ff0ca6f6294a999393d76e197c36488e2ef732c4715f6fa3" dependencies = [ "byteorder", - "rayon", ] [[package]] @@ -889,12 +788,10 @@ dependencies = [ ] [[package]] -name = "memoffset" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "157b4208e3059a8f9e78d559edc658e13df41410cb3ae03979c83130067fdd87" +name = "midgard" +version = "0.1.0" dependencies = [ - "autocfg", + "rltk", ] [[package]] @@ -1014,17 +911,6 @@ dependencies = [ "void", ] -[[package]] -name = "noise" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82051dd6745d5184c6efb7bc8be14892a7f6d4f3ad6dbf754d1c7d7d5fe24b43" -dependencies = [ - "image", - "rand 0.7.3", - "rand_xorshift", -] - [[package]] name = "num-integer" version = "0.1.44" @@ -1066,16 +952,6 @@ dependencies = [ "autocfg", ] -[[package]] -name = "num_cpus" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3" -dependencies = [ - "hermit-abi", - "libc", -] - [[package]] name = "num_enum" version = "0.4.3" @@ -1267,23 +1143,11 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" dependencies = [ - "getrandom 0.1.16", + "getrandom", "libc", - "rand_chacha 0.2.2", - "rand_core 0.5.1", - "rand_hc 0.2.0", -] - -[[package]] -name = "rand" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18519b42a40024d661e1714153e9ad0c3de27cd495760ceb09710920f1098b1e" -dependencies = [ - "libc", - "rand_chacha 0.3.0", - "rand_core 0.6.1", - "rand_hc 0.3.0", + "rand_chacha", + "rand_core", + "rand_hc", ] [[package]] @@ -1293,17 +1157,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" dependencies = [ "ppv-lite86", - "rand_core 0.5.1", -] - -[[package]] -name = "rand_chacha" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e12735cf05c9e10bf21534da50a147b924d555dc7a547c42e6bb2d5b6017ae0d" -dependencies = [ - "ppv-lite86", - "rand_core 0.6.1", + "rand_core", ] [[package]] @@ -1312,16 +1166,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" dependencies = [ - "getrandom 0.1.16", -] - -[[package]] -name = "rand_core" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c026d7df8b298d90ccbbc5190bd04d85e159eaf5576caeacf8741da93ccbd2e5" -dependencies = [ - "getrandom 0.2.1", + "getrandom", ] [[package]] @@ -1330,16 +1175,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" dependencies = [ - "rand_core 0.5.1", -] - -[[package]] -name = "rand_hc" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3190ef7066a446f2e7f42e239d161e905420ccab01eb967c9eb27d21b2322a73" -dependencies = [ - "rand_core 0.6.1", + "rand_core", ] [[package]] @@ -1348,7 +1184,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77d416b86801d23dde1aa643023b775c3a462efc0ed96443add11546cdf1dca8" dependencies = [ - "rand_core 0.5.1", + "rand_core", ] [[package]] @@ -1360,31 +1196,6 @@ dependencies = [ "libc", ] -[[package]] -name = "rayon" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b0d8e0819fadc20c74ea8373106ead0600e3a67ef1fe8da56e39b9ae7275674" -dependencies = [ - "autocfg", - "crossbeam-deque 0.8.0", - "either", - "rayon-core", -] - -[[package]] -name = "rayon-core" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ab346ac5921dc62ffa9f89b7a773907511cdfa5490c572ae9be1be33e8afa4a" -dependencies = [ - "crossbeam-channel 0.5.0", - "crossbeam-deque 0.8.0", - "crossbeam-utils 0.8.1", - "lazy_static", - "num_cpus", -] - [[package]] name = "redox_syscall" version = "0.1.57" @@ -1456,12 +1267,6 @@ dependencies = [ "winapi-util", ] -[[package]] -name = "scoped_threadpool" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d51f5df5af43ab3f1360b429fa5e0152ac5ce8c0bd6485cae490332e96846a8" - [[package]] name = "scopeguard" version = "1.1.0" @@ -1577,24 +1382,13 @@ dependencies = [ "lazy_static", ] -[[package]] -name = "tiff" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a53f4706d65497df0c4349241deddf35f84cee19c87ed86ea8ca590f4464437" -dependencies = [ - "jpeg-decoder", - "miniz_oxide 0.4.3", - "weezl", -] - [[package]] name = "tokio-executor" version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fb2d1b8f4548dbf5e1f7818512e9c406860678f29c300cdf0ebac72d1a3a1671" dependencies = [ - "crossbeam-utils 0.7.2", + "crossbeam-utils", "futures", ] @@ -1604,7 +1398,7 @@ version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93044f2d313c95ff1cb7809ce9a7a05735b012288a888b62d4434fd58c94f296" dependencies = [ - "crossbeam-utils 0.7.2", + "crossbeam-utils", "futures", "slab", "tokio-executor", @@ -1663,12 +1457,6 @@ version = "0.9.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" -[[package]] -name = "wasi" -version = "0.10.1+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93c6c3420963c5c64bca373b25e77acb562081b9bb4dd5bb864187742186cea9" - [[package]] name = "wasm-bindgen" version = "0.2.69" @@ -1807,12 +1595,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "weezl" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e2bb9fc8309084dd7cd651336673844c1d47f8ef6d2091ec160b27f5c4aa277" - [[package]] name = "wide" version = "0.4.6" diff --git a/Cargo.toml b/Cargo.toml index 3a2bfd7..68f2259 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "game-of-life" +name = "midgard" version = "0.1.0" authors = ["Garrit Franke "] edition = "2018" @@ -7,6 +7,4 @@ edition = "2018" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -rltk = "0.8.1" -rand = "0.8.2" -noise = "0.7" \ No newline at end of file +rltk = "0.8.1" \ No newline at end of file diff --git a/contrib/build_wasm.sh b/contrib/build_wasm.sh new file mode 100644 index 0000000..824faca --- /dev/null +++ b/contrib/build_wasm.sh @@ -0,0 +1,4 @@ +rustup target add wasm32-unknown-unknown +cargo install wasm-bindgen-cli +cargo build --release --target wasm32-unknown-unknown +wasm-bindgen target/wasm32-unknown-unknown/release/midgard.wasm --out-dir wasm --no-modules --no-typescript \ No newline at end of file diff --git a/src/inventory.rs b/src/inventory.rs index 2423287..1821daf 100644 --- a/src/inventory.rs +++ b/src/inventory.rs @@ -1,4 +1,4 @@ -use crate::Render; +use crate::traits::Render; use crate::State; use rltk::prelude::*; use rltk::DrawBatch; @@ -89,7 +89,7 @@ pub struct Item { } impl Render for InventoryView { - fn render(&mut self, gs: &mut State, ctx: &mut Rltk) { + fn render(&mut self, _gs: &mut State, ctx: &mut Rltk) { let mut draw_batch = DrawBatch::new(); ctx.cls(); diff --git a/src/main.rs b/src/main.rs index 6c93d35..e85680c 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,4 +1,5 @@ -rltk::add_wasm_support!(); +extern crate rltk; + mod crypto; mod inventory; mod map; @@ -236,7 +237,6 @@ impl Algorithm2D for State { fn main() -> RltkError { let context = RltkBuilder::simple(80, 70)? - .with_automatic_console_resize(true) .with_title("Tales of Midgard") .build()?; let gs = State::new(); diff --git a/wasm/index.html b/wasm/index.html new file mode 100644 index 0000000..d23258e --- /dev/null +++ b/wasm/index.html @@ -0,0 +1,14 @@ + + + + + + + + + +