This commit is contained in:
tamaina
2023-05-07 17:16:31 +00:00
parent 0a17d7fa22
commit 99cadbb106
2 changed files with 31 additions and 13 deletions

View File

@@ -1,19 +1,29 @@
import { render } from 'buraha';
let canvas: OffscreenCanvas;
const canvases = new Map<string, OffscreenCanvas>();
onmessage = async (event) => {
console.log(event.data);
if (!('id' in event.data && typeof event.data.id === 'string')) {
return;
}
if (event.data.delete) {
canvases.delete(event.data.id);
}
if (event.data.canvas) {
canvases.set(event.data.id, event.data.canvas);
}
if (!('hash' in event.data && typeof event.data.hash === 'string')) {
return;
}
if (event.data.canvas) {
canvas = event.data.canvas;
}
const canvas = event.data.canvas ?? canvases.get(event.data.id);
if (!canvas) {
throw new Error('No canvas');
}
render(event.data.hash, canvas);
const work = new OffscreenCanvas(canvas.width, canvas.height);
render(event.data.hash, work);
const bitmap = await createImageBitmap(work);
const ctx = canvas.getContext('2d');
ctx?.drawImage(bitmap, 0, 0, canvas.width, canvas.height);
postMessage({ result: true });
};