UNPKG

@tolokoban/tgd

Version:

ToloGameDev library for WebGL2

27 lines 2.83 kB
/* eslint-disable unicorn/prevent-abbreviations */ import { tgdCodeStringify } from "./../shader/index.js"; import { wasm_module } from "./module.js"; import * as WAST from "./wast.js"; export * from "./code.js"; export * from "./flow.js"; export * from "./local.js"; export * from "./memory.js"; export * from "./module.js"; export async function tgdWasmCompile(typeGuard, module, importObject = {}) { const { WebAssemblyText } = WAST; const code = tgdCodeStringify(wasm_module(module)); const binary = WebAssemblyText.encode(code); // wassemble(code) for (let i = 0; i < binary.length; i += 16) { const text = []; for (let k = i; k < Math.min(i + 16, binary.length); k++) { const value = binary[k]; text.push(value.toString(16).toUpperCase().padStart(2, "0")); } console.debug(text.join(" ")); } const instance = await WebAssembly.instantiate(new WebAssembly.Module(binary), importObject); const { exports } = instance; typeGuard(exports); return exports; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd2FzbS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxrREFBa0Q7QUFFbEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQzlDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFHdEMsT0FBTyxLQUFLLElBQUksTUFBTSxRQUFRLENBQUE7QUFFOUIsY0FBYyxRQUFRLENBQUE7QUFDdEIsY0FBYyxRQUFRLENBQUE7QUFDdEIsY0FBYyxTQUFTLENBQUE7QUFDdkIsY0FBYyxVQUFVLENBQUE7QUFDeEIsY0FBYyxVQUFVLENBQUE7QUFHeEIsTUFBTSxDQUFDLEtBQUssVUFBVSxjQUFjLENBQ2hDLFNBQStDLEVBQy9DLE1BQWtCLEVBQ2xCLGVBQWdGLEVBQUU7SUFFbEYsTUFBTSxFQUFFLGVBQWUsRUFBRSxHQUFHLElBSTNCLENBQUE7SUFDRCxNQUFNLElBQUksR0FBRyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQTtJQUNsRCxNQUFNLE1BQU0sR0FBZSxlQUFlLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFBLENBQUMsa0JBQWtCO0lBQzFFLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztRQUN6QyxNQUFNLElBQUksR0FBYSxFQUFFLENBQUE7UUFDekIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUN2RCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQTtRQUNoRSxDQUFDO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUE7SUFDakMsQ0FBQztJQUNELE1BQU0sUUFBUSxHQUFHLE1BQU0sV0FBVyxDQUFDLFdBQVcsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsTUFBc0IsQ0FBQyxFQUFFLFlBQVksQ0FBQyxDQUFBO0lBQzVHLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxRQUFRLENBQUE7SUFDNUIsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ2xCLE9BQU8sT0FBWSxDQUFBO0FBQ3ZCLENBQUMifQ==