img2num
Version:
Img2Num is a raster vectorization library - it converts images to SVGs
24 lines (23 loc) • 747 B
JavaScript
import { create } from "webgpu";
//#region src/target/node/webgpu.js
var gpuInitPromise;
async function initWebGPU() {
if (globalThis.navigator?.gpu) return globalThis.navigator.gpu;
if (!gpuInitPromise) gpuInitPromise = Promise.resolve().then(() => {
const nativeGpu = create(["backend=vulkan"]);
globalThis.navigator ??= {};
globalThis.navigator.gpu = nativeGpu;
return nativeGpu;
});
return gpuInitPromise;
}
async function destroyWebGPU() {
if (globalThis.navigator?.gpu) {
delete globalThis.navigator.gpu;
if (Object.keys(globalThis.navigator).length === 0) delete globalThis.navigator;
}
gpuInitPromise = null;
await new Promise((resolve) => setTimeout(resolve, 50));
}
//#endregion
export { destroyWebGPU, initWebGPU };