summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornatrixaeria <janng@gmx.de>2019-06-12 16:59:09 +0200
committernatrixaeria <janng@gmx.de>2019-06-12 16:59:09 +0200
commit1b6a2835e57a7d399f43ecf493060e68042f9af8 (patch)
treee9f71720f03064c10876a9afa5ab406c00838d10
parent3a3d0fc3d4733f8908e23a03f860d76340479ec4 (diff)
Clone the colored logging from old commit
-rw-r--r--webhogg/wasm/Cargo.toml2
-rw-r--r--webhogg/wasm/pkg/main.js12
-rw-r--r--webhogg/wasm/pkg/worker-graphics.js1
-rw-r--r--webhogg/wasm/pkg/worker.js9
-rw-r--r--webhogg/wasm/src/lib.rs12
-rw-r--r--webhogg/wasm/src/logger.rs33
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();
+}