From 7884252333cc102a8144e4eafc36f9ef605b1be7 Mon Sep 17 00:00:00 2001 From: natrixaeria Date: Thu, 13 Jun 2019 03:21:53 +0200 Subject: Draw violet background --- webhogg/wasm/pkg/main.js | 16 +++++++++++++--- webhogg/wasm/pkg/worker.js | 22 ++++++++++++++-------- 2 files changed, 27 insertions(+), 11 deletions(-) (limited to 'webhogg/wasm/pkg') diff --git a/webhogg/wasm/pkg/main.js b/webhogg/wasm/pkg/main.js index f16a775..76afa1c 100644 --- a/webhogg/wasm/pkg/main.js +++ b/webhogg/wasm/pkg/main.js @@ -17,12 +17,22 @@ async function main() { source = await fetchedSource.arrayBuffer(); const modules = [ - ['graphics', source, [offCanvas], 100], - ['logic', source, [], 1000] + { type: 'graphics', + source: source, + canvas: offCanvas, + dt: 10000 }, + { type: 'logic', + source: source, + canvas: [], + dt: 10000 }, ]; for (var module of modules) { let worker = new Worker('pkg/worker.js'); - worker.postMessage(module, module[2]); + if (module.type === 'graphics') { + worker.postMessage(module, [module.canvas]); + } else { + worker.postMessage(module); + } workers.push(worker); } } diff --git a/webhogg/wasm/pkg/worker.js b/webhogg/wasm/pkg/worker.js index 0b68374..780ea6f 100644 --- a/webhogg/wasm/pkg/worker.js +++ b/webhogg/wasm/pkg/worker.js @@ -1,11 +1,17 @@ -onmessage = async function (e) { +let data = null; + +onmessage = function (e) { + data = e.data; + importScripts('../bin/webhogg-wasm.js'); - let type = e.data[0]; - let source = e.data[1]; - let args = e.data[2]; - let dt = e.data[3]; - let ctx = await wasm_bindgen(source); + wasm_bindgen(data.source).then(ctx => { + if (data.type === 'graphics') { + wasm_bindgen.start_graphics(data.canvas); + setInterval(wasm_bindgen.loop_graphics, data.dt); + } else if (data.type === 'logic') { + wasm_bindgen.start_logic(); + setInterval(wasm_bindgen.loop_logic, data.dt); + } - ctx['start_' + type].apply(args); - setInterval(ctx['loop_' + type], dt); + }); } -- cgit v1.2.3-70-g09d2