@tolokoban/tgd 2.0.28 → 2.0.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/dist/camera/camera-orthographic.d.ts.map +1 -1
- package/lib/dist/camera/camera-orthographic.js +2 -1
- package/lib/dist/camera/camera-perspective.d.ts.map +1 -1
- package/lib/dist/camera/camera-perspective.js +4 -10
- package/lib/dist/color/color.d.ts +22 -7
- package/lib/dist/color/color.d.ts.map +1 -1
- package/lib/dist/color/color.js +59 -8
- package/lib/dist/color/index.d.ts +1 -0
- package/lib/dist/color/index.d.ts.map +1 -1
- package/lib/dist/color/index.js +2 -1
- package/lib/dist/color/utils.d.ts +12 -0
- package/lib/dist/color/utils.d.ts.map +1 -0
- package/lib/dist/color/utils.js +21 -0
- package/lib/dist/filter/hue-rotation.d.ts.map +1 -1
- package/lib/dist/filter/hue-rotation.js +1 -1
- package/lib/dist/filter/zoom.d.ts.map +1 -1
- package/lib/dist/filter/zoom.js +1 -1
- package/lib/dist/geometry/index.d.ts +1 -0
- package/lib/dist/geometry/index.d.ts.map +1 -1
- package/lib/dist/geometry/index.js +2 -1
- package/lib/dist/geometry/tools/index.d.ts +2 -0
- package/lib/dist/geometry/tools/index.d.ts.map +1 -0
- package/lib/dist/geometry/tools/index.js +2 -0
- package/lib/dist/geometry/tools/marching-cubes/data.d.ts +64 -0
- package/lib/dist/geometry/tools/marching-cubes/data.d.ts.map +1 -0
- package/lib/dist/geometry/tools/marching-cubes/data.js +361 -0
- package/lib/dist/geometry/tools/marching-cubes/index.d.ts +3 -0
- package/lib/dist/geometry/tools/marching-cubes/index.d.ts.map +1 -0
- package/lib/dist/geometry/tools/marching-cubes/index.js +3 -0
- package/lib/dist/geometry/tools/marching-cubes/marching-cubes.d.ts +29 -0
- package/lib/dist/geometry/tools/marching-cubes/marching-cubes.d.ts.map +1 -0
- package/lib/dist/geometry/tools/marching-cubes/marching-cubes.js +235 -0
- package/lib/dist/index.d.ts +2 -0
- package/lib/dist/index.d.ts.map +1 -1
- package/lib/dist/index.js +3 -1
- package/lib/dist/material/face-orientation.d.ts +30 -0
- package/lib/dist/material/face-orientation.d.ts.map +1 -0
- package/lib/dist/material/face-orientation.js +64 -0
- package/lib/dist/material/flat.d.ts.map +1 -1
- package/lib/dist/material/flat.js +1 -1
- package/lib/dist/material/index.d.ts +1 -0
- package/lib/dist/material/index.d.ts.map +1 -1
- package/lib/dist/material/index.js +2 -1
- package/lib/dist/math/vec3.js +1 -1
- package/lib/dist/painter/background-with-depth/background-with-depth.d.ts.map +1 -1
- package/lib/dist/painter/background-with-depth/background-with-depth.js +1 -1
- package/lib/dist/painter/group.js +3 -3
- package/lib/dist/painter/index.d.ts +4 -2
- package/lib/dist/painter/index.d.ts.map +1 -1
- package/lib/dist/painter/index.js +5 -3
- package/lib/dist/painter/lines/index.d.ts +2 -0
- package/lib/dist/painter/lines/index.d.ts.map +1 -0
- package/lib/dist/painter/lines/index.js +2 -0
- package/lib/dist/painter/lines/lines.d.ts +34 -0
- package/lib/dist/painter/lines/lines.d.ts.map +1 -0
- package/lib/dist/painter/lines/lines.js +98 -0
- package/lib/dist/painter/points-cloud/index.d.ts +2 -0
- package/lib/dist/painter/points-cloud/index.d.ts.map +1 -0
- package/lib/dist/painter/points-cloud/index.js +2 -0
- package/lib/dist/painter/points-cloud/points-cloud.d.ts +49 -0
- package/lib/dist/painter/points-cloud/points-cloud.d.ts.map +1 -0
- package/lib/dist/painter/points-cloud/points-cloud.js +118 -0
- package/lib/dist/painter/segments/segments.js +2 -3
- package/lib/dist/painter/state/state.d.ts.map +1 -1
- package/lib/dist/painter/state/state.js +1 -1
- package/lib/dist/sdf/_common.d.ts +9 -0
- package/lib/dist/sdf/_common.d.ts.map +1 -0
- package/lib/dist/sdf/_common.js +23 -0
- package/lib/dist/sdf/capsule.d.ts +3 -0
- package/lib/dist/sdf/capsule.d.ts.map +1 -0
- package/lib/dist/sdf/capsule.js +24 -0
- package/lib/dist/sdf/index.d.ts +3 -0
- package/lib/dist/sdf/index.d.ts.map +1 -0
- package/lib/dist/sdf/index.js +3 -0
- package/lib/dist/sdf/sphere.d.ts +3 -0
- package/lib/dist/sdf/sphere.d.ts.map +1 -0
- package/lib/dist/sdf/sphere.js +7 -0
- package/lib/dist/utils/canvas.d.ts +5 -4
- package/lib/dist/utils/canvas.d.ts.map +1 -1
- package/lib/dist/utils/canvas.js +6 -3
- package/lib/dist/vao/vao.d.ts +2 -1
- package/lib/dist/vao/vao.d.ts.map +1 -1
- package/lib/dist/vao/vao.js +23 -1
- package/lib/dist/wasm/code.d.ts +165 -0
- package/lib/dist/wasm/code.d.ts.map +1 -0
- package/lib/dist/wasm/code.js +605 -0
- package/lib/dist/wasm/flow.d.ts +31 -0
- package/lib/dist/wasm/flow.d.ts.map +1 -0
- package/lib/dist/wasm/flow.js +69 -0
- package/lib/dist/wasm/function.d.ts +5 -0
- package/lib/dist/wasm/function.d.ts.map +1 -0
- package/lib/dist/wasm/function.js +36 -0
- package/lib/dist/wasm/index.d.ts +9 -0
- package/lib/dist/wasm/index.d.ts.map +1 -0
- package/lib/dist/wasm/index.js +31 -0
- package/lib/dist/wasm/local.d.ts +9 -0
- package/lib/dist/wasm/local.d.ts.map +1 -0
- package/lib/dist/wasm/local.js +14 -0
- package/lib/dist/wasm/memory.d.ts +13 -0
- package/lib/dist/wasm/memory.d.ts.map +1 -0
- package/lib/dist/wasm/memory.js +16 -0
- package/lib/dist/wasm/module.d.ts +4 -0
- package/lib/dist/wasm/module.d.ts.map +1 -0
- package/lib/dist/wasm/module.js +22 -0
- package/lib/dist/wasm/types.d.ts +22 -0
- package/lib/dist/wasm/types.d.ts.map +1 -0
- package/lib/dist/wasm/types.js +2 -0
- package/lib/dist/wasm/wast.d.ts +2 -0
- package/lib/dist/wasm/wast.d.ts.map +1 -0
- package/lib/dist/wasm/wast.js +105863 -0
- package/package.json +1 -1
- package/lib/dist/camera/camera-node.d.ts +0 -16
- package/lib/dist/camera/camera-node.d.ts.map +0 -1
- package/lib/dist/camera/camera-node.js +0 -17
- package/lib/dist/painter/background-with-depth/background.d.ts +0 -55
- package/lib/dist/painter/background-with-depth/background.d.ts.map +0 -1
- package/lib/dist/painter/background-with-depth/background.js +0 -99
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { TgdCodeBloc } from "../shader";
|
|
2
|
+
import { WasmType } from "./types";
|
|
3
|
+
export declare function wasm_call(funcName: string, ...args: TgdCodeBloc[]): TgdCodeBloc[];
|
|
4
|
+
/**
|
|
5
|
+
* Pops a value from the stack, and discards it.
|
|
6
|
+
* @see [MDN](https://developer.mozilla.org/en-US/docs/WebAssembly/Reference/Control_flow/Drop)
|
|
7
|
+
*/
|
|
8
|
+
export declare function wasm_drop(): TgdCodeBloc[];
|
|
9
|
+
/**
|
|
10
|
+
* @see [MDN](https://developer.mozilla.org/en-US/docs/WebAssembly/Reference/Control_flow/if...else)
|
|
11
|
+
*/
|
|
12
|
+
export declare function wasm_if(condition: TgdCodeBloc[], thenBloc: TgdCodeBloc[], elseBloc?: TgdCodeBloc[]): TgdCodeBloc[];
|
|
13
|
+
/**
|
|
14
|
+
* @see [MDN](https://developer.mozilla.org/en-US/docs/WebAssembly/Reference/Control_flow/if...else)
|
|
15
|
+
*/
|
|
16
|
+
export declare function wasm_if_i32(condition: TgdCodeBloc[], thenBloc: TgdCodeBloc[], elseBloc: TgdCodeBloc[]): TgdCodeBloc[];
|
|
17
|
+
/**
|
|
18
|
+
* @see [MDN](https://developer.mozilla.org/en-US/docs/WebAssembly/Reference/Control_flow/if...else)
|
|
19
|
+
*/
|
|
20
|
+
export declare function wasm_if_i64(condition: TgdCodeBloc[], thenBloc: TgdCodeBloc[], elseBloc: TgdCodeBloc[]): TgdCodeBloc[];
|
|
21
|
+
/**
|
|
22
|
+
* @see [MDN](https://developer.mozilla.org/en-US/docs/WebAssembly/Reference/Control_flow/if...else)
|
|
23
|
+
*/
|
|
24
|
+
export declare function wasm_if_f32(condition: TgdCodeBloc[], thenBloc: TgdCodeBloc[], elseBloc: TgdCodeBloc[]): TgdCodeBloc[];
|
|
25
|
+
/**
|
|
26
|
+
* @see [MDN](https://developer.mozilla.org/en-US/docs/WebAssembly/Reference/Control_flow/if...else)
|
|
27
|
+
*/
|
|
28
|
+
export declare function wasm_if_f64(condition: TgdCodeBloc[], thenBloc: TgdCodeBloc[], elseBloc: TgdCodeBloc[]): TgdCodeBloc[];
|
|
29
|
+
export declare function wasm_if_typed(type: WasmType | null, condition: TgdCodeBloc[], thenBloc: TgdCodeBloc[], elseBloc?: TgdCodeBloc[]): TgdCodeBloc[];
|
|
30
|
+
export declare function wasm_while(condition: TgdCodeBloc[], body: TgdCodeBloc[]): TgdCodeBloc[];
|
|
31
|
+
//# sourceMappingURL=flow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flow.d.ts","sourceRoot":"","sources":["../../src/wasm/flow.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AASlC,wBAAgB,SAAS,CACrB,QAAQ,EAAE,MAAM,EAChB,GAAG,IAAI,EAAE,WAAW,EAAE,GACvB,WAAW,EAAE,CAGf;AAED;;;GAGG;AACH,wBAAgB,SAAS,IAAI,WAAW,EAAE,CAEzC;AAED;;GAEG;AACH,wBAAgB,OAAO,CACnB,SAAS,EAAE,WAAW,EAAE,EACxB,QAAQ,EAAE,WAAW,EAAE,EACvB,QAAQ,CAAC,EAAE,WAAW,EAAE,GACzB,WAAW,EAAE,CAEf;AAED;;GAEG;AACH,wBAAgB,WAAW,CACvB,SAAS,EAAE,WAAW,EAAE,EACxB,QAAQ,EAAE,WAAW,EAAE,EACvB,QAAQ,EAAE,WAAW,EAAE,GACxB,WAAW,EAAE,CAEf;AAED;;GAEG;AACH,wBAAgB,WAAW,CACvB,SAAS,EAAE,WAAW,EAAE,EACxB,QAAQ,EAAE,WAAW,EAAE,EACvB,QAAQ,EAAE,WAAW,EAAE,GACxB,WAAW,EAAE,CAEf;AAED;;GAEG;AACH,wBAAgB,WAAW,CACvB,SAAS,EAAE,WAAW,EAAE,EACxB,QAAQ,EAAE,WAAW,EAAE,EACvB,QAAQ,EAAE,WAAW,EAAE,GACxB,WAAW,EAAE,CAEf;AAED;;GAEG;AACH,wBAAgB,WAAW,CACvB,SAAS,EAAE,WAAW,EAAE,EACxB,QAAQ,EAAE,WAAW,EAAE,EACvB,QAAQ,EAAE,WAAW,EAAE,GACxB,WAAW,EAAE,CAEf;AAED,wBAAgB,aAAa,CACzB,IAAI,EAAE,QAAQ,GAAG,IAAI,EACrB,SAAS,EAAE,WAAW,EAAE,EACxB,QAAQ,EAAE,WAAW,EAAE,EACvB,QAAQ,CAAC,EAAE,WAAW,EAAE,GACzB,WAAW,EAAE,CAYf;AAED,wBAAgB,UAAU,CACtB,SAAS,EAAE,WAAW,EAAE,EACxB,IAAI,EAAE,WAAW,EAAE,GACpB,WAAW,EAAE,CAOf"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
// Used to generate unique labels.
|
|
2
|
+
let ID = 0;
|
|
3
|
+
function newLabel(name) {
|
|
4
|
+
return `$_label_${name}_${ID++}`;
|
|
5
|
+
}
|
|
6
|
+
export function wasm_call(funcName, ...args) {
|
|
7
|
+
if (args.length === 0)
|
|
8
|
+
return [`(call $${funcName})`];
|
|
9
|
+
return [`(call $${funcName}`, args, ")"];
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Pops a value from the stack, and discards it.
|
|
13
|
+
* @see [MDN](https://developer.mozilla.org/en-US/docs/WebAssembly/Reference/Control_flow/Drop)
|
|
14
|
+
*/
|
|
15
|
+
export function wasm_drop() {
|
|
16
|
+
return ["drop"];
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* @see [MDN](https://developer.mozilla.org/en-US/docs/WebAssembly/Reference/Control_flow/if...else)
|
|
20
|
+
*/
|
|
21
|
+
export function wasm_if(condition, thenBloc, elseBloc) {
|
|
22
|
+
return wasm_if_typed(null, condition, thenBloc, elseBloc);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* @see [MDN](https://developer.mozilla.org/en-US/docs/WebAssembly/Reference/Control_flow/if...else)
|
|
26
|
+
*/
|
|
27
|
+
export function wasm_if_i32(condition, thenBloc, elseBloc) {
|
|
28
|
+
return wasm_if_typed("i32", condition, thenBloc, elseBloc);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* @see [MDN](https://developer.mozilla.org/en-US/docs/WebAssembly/Reference/Control_flow/if...else)
|
|
32
|
+
*/
|
|
33
|
+
export function wasm_if_i64(condition, thenBloc, elseBloc) {
|
|
34
|
+
return wasm_if_typed("i64", condition, thenBloc, elseBloc);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* @see [MDN](https://developer.mozilla.org/en-US/docs/WebAssembly/Reference/Control_flow/if...else)
|
|
38
|
+
*/
|
|
39
|
+
export function wasm_if_f32(condition, thenBloc, elseBloc) {
|
|
40
|
+
return wasm_if_typed("f32", condition, thenBloc, elseBloc);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* @see [MDN](https://developer.mozilla.org/en-US/docs/WebAssembly/Reference/Control_flow/if...else)
|
|
44
|
+
*/
|
|
45
|
+
export function wasm_if_f64(condition, thenBloc, elseBloc) {
|
|
46
|
+
return wasm_if_typed("f64", condition, thenBloc, elseBloc);
|
|
47
|
+
}
|
|
48
|
+
export function wasm_if_typed(type, condition, thenBloc, elseBloc) {
|
|
49
|
+
return [
|
|
50
|
+
`(if ${type ? `(result ${type})` : ""}`,
|
|
51
|
+
[
|
|
52
|
+
...condition,
|
|
53
|
+
"(then",
|
|
54
|
+
...thenBloc,
|
|
55
|
+
")",
|
|
56
|
+
...(elseBloc ? ["(else", elseBloc, ")"] : []),
|
|
57
|
+
],
|
|
58
|
+
")",
|
|
59
|
+
];
|
|
60
|
+
}
|
|
61
|
+
export function wasm_while(condition, body) {
|
|
62
|
+
const label = newLabel("loop");
|
|
63
|
+
return [
|
|
64
|
+
`(loop ${label}`,
|
|
65
|
+
wasm_if(condition, [...body, `(br ${label})`]),
|
|
66
|
+
")",
|
|
67
|
+
];
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy93YXNtL2Zsb3cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsa0NBQWtDO0FBQ2xDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQTtBQUVWLFNBQVMsUUFBUSxDQUFDLElBQVk7SUFDMUIsT0FBTyxXQUFXLElBQUksSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFBO0FBQ3BDLENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUyxDQUNyQixRQUFnQixFQUNoQixHQUFHLElBQW1CO0lBRXRCLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDO1FBQUUsT0FBTyxDQUFDLFVBQVUsUUFBUSxHQUFHLENBQUMsQ0FBQTtJQUNyRCxPQUFPLENBQUMsVUFBVSxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUE7QUFDNUMsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxTQUFTO0lBQ3JCLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQTtBQUNuQixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsT0FBTyxDQUNuQixTQUF3QixFQUN4QixRQUF1QixFQUN2QixRQUF3QjtJQUV4QixPQUFPLGFBQWEsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQTtBQUM3RCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsV0FBVyxDQUN2QixTQUF3QixFQUN4QixRQUF1QixFQUN2QixRQUF1QjtJQUV2QixPQUFPLGFBQWEsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQTtBQUM5RCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsV0FBVyxDQUN2QixTQUF3QixFQUN4QixRQUF1QixFQUN2QixRQUF1QjtJQUV2QixPQUFPLGFBQWEsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQTtBQUM5RCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsV0FBVyxDQUN2QixTQUF3QixFQUN4QixRQUF1QixFQUN2QixRQUF1QjtJQUV2QixPQUFPLGFBQWEsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQTtBQUM5RCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsV0FBVyxDQUN2QixTQUF3QixFQUN4QixRQUF1QixFQUN2QixRQUF1QjtJQUV2QixPQUFPLGFBQWEsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQTtBQUM5RCxDQUFDO0FBRUQsTUFBTSxVQUFVLGFBQWEsQ0FDekIsSUFBcUIsRUFDckIsU0FBd0IsRUFDeEIsUUFBdUIsRUFDdkIsUUFBd0I7SUFFeEIsT0FBTztRQUNILE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7UUFDdkM7WUFDSSxHQUFHLFNBQVM7WUFDWixPQUFPO1lBQ1AsR0FBRyxRQUFRO1lBQ1gsR0FBRztZQUNILEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1NBQ2hEO1FBQ0QsR0FBRztLQUNOLENBQUE7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLFVBQVUsQ0FDdEIsU0FBd0IsRUFDeEIsSUFBbUI7SUFFbkIsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQzlCLE9BQU87UUFDSCxTQUFTLEtBQUssRUFBRTtRQUNoQixPQUFPLENBQUMsU0FBUyxFQUFFLENBQUMsR0FBRyxJQUFJLEVBQUUsT0FBTyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQzlDLEdBQUc7S0FDTixDQUFBO0FBQ0wsQ0FBQyJ9
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { TgdCodeBloc } from "../shader";
|
|
2
|
+
import { WasmFunction, WasmFunctionImport } from "./types";
|
|
3
|
+
export declare function wasm_function_import(func: WasmFunctionImport): TgdCodeBloc[];
|
|
4
|
+
export declare function wasm_function(name: string, func: WasmFunction): TgdCodeBloc[];
|
|
5
|
+
//# sourceMappingURL=function.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"function.d.ts","sourceRoot":"","sources":["../../src/wasm/function.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAE1D,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,kBAAkB,GAAG,WAAW,EAAE,CAe5E;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,WAAW,EAAE,CAa7E"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export function wasm_function_import(func) {
|
|
2
|
+
var _a;
|
|
3
|
+
const body = [];
|
|
4
|
+
if (func.params) {
|
|
5
|
+
body.push(func.params.map(type => `(param ${type})`).join(" "));
|
|
6
|
+
}
|
|
7
|
+
if (func.results) {
|
|
8
|
+
body.push(`(result ${func.results.join(" ")})`);
|
|
9
|
+
}
|
|
10
|
+
return [
|
|
11
|
+
`(func $${func.name} (import ${JSON.stringify(func.moduleName)} ${JSON.stringify((_a = func.moduleFunc) !== null && _a !== void 0 ? _a : func.name)})`,
|
|
12
|
+
...body,
|
|
13
|
+
")",
|
|
14
|
+
];
|
|
15
|
+
}
|
|
16
|
+
export function wasm_function(name, func) {
|
|
17
|
+
const body = [];
|
|
18
|
+
if (func.params) {
|
|
19
|
+
body.push(codeGenericParam("param", func.params));
|
|
20
|
+
}
|
|
21
|
+
if (func.results) {
|
|
22
|
+
body.push(`(result ${func.results.join(" ")})`);
|
|
23
|
+
}
|
|
24
|
+
if (func.locals) {
|
|
25
|
+
body.push(codeGenericParam("local", func.locals));
|
|
26
|
+
}
|
|
27
|
+
if (func.body)
|
|
28
|
+
body.push(...func.body);
|
|
29
|
+
return [`(func $${name}`, body, ")"];
|
|
30
|
+
}
|
|
31
|
+
function codeGenericParam(id, param) {
|
|
32
|
+
return Object.keys(param)
|
|
33
|
+
.map(name => `(${id} $${name} ${param[name]})`)
|
|
34
|
+
.join(" ");
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd2FzbS9mdW5jdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxNQUFNLFVBQVUsb0JBQW9CLENBQUMsSUFBd0I7O0lBQ3pELE1BQU0sSUFBSSxHQUFnQixFQUFFLENBQUE7SUFDNUIsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDZCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO0lBQ25FLENBQUM7SUFDRCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDbkQsQ0FBQztJQUNELE9BQU87UUFDSCxVQUFVLElBQUksQ0FBQyxJQUFJLFlBQVksSUFBSSxDQUFDLFNBQVMsQ0FDekMsSUFBSSxDQUFDLFVBQVUsQ0FDbEIsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQUEsSUFBSSxDQUFDLFVBQVUsbUNBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHO1FBQ3BELEdBQUcsSUFBSTtRQUNQLEdBQUc7S0FDTixDQUFBO0FBQ0wsQ0FBQztBQUVELE1BQU0sVUFBVSxhQUFhLENBQUMsSUFBWSxFQUFFLElBQWtCO0lBQzFELE1BQU0sSUFBSSxHQUFnQixFQUFFLENBQUE7SUFDNUIsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDZCxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQTtJQUNyRCxDQUFDO0lBQ0QsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ25ELENBQUM7SUFDRCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFBO0lBQ3JELENBQUM7SUFDRCxJQUFJLElBQUksQ0FBQyxJQUFJO1FBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUN0QyxPQUFPLENBQUMsVUFBVSxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUE7QUFDeEMsQ0FBQztBQUVELFNBQVMsZ0JBQWdCLENBQ3JCLEVBQXFCLEVBQ3JCLEtBQStCO0lBRS9CLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7U0FDcEIsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEtBQUssSUFBSSxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO1NBQzlDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtBQUNsQixDQUFDIn0=
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { WasmModule } from "./types";
|
|
2
|
+
export type * from "./types";
|
|
3
|
+
export * from "./code";
|
|
4
|
+
export * from "./flow";
|
|
5
|
+
export * from "./local";
|
|
6
|
+
export * from "./memory";
|
|
7
|
+
export * from "./module";
|
|
8
|
+
export declare function tgdWasmCompile<T>(typeGuard: (data: unknown) => asserts data is T, module: WasmModule, importObject?: Record<string, Record<string, (...args: unknown[]) => unknown>>): Promise<T>;
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/wasm/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAMpC,mBAAmB,SAAS,CAAA;AAC5B,cAAc,QAAQ,CAAA;AACtB,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AAExB,wBAAsB,cAAc,CAAC,CAAC,EAClC,SAAS,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,IAAI,CAAC,EAC/C,MAAM,EAAE,UAAU,EAClB,YAAY,GAAE,MAAM,CAChB,MAAM,EACN,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,CAC7C,GACP,OAAO,CAAC,CAAC,CAAC,CAyBZ"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
import { wasm_module } from "./module.js";
|
|
3
|
+
import { tgdCodeStringify } from "./../shader/index.js";
|
|
4
|
+
import * as WAST from "./wast.js";
|
|
5
|
+
export * from "./code.js";
|
|
6
|
+
export * from "./flow.js";
|
|
7
|
+
export * from "./local.js";
|
|
8
|
+
export * from "./memory.js";
|
|
9
|
+
export * from "./module.js";
|
|
10
|
+
export function tgdWasmCompile(typeGuard_1, module_1) {
|
|
11
|
+
return __awaiter(this, arguments, void 0, function* (typeGuard, module, importObject = {}) {
|
|
12
|
+
console.log("🚀 [index] globalThis =", globalThis); // @FIXME: Remove this line written on 2025-06-03 at 11:41
|
|
13
|
+
console.log("🚀 [index] WAST =", WAST); // @FIXME: Remove this line written on 2025-06-03 at 11:45
|
|
14
|
+
const { WebAssemblyText } = WAST;
|
|
15
|
+
const code = tgdCodeStringify(wasm_module(module));
|
|
16
|
+
const binary = WebAssemblyText.encode(code); // wassemble(code)
|
|
17
|
+
for (let i = 0; i < binary.length; i += 16) {
|
|
18
|
+
const text = [];
|
|
19
|
+
for (let k = i; k < Math.min(i + 16, binary.length); k++) {
|
|
20
|
+
const value = binary[k];
|
|
21
|
+
text.push(value.toString(16).toUpperCase().padStart(2, "0"));
|
|
22
|
+
}
|
|
23
|
+
console.log(text.join(" "));
|
|
24
|
+
}
|
|
25
|
+
const instance = yield WebAssembly.instantiate(new WebAssembly.Module(binary), importObject);
|
|
26
|
+
const { exports } = instance;
|
|
27
|
+
typeGuard(exports);
|
|
28
|
+
return exports;
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd2FzbS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBRUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUN0QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFFOUMsT0FBTyxLQUFLLElBQUksTUFBTSxRQUFRLENBQUE7QUFHOUIsY0FBYyxRQUFRLENBQUE7QUFDdEIsY0FBYyxRQUFRLENBQUE7QUFDdEIsY0FBYyxTQUFTLENBQUE7QUFDdkIsY0FBYyxVQUFVLENBQUE7QUFDeEIsY0FBYyxVQUFVLENBQUE7QUFFeEIsTUFBTSxVQUFnQixjQUFjO3lEQUNoQyxTQUErQyxFQUMvQyxNQUFrQixFQUNsQixlQUdJLEVBQUU7UUFFTixPQUFPLENBQUMsR0FBRyxDQUFDLHlCQUF5QixFQUFFLFVBQVUsQ0FBQyxDQUFBLENBQUMsMERBQTBEO1FBQzdHLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLENBQUEsQ0FBQywwREFBMEQ7UUFDakcsTUFBTSxFQUFFLGVBQWUsRUFBRSxHQUFHLElBSTNCLENBQUE7UUFDRCxNQUFNLElBQUksR0FBRyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQTtRQUNsRCxNQUFNLE1BQU0sR0FBZSxlQUFlLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFBLENBQUMsa0JBQWtCO1FBQzFFLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUN6QyxNQUFNLElBQUksR0FBYSxFQUFFLENBQUE7WUFDekIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDdkQsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFBO2dCQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFBO1lBQ2hFLENBQUM7WUFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtRQUMvQixDQUFDO1FBQ0QsTUFBTSxRQUFRLEdBQUcsTUFBTSxXQUFXLENBQUMsV0FBVyxDQUMxQyxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQzlCLFlBQVksQ0FDZixDQUFBO1FBQ0QsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLFFBQVEsQ0FBQTtRQUM1QixTQUFTLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDbEIsT0FBTyxPQUFZLENBQUE7SUFDdkIsQ0FBQztDQUFBIn0=
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { TgdCodeBloc } from "../shader";
|
|
2
|
+
export declare function wasm_local_get(name: string): TgdCodeBloc[];
|
|
3
|
+
export declare function wasm_local_set(name: string, value: TgdCodeBloc[]): TgdCodeBloc[];
|
|
4
|
+
/**
|
|
5
|
+
* Store a value in a local variable and keep this value on the stack.
|
|
6
|
+
* @see [MDN](https://developer.mozilla.org/en-US/docs/WebAssembly/Reference/Variables/Local_tee)
|
|
7
|
+
*/
|
|
8
|
+
export declare function wasm_local_tee(name: string, value: TgdCodeBloc[]): TgdCodeBloc[];
|
|
9
|
+
//# sourceMappingURL=local.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local.d.ts","sourceRoot":"","sources":["../../src/wasm/local.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAEzC,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE,CAE1D;AAED,wBAAgB,cAAc,CAC1B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,WAAW,EAAE,GACrB,WAAW,EAAE,CAEf;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC1B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,WAAW,EAAE,GACrB,WAAW,EAAE,CAEf"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export function wasm_local_get(name) {
|
|
2
|
+
return [`(local.get $${name})`];
|
|
3
|
+
}
|
|
4
|
+
export function wasm_local_set(name, value) {
|
|
5
|
+
return [`(local.set $${name}`, [...value], ")"];
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Store a value in a local variable and keep this value on the stack.
|
|
9
|
+
* @see [MDN](https://developer.mozilla.org/en-US/docs/WebAssembly/Reference/Variables/Local_tee)
|
|
10
|
+
*/
|
|
11
|
+
export function wasm_local_tee(name, value) {
|
|
12
|
+
return [`(local.tee $${name}`, [...value], ")"];
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd2FzbS9sb2NhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLFVBQVUsY0FBYyxDQUFDLElBQVk7SUFDdkMsT0FBTyxDQUFDLGVBQWUsSUFBSSxHQUFHLENBQUMsQ0FBQTtBQUNuQyxDQUFDO0FBRUQsTUFBTSxVQUFVLGNBQWMsQ0FDMUIsSUFBWSxFQUNaLEtBQW9CO0lBRXBCLE9BQU8sQ0FBQyxlQUFlLElBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQTtBQUNuRCxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FDMUIsSUFBWSxFQUNaLEtBQW9CO0lBRXBCLE9BQU8sQ0FBQyxlQUFlLElBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQTtBQUNuRCxDQUFDIn0=
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { TgdCodeBloc } from "../shader";
|
|
2
|
+
/**
|
|
3
|
+
* Copy data from one place to another,
|
|
4
|
+
* in memory.
|
|
5
|
+
* @see [MDN](https://developer.mozilla.org/en-US/docs/WebAssembly/Reference/Memory/Copy)
|
|
6
|
+
*/
|
|
7
|
+
export declare function wasm_memory_copy(from: TgdCodeBloc[], to: TgdCodeBloc[], length: TgdCodeBloc[]): TgdCodeBloc[];
|
|
8
|
+
/**
|
|
9
|
+
* Fill a region of memory with the same byte value.
|
|
10
|
+
* @see [MDN](https://developer.mozilla.org/en-US/docs/WebAssembly/Reference/Memory/Fill)
|
|
11
|
+
*/
|
|
12
|
+
export declare function wasm_memory_fill(from: TgdCodeBloc[], length: TgdCodeBloc[], fillByte?: TgdCodeBloc[]): TgdCodeBloc[];
|
|
13
|
+
//# sourceMappingURL=memory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../src/wasm/memory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAEzC;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC5B,IAAI,EAAE,WAAW,EAAE,EACnB,EAAE,EAAE,WAAW,EAAE,EACjB,MAAM,EAAE,WAAW,EAAE,GACtB,WAAW,EAAE,CAEf;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC5B,IAAI,EAAE,WAAW,EAAE,EACnB,MAAM,EAAE,WAAW,EAAE,EACrB,QAAQ,GAAE,WAAW,EAAoB,GAC1C,WAAW,EAAE,CAEf"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copy data from one place to another,
|
|
3
|
+
* in memory.
|
|
4
|
+
* @see [MDN](https://developer.mozilla.org/en-US/docs/WebAssembly/Reference/Memory/Copy)
|
|
5
|
+
*/
|
|
6
|
+
export function wasm_memory_copy(from, to, length) {
|
|
7
|
+
return [...to, ...from, ...length, `memory.copy`];
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Fill a region of memory with the same byte value.
|
|
11
|
+
* @see [MDN](https://developer.mozilla.org/en-US/docs/WebAssembly/Reference/Memory/Fill)
|
|
12
|
+
*/
|
|
13
|
+
export function wasm_memory_fill(from, length, fillByte = ["i32.const 0"]) {
|
|
14
|
+
return [...from, ...length, ...fillByte, `memory.fill`];
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3dhc20vbWVtb3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQzVCLElBQW1CLEVBQ25CLEVBQWlCLEVBQ2pCLE1BQXFCO0lBRXJCLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxHQUFHLE1BQU0sRUFBRSxhQUFhLENBQUMsQ0FBQTtBQUNyRCxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQixDQUM1QixJQUFtQixFQUNuQixNQUFxQixFQUNyQixXQUEwQixDQUFDLGFBQWEsQ0FBQztJQUV6QyxPQUFPLENBQUMsR0FBRyxJQUFJLEVBQUUsR0FBRyxNQUFNLEVBQUUsR0FBRyxRQUFRLEVBQUUsYUFBYSxDQUFDLENBQUE7QUFDM0QsQ0FBQyJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../src/wasm/module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAGpC,wBAAgB,WAAW,CAAC,MAAM,EAAE,UAAU,GAAG,WAAW,CAmB3D"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { wasm_function, wasm_function_import } from "./function.js";
|
|
2
|
+
export function wasm_module(module) {
|
|
3
|
+
const body = [];
|
|
4
|
+
const { imports, exports, functions } = module;
|
|
5
|
+
if (imports && imports.length > 0) {
|
|
6
|
+
body.push(";; Imported functions");
|
|
7
|
+
for (const child of imports) {
|
|
8
|
+
body.push(...wasm_function_import(child));
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
for (const name of Object.keys(functions)) {
|
|
12
|
+
body.push(...wasm_function(name, functions[name]));
|
|
13
|
+
}
|
|
14
|
+
if (exports.length > 0) {
|
|
15
|
+
body.push(";; Exported functions");
|
|
16
|
+
for (const name of exports) {
|
|
17
|
+
body.push(`(export ${JSON.stringify(name)} (func $${name}))`);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
return ["(module", body, ")"];
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3dhc20vbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxhQUFhLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFaEUsTUFBTSxVQUFVLFdBQVcsQ0FBQyxNQUFrQjtJQUMxQyxNQUFNLElBQUksR0FBZ0IsRUFBRSxDQUFBO0lBQzVCLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLE1BQU0sQ0FBQTtJQUM5QyxJQUFJLE9BQU8sSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQTtRQUNsQyxLQUFLLE1BQU0sS0FBSyxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFBO1FBQzdDLENBQUM7SUFDTCxDQUFDO0lBQ0QsS0FBSyxNQUFNLElBQUksSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7UUFDeEMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLGFBQWEsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUN0RCxDQUFDO0lBQ0QsSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQTtRQUNsQyxLQUFLLE1BQU0sSUFBSSxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLENBQUE7UUFDakUsQ0FBQztJQUNMLENBQUM7SUFDRCxPQUFPLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQTtBQUNqQyxDQUFDIn0=
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { TgdCodeBloc } from "../shader";
|
|
2
|
+
export type WasmModule = {
|
|
3
|
+
/** Names of the functions to export */
|
|
4
|
+
imports?: WasmFunctionImport[];
|
|
5
|
+
functions: Record<string, WasmFunction>;
|
|
6
|
+
exports: string[];
|
|
7
|
+
};
|
|
8
|
+
export type WasmFunction = {
|
|
9
|
+
params?: Record<string, WasmType>;
|
|
10
|
+
results?: WasmType[];
|
|
11
|
+
locals?: Record<string, WasmType>;
|
|
12
|
+
body: TgdCodeBloc[];
|
|
13
|
+
};
|
|
14
|
+
export type WasmFunctionImport = {
|
|
15
|
+
name: string;
|
|
16
|
+
params?: WasmType[];
|
|
17
|
+
results?: WasmType[];
|
|
18
|
+
moduleName: string;
|
|
19
|
+
moduleFunc?: string;
|
|
20
|
+
};
|
|
21
|
+
export type WasmType = "i32" | "i64" | "f32" | "f64" | "v128";
|
|
22
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/wasm/types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAEzC,MAAM,MAAM,UAAU,GAAG;IACrB,uCAAuC;IACvC,OAAO,CAAC,EAAE,kBAAkB,EAAE,CAAA;IAC9B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IACvC,OAAO,EAAE,MAAM,EAAE,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IACjC,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IACjC,IAAI,EAAE,WAAW,EAAE,CAAA;CACtB,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAA;IACnB,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wast.d.ts","sourceRoot":"","sources":["../../src/wasm/wast.js"],"names":[],"mappings":""}
|