diff options
author | natrixaeria <janng@gmx.de> | 2019-06-12 16:59:09 +0200 |
---|---|---|
committer | natrixaeria <janng@gmx.de> | 2019-06-12 16:59:09 +0200 |
commit | 1b6a2835e57a7d399f43ecf493060e68042f9af8 (patch) | |
tree | e9f71720f03064c10876a9afa5ab406c00838d10 | |
parent | 3a3d0fc3d4733f8908e23a03f860d76340479ec4 (diff) |
Clone the colored logging from old commit
-rw-r--r-- | webhogg/wasm/Cargo.toml | 2 | ||||
-rw-r--r-- | webhogg/wasm/pkg/main.js | 12 | ||||
-rw-r--r-- | webhogg/wasm/pkg/worker-graphics.js | 1 | ||||
-rw-r--r-- | webhogg/wasm/pkg/worker.js | 9 | ||||
-rw-r--r-- | webhogg/wasm/src/lib.rs | 12 | ||||
-rw-r--r-- | webhogg/wasm/src/logger.rs | 33 |
6 files changed, 62 insertions, 7 deletions
diff --git a/webhogg/wasm/Cargo.toml b/webhogg/wasm/Cargo.toml index 7978928..f4042c5 100644 --- a/webhogg/wasm/Cargo.toml +++ b/webhogg/wasm/Cargo.toml @@ -16,3 +16,5 @@ lto = true [dependencies] wasm-bindgen = "0.2" +log = "0.4" +fern = "0.5" diff --git a/webhogg/wasm/pkg/main.js b/webhogg/wasm/pkg/main.js index eec740d..ce96ee5 100644 --- a/webhogg/wasm/pkg/main.js +++ b/webhogg/wasm/pkg/main.js @@ -1,9 +1,13 @@ async function main() { let fetchingSource = fetch('bin/webhogg-wasm.wasm'); let fetchedSource = await fetchingSource; - let source = await fetchedSource.text(); - //alert(source) - let workerGraphics = new Worker('pkg/worker-graphics.js'); -} + source = await fetchedSource.arrayBuffer(); + let workers = []; + for (var type of ['graphics', 'logic']) { + let worker = new Worker('pkg/worker.js'); + worker.postMessage([type, source]); + workers.push(worker); + } +} main(); diff --git a/webhogg/wasm/pkg/worker-graphics.js b/webhogg/wasm/pkg/worker-graphics.js deleted file mode 100644 index 8360014..0000000 --- a/webhogg/wasm/pkg/worker-graphics.js +++ /dev/null @@ -1 +0,0 @@ -console.log('lelel'); diff --git a/webhogg/wasm/pkg/worker.js b/webhogg/wasm/pkg/worker.js new file mode 100644 index 0000000..bd11676 --- /dev/null +++ b/webhogg/wasm/pkg/worker.js @@ -0,0 +1,9 @@ +onmessage = async function (e) { + importScripts('../bin/webhogg-wasm.js'); + let ctx = await wasm_bindgen(e.data[1]); + + if (e.data[0] === 'graphics') + ctx.start_graphics(); + else if (e.data[0] === 'logic') + ctx.start_logic(); +} diff --git a/webhogg/wasm/src/lib.rs b/webhogg/wasm/src/lib.rs index cb334fb..bed779b 100644 --- a/webhogg/wasm/src/lib.rs +++ b/webhogg/wasm/src/lib.rs @@ -1,8 +1,16 @@ use wasm_bindgen::prelude::*; +use log::*; + +mod logger; #[wasm_bindgen] -pub fn enrty() { +pub fn start_graphics() { + logger::init_logger(); + info!("hello from wasm graphics"); } -fn main() { +#[wasm_bindgen] +pub fn start_logic() { + logger::init_logger(); + debug!("hello from wasm logic"); } diff --git a/webhogg/wasm/src/logger.rs b/webhogg/wasm/src/logger.rs new file mode 100644 index 0000000..96c4cbf --- /dev/null +++ b/webhogg/wasm/src/logger.rs @@ -0,0 +1,33 @@ +use wasm_bindgen::prelude::*; + +#[wasm_bindgen] +extern "C" { + #[wasm_bindgen(js_namespace=console, js_name=log)] + fn __console_log_colored2(f: &str, c1: &str, c2: &str); +} + +fn log(rec: &log::Record) { + __console_log_colored2(&format!("{}", rec.args()), + &format!("color: {}", match rec.level() { + log::Level::Trace => "violet", + log::Level::Debug => "blue", + log::Level::Info => "green", + log::Level::Warn => "orange", + log::Level::Error => "red" + }), ""); +} + +pub fn init_logger() { + fern::Dispatch::new().format(|out, message, record|{ + out.finish(format_args!( + "%c{}%c {} > {}", + record.level(), + record.target(), + message + ) + ) + }) + .level(log::LevelFilter::Debug) + .chain(fern::Output::call(log)) + .apply().unwrap(); +} |