wasm-game-ts 0.1.0
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/README.md +57 -0
- package/dist/hash.d.ts +3 -0
- package/dist/hash.d.ts.map +1 -0
- package/dist/hash.js +15 -0
- package/dist/hash.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/inputs.d.ts +61 -0
- package/dist/inputs.d.ts.map +1 -0
- package/dist/inputs.js +143 -0
- package/dist/inputs.js.map +1 -0
- package/dist/keycodes.d.ts +3 -0
- package/dist/keycodes.d.ts.map +1 -0
- package/dist/keycodes.js +73 -0
- package/dist/keycodes.js.map +1 -0
- package/dist/package.d.ts +45 -0
- package/dist/package.d.ts.map +1 -0
- package/dist/package.js +765 -0
- package/dist/package.js.map +1 -0
- package/dist/types.d.ts +104 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +13 -0
- package/dist/types.js.map +1 -0
- package/dist/wasm-game.d.ts +22 -0
- package/dist/wasm-game.d.ts.map +1 -0
- package/dist/wasm-game.js +164 -0
- package/dist/wasm-game.js.map +1 -0
- package/dist/worker/assets/OFL.txt +88 -0
- package/dist/worker/assets/PressStart2P-Regular.ttf +0 -0
- package/dist/worker/fonts.d.ts +2 -0
- package/dist/worker/fonts.d.ts.map +1 -0
- package/dist/worker/fonts.js +159 -0
- package/dist/worker/fonts.js.map +1 -0
- package/dist/worker/renderer.d.ts +34 -0
- package/dist/worker/renderer.d.ts.map +1 -0
- package/dist/worker/renderer.js +504 -0
- package/dist/worker/renderer.js.map +1 -0
- package/dist/worker/snapshotter.d.ts +17 -0
- package/dist/worker/snapshotter.d.ts.map +1 -0
- package/dist/worker/snapshotter.js +190 -0
- package/dist/worker/snapshotter.js.map +1 -0
- package/dist/worker/wasm-host.d.ts +18 -0
- package/dist/worker/wasm-host.d.ts.map +1 -0
- package/dist/worker/wasm-host.js +42 -0
- package/dist/worker/wasm-host.js.map +1 -0
- package/dist/worker/worker.d.ts +2 -0
- package/dist/worker/worker.d.ts.map +1 -0
- package/dist/worker/worker.js +311 -0
- package/dist/worker/worker.js.map +1 -0
- package/package.json +33 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fonts.js","sourceRoot":"","sources":["../../src/worker/fonts.ts"],"names":[],"mappings":"AAAA,IAAI,MAAM,GAA4B,IAAI,CAAC;AAE3C,MAAM,MAAM,GAAG,gBAAgB,CAAC;AAChC,MAAM,MAAM,GAAG,KAAK,CAAC;AACrB,MAAM,KAAK,GAAG,QAAQ,CAAC;AAEvB,SAAS,WAAW,CAAC,CAAS;IAC5B,OAAO,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,SAAS,CAAC,KAAU,EAAE,MAAc;IAC3C,MAAM,GAAG,GAAgF,EAAE,CAAC;IAC5F,IAAI,CAAC;QACH,KAAK,MAAM,EAAE,IAAI,KAAsB,EAAE,CAAC;YACxC,MAAM,GAAG,GAAG,OAAO,EAAE,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACzE,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;gBACnB,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;YACzF,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,SAAS;IACX,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,cAAc,CAAC,KAAU,EAAE,MAAc;IAChD,OAAO,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,OAAO,CAAC,GAAgB,EAAE,CAAC,GAAG,EAAE;IACvC,MAAM,EAAE,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;IAC/B,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACjC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;QAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IAC5E,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,GAAW;IAC3C,MAAM,MAAM,GAAG,gBAAgB,CAAC;IAEhC,8DAA8D;IAC9D,MAAM,CAAC,GAAQ,UAAiB,CAAC;IACjC,MAAM,YAAY,GAAG,CAAC,CAAC,QAAQ,CAAC;IAChC,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;IAEtB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IAExD,IAAI,CAAC,YAAY,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,CAAC,GAAG,KAAK,UAAU,EAAE,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,6CAA6C,EAAE;YAClE,WAAW,EAAE,CAAC,CAAC,YAAY;YAC3B,QAAQ,EAAE,CAAC,CAAC,KAAK;YACjB,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI;SACpC,CAAC,CAAC;QACH,OAAO,KAAK,CAAC;IACf,CAAC;IAED,mEAAmE;IACnE,6EAA6E;IAC7E,qGAAqG;IACrG,IAAI,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,gBAAgB,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;QAChE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,GAAa,CAAC;IAClB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;IAChD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QAClD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE;QAClC,GAAG;QACH,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,WAAW,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;KAC7C,CAAC,CAAC;IAEH,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,OAAO,KAAK,CAAC;IAE1B,IAAI,GAAgB,CAAC;IACrB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC;IAChC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,sBAAsB,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QAC3D,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEtF,sEAAsE;IACtE,IAAI,IAAS,CAAC;IACd,IAAI,CAAC;QACH,IAAI,GAAG,IAAI,YAAY,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACzE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,+DAA+D,EAAE,GAAG,CAAC,CAAC;QAC3F,IAAI,GAAG,IAAI,YAAY,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACrF,CAAC;IAED,IAAI,CAAC;QACH,6CAA6C;QAC7C,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAEhB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,sCAAsC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAEzE,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAElB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,2CAA2C,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAE9E,+CAA+C;QAC/C,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YACrC,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,UAAU,MAAM,GAAG,CAAC,CAAC;YACnE,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,oBAAoB,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QAC3G,CAAC;QACD,IAAI,KAAK,CAAC,KAAK;YAAE,MAAM,KAAK,CAAC,KAAK,CAAC;QAEnC,MAAM,EAAE,GAAG,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,gBAAgB,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;QAE9E,yGAAyG;QACzG,IAAI,CAAC;YACH,IAAI,OAAO,eAAe,KAAK,WAAW,EAAE,CAAC;gBAC3C,MAAM,CAAC,GAAG,IAAI,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACpC,MAAM,GAAG,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBAC/B,IAAI,GAAG,EAAE,CAAC;oBACR,MAAM,IAAI,GAAG,iBAAiB,CAAC;oBAC/B,GAAG,CAAC,IAAI,GAAG,SAAS,MAAM,GAAG,CAAC;oBAC9B,MAAM,OAAO,GAAG,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;oBAC5C,GAAG,CAAC,IAAI,GAAG,iBAAiB,CAAC;oBAC7B,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;oBAC1C,GAAG,CAAC,IAAI,GAAG,gBAAgB,CAAC;oBAC5B,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;oBAC1C,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,oBAAoB,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;gBACvE,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,0BAA0B,EAAE,GAAG,CAAC,CAAC;QACxD,CAAC;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,0BAA0B,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QAC/D,IAAI,CAAC;YACH,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,UAAU;gBAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC7D,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,UAAU,wBAAwB;IACtC,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE;QACnB,MAAM,MAAM,GAAG,gBAAgB,CAAC;QAEhC,2CAA2C;QAC3C,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,mCAAmC,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC7F,IAAI,MAAM,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;YAC9C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,gFAAgF;QAChF,gFAAgF;QAChF,uFAAuF;QAEvF,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,uDAAuD,CAAC,CAAC;QAC9E,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,EAAE,CAAC;IAEL,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export declare enum DrawCmd {
|
|
2
|
+
DrawLine = 1,
|
|
3
|
+
DrawRectangle = 2,
|
|
4
|
+
SetCamera = 3,
|
|
5
|
+
DrawText = 4,
|
|
6
|
+
DrawRectangleLines = 5,
|
|
7
|
+
DrawArc = 6,
|
|
8
|
+
DrawCircle = 7,
|
|
9
|
+
DrawCircleLines = 8,
|
|
10
|
+
DrawEllipse = 9,
|
|
11
|
+
DrawEllipseLines = 10,
|
|
12
|
+
DrawPoly = 11,
|
|
13
|
+
DrawPolyLines = 12,
|
|
14
|
+
DrawHexagon = 13,
|
|
15
|
+
DrawTriangle = 14,
|
|
16
|
+
DrawTriangleLines = 15
|
|
17
|
+
}
|
|
18
|
+
export interface RendererOptions {
|
|
19
|
+
width: number;
|
|
20
|
+
height: number;
|
|
21
|
+
autoClear: boolean;
|
|
22
|
+
}
|
|
23
|
+
export declare class Renderer2D {
|
|
24
|
+
private readonly canvas;
|
|
25
|
+
private readonly ctx;
|
|
26
|
+
private w;
|
|
27
|
+
private h;
|
|
28
|
+
private readonly autoClear;
|
|
29
|
+
private readonly textDecoder;
|
|
30
|
+
constructor(canvas: OffscreenCanvas, opts: RendererOptions);
|
|
31
|
+
resize(width: number, height: number): void;
|
|
32
|
+
render(renderBytes: Uint8Array): void;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=renderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/worker/renderer.ts"],"names":[],"mappings":"AAcA,oBAAY,OAAO;IACjB,QAAQ,IAAI;IACZ,aAAa,IAAI;IACjB,SAAS,IAAI;IACb,QAAQ,IAAI;IAEZ,kBAAkB,IAAI;IACtB,OAAO,IAAI;IACX,UAAU,IAAI;IACd,eAAe,IAAI;IACnB,WAAW,IAAI;IACf,gBAAgB,KAAK;IACrB,QAAQ,KAAK;IACb,aAAa,KAAK;IAClB,WAAW,KAAK;IAChB,YAAY,KAAK;IACjB,iBAAiB,KAAK;CACvB;AAkVD,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAoC;IACxD,OAAO,CAAC,CAAC,CAAS;IAClB,OAAO,CAAC,CAAC,CAAS;IAClB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAU;IAEpC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA4B;gBAE5C,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,eAAe;IAsB1D,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAa3C,MAAM,CAAC,WAAW,EAAE,UAAU,GAAG,IAAI;CAwPtC"}
|
|
@@ -0,0 +1,504 @@
|
|
|
1
|
+
// Render command buffer decoder + Canvas2D renderer (OffscreenCanvas).
|
|
2
|
+
//
|
|
3
|
+
// This renderer is intentionally aligned to the OLD SimpleRenderer behavior:
|
|
4
|
+
// - Start each frame with identity transform (no implicit default camera)
|
|
5
|
+
// - If autoClear: fill opaque black background (not clearRect)
|
|
6
|
+
// - Camera only changes when SetCamera command appears
|
|
7
|
+
// - Text uses the same font stack and rgba conversion as before
|
|
8
|
+
// - RectangleLines uses a filled-rect border (closer to old canvasPrimitives)
|
|
9
|
+
// - Arc uses `sides` to approximate (old renderer forwarded sides to geom)
|
|
10
|
+
//
|
|
11
|
+
// IMPORTANT: Command IDs + binary layouts are defined here; Rust must match.
|
|
12
|
+
const DEG2RAD = Math.PI / 180.0;
|
|
13
|
+
export var DrawCmd;
|
|
14
|
+
(function (DrawCmd) {
|
|
15
|
+
DrawCmd[DrawCmd["DrawLine"] = 1] = "DrawLine";
|
|
16
|
+
DrawCmd[DrawCmd["DrawRectangle"] = 2] = "DrawRectangle";
|
|
17
|
+
DrawCmd[DrawCmd["SetCamera"] = 3] = "SetCamera";
|
|
18
|
+
DrawCmd[DrawCmd["DrawText"] = 4] = "DrawText";
|
|
19
|
+
DrawCmd[DrawCmd["DrawRectangleLines"] = 5] = "DrawRectangleLines";
|
|
20
|
+
DrawCmd[DrawCmd["DrawArc"] = 6] = "DrawArc";
|
|
21
|
+
DrawCmd[DrawCmd["DrawCircle"] = 7] = "DrawCircle";
|
|
22
|
+
DrawCmd[DrawCmd["DrawCircleLines"] = 8] = "DrawCircleLines";
|
|
23
|
+
DrawCmd[DrawCmd["DrawEllipse"] = 9] = "DrawEllipse";
|
|
24
|
+
DrawCmd[DrawCmd["DrawEllipseLines"] = 10] = "DrawEllipseLines";
|
|
25
|
+
DrawCmd[DrawCmd["DrawPoly"] = 11] = "DrawPoly";
|
|
26
|
+
DrawCmd[DrawCmd["DrawPolyLines"] = 12] = "DrawPolyLines";
|
|
27
|
+
DrawCmd[DrawCmd["DrawHexagon"] = 13] = "DrawHexagon";
|
|
28
|
+
DrawCmd[DrawCmd["DrawTriangle"] = 14] = "DrawTriangle";
|
|
29
|
+
DrawCmd[DrawCmd["DrawTriangleLines"] = 15] = "DrawTriangleLines";
|
|
30
|
+
})(DrawCmd || (DrawCmd = {}));
|
|
31
|
+
class BinReader {
|
|
32
|
+
constructor(bytes) {
|
|
33
|
+
this.bytes = bytes;
|
|
34
|
+
this.off = 0;
|
|
35
|
+
this.view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);
|
|
36
|
+
}
|
|
37
|
+
get remaining() {
|
|
38
|
+
return this.bytes.byteLength - this.off;
|
|
39
|
+
}
|
|
40
|
+
u8() {
|
|
41
|
+
const v = this.view.getUint8(this.off);
|
|
42
|
+
this.off += 1;
|
|
43
|
+
return v;
|
|
44
|
+
}
|
|
45
|
+
i32() {
|
|
46
|
+
const v = this.view.getInt32(this.off, true);
|
|
47
|
+
this.off += 4;
|
|
48
|
+
return v;
|
|
49
|
+
}
|
|
50
|
+
u32() {
|
|
51
|
+
const v = this.view.getUint32(this.off, true);
|
|
52
|
+
this.off += 4;
|
|
53
|
+
return v;
|
|
54
|
+
}
|
|
55
|
+
f32() {
|
|
56
|
+
const v = this.view.getFloat32(this.off, true);
|
|
57
|
+
this.off += 4;
|
|
58
|
+
return v;
|
|
59
|
+
}
|
|
60
|
+
bytesSlice(len) {
|
|
61
|
+
const start = this.off;
|
|
62
|
+
const end = start + len;
|
|
63
|
+
this.off = end;
|
|
64
|
+
return new Uint8Array(this.view.buffer, this.view.byteOffset + start, len);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
/* -------------------------------------------------------------------------- */
|
|
68
|
+
/* Old-style helpers */
|
|
69
|
+
/* -------------------------------------------------------------------------- */
|
|
70
|
+
// Old renderer conversion (truncate via |0, do not round).
|
|
71
|
+
function rgbaCss(r, g, b, a) {
|
|
72
|
+
return `rgba(${(r * 255) | 0}, ${(g * 255) | 0}, ${(b * 255) | 0}, ${a})`;
|
|
73
|
+
}
|
|
74
|
+
function resetTransform(ctx) {
|
|
75
|
+
ctx.setTransform(1, 0, 0, 1, 0, 0);
|
|
76
|
+
}
|
|
77
|
+
function applyCamera(ctx, canvasW, canvasH, x, y, zoom, rot) {
|
|
78
|
+
// Old renderer:
|
|
79
|
+
// ctx.resetTransform();
|
|
80
|
+
// ctx.translate(w/2, h/2);
|
|
81
|
+
// ctx.rotate(rot);
|
|
82
|
+
// ctx.scale(zoom, zoom);
|
|
83
|
+
// ctx.translate(-x, -y);
|
|
84
|
+
resetTransform(ctx);
|
|
85
|
+
ctx.translate(canvasW * 0.5, canvasH * 0.5);
|
|
86
|
+
ctx.rotate(rot);
|
|
87
|
+
ctx.scale(zoom, zoom);
|
|
88
|
+
ctx.translate(-x, -y);
|
|
89
|
+
}
|
|
90
|
+
// This matches the old canvasPrimitives-style rectangle outline more closely than strokeRect.
|
|
91
|
+
// It draws the border entirely "inside" the rect bounds (top/bot/left/right strips).
|
|
92
|
+
function drawRectangleLines(ctx, x, y, w, h, thick, color) {
|
|
93
|
+
if (!Number.isFinite(thick) || thick <= 0)
|
|
94
|
+
return;
|
|
95
|
+
ctx.fillStyle = color;
|
|
96
|
+
const t = thick;
|
|
97
|
+
// Top
|
|
98
|
+
ctx.fillRect(x, y, w, t);
|
|
99
|
+
// Bottom
|
|
100
|
+
ctx.fillRect(x, y + h - t, w, t);
|
|
101
|
+
// Left
|
|
102
|
+
ctx.fillRect(x, y, t, h);
|
|
103
|
+
// Right
|
|
104
|
+
ctx.fillRect(x + w - t, y, t, h);
|
|
105
|
+
}
|
|
106
|
+
function drawCircle(ctx, x, y, radius, color) {
|
|
107
|
+
ctx.beginPath();
|
|
108
|
+
ctx.arc(x, y, radius, 0, Math.PI * 2);
|
|
109
|
+
ctx.fillStyle = color;
|
|
110
|
+
ctx.fill();
|
|
111
|
+
}
|
|
112
|
+
function drawCircleLines(ctx, x, y, radius, thick, color) {
|
|
113
|
+
if (!Number.isFinite(thick) || thick <= 0)
|
|
114
|
+
return;
|
|
115
|
+
ctx.beginPath();
|
|
116
|
+
ctx.arc(x, y, radius, 0, Math.PI * 2);
|
|
117
|
+
ctx.lineWidth = thick;
|
|
118
|
+
ctx.strokeStyle = color;
|
|
119
|
+
ctx.stroke();
|
|
120
|
+
}
|
|
121
|
+
// Approximate the arc by a polyline with `sides` segments (old renderer forwarded `sides`).
|
|
122
|
+
function drawArc(ctx, x, y, radius, rotationDeg, arcDeg, sides, thick, color) {
|
|
123
|
+
if (!Number.isFinite(thick) || thick <= 0)
|
|
124
|
+
return;
|
|
125
|
+
const segs = (sides | 0) > 0 ? (sides | 0) : 1;
|
|
126
|
+
const a0 = rotationDeg * DEG2RAD;
|
|
127
|
+
const a1 = (rotationDeg + arcDeg) * DEG2RAD;
|
|
128
|
+
const step = (a1 - a0) / segs;
|
|
129
|
+
ctx.beginPath();
|
|
130
|
+
for (let i = 0; i <= segs; i++) {
|
|
131
|
+
const a = a0 + step * i;
|
|
132
|
+
const px = x + radius * Math.cos(a);
|
|
133
|
+
const py = y + radius * Math.sin(a);
|
|
134
|
+
if (i === 0)
|
|
135
|
+
ctx.moveTo(px, py);
|
|
136
|
+
else
|
|
137
|
+
ctx.lineTo(px, py);
|
|
138
|
+
}
|
|
139
|
+
ctx.lineWidth = thick;
|
|
140
|
+
ctx.strokeStyle = color;
|
|
141
|
+
ctx.stroke();
|
|
142
|
+
}
|
|
143
|
+
function drawEllipse(ctx, x, y, rx, ry, rotationDeg, color) {
|
|
144
|
+
ctx.beginPath();
|
|
145
|
+
ctx.ellipse(x, y, rx, ry, rotationDeg * DEG2RAD, 0, Math.PI * 2);
|
|
146
|
+
ctx.fillStyle = color;
|
|
147
|
+
ctx.fill();
|
|
148
|
+
}
|
|
149
|
+
function drawEllipseLines(ctx, x, y, rx, ry, rotationDeg, thick, color) {
|
|
150
|
+
if (!Number.isFinite(thick) || thick <= 0)
|
|
151
|
+
return;
|
|
152
|
+
ctx.beginPath();
|
|
153
|
+
ctx.ellipse(x, y, rx, ry, rotationDeg * DEG2RAD, 0, Math.PI * 2);
|
|
154
|
+
ctx.lineWidth = thick;
|
|
155
|
+
ctx.strokeStyle = color;
|
|
156
|
+
ctx.stroke();
|
|
157
|
+
}
|
|
158
|
+
function drawPoly(ctx, x, y, sides, radius, rotationDeg, color) {
|
|
159
|
+
const n = sides | 0;
|
|
160
|
+
if (n < 3)
|
|
161
|
+
return;
|
|
162
|
+
const rot = rotationDeg * DEG2RAD;
|
|
163
|
+
ctx.beginPath();
|
|
164
|
+
for (let i = 0; i < n; i++) {
|
|
165
|
+
const a = rot + (i * 2 * Math.PI) / n;
|
|
166
|
+
const px = x + radius * Math.cos(a);
|
|
167
|
+
const py = y + radius * Math.sin(a);
|
|
168
|
+
if (i === 0)
|
|
169
|
+
ctx.moveTo(px, py);
|
|
170
|
+
else
|
|
171
|
+
ctx.lineTo(px, py);
|
|
172
|
+
}
|
|
173
|
+
ctx.closePath();
|
|
174
|
+
ctx.fillStyle = color;
|
|
175
|
+
ctx.fill();
|
|
176
|
+
}
|
|
177
|
+
function drawPolyLines(ctx, x, y, sides, radius, rotationDeg, thick, color) {
|
|
178
|
+
const n = sides | 0;
|
|
179
|
+
if (n < 3)
|
|
180
|
+
return;
|
|
181
|
+
if (!Number.isFinite(thick) || thick <= 0)
|
|
182
|
+
return;
|
|
183
|
+
const rot = rotationDeg * DEG2RAD;
|
|
184
|
+
ctx.beginPath();
|
|
185
|
+
for (let i = 0; i < n; i++) {
|
|
186
|
+
const a = rot + (i * 2 * Math.PI) / n;
|
|
187
|
+
const px = x + radius * Math.cos(a);
|
|
188
|
+
const py = y + radius * Math.sin(a);
|
|
189
|
+
if (i === 0)
|
|
190
|
+
ctx.moveTo(px, py);
|
|
191
|
+
else
|
|
192
|
+
ctx.lineTo(px, py);
|
|
193
|
+
}
|
|
194
|
+
ctx.closePath();
|
|
195
|
+
ctx.lineWidth = thick;
|
|
196
|
+
ctx.strokeStyle = color;
|
|
197
|
+
ctx.stroke();
|
|
198
|
+
}
|
|
199
|
+
function drawHexagon(ctx, x, y, radius, vertical, border, borderColor, fillColor) {
|
|
200
|
+
const baseDeg = vertical ? -90 : -60;
|
|
201
|
+
const base = baseDeg * DEG2RAD;
|
|
202
|
+
ctx.beginPath();
|
|
203
|
+
for (let i = 0; i < 6; i++) {
|
|
204
|
+
const a = base + (i * 2 * Math.PI) / 6;
|
|
205
|
+
const px = x + radius * Math.cos(a);
|
|
206
|
+
const py = y + radius * Math.sin(a);
|
|
207
|
+
if (i === 0)
|
|
208
|
+
ctx.moveTo(px, py);
|
|
209
|
+
else
|
|
210
|
+
ctx.lineTo(px, py);
|
|
211
|
+
}
|
|
212
|
+
ctx.closePath();
|
|
213
|
+
ctx.fillStyle = fillColor;
|
|
214
|
+
ctx.fill();
|
|
215
|
+
if (Number.isFinite(border) && border > 0) {
|
|
216
|
+
ctx.lineWidth = border;
|
|
217
|
+
ctx.strokeStyle = borderColor;
|
|
218
|
+
ctx.stroke();
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
function drawTriangle(ctx, x1, y1, x2, y2, x3, y3, color) {
|
|
222
|
+
ctx.beginPath();
|
|
223
|
+
ctx.moveTo(x1, y1);
|
|
224
|
+
ctx.lineTo(x2, y2);
|
|
225
|
+
ctx.lineTo(x3, y3);
|
|
226
|
+
ctx.closePath();
|
|
227
|
+
ctx.fillStyle = color;
|
|
228
|
+
ctx.fill();
|
|
229
|
+
}
|
|
230
|
+
function drawTriangleLines(ctx, x1, y1, x2, y2, x3, y3, thick, color) {
|
|
231
|
+
if (!Number.isFinite(thick) || thick <= 0)
|
|
232
|
+
return;
|
|
233
|
+
ctx.beginPath();
|
|
234
|
+
ctx.moveTo(x1, y1);
|
|
235
|
+
ctx.lineTo(x2, y2);
|
|
236
|
+
ctx.lineTo(x3, y3);
|
|
237
|
+
ctx.closePath();
|
|
238
|
+
ctx.lineWidth = thick;
|
|
239
|
+
ctx.strokeStyle = color;
|
|
240
|
+
ctx.stroke();
|
|
241
|
+
}
|
|
242
|
+
export class Renderer2D {
|
|
243
|
+
constructor(canvas, opts) {
|
|
244
|
+
this.textDecoder = new TextDecoder('utf-8');
|
|
245
|
+
this.canvas = canvas;
|
|
246
|
+
this.w = opts.width;
|
|
247
|
+
this.h = opts.height;
|
|
248
|
+
this.autoClear = opts.autoClear;
|
|
249
|
+
this.canvas.width = this.w;
|
|
250
|
+
this.canvas.height = this.h;
|
|
251
|
+
const ctx = this.canvas.getContext('2d', { alpha: false });
|
|
252
|
+
if (!ctx)
|
|
253
|
+
throw new Error('Could not get 2D context from OffscreenCanvas');
|
|
254
|
+
this.ctx = ctx;
|
|
255
|
+
// Old renderer did not explicitly set these every frame; we keep defaults stable here.
|
|
256
|
+
this.ctx.imageSmoothingEnabled = false;
|
|
257
|
+
this.ctx.textAlign = 'left';
|
|
258
|
+
this.ctx.textBaseline = 'top';
|
|
259
|
+
// Old behavior: no implicit camera at start; start as identity.
|
|
260
|
+
resetTransform(this.ctx);
|
|
261
|
+
}
|
|
262
|
+
resize(width, height) {
|
|
263
|
+
this.w = width;
|
|
264
|
+
this.h = height;
|
|
265
|
+
this.canvas.width = width;
|
|
266
|
+
this.canvas.height = height;
|
|
267
|
+
// Resizing resets context state; re-apply stable settings.
|
|
268
|
+
this.ctx.imageSmoothingEnabled = false;
|
|
269
|
+
this.ctx.textAlign = 'left';
|
|
270
|
+
this.ctx.textBaseline = 'top';
|
|
271
|
+
resetTransform(this.ctx);
|
|
272
|
+
}
|
|
273
|
+
render(renderBytes) {
|
|
274
|
+
const ctx = this.ctx;
|
|
275
|
+
// OLD: ctx.resetTransform(); if (clear) fill black bg
|
|
276
|
+
resetTransform(ctx);
|
|
277
|
+
if (this.autoClear) {
|
|
278
|
+
ctx.fillStyle = 'black';
|
|
279
|
+
ctx.fillRect(0, 0, this.w, this.h);
|
|
280
|
+
}
|
|
281
|
+
const r = new BinReader(renderBytes);
|
|
282
|
+
while (r.remaining > 0) {
|
|
283
|
+
const cmd = r.u8();
|
|
284
|
+
switch (cmd) {
|
|
285
|
+
case DrawCmd.SetCamera: {
|
|
286
|
+
const x = r.f32();
|
|
287
|
+
const y = r.f32();
|
|
288
|
+
const zoom = r.f32();
|
|
289
|
+
const rot = r.f32(); // radians
|
|
290
|
+
applyCamera(ctx, this.w, this.h, x, y, zoom, rot);
|
|
291
|
+
break;
|
|
292
|
+
}
|
|
293
|
+
case DrawCmd.DrawLine: {
|
|
294
|
+
const x1 = r.f32();
|
|
295
|
+
const y1 = r.f32();
|
|
296
|
+
const x2 = r.f32();
|
|
297
|
+
const y2 = r.f32();
|
|
298
|
+
const thick = r.f32();
|
|
299
|
+
const rr = r.f32();
|
|
300
|
+
const gg = r.f32();
|
|
301
|
+
const bb = r.f32();
|
|
302
|
+
const aa = r.f32();
|
|
303
|
+
ctx.lineWidth = thick;
|
|
304
|
+
ctx.strokeStyle = rgbaCss(rr, gg, bb, aa);
|
|
305
|
+
ctx.beginPath();
|
|
306
|
+
ctx.moveTo(x1, y1);
|
|
307
|
+
ctx.lineTo(x2, y2);
|
|
308
|
+
ctx.stroke();
|
|
309
|
+
break;
|
|
310
|
+
}
|
|
311
|
+
case DrawCmd.DrawRectangle: {
|
|
312
|
+
const x = r.f32();
|
|
313
|
+
const y = r.f32();
|
|
314
|
+
const w = r.f32();
|
|
315
|
+
const h = r.f32();
|
|
316
|
+
const rr = r.f32();
|
|
317
|
+
const gg = r.f32();
|
|
318
|
+
const bb = r.f32();
|
|
319
|
+
const aa = r.f32();
|
|
320
|
+
ctx.fillStyle = rgbaCss(rr, gg, bb, aa);
|
|
321
|
+
ctx.fillRect(x, y, w, h);
|
|
322
|
+
break;
|
|
323
|
+
}
|
|
324
|
+
case DrawCmd.DrawRectangleLines: {
|
|
325
|
+
const x = r.f32();
|
|
326
|
+
const y = r.f32();
|
|
327
|
+
const w = r.f32();
|
|
328
|
+
const h = r.f32();
|
|
329
|
+
const thick = r.f32();
|
|
330
|
+
const rr = r.f32();
|
|
331
|
+
const gg = r.f32();
|
|
332
|
+
const bb = r.f32();
|
|
333
|
+
const aa = r.f32();
|
|
334
|
+
drawRectangleLines(ctx, x, y, w, h, thick, rgbaCss(rr, gg, bb, aa));
|
|
335
|
+
break;
|
|
336
|
+
}
|
|
337
|
+
case DrawCmd.DrawCircle: {
|
|
338
|
+
const x = r.f32();
|
|
339
|
+
const y = r.f32();
|
|
340
|
+
const radius = r.f32();
|
|
341
|
+
const rr = r.f32();
|
|
342
|
+
const gg = r.f32();
|
|
343
|
+
const bb = r.f32();
|
|
344
|
+
const aa = r.f32();
|
|
345
|
+
drawCircle(ctx, x, y, radius, rgbaCss(rr, gg, bb, aa));
|
|
346
|
+
break;
|
|
347
|
+
}
|
|
348
|
+
case DrawCmd.DrawCircleLines: {
|
|
349
|
+
const x = r.f32();
|
|
350
|
+
const y = r.f32();
|
|
351
|
+
const radius = r.f32();
|
|
352
|
+
const thick = r.f32();
|
|
353
|
+
const rr = r.f32();
|
|
354
|
+
const gg = r.f32();
|
|
355
|
+
const bb = r.f32();
|
|
356
|
+
const aa = r.f32();
|
|
357
|
+
drawCircleLines(ctx, x, y, radius, thick, rgbaCss(rr, gg, bb, aa));
|
|
358
|
+
break;
|
|
359
|
+
}
|
|
360
|
+
case DrawCmd.DrawArc: {
|
|
361
|
+
const x = r.f32();
|
|
362
|
+
const y = r.f32();
|
|
363
|
+
const radius = r.f32();
|
|
364
|
+
const rotationDeg = r.f32();
|
|
365
|
+
const arcDeg = r.f32();
|
|
366
|
+
const sides = r.i32();
|
|
367
|
+
const thick = r.f32();
|
|
368
|
+
const rr = r.f32();
|
|
369
|
+
const gg = r.f32();
|
|
370
|
+
const bb = r.f32();
|
|
371
|
+
const aa = r.f32();
|
|
372
|
+
drawArc(ctx, x, y, radius, rotationDeg, arcDeg, sides, thick, rgbaCss(rr, gg, bb, aa));
|
|
373
|
+
break;
|
|
374
|
+
}
|
|
375
|
+
case DrawCmd.DrawEllipse: {
|
|
376
|
+
const x = r.f32();
|
|
377
|
+
const y = r.f32();
|
|
378
|
+
const rx = r.f32();
|
|
379
|
+
const ry = r.f32();
|
|
380
|
+
const rotationDeg = r.f32();
|
|
381
|
+
const rr = r.f32();
|
|
382
|
+
const gg = r.f32();
|
|
383
|
+
const bb = r.f32();
|
|
384
|
+
const aa = r.f32();
|
|
385
|
+
drawEllipse(ctx, x, y, rx, ry, rotationDeg, rgbaCss(rr, gg, bb, aa));
|
|
386
|
+
break;
|
|
387
|
+
}
|
|
388
|
+
case DrawCmd.DrawEllipseLines: {
|
|
389
|
+
const x = r.f32();
|
|
390
|
+
const y = r.f32();
|
|
391
|
+
const rx = r.f32();
|
|
392
|
+
const ry = r.f32();
|
|
393
|
+
const rotationDeg = r.f32();
|
|
394
|
+
const thick = r.f32();
|
|
395
|
+
const rr = r.f32();
|
|
396
|
+
const gg = r.f32();
|
|
397
|
+
const bb = r.f32();
|
|
398
|
+
const aa = r.f32();
|
|
399
|
+
drawEllipseLines(ctx, x, y, rx, ry, rotationDeg, thick, rgbaCss(rr, gg, bb, aa));
|
|
400
|
+
break;
|
|
401
|
+
}
|
|
402
|
+
case DrawCmd.DrawPoly: {
|
|
403
|
+
const x = r.f32();
|
|
404
|
+
const y = r.f32();
|
|
405
|
+
const sides = r.i32();
|
|
406
|
+
const radius = r.f32();
|
|
407
|
+
const rotationDeg = r.f32();
|
|
408
|
+
const rr = r.f32();
|
|
409
|
+
const gg = r.f32();
|
|
410
|
+
const bb = r.f32();
|
|
411
|
+
const aa = r.f32();
|
|
412
|
+
drawPoly(ctx, x, y, sides, radius, rotationDeg, rgbaCss(rr, gg, bb, aa));
|
|
413
|
+
break;
|
|
414
|
+
}
|
|
415
|
+
case DrawCmd.DrawPolyLines: {
|
|
416
|
+
const x = r.f32();
|
|
417
|
+
const y = r.f32();
|
|
418
|
+
const sides = r.i32();
|
|
419
|
+
const radius = r.f32();
|
|
420
|
+
const rotationDeg = r.f32();
|
|
421
|
+
const thick = r.f32();
|
|
422
|
+
const rr = r.f32();
|
|
423
|
+
const gg = r.f32();
|
|
424
|
+
const bb = r.f32();
|
|
425
|
+
const aa = r.f32();
|
|
426
|
+
drawPolyLines(ctx, x, y, sides, radius, rotationDeg, thick, rgbaCss(rr, gg, bb, aa));
|
|
427
|
+
break;
|
|
428
|
+
}
|
|
429
|
+
case DrawCmd.DrawHexagon: {
|
|
430
|
+
const x = r.f32();
|
|
431
|
+
const y = r.f32();
|
|
432
|
+
const radius = r.f32();
|
|
433
|
+
const vertical = r.i32(); // 1 = pointy-top
|
|
434
|
+
const border = r.f32();
|
|
435
|
+
const fr = r.f32();
|
|
436
|
+
const fg = r.f32();
|
|
437
|
+
const fb = r.f32();
|
|
438
|
+
const fa = r.f32();
|
|
439
|
+
const br = r.f32();
|
|
440
|
+
const bg = r.f32();
|
|
441
|
+
const bb = r.f32();
|
|
442
|
+
const ba = r.f32();
|
|
443
|
+
const fill = rgbaCss(fr, fg, fb, fa);
|
|
444
|
+
const borderCol = rgbaCss(br, bg, bb, ba);
|
|
445
|
+
drawHexagon(ctx, x, y, radius, vertical === 1, border, borderCol, fill);
|
|
446
|
+
break;
|
|
447
|
+
}
|
|
448
|
+
case DrawCmd.DrawTriangle: {
|
|
449
|
+
const x1 = r.f32();
|
|
450
|
+
const y1 = r.f32();
|
|
451
|
+
const x2 = r.f32();
|
|
452
|
+
const y2 = r.f32();
|
|
453
|
+
const x3 = r.f32();
|
|
454
|
+
const y3 = r.f32();
|
|
455
|
+
const rr = r.f32();
|
|
456
|
+
const gg = r.f32();
|
|
457
|
+
const bb = r.f32();
|
|
458
|
+
const aa = r.f32();
|
|
459
|
+
drawTriangle(ctx, x1, y1, x2, y2, x3, y3, rgbaCss(rr, gg, bb, aa));
|
|
460
|
+
break;
|
|
461
|
+
}
|
|
462
|
+
case DrawCmd.DrawTriangleLines: {
|
|
463
|
+
const x1 = r.f32();
|
|
464
|
+
const y1 = r.f32();
|
|
465
|
+
const x2 = r.f32();
|
|
466
|
+
const y2 = r.f32();
|
|
467
|
+
const x3 = r.f32();
|
|
468
|
+
const y3 = r.f32();
|
|
469
|
+
const thick = r.f32();
|
|
470
|
+
const rr = r.f32();
|
|
471
|
+
const gg = r.f32();
|
|
472
|
+
const bb = r.f32();
|
|
473
|
+
const aa = r.f32();
|
|
474
|
+
drawTriangleLines(ctx, x1, y1, x2, y2, x3, y3, thick, rgbaCss(rr, gg, bb, aa));
|
|
475
|
+
break;
|
|
476
|
+
}
|
|
477
|
+
case DrawCmd.DrawText: {
|
|
478
|
+
const x = r.f32();
|
|
479
|
+
const y = r.f32();
|
|
480
|
+
const size = r.f32();
|
|
481
|
+
const rr = r.f32();
|
|
482
|
+
const gg = r.f32();
|
|
483
|
+
const bb = r.f32();
|
|
484
|
+
const aa = r.f32();
|
|
485
|
+
const len = r.u32();
|
|
486
|
+
const bytes = r.bytesSlice(len);
|
|
487
|
+
const text = this.textDecoder.decode(bytes);
|
|
488
|
+
ctx.fillStyle = rgbaCss(rr, gg, bb, aa);
|
|
489
|
+
ctx.font = `${size}px "Press Start 2P", "VT323", "Courier New", monospace`;
|
|
490
|
+
ctx.textBaseline = 'top';
|
|
491
|
+
ctx.fillText(text, x, y);
|
|
492
|
+
break;
|
|
493
|
+
}
|
|
494
|
+
default: {
|
|
495
|
+
// Unknown command: stop parsing (prevents infinite loops).
|
|
496
|
+
// eslint-disable-next-line no-console
|
|
497
|
+
console.warn('Unknown draw command id:', cmd, 'at byte offset', r.off - 1);
|
|
498
|
+
return;
|
|
499
|
+
}
|
|
500
|
+
}
|
|
501
|
+
}
|
|
502
|
+
}
|
|
503
|
+
}
|
|
504
|
+
//# sourceMappingURL=renderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../src/worker/renderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { WasmSnapshot } from '../types.js';
|
|
2
|
+
export declare class WasmSnapshotter {
|
|
3
|
+
private readonly instance;
|
|
4
|
+
private readonly module;
|
|
5
|
+
private readonly funcList;
|
|
6
|
+
private readonly funcIndexByFunc;
|
|
7
|
+
private readonly globals_num;
|
|
8
|
+
private readonly globals_i64;
|
|
9
|
+
private readonly globals_funcref;
|
|
10
|
+
private readonly tables;
|
|
11
|
+
private readonly memories;
|
|
12
|
+
constructor(instance: WebAssembly.Instance, module: WebAssembly.Module);
|
|
13
|
+
createSnapshot(): WasmSnapshot;
|
|
14
|
+
loadSnapshot(snap: WasmSnapshot): void;
|
|
15
|
+
private gatherExports;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=snapshotter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapshotter.d.ts","sourceRoot":"","sources":["../../src/worker/snapshotter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAIhD,qBAAa,eAAe;IAYxB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAZzB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;IAC3C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA6B;IAE7D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA4B;IACxD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA4B;IACxD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA4B;IAE5D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2B;IAClD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA4B;gBAGlC,QAAQ,EAAE,WAAW,CAAC,QAAQ,EAC9B,MAAM,EAAE,WAAW,CAAC,MAAM;IAK7C,cAAc,IAAI,YAAY;IAuE9B,YAAY,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;IAgEtC,OAAO,CAAC,aAAa;CA4DtB"}
|