diff options
Diffstat (limited to 'webhogg/wasm/pkg/main.js')
-rw-r--r-- | webhogg/wasm/pkg/main.js | 38 |
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(); |