UNPKG

@woosh/meep-engine

Version:

Pure JavaScript game engine. Fully featured and production ready.

49 lines (37 loc) 1.29 kB
import { OnDemandWorkerManager } from "../../../../../core/process/worker/OnDemandWorkerManager.js"; import WorkerBuilder from "../../../../../core/process/worker/WorkerBuilder.js"; import { PNG_HEADER_BYTES } from "../png/PNG_HEADER_BYTES.js"; import { Codec } from "./Codec.js"; export class ThreadedImageDecoder extends Codec { /** * * @param {string} [worker_path] */ constructor({ worker_path = 'bundle-worker-image-decoder.js' }={}) { super(); const workerBuilder = new WorkerBuilder(); workerBuilder.importScript(worker_path); workerBuilder.addMethod('decode', function (data, type) { return Lib.decode(data, type); }); /** * * @type {OnDemandWorkerManager} */ this.worker = new OnDemandWorkerManager(workerBuilder.build()); this.worker.setTimeout(1200); } async test(data) { for (let i = 0; i < PNG_HEADER_BYTES.length; i++) { if (data[i] !== PNG_HEADER_BYTES[i]) { return false; } } return true; } decode(data) { return this.worker.request('decode', [data.buffer]); } }