summaryrefslogtreecommitdiff
path: root/webhogg/wasm/pkg/main.js
diff options
context:
space:
mode:
Diffstat (limited to 'webhogg/wasm/pkg/main.js')
-rw-r--r--webhogg/wasm/pkg/main.js38
1 files changed, 34 insertions, 4 deletions
diff --git a/webhogg/wasm/pkg/main.js b/webhogg/wasm/pkg/main.js
index eec740d..90b3956 100644
--- a/webhogg/wasm/pkg/main.js
+++ b/webhogg/wasm/pkg/main.js
@@ -1,9 +1,39 @@
+workers = [];
+
+function exit() {
+ for (var worker of workers) {
+ worker.terminate();
+ }
+ console.clear();
+}
+
async function main() {
let fetchingSource = fetch('bin/webhogg-wasm.wasm');
+
+ let canvasElement = document.getElementById('c');
+ let offCanvas = canvasElement.transferControlToOffscreen();
+
let fetchedSource = await fetchingSource;
- let source = await fetchedSource.text();
- //alert(source)
- let workerGraphics = new Worker('pkg/worker-graphics.js');
-}
+ source = await fetchedSource.arrayBuffer();
+ const modules = [
+ { type: 'graphics',
+ source: source,
+ canvas: offCanvas,
+ dt: 16 },
+ { type: 'logic',
+ source: source,
+ canvas: [],
+ dt: 10000 },
+ ];
+ for (var module of modules) {
+ let worker = new Worker('pkg/worker.js');
+ if (module.type === 'graphics') {
+ worker.postMessage(module, [module.canvas]);
+ } else {
+ worker.postMessage(module);
+ }
+ workers.push(worker);
+ }
+}
main();