summaryrefslogtreecommitdiff
path: root/webhogg/wasm/pkg/worker.js
diff options
context:
space:
mode:
Diffstat (limited to 'webhogg/wasm/pkg/worker.js')
-rw-r--r--webhogg/wasm/pkg/worker.js22
1 files changed, 14 insertions, 8 deletions
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);
+ });
}