melonjs 19.3.0 → 19.4.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.
Files changed (47) hide show
  1. package/README.md +1 -0
  2. package/build/application/application.d.ts.map +1 -1
  3. package/build/application/defaultApplicationSettings.d.ts +1 -0
  4. package/build/application/defaultApplicationSettings.d.ts.map +1 -1
  5. package/build/application/settings.d.ts +12 -0
  6. package/build/application/settings.d.ts.map +1 -1
  7. package/build/index.js +1063 -121
  8. package/build/index.js.map +4 -4
  9. package/build/input/pointerevent.d.ts.map +1 -1
  10. package/build/level/tiled/TMXLayer.d.ts +72 -5
  11. package/build/level/tiled/TMXLayer.d.ts.map +1 -1
  12. package/build/level/tiled/TMXTile.d.ts +19 -1
  13. package/build/level/tiled/TMXTile.d.ts.map +1 -1
  14. package/build/level/tiled/TMXTileMap.d.ts.map +1 -1
  15. package/build/level/tiled/TMXTileset.d.ts +15 -0
  16. package/build/level/tiled/TMXTileset.d.ts.map +1 -1
  17. package/build/level/tiled/renderer/TMXHexagonalRenderer.d.ts +7 -1
  18. package/build/level/tiled/renderer/TMXHexagonalRenderer.d.ts.map +1 -1
  19. package/build/level/tiled/renderer/TMXIsometricRenderer.d.ts +7 -1
  20. package/build/level/tiled/renderer/TMXIsometricRenderer.d.ts.map +1 -1
  21. package/build/level/tiled/renderer/TMXObliqueRenderer.d.ts.map +1 -1
  22. package/build/level/tiled/renderer/TMXOrthogonalRenderer.d.ts +7 -1
  23. package/build/level/tiled/renderer/TMXOrthogonalRenderer.d.ts.map +1 -1
  24. package/build/physics/sat.d.ts.map +1 -1
  25. package/build/physics/world.d.ts +16 -0
  26. package/build/physics/world.d.ts.map +1 -1
  27. package/build/renderable/imagelayer.d.ts.map +1 -1
  28. package/build/utils/function.d.ts +1 -1
  29. package/build/utils/function.d.ts.map +1 -1
  30. package/build/video/renderer.d.ts +15 -1
  31. package/build/video/renderer.d.ts.map +1 -1
  32. package/build/video/texture/cache.d.ts.map +1 -1
  33. package/build/video/texture/resource.d.ts +113 -0
  34. package/build/video/texture/resource.d.ts.map +1 -0
  35. package/build/video/webgl/batchers/material_batcher.d.ts +8 -1
  36. package/build/video/webgl/batchers/material_batcher.d.ts.map +1 -1
  37. package/build/video/webgl/renderers/tmxlayer/orthogonal.d.ts +108 -0
  38. package/build/video/webgl/renderers/tmxlayer/orthogonal.d.ts.map +1 -0
  39. package/build/video/webgl/utils/attributes.d.ts +7 -0
  40. package/build/video/webgl/utils/attributes.d.ts.map +1 -1
  41. package/build/video/webgl/utils/precision.d.ts +1 -1
  42. package/build/video/webgl/utils/precision.d.ts.map +1 -1
  43. package/build/video/webgl/utils/uniforms.d.ts +13 -0
  44. package/build/video/webgl/utils/uniforms.d.ts.map +1 -1
  45. package/build/video/webgl/webgl_renderer.d.ts +19 -0
  46. package/build/video/webgl/webgl_renderer.d.ts.map +1 -1
  47. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"pointerevent.d.ts","sourceRoot":"","sources":["../../src/input/pointerevent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,WAAW,MAAM,+BAA+B,CAAC;AAE7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAepD,OAAO,OAAO,MAAM,cAAc,CAAC;AAoBnC;;;GAGG;AACH,eAAO,IAAI,IAAI,EAAE,WAAW,CAAC;AAsgB7B;;GAEG;AACH,eAAO,IAAI,kBAAkB,EAAE,WAAW,GAAG,IAAW,CAAC;AAEzD;;GAEG;AACH,eAAO,MAAM,OAAO,EAAE,OAAiC,CAAC;AAExD;;GAEG;AACH,eAAO,IAAI,MAAM,EAAE,OAAe,CAAC;AAEnC;;;;GAIG;AACH,eAAO,IAAI,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;AAElD;;;GAGG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAE7C;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAY1E;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC7B,OAAO,EAAE,iBAAiB,EAC1B,KAAK,CAAC,EAAE,MAAM,GACZ,IAAI,CAEN;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,WAAW,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAanD;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAGnD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAgB,oBAAoB,CACnC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,GAAG,EACX,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,GAAG,IAAI,GAC5C,IAAI,CAsCN;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAClC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,GAAG,EACX,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,GAAG,IAAI,GAC7C,IAAI,CAiCN;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,CAMzD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAO5C;AAED;;;GAGG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAMzC"}
1
+ {"version":3,"file":"pointerevent.d.ts","sourceRoot":"","sources":["../../src/input/pointerevent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,WAAW,MAAM,+BAA+B,CAAC;AAE7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAepD,OAAO,OAAO,MAAM,cAAc,CAAC;AAoBnC;;;GAGG;AACH,eAAO,IAAI,IAAI,EAAE,WAAW,CAAC;AAmgB7B;;GAEG;AACH,eAAO,IAAI,kBAAkB,EAAE,WAAW,GAAG,IAAW,CAAC;AAEzD;;GAEG;AACH,eAAO,MAAM,OAAO,EAAE,OAAiC,CAAC;AAExD;;GAEG;AACH,eAAO,IAAI,MAAM,EAAE,OAAe,CAAC;AAEnC;;;;GAIG;AACH,eAAO,IAAI,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;AAElD;;;GAGG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAEzC;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAE7C;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAY1E;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC7B,OAAO,EAAE,iBAAiB,EAC1B,KAAK,CAAC,EAAE,MAAM,GACZ,IAAI,CAEN;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,WAAW,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAanD;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAGnD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAgB,oBAAoB,CACnC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,GAAG,EACX,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,GAAG,IAAI,GAC5C,IAAI,CAsCN;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAClC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,GAAG,EACX,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,GAAG,IAAI,GAC7C,IAAI,CAiCN;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,CAMzD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAO5C;AAED;;;GAGG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAMzC"}
@@ -64,10 +64,76 @@ export default class TMXLayer extends Renderable {
64
64
  name: any;
65
65
  cols: number;
66
66
  rows: number;
67
- layerData: any[];
67
+ /**
68
+ * The raw tile data for this layer. Each cell occupies two consecutive
69
+ * `Uint16` slots: the GID (with flip bits stripped) and a 3-bit flip
70
+ * mask. Cell `(x, y)` is at `layerData[(y * cols + x) * 2]` (row-major).
71
+ *
72
+ * The 16-bit GID slot caps per-tileset GIDs at 65 535. This matches the
73
+ * planned WebGL2 shader path (`RG16UI` index texture) — switching to
74
+ * `Uint32Array` would force a truncating copy at GPU upload time.
75
+ * @type {Uint16Array}
76
+ */
77
+ layerData: Uint16Array;
78
+ /**
79
+ * Lazy view cache of Tile objects, indexed by `y * cols + x` (row-major).
80
+ * Allocated lazily on the first `cellAt` / `getTile` call — the renderer
81
+ * hot path reads `layerData` directly and never touches this cache, so
82
+ * for games that never call `getTile`/`cellAt` from user code, this
83
+ * stays `null` for the layer's lifetime. Invalidated entry-by-entry by
84
+ * `setTile` and `clearTile`. The raw bytes in `layerData` are the source
85
+ * of truth; this exists only to preserve stable Tile identity across
86
+ * repeated user-facing reads.
87
+ * @type {Array<Tile|null>|null}
88
+ * @ignore
89
+ */
90
+ cachedTile: Array<Tile | null> | null;
91
+ /**
92
+ * Monotonically-increasing counter bumped by `setTile` and `clearTile`.
93
+ * Renderers can compare against a stashed value to detect mutations and
94
+ * decide whether to re-upload the layer data to the GPU.
95
+ * @type {number}
96
+ */
97
+ dataVersion: number;
98
+ /**
99
+ * How this layer is rendered. Resolved by `onActivateEvent` to one of:
100
+ * - `"shader"` — WebGL2 procedural shader path (single quad per tileset, fragment GID lookup)
101
+ * - `"prerender"`— offscreen-canvas bake at activation, blitted as one drawImage per frame
102
+ * - `"perTile"` — per-frame loop, one drawImage per visible tile
103
+ *
104
+ * User code may set this to one of the above values (or the special
105
+ * `"auto"`) before the layer is activated to override the engine's
106
+ * default choice; Tiled custom properties named `renderMode` are
107
+ * applied automatically via `applyTMXProperties`. If a forced mode
108
+ * is ineligible (e.g. `"shader"` on Canvas), a one-shot warning is
109
+ * emitted at activation and the layer falls back to the legacy path.
110
+ * @type {string}
111
+ * @default "auto"
112
+ */
113
+ renderMode: string;
68
114
  onActivateEvent(): void;
69
- preRender: any;
70
115
  canvasRenderer: CanvasRenderer | undefined;
116
+ preRender: boolean | undefined;
117
+ /**
118
+ * Resolve `this.renderMode` to one of "shader" / "prerender" / "perTile"
119
+ * based on eligibility checks and user/world hints. Emits a single
120
+ * `console.warn` at activation when a forced mode is ineligible, or
121
+ * when an auto-eligible mode falls back due to a layer feature the GPU
122
+ * path doesn't support (orientation, collection-of-image tileset, etc.).
123
+ * @ignore
124
+ */
125
+ _resolveRenderMode(): void;
126
+ /**
127
+ * Check whether this layer is eligible for the WebGL2 shader path.
128
+ * @param {object} renderer
129
+ * @param {boolean} gpuAllowed - whether `gpuTilemap` is enabled at the world level
130
+ * @returns {{ok: boolean, reason?: string}}
131
+ * @ignore
132
+ */
133
+ _checkShaderEligibility(renderer: object, gpuAllowed: boolean): {
134
+ ok: boolean;
135
+ reason?: string;
136
+ };
71
137
  onDeactivateEvent(): void;
72
138
  /**
73
139
  * Set the TMX renderer for this layer object
@@ -106,11 +172,12 @@ export default class TMXLayer extends Renderable {
106
172
  /**
107
173
  * assign the given Tile object to the specified position
108
174
  * @param {Tile} tile - the tile object to be assigned
109
- * @param {number} x - x coordinate (in world/pixels coordinates)
110
- * @param {number} y - y coordinate (in world/pixels coordinates)
175
+ * @param {number} x - x coordinate (in tile/column coordinates)
176
+ * @param {number} y - y coordinate (in tile/row coordinates)
111
177
  * @returns {Tile} the tile object
112
178
  */
113
179
  setTile(tile: Tile, x: number, y: number): Tile;
180
+ _truncationWarned: boolean | undefined;
114
181
  /**
115
182
  * return a new the Tile object corresponding to the given tile id
116
183
  * @param {number} tileId - tileId
@@ -153,6 +220,6 @@ export default class TMXLayer extends Renderable {
153
220
  draw(renderer: any, rect: any): void;
154
221
  }
155
222
  import Renderable from "../../renderable/renderable.js";
156
- import CanvasRenderer from "../../video/canvas/canvas_renderer";
157
223
  import Tile from "./TMXTile.js";
224
+ import CanvasRenderer from "../../video/canvas/canvas_renderer";
158
225
  //# sourceMappingURL=TMXLayer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TMXLayer.d.ts","sourceRoot":"","sources":["../../../src/level/tiled/TMXLayer.js"],"names":[],"mappings":"AAuDA;;;;GAIG;AACH;IACC;;;;;;;;OAQG;IACH,iBARW,MAAM,QACN,MAAM,aACN,MAAM,cACN,MAAM,eACN,MAAM,YACN,eAAe,KACf,MAAM,EA4IhB;IArIA,eAA4C;IAC5C,gBAA+C;IAG/C,oBAA8B;IAE9B;;;;OAIG;IACH,GAFU,MAAM,CAEN;IAEV;;;;OAIG;IACH,GAFU,MAAM,CAEN;IAEV;;;OAGG;IACH,UAFU,eAAe,CAED;IAGxB,aAAwE;IAGxE;;;MAGC;IAaD;;;OAGG;IACH,kBAFU,UAAU,EAAE,CAEI;IAE1B;;;OAGG;IACH,YAFU,OAAO,CAEM;IAEvB;;;;;OAKG;IACH,aAHU,MAAM,CAGmC;IAEnD;;;OAGG;IACH,OAFU,MAAM,CAEO;IASvB,UAAqB;IACrB,aAAuB;IACvB,aAAwB;IA+BxB,iBAAgD;IAwBjD,wBAiCC;IAnBC,eAA0D;IAQ1D,2CAKE;IASJ,0BAKC;IAED;;;;;;;OAOG;IACH,sBANW,WAAW,QASrB;IAFA,cAAwB;IAIzB;;;OAGG;IACH,eAFa,WAAW,CAIvB;IAED;;;;;OAKG;IACH,aAJW,MAAM,KACN,MAAM,GACJ,MAAM,CAKlB;IAED;;;;;;;;;;OAUG;IACH,WATW,MAAM,KACN,MAAM,GACJ,IAAI,CAoBhB;IAED;;;;;;OAMG;IACH,cALW,IAAI,KACJ,MAAM,KACN,MAAM,GACJ,IAAI,CAMhB;IAED;;;;;;OAMG;IACH,oBALW,MAAM,KACN,MAAM,KACN,MAAM,GACJ,IAAI,CAQhB;IAED;;;;;;;;;OASG;IACH,UARW,MAAM,KACN,MAAM,gBACN,MAAM,GACJ,IAAI,CAmBhB;IAED;;;;;;;;;OASG;IACH,aARW,MAAM,KACN,MAAM,QAoBhB;IAED;;;OAGG;IACH,yBAQC;IAED;;;OAGG;IACH,qCAwBC;CACD;uBAjbsB,gCAAgC;2BAC5B,oCAAoC;iBAE9C,cAAc"}
1
+ {"version":3,"file":"TMXLayer.d.ts","sourceRoot":"","sources":["../../../src/level/tiled/TMXLayer.js"],"names":[],"mappings":"AA2GA;;;;GAIG;AACH;IACC;;;;;;;;OAQG;IACH,iBARW,MAAM,QACN,MAAM,aACN,MAAM,cACN,MAAM,eACN,MAAM,YACN,eAAe,KACf,MAAM,EA4LhB;IArLA,eAA4C;IAC5C,gBAA+C;IAG/C,oBAA8B;IAE9B;;;;OAIG;IACH,GAFU,MAAM,CAEN;IAEV;;;;OAIG;IACH,GAFU,MAAM,CAEN;IAEV;;;OAGG;IACH,UAFU,eAAe,CAED;IAGxB,aAAwE;IAGxE;;;MAGC;IAaD;;;OAGG;IACH,kBAFU,UAAU,EAAE,CAEI;IAE1B;;;OAGG;IACH,YAFU,OAAO,CAEM;IAEvB;;;;;OAKG;IACH,aAHU,MAAM,CAGmC;IAEnD;;;OAGG;IACH,OAFU,MAAM,CAEO;IASvB,UAAqB;IACrB,aAAuB;IACvB,aAAwB;IA8BxB;;;;;;;;;OASG;IACH,WAFU,WAAW,CAEsC;IAE3D;;;;;;;;;;;OAWG;IACH,YAHU,KAAK,CAAC,IAAI,GAAC,IAAI,CAAC,GAAC,IAAI,CAGT;IAEtB;;;;;OAKG;IACH,aAFU,MAAM,CAEI;IAEpB;;;;;;;;;;;;;;OAcG;IACH,YAHU,MAAM,CAGQ;IAwBzB,wBAkCC;IAfC,2CAKE;IAOH,+BAAgD;IAKjD;;;;;;;OAOG;IACH,2BAqDC;IAED;;;;;;OAMG;IACH,kCALW,MAAM,cACN,OAAO,GACL;QAAC,EAAE,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAC,CA+C1C;IAGD,0BAOC;IAED;;;;;;;OAOG;IACH,sBANW,WAAW,QASrB;IAFA,cAAwB;IAIzB;;;OAGG;IACH,eAFa,WAAW,CAIvB;IAED;;;;;OAKG;IACH,aAJW,MAAM,KACN,MAAM,GACJ,MAAM,CAKlB;IAED;;;;;;;;;;OAUG;IACH,WATW,MAAM,KACN,MAAM,GACJ,IAAI,CAoBhB;IAED;;;;;;OAMG;IACH,cALW,IAAI,KACJ,MAAM,KACN,MAAM,GACJ,IAAI,CA4BhB;IAfC,uCAA6B;IAiB/B;;;;;;OAMG;IACH,oBALW,MAAM,KACN,MAAM,KACN,MAAM,GACJ,IAAI,CAQhB;IAED;;;;;;;;;OASG;IACH,UARW,MAAM,KACN,MAAM,gBACN,MAAM,GACJ,IAAI,CA6ChB;IAED;;;;;;;;;OASG;IACH,aARW,MAAM,KACN,MAAM,QA8BhB;IAED;;;OAGG;IACH,yBAQC;IAED;;;OAGG;IACH,qCAIC;CACD;uBAlrBsB,gCAAgC;iBAStC,cAAc;2BARJ,oCAAoC"}
@@ -1,3 +1,21 @@
1
+ /**
2
+ * Apply a flip-mask transform to a Matrix2d in-place. Resets the matrix to
3
+ * identity first, then applies the H / V / AD operations to flip / rotate a
4
+ * tile of `width × height` pixels around its center.
5
+ *
6
+ * This is the typed-array equivalent of `Tile.setTileTransform()` — both share
7
+ * the same math, but this variant is driven by a packed 3-bit mask (H=1, V=2,
8
+ * AD=4) so callers that have raw layerData bytes can build a flip transform
9
+ * without constructing a Tile.
10
+ *
11
+ * @param {Matrix2d} transform - the matrix to fill (mutated in place)
12
+ * @param {number} flipMask - 3-bit packed flip mask
13
+ * @param {number} width - tile width in pixels
14
+ * @param {number} height - tile height in pixels
15
+ * @returns {Matrix2d} the same matrix, for chaining
16
+ * @ignore
17
+ */
18
+ export function buildFlipTransform(transform: Matrix2d, flipMask: number, width: number, height: number): Matrix2d;
1
19
  /**
2
20
  * a basic tile object
3
21
  * @category Tilemap
@@ -69,6 +87,6 @@ export default class Tile extends Bounds {
69
87
  */
70
88
  getRenderable(settings?: object): Renderable;
71
89
  }
72
- import { Bounds } from "../../physics/bounds.ts";
73
90
  import { Matrix2d } from "../../math/matrix2d.ts";
91
+ import { Bounds } from "../../physics/bounds.ts";
74
92
  //# sourceMappingURL=TMXTile.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TMXTile.d.ts","sourceRoot":"","sources":["../../../src/level/tiled/TMXTile.js"],"names":[],"mappings":"AAWA;;;GAGG;AACH;IACC;;;;;OAKG;IACH,eALW,MAAM,KACN,MAAM,OACN,MAAM,WACN,UAAU,EAkFpB;IA/DA;;;OAGG;IACH,SAFU,UAAU,CAEE;IAEtB;;;;OAIG;IACH,kBAHU,QAAQ,GAAC,IAAI,CAGK;IAE5B;;;OAGG;IACH,KAFU,MAAM,CAEJ;IAEZ;;;OAGG;IACH,KAFU,MAAM,CAEJ;IAEZ;;;OAGG;IACH,QAFU,MAAM,CAEC;IAEjB;;;OAGG;IACH,UAFU,OAAO,CAE+B;IAEhD;;;OAGG;IACH,UAFU,OAAO,CAE+B;IAEhD;;;OAGG;IACH,WAFU,OAAO,CAEiC;IAElD;;;OAGG;IACH,SAFU,OAAO,CAE8C;IAYhE;;;;OAIG;IACH,4BAHW,QAAQ,QAmBlB;IAED;;;;OAIG;IACH,yBAHW,MAAM,GACJ,UAAU,CAmDtB;CACD;uBApLsB,yBAAyB;yBADvB,wBAAwB"}
1
+ {"version":3,"file":"TMXTile.d.ts","sourceRoot":"","sources":["../../../src/level/tiled/TMXTile.js"],"names":[],"mappings":"AAgBA;;;;;;;;;;;;;;;;GAgBG;AACH,8CAPW,QAAQ,YACR,MAAM,SACN,MAAM,UACN,MAAM,GACJ,QAAQ,CAwBpB;AAED;;;GAGG;AACH;IACC;;;;;OAKG;IACH,eALW,MAAM,KACN,MAAM,OACN,MAAM,WACN,UAAU,EAkFpB;IA/DA;;;OAGG;IACH,SAFU,UAAU,CAEE;IAEtB;;;;OAIG;IACH,kBAHU,QAAQ,GAAC,IAAI,CAGK;IAE5B;;;OAGG;IACH,KAFU,MAAM,CAEJ;IAEZ;;;OAGG;IACH,KAFU,MAAM,CAEJ;IAEZ;;;OAGG;IACH,QAFU,MAAM,CAEC;IAEjB;;;OAGG;IACH,UAFU,OAAO,CAE+B;IAEhD;;;OAGG;IACH,UAFU,OAAO,CAE+B;IAEhD;;;OAGG;IACH,WAFU,OAAO,CAEiC;IAElD;;;OAGG;IACH,SAFU,OAAO,CAE8C;IAYhE;;;;OAIG;IACH,4BAHW,QAAQ,QAmBlB;IAED;;;;OAIG;IACH,yBAHW,MAAM,GACJ,UAAU,CAmDtB;CACD;yBAlOwB,wBAAwB;uBAC1B,yBAAyB"}
@@ -1 +1 @@
1
- {"version":3,"file":"TMXTileMap.d.ts","sourceRoot":"","sources":["../../../src/level/tiled/TMXTileMap.js"],"names":[],"mappings":"AAqHA;;;;GAIG;AACH;IACC;;;;;;;;OAQG;IACH,qBARW,MAAM,QACN,MAAM,EA0JhB;IAlJA;;;OAGG;IACH,aAAgB;IAEhB;;;OAGG;IACH,MAFU,MAAM,CAEG;IAEnB;;;OAGG;IACH,MAFU,MAAM,CAEO;IAEvB;;;OAGG;IACH,MAFU,MAAM,CAEQ;IAExB;;;OAGG;IACH,WAFU,MAAM,CAEgB;IAEhC;;;OAGG;IACH,YAFU,MAAM,CAEkB;IAElC;;;;OAIG;IACH,UAHU,MAAM,CAGmB;IAEnC;;;;OAIG;IACH,aAHU,MAAM,CAGmB;IAEnC;;;;OAIG;IACH,OAHU,MAAM,CAGe;IAE/B;;;;OAIG;IACH,OAHU,MAAM,CAGe;IAE/B;;;;;OAKG;IACH,aAHU,MAAM,CAGmC;IAEnD;;;OAGG;IACH,SAFU,MAAM,CAEgB;IAEhC;;;OAGG;IACH,cAFU,MAAM,CAE0B;IAE1C;;;OAGG;IACH,OAFU,MAAM,CAEO;IAGvB,6CAAoB;IAInB,cAAgB;IAIhB,oBAAsB;IAIvB,kBAA8C;IAG9C,iCAAmD;IAGnD,sBAAwC;IACxC,iBAAmC;IACnC,kBAAqC;IAGrC,YAAoD;IAGpD,WAA8B;IAC9B,YAAgC;IAGhC,qBAA2C;IAwB3C,qBAAwB;IAGzB;;;OAGG;IACH,eAFa,WAAW,CAUvB;IAHC,+OAAuC;IAKzC;;;OAGG;IACH,aAFa,MAAM,CAKlB;IAED;;;OAGG;IACH,gCA2DC;IAED;;;;;;;;;;;OAWG;IACH,iBATW,SAAS,YACT,OAAO,sBACP,OAAO,QAuEjB;IAED;;;;;;;;;OASG;IACH,qBAJW,OAAO,GAEL,UAAU,EAAE,CAkGxB;IAED;;;OAGG;IACH,aAFa,QAAQ,EAAE,CAMtB;IAED;;OAEG;IACH,gBAKC;CACD;4BAjjB2B,sBAAsB;sBAV5B,+BAA+B;qBAOhC,eAAe"}
1
+ {"version":3,"file":"TMXTileMap.d.ts","sourceRoot":"","sources":["../../../src/level/tiled/TMXTileMap.js"],"names":[],"mappings":"AAsIA;;;;GAIG;AACH;IACC;;;;;;;;OAQG;IACH,qBARW,MAAM,QACN,MAAM,EA0JhB;IAlJA;;;OAGG;IACH,aAAgB;IAEhB;;;OAGG;IACH,MAFU,MAAM,CAEG;IAEnB;;;OAGG;IACH,MAFU,MAAM,CAEO;IAEvB;;;OAGG;IACH,MAFU,MAAM,CAEQ;IAExB;;;OAGG;IACH,WAFU,MAAM,CAEgB;IAEhC;;;OAGG;IACH,YAFU,MAAM,CAEkB;IAElC;;;;OAIG;IACH,UAHU,MAAM,CAGmB;IAEnC;;;;OAIG;IACH,aAHU,MAAM,CAGmB;IAEnC;;;;OAIG;IACH,OAHU,MAAM,CAGe;IAE/B;;;;OAIG;IACH,OAHU,MAAM,CAGe;IAE/B;;;;;OAKG;IACH,aAHU,MAAM,CAGmC;IAEnD;;;OAGG;IACH,SAFU,MAAM,CAEgB;IAEhC;;;OAGG;IACH,cAFU,MAAM,CAE0B;IAE1C;;;OAGG;IACH,OAFU,MAAM,CAEO;IAGvB,6CAAoB;IAInB,cAAgB;IAIhB,oBAAsB;IAIvB,kBAA8C;IAG9C,iCAAmD;IAGnD,sBAAwC;IACxC,iBAAmC;IACnC,kBAAqC;IAGrC,YAAoD;IAGpD,WAA8B;IAC9B,YAAgC;IAGhC,qBAA2C;IAwB3C,qBAAwB;IAGzB;;;OAGG;IACH,eAFa,WAAW,CAUvB;IAHC,+OAAuC;IAKzC;;;OAGG;IACH,aAFa,MAAM,CAKlB;IAED;;;OAGG;IACH,gCA2DC;IAED;;;;;;;;;;;OAWG;IACH,iBATW,SAAS,YACT,OAAO,sBACP,OAAO,QA+EjB;IAED;;;;;;;;;OASG;IACH,qBAJW,OAAO,GAEL,UAAU,EAAE,CAkGxB;IAED;;;OAGG;IACH,aAFa,QAAQ,EAAE,CAMtB;IAED;;OAEG;IACH,gBAKC;CACD;4BA1kB2B,sBAAsB;sBAV5B,+BAA+B;qBAOhC,eAAe"}
@@ -197,6 +197,21 @@ export default class TMXTileset {
197
197
  * @ignore
198
198
  */
199
199
  drawTile(renderer: CanvasRenderer | WebGLRenderer, dx: number, dy: number, tmxTile: Tile): void;
200
+ /**
201
+ * draw a tile at the specified position from raw (gid, flipMask) data
202
+ *
203
+ * Like {@link drawTile} but bypasses the {@link Tile} object entirely:
204
+ * the renderer hot loop can pass the GID and flip mask straight from
205
+ * `layer.layerData` without ever allocating a Tile instance.
206
+ *
207
+ * @param {CanvasRenderer|WebGLRenderer} renderer - a renderer instance
208
+ * @param {number} dx - destination x position
209
+ * @param {number} dy - destination y position
210
+ * @param {number} gid - the tile's global id (with flip bits already stripped)
211
+ * @param {number} flipMask - 3-bit packed flip mask (H=1, V=2, AD=4)
212
+ * @ignore
213
+ */
214
+ drawTileRaw(renderer: CanvasRenderer | WebGLRenderer, dx: number, dy: number, gid: number, flipMask: number): void;
200
215
  }
201
216
  import { Vector2d } from "../../math/vector2d.ts";
202
217
  //# sourceMappingURL=TMXTileset.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TMXTileset.d.ts","sourceRoot":"","sources":["../../../src/level/tiled/TMXTileset.js"],"names":[],"mappings":"AAOA;;;GAGG;AACH;IACC;;;;OAIG;IACH,qBAJY,MAAM,iBACN,MAAM,kBACN,MAAM,EA8MjB;IA3MA;;;;OAIG;IACH,gBAHU,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAGE;IAE/B;;;;OAIG;IACH,iBAHU,GAAG,CAAC,MAAM,EAAE,gBAAgB,GAAC,iBAAiB,CAAC,CAGzB;IAEhC;;;OAGG;IACH,UAFU,MAAM,CAEiB;IAEjC;;;OAGG;IACH,SAFU,MAAM,CAEY;IAe5B;;;OAGG;IACH,MAFU,MAAM,CAEQ;IAExB;;;OAGG;IACH,WAFU,MAAM,CAEmB;IAEnC;;;OAGG;IACH,YAFU,MAAM,CAEqB;IAErC;;;;OAIG;IACH,SAHU,MAAM,CAGsB;IAEtC;;;;OAIG;IACH,QAHU,MAAM,CAGoB;IAEpC;;;OAGG;IACH,YAFU,QAAQ,CAEc;IAEhC;;;OAGG;IACH,YAFU,OAAO,CAEM;IAEvB;;;OAGG;IACH,cAFU,OAAO,CAEQ;IAEzB;;;OAGG;IACH,OAFU,MAAM,CAE0B;IAE1C;;;;OAIG;IACH,gBAHU,MAAM,CAGsC;IAEtD;;;;OAIG;IACH,UAHU,MAAM,CAG6B;IAE7C;;;;OAIG;IACH,cAHU,MAAM,CAGkC;IAElD;;;;OAIG;IACH,eAHU,MAAM,CAGqC;IAErD;;;OAGG;IACH,sBAAsB;IACtB,sBAAsB;IACtB,kBAA+B;IAC/B,kBAAgC;IAChC,wBAAwB;IACxB,wBAAwB;IACxB,wBAAwB;IAsBxB;;;;OAIG;IACH,cAHU,GAAG,CAAC,MAAM,EAAE;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,CAAC,CAG/C;IAE7B;;;;OAIG;IACH,mBAA2B;IAE3B;;;OAGG;IACH,oBAAoB;IAgCrB;;;;OAIG;IACH,oBAHW,MAAM,EAAE,GAAC,MAAM,QA2GzB;IAED;;;;OAIG;IACH,oBAHW,MAAM,QA0ChB;IArCA,WAAoC;IASpC,aAKE;IACF,WAAoC;IAwBrC;;;;OAIG;IACH,kBAHW,MAAM,GACJ,gBAAgB,GAAC,iBAAiB,GAAC,SAAS,CAIxD;IAED;;;;;OAKG;IACH,qBAJW,MAAM,QACN,MAAM,QAKhB;IAED;;;;OAIG;IACH,cAHW,MAAM,GACJ,OAAO,CAInB;IAED;;;;OAIG;IACH,mBAHW,MAAM,GACJ,MAAM,CAYlB;IAED;;;;OAIG;IACH,0BAHW,MAAM,GACJ,MAAM,GAAC,SAAS,CAI5B;IAED;;;;;OAKG;IACH,WAJW,MAAM,GACJ,OAAO,CAwBnB;IAED;;;;;;;OAOG;IACH,mBANW,cAAc,GAAC,aAAa,MAC5B,MAAM,MACN,MAAM,WACN,IAAI,QAqFd;CACD;yBAxiBwB,wBAAwB"}
1
+ {"version":3,"file":"TMXTileset.d.ts","sourceRoot":"","sources":["../../../src/level/tiled/TMXTileset.js"],"names":[],"mappings":"AAcA;;;GAGG;AACH;IACC;;;;OAIG;IACH,qBAJY,MAAM,iBACN,MAAM,kBACN,MAAM,EA8MjB;IA3MA;;;;OAIG;IACH,gBAHU,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAGE;IAE/B;;;;OAIG;IACH,iBAHU,GAAG,CAAC,MAAM,EAAE,gBAAgB,GAAC,iBAAiB,CAAC,CAGzB;IAEhC;;;OAGG;IACH,UAFU,MAAM,CAEiB;IAEjC;;;OAGG;IACH,SAFU,MAAM,CAEY;IAe5B;;;OAGG;IACH,MAFU,MAAM,CAEQ;IAExB;;;OAGG;IACH,WAFU,MAAM,CAEmB;IAEnC;;;OAGG;IACH,YAFU,MAAM,CAEqB;IAErC;;;;OAIG;IACH,SAHU,MAAM,CAGsB;IAEtC;;;;OAIG;IACH,QAHU,MAAM,CAGoB;IAEpC;;;OAGG;IACH,YAFU,QAAQ,CAEc;IAEhC;;;OAGG;IACH,YAFU,OAAO,CAEM;IAEvB;;;OAGG;IACH,cAFU,OAAO,CAEQ;IAEzB;;;OAGG;IACH,OAFU,MAAM,CAE0B;IAE1C;;;;OAIG;IACH,gBAHU,MAAM,CAGsC;IAEtD;;;;OAIG;IACH,UAHU,MAAM,CAG6B;IAE7C;;;;OAIG;IACH,cAHU,MAAM,CAGkC;IAElD;;;;OAIG;IACH,eAHU,MAAM,CAGqC;IAErD;;;OAGG;IACH,sBAAsB;IACtB,sBAAsB;IACtB,kBAA+B;IAC/B,kBAAgC;IAChC,wBAAwB;IACxB,wBAAwB;IACxB,wBAAwB;IAsBxB;;;;OAIG;IACH,cAHU,GAAG,CAAC,MAAM,EAAE;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,CAAC,CAG/C;IAE7B;;;;OAIG;IACH,mBAA2B;IAE3B;;;OAGG;IACH,oBAAoB;IAgCrB;;;;OAIG;IACH,oBAHW,MAAM,EAAE,GAAC,MAAM,QA2GzB;IAED;;;;OAIG;IACH,oBAHW,MAAM,QA0ChB;IArCA,WAAoC;IASpC,aAKE;IACF,WAAoC;IAwBrC;;;;OAIG;IACH,kBAHW,MAAM,GACJ,gBAAgB,GAAC,iBAAiB,GAAC,SAAS,CAIxD;IAED;;;;;OAKG;IACH,qBAJW,MAAM,QACN,MAAM,QAKhB;IAED;;;;OAIG;IACH,cAHW,MAAM,GACJ,OAAO,CAInB;IAED;;;;OAIG;IACH,mBAHW,MAAM,GACJ,MAAM,CAYlB;IAED;;;;OAIG;IACH,0BAHW,MAAM,GACJ,MAAM,GAAC,SAAS,CAI5B;IAED;;;;;OAKG;IACH,WAJW,MAAM,GACJ,OAAO,CAwBnB;IAED;;;;;;;OAOG;IACH,mBANW,cAAc,GAAC,aAAa,MAC5B,MAAM,MACN,MAAM,WACN,IAAI,QAqFd;IAED;;;;;;;;;;;;;OAaG;IACH,sBAPW,cAAc,GAAC,aAAa,MAC5B,MAAM,MACN,MAAM,OACN,MAAM,YACN,MAAM,QA+FhB;CACD;yBA1pBwB,wBAAwB"}
@@ -62,10 +62,16 @@ export default class TMXHexagonalRenderer extends TMXRenderer {
62
62
  */
63
63
  tileToPixelCoords(x: any, y: any, v: any): any;
64
64
  /**
65
- * draw the tile map
65
+ * draw the tile map (legacy entry point — accepts a fully-constructed Tile)
66
66
  * @ignore
67
67
  */
68
68
  drawTile(renderer: any, x: any, y: any, tmxTile: any): void;
69
+ /**
70
+ * draw a tile from raw (gid, flipMask, tileset) data — used by the hot
71
+ * rendering loop to bypass Tile construction
72
+ * @ignore
73
+ */
74
+ drawTileRaw(renderer: any, x: any, y: any, gid: any, flipMask: any, tileset: any): void;
69
75
  /**
70
76
  * draw the tile map
71
77
  * @ignore
@@ -1 +1 @@
1
- {"version":3,"file":"TMXHexagonalRenderer.d.ts","sourceRoot":"","sources":["../../../../src/level/tiled/renderer/TMXHexagonalRenderer.js"],"names":[],"mappings":"AAmBA;;;GAGG;AACH;IACC;;OAEG;IACH,iBAFW,UAAU,EAgCpB;IA3BA,mBAA2C;IAC3C,kBAAuC;IACvC,qBAA8C;IAE9C,iBAAoB;IACpB,iBAAoB;IAUpB,oBAA0D;IAC1D,oBAA2D;IAE3D,iBAAsD;IACtD,eAAoD;IAEpD,oBAKC;IAGF;;;OAGG;IACH,+BAEC;IAED;;;OAGG;IACH,0DA0BC;IAED;;OAEG;IACH,mCAEC;IAED;;OAEG;IACH,mCAEC;IAED;;OAEG;IACH,qCAiBC;IAED;;OAEG;IACH,sCAiBC;IAED;;OAEG;IACH,wCAiBC;IAED;;OAEG;IACH,yCAiBC;IAED;;;OAGG;IACH,+CAqFC;IAED;;;OAGG;IACH,+CAoBC;IAED;;;OAGG;IACH,4DAaC;IAED;;;OAGG;IACH,0DA4HC;CACD;wBA/cuB,kBAAkB;yBAHH,2BAA2B"}
1
+ {"version":3,"file":"TMXHexagonalRenderer.d.ts","sourceRoot":"","sources":["../../../../src/level/tiled/renderer/TMXHexagonalRenderer.js"],"names":[],"mappings":"AAmBA;;;GAGG;AACH;IACC;;OAEG;IACH,iBAFW,UAAU,EAgCpB;IA3BA,mBAA2C;IAC3C,kBAAuC;IACvC,qBAA8C;IAE9C,iBAAoB;IACpB,iBAAoB;IAUpB,oBAA0D;IAC1D,oBAA2D;IAE3D,iBAAsD;IACtD,eAAoD;IAEpD,oBAKC;IAGF;;;OAGG;IACH,+BAEC;IAED;;;OAGG;IACH,0DA0BC;IAED;;OAEG;IACH,mCAEC;IAED;;OAEG;IACH,mCAEC;IAED;;OAEG;IACH,qCAiBC;IAED;;OAEG;IACH,sCAiBC;IAED;;OAEG;IACH,wCAiBC;IAED;;OAEG;IACH,yCAiBC;IAED;;;OAGG;IACH,+CAqFC;IAED;;;OAGG;IACH,+CAoBC;IAED;;;OAGG;IACH,4DAaC;IAED;;;;OAIG;IACH,wFAYC;IAED;;;OAGG;IACH,0DAoKC;CACD;wBA1gBuB,kBAAkB;yBAHH,2BAA2B"}
@@ -37,10 +37,16 @@ export default class TMXIsometricRenderer extends TMXRenderer {
37
37
  */
38
38
  adjustPosition(obj: any): void;
39
39
  /**
40
- * draw the tile map
40
+ * draw the tile map (legacy entry point — accepts a fully-constructed Tile)
41
41
  * @ignore
42
42
  */
43
43
  drawTile(renderer: any, x: any, y: any, tmxTile: any): void;
44
+ /**
45
+ * draw a tile from raw (gid, flipMask, tileset) data — used by the hot
46
+ * rendering loop to bypass Tile construction
47
+ * @ignore
48
+ */
49
+ drawTileRaw(renderer: any, x: any, y: any, gid: any, flipMask: any, tileset: any): void;
44
50
  /**
45
51
  * draw the tile map
46
52
  * @ignore
@@ -1 +1 @@
1
- {"version":3,"file":"TMXIsometricRenderer.d.ts","sourceRoot":"","sources":["../../../../src/level/tiled/renderer/TMXIsometricRenderer.js"],"names":[],"mappings":"AAKA;;;GAGG;AACH;IACC;;OAEG;IACH,iBAFW,UAAU,EAQpB;IAHA,mBAAoC;IACpC,oBAAsC;IACtC,gBAA0C;IAG3C;;;OAGG;IACH,+BAEC;IAED;;;OAGG;IACH,0DASC;IAED;;;OAGG;IACH,+CAMC;IAED;;;OAGG;IACH,+CAMC;IAED;;;;OAIG;IACH,+BAWC;IAED;;;OAGG;IACH,4DASC;IAED;;;OAGG;IACH,0DAqGC;CACD;wBA5MuB,kBAAkB"}
1
+ {"version":3,"file":"TMXIsometricRenderer.d.ts","sourceRoot":"","sources":["../../../../src/level/tiled/renderer/TMXIsometricRenderer.js"],"names":[],"mappings":"AAKA;;;GAGG;AACH;IACC;;OAEG;IACH,iBAFW,UAAU,EAQpB;IAHA,mBAAoC;IACpC,oBAAsC;IACtC,gBAA0C;IAG3C;;;OAGG;IACH,+BAEC;IAED;;;OAGG;IACH,0DASC;IAED;;;OAGG;IACH,+CAMC;IAED;;;OAGG;IACH,+CAMC;IAED;;;;OAIG;IACH,+BAWC;IAED;;;OAGG;IACH,4DASC;IAED;;;;OAIG;IACH,wFAQC;IAED;;;OAGG;IACH,0DA8HC;CACD;wBApPuB,kBAAkB"}
@@ -1 +1 @@
1
- {"version":3,"file":"TMXObliqueRenderer.d.ts","sourceRoot":"","sources":["../../../../src/level/tiled/renderer/TMXObliqueRenderer.js"],"names":[],"mappings":"AAKA;;;;;GAKG;AACH;IAOE;;;OAGG;IACH,OAFU,MAAM,CAEM;IAEtB;;;OAGG;IACH,OAFU,MAAM,CAEM;IAEtB;;;OAGG;IACH,QAFU,MAAM,CAEsD;IAEtE;;;OAGG;IACH,QAFU,MAAM,CAEoD;IAEpE;;;OAGG;IACH,MAFU,MAAM,CAEyB;IAe1C;;;;OAIG;IACH,kBAHW,QAAQ,GACN,MAAM,CAqBlB;CAoID;kCAtNiC,4BAA4B;qBADzC,kBAAkB"}
1
+ {"version":3,"file":"TMXObliqueRenderer.d.ts","sourceRoot":"","sources":["../../../../src/level/tiled/renderer/TMXObliqueRenderer.js"],"names":[],"mappings":"AAKA;;;;;GAKG;AACH;IAOE;;;OAGG;IACH,OAFU,MAAM,CAEM;IAEtB;;;OAGG;IACH,OAFU,MAAM,CAEM;IAEtB;;;OAGG;IACH,QAFU,MAAM,CAEsD;IAEtE;;;OAGG;IACH,QAFU,MAAM,CAEoD;IAEpE;;;OAGG;IACH,MAFU,MAAM,CAEyB;IAe1C;;;;OAIG;IACH,kBAHW,QAAQ,GACN,MAAM,CAqBlB;CAgKD;kCAlPiC,4BAA4B;qBADzC,kBAAkB"}
@@ -23,10 +23,16 @@ export default class TMXOrthogonalRenderer extends TMXRenderer {
23
23
  */
24
24
  tileToPixelCoords(x: any, y: any, v: any): any;
25
25
  /**
26
- * draw the tile map
26
+ * draw the tile map (legacy entry point — accepts a fully-constructed Tile)
27
27
  * @ignore
28
28
  */
29
29
  drawTile(renderer: any, x: any, y: any, tmxTile: any): void;
30
+ /**
31
+ * draw a tile from raw (gid, flipMask, tileset) data — used by the hot
32
+ * rendering loop to bypass Tile construction
33
+ * @ignore
34
+ */
35
+ drawTileRaw(renderer: any, x: any, y: any, gid: any, flipMask: any, tileset: any): void;
30
36
  /**
31
37
  * draw the tile map
32
38
  * @ignore
@@ -1 +1 @@
1
- {"version":3,"file":"TMXOrthogonalRenderer.d.ts","sourceRoot":"","sources":["../../../../src/level/tiled/renderer/TMXOrthogonalRenderer.js"],"names":[],"mappings":"AAGA;;;GAGG;AACH;IACC;;OAEG;IACH,iBAFW,UAAU,EAIpB;IAED;;;OAGG;IACH,+BAEC;IAED;;;OAGG;IACH,+CAGC;IAED;;;OAGG;IACH,+CAGC;IAED;;;OAGG;IACH,4DASC;IAED;;;OAGG;IACH,0DAwDC;CACD;wBApHuB,kBAAkB"}
1
+ {"version":3,"file":"TMXOrthogonalRenderer.d.ts","sourceRoot":"","sources":["../../../../src/level/tiled/renderer/TMXOrthogonalRenderer.js"],"names":[],"mappings":"AAGA;;;GAGG;AACH;IACC;;OAEG;IACH,iBAFW,UAAU,EAIpB;IAED;;;OAGG;IACH,+BAEC;IAED;;;OAGG;IACH,+CAGC;IAED;;;OAGG;IACH,+CAGC;IAED;;;OAGG;IACH,4DASC;IAED;;;;OAIG;IACH,wFAQC;IAED;;;OAGG;IACH,0DA6EC;CACD;wBAxJuB,kBAAkB"}
@@ -1 +1 @@
1
- {"version":3,"file":"sat.d.ts","sourceRoot":"","sources":["../../src/physics/sat.js"],"names":[],"mappings":"AAiNA;;;;;;;;;GASG;AACH,sCAPW,UAAU,GAAC,SAAS,GAAC,MAAM,GAAC,MAAM,GAAC,eAAe,SAClD,OAAO,KACP,UAAU,GAAC,SAAS,GAAC,MAAM,GAAC,MAAM,GAAC,eAAe,SAClD,OAAO,aACP,QAAQ,YAAC,GACP,OAAO,CA8CnB;AAED;;;;;;;;;;GAUG;AACH,sCARW,UAAU,GAAC,SAAS,GAAC,MAAM,GAAC,MAAM,GAAC,eAAe,YAClD,OAAO,KACP,UAAU,GAAC,SAAS,GAAC,MAAM,GAAC,MAAM,GAAC,eAAe,YAClD,OAAO,aACP,QAAQ,YAAC,GAEP,OAAO,CA2DnB;AAED;;;;;;;;;GASG;AACH,sCAPW,UAAU,GAAC,SAAS,GAAC,MAAM,GAAC,MAAM,GAAC,eAAe,SAClD,OAAO,KACP,UAAU,GAAC,SAAS,GAAC,MAAM,GAAC,MAAM,GAAC,eAAe,YAClD,OAAO,aACP,QAAQ,YAAC,GACP,OAAO,CAgKnB;AAED;;;;;;;;;;;;GAYG;AACH,sCARW,UAAU,GAAC,SAAS,GAAC,MAAM,GAAC,MAAM,GAAC,eAAe,YAClD,OAAO,KACP,UAAU,GAAC,SAAS,GAAC,MAAM,GAAC,MAAM,GAAC,eAAe,SAClD,OAAO,aACP,QAAQ,YAAC,GAEP,OAAO,CAiBnB;4BA3gB0B,+BAA+B;2BADhC,8BAA8B;wBADjC,kCAAkC;wBAGlC,2BAA2B;iCAClB,oCAAoC;6BAC1C,0BAA0B;6BAC1B,4BAA4B"}
1
+ {"version":3,"file":"sat.d.ts","sourceRoot":"","sources":["../../src/physics/sat.js"],"names":[],"mappings":"AAiNA;;;;;;;;;GASG;AACH,sCAPW,UAAU,GAAC,SAAS,GAAC,MAAM,GAAC,MAAM,GAAC,eAAe,SAClD,OAAO,KACP,UAAU,GAAC,SAAS,GAAC,MAAM,GAAC,MAAM,GAAC,eAAe,SAClD,OAAO,aACP,QAAQ,YAAC,GACP,OAAO,CA8CnB;AAED;;;;;;;;;;GAUG;AACH,sCARW,UAAU,GAAC,SAAS,GAAC,MAAM,GAAC,MAAM,GAAC,eAAe,YAClD,OAAO,KACP,UAAU,GAAC,SAAS,GAAC,MAAM,GAAC,MAAM,GAAC,eAAe,YAClD,OAAO,aACP,QAAQ,YAAC,GAEP,OAAO,CAiEnB;AAED;;;;;;;;;GASG;AACH,sCAPW,UAAU,GAAC,SAAS,GAAC,MAAM,GAAC,MAAM,GAAC,eAAe,SAClD,OAAO,KACP,UAAU,GAAC,SAAS,GAAC,MAAM,GAAC,MAAM,GAAC,eAAe,YAClD,OAAO,aACP,QAAQ,YAAC,GACP,OAAO,CAsKnB;AAED;;;;;;;;;;;;GAYG;AACH,sCARW,UAAU,GAAC,SAAS,GAAC,MAAM,GAAC,MAAM,GAAC,eAAe,YAClD,OAAO,KACP,UAAU,GAAC,SAAS,GAAC,MAAM,GAAC,MAAM,GAAC,eAAe,SAClD,OAAO,aACP,QAAQ,YAAC,GAEP,OAAO,CAiBnB;4BAvhB0B,+BAA+B;2BADhC,8BAA8B;wBADjC,kCAAkC;wBAGlC,2BAA2B;iCAClB,oCAAoC;6BAC1C,0BAA0B;6BAC1B,4BAA4B"}
@@ -51,6 +51,22 @@ export default class World extends Container {
51
51
  * @default false
52
52
  */
53
53
  preRender: boolean;
54
+ /**
55
+ * Enable the WebGL2 procedural shader path for orthogonal tile
56
+ * layers. When `true` (default), eligible layers render via a
57
+ * single quad per tileset + a fragment shader doing per-pixel GID
58
+ * lookup — bypassing the per-tile drawImage loop entirely.
59
+ * Supported features on the shader path: animated tiles, all
60
+ * three flip bits (H/V/AD), per-layer opacity/tint/blend mode,
61
+ * and oversized bottom-aligned tiles up to 4 cells of overflow.
62
+ * Layers that don't qualify (Canvas/WebGL1, non-orthogonal,
63
+ * collection-of-image tilesets, non-zero `tileoffset`, or tile
64
+ * overflow beyond the shader's 4-cell limit) fall back to the
65
+ * legacy path automatically. Set to `false` to disable globally.
66
+ * @type {boolean}
67
+ * @default true
68
+ */
69
+ gpuTilemap: boolean;
54
70
  /**
55
71
  * the active physic bodies in this simulation
56
72
  * @type {Set<Body>}
@@ -1 +1 @@
1
- {"version":3,"file":"world.d.ts","sourceRoot":"","sources":["../../src/physics/world.js"],"names":[],"mappings":"AAeA;;;GAGG;AAEH;;;GAGG;AACH;IACC;;;;;OAKG;IACH,gBALW,MAAM,MACN,MAAM,UACN,MAAM,WACN,MAAM,EAqFhB;IAzEA;;;OAGG;IACH,KAFU,WAAW,CAED;IAEpB;;;;;;;;OAQG;IACH,QANU,MAAM,CAMO;IAEvB;;;;;OAKG;IACH,YAAa;IAEb;;;;OAIG;IACH,SAHU,QAAQ,CAGkB;IAEpC;;;;;;;OAOG;IACH,WAHU,OAAO,CAGK;IAEtB;;;OAGG;IACH,QAFU,GAAG,CAAC,IAAI,CAAC,CAEI;IAEvB;;;OAGG;IACH,YAFU,QAAQ,CAOjB;IAED;;;OAGG;IACH,UAFU,QAAQ,CAEgB;IA6CnC;;;;;OAKG;IACH,cAHW,IAAI,GACF,KAAK,CAQjB;IAED;;;;;OAKG;IACH,iBAHW,IAAI,GACF,KAAK,CAQjB;IAED;;;;OAIG;IACH,yBASC;IAuBD;;;OAGG;IACH,SAFW,MAAM,QAiChB;CACD;sBAxPqB,4BAA4B;6BActB,iCAAiC;yBAfpC,qBAAqB;sBAgBzB,WAAW;qBAJX,eAAe;qBADf,eAAe"}
1
+ {"version":3,"file":"world.d.ts","sourceRoot":"","sources":["../../src/physics/world.js"],"names":[],"mappings":"AAeA;;;GAGG;AAEH;;;GAGG;AACH;IACC;;;;;OAKG;IACH,gBALW,MAAM,MACN,MAAM,UACN,MAAM,WACN,MAAM,EAsGhB;IA1FA;;;OAGG;IACH,KAFU,WAAW,CAED;IAEpB;;;;;;;;OAQG;IACH,QANU,MAAM,CAMO;IAEvB;;;;;OAKG;IACH,YAAa;IAEb;;;;OAIG;IACH,SAHU,QAAQ,CAGkB;IAEpC;;;;;;;OAOG;IACH,WAHU,OAAO,CAGK;IAEtB;;;;;;;;;;;;;;OAcG;IACH,YAHU,OAAO,CAGK;IAEtB;;;OAGG;IACH,QAFU,GAAG,CAAC,IAAI,CAAC,CAEI;IAEvB;;;OAGG;IACH,YAFU,QAAQ,CAOjB;IAED;;;OAGG;IACH,UAFU,QAAQ,CAEgB;IA6CnC;;;;;OAKG;IACH,cAHW,IAAI,GACF,KAAK,CAQjB;IAED;;;;;OAKG;IACH,iBAHW,IAAI,GACF,KAAK,CAQjB;IAED;;;;OAIG;IACH,yBASC;IAuBD;;;OAGG;IACH,SAFW,MAAM,QAiChB;CACD;sBAzQqB,4BAA4B;6BActB,iCAAiC;yBAfpC,qBAAqB;sBAgBzB,WAAW;qBAJX,eAAe;qBADf,eAAe"}
@@ -1 +1 @@
1
- {"version":3,"file":"imagelayer.d.ts","sourceRoot":"","sources":["../../src/renderable/imagelayer.js"],"names":[],"mappings":"AAYA;;;GAGG;AAEH;;;GAGG;AACH;IACC;;;;;;;;;;;;;;;;OAgBG;IACH,eAhBW,MAAM,KACN,MAAM,YAEd;QAA4E,KAAK,EAAzE,gBAAgB,GAAC,iBAAiB,GAAC,eAAe,GAAC,MAAM;QACvC,IAAI;QACJ,CAAC;QACQ,KAAK;QACsB,MAAM;QACjC,WAAW;KAC9C,EAoDF;IAhCA;;;;;;;;;OASG;IACH,OAHU,QAAQ,CAGqB;IAuCxC,kBAPU,MAAM,EA2Bf;IAnCD;;;;;;;;;;OAUG;IACH,cAHU,MAAM,CAKf;IAGA,4BAAoB;IAGlB,6BAAoB;IACpB,6BAAoB;IAkBvB,wBAsBC;IAED;;;;OAIG;IACH,UAHW,MAAM,KACN,MAAM,QAOhB;IAED;;;OAGG;IACH,sBAKC;IAJA,cAGC;IAGF;;;OAGG;IACH,oBA+CC;IAED;;;;;;;;;;;;;;;OAeG;IACH,6BAmBC;IAED;;;;;OAKG;IACH,yBAHW,cAAc,GAAC,aAAa,aAC5B,QAAQ,QAoElB;IAGD,0BAMC;CAWD;mBAvVkB,aAAa;8BAIL,qBAAqB"}
1
+ {"version":3,"file":"imagelayer.d.ts","sourceRoot":"","sources":["../../src/renderable/imagelayer.js"],"names":[],"mappings":"AAYA;;;GAGG;AAEH;;;GAGG;AACH;IACC;;;;;;;;;;;;;;;;OAgBG;IACH,eAhBW,MAAM,KACN,MAAM,YAEd;QAA4E,KAAK,EAAzE,gBAAgB,GAAC,iBAAiB,GAAC,eAAe,GAAC,MAAM;QACvC,IAAI;QACJ,CAAC;QACQ,KAAK;QACsB,MAAM;QACjC,WAAW;KAC9C,EAoDF;IAhCA;;;;;;;;;OASG;IACH,OAHU,QAAQ,CAGqB;IAuCxC,kBAPU,MAAM,EA2Bf;IAnCD;;;;;;;;;;OAUG;IACH,cAHU,MAAM,CAKf;IAGA,4BAAoB;IAGlB,6BAAoB;IACpB,6BAAoB;IAkBvB,wBAsBC;IAED;;;;OAIG;IACH,UAHW,MAAM,KACN,MAAM,QAOhB;IAED;;;OAGG;IACH,sBAKC;IAJA,cAGC;IAGF;;;OAGG;IACH,oBA+CC;IAED;;;;;;;;;;;;;;;OAeG;IACH,6BAmBC;IAED;;;;;OAKG;IACH,yBAHW,cAAc,GAAC,aAAa,aAC5B,QAAQ,QAyElB;IAGD,0BAMC;CAWD;mBA5VkB,aAAa;8BAIL,qBAAqB"}
@@ -20,5 +20,5 @@ export declare function defer(func: (...args: unknown[]) => unknown, thisArg: un
20
20
  * @param [wait] - the delay in ms
21
21
  * @returns the function that will be throttled
22
22
  */
23
- export declare const throttle: (fn: () => void, wait?: number) => (...args: []) => void;
23
+ export declare const throttle: <T extends unknown[]>(fn: (...args: T) => void, wait?: number) => (...args: T) => void;
24
24
  //# sourceMappingURL=function.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"function.d.ts","sourceRoot":"","sources":["../../src/utils/function.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;;;;;GAWG;AACH,wBAAgB,KAAK,CACpB,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,EACrC,OAAO,EAAE,OAAO,EAChB,GAAG,IAAI,EAAE,OAAO,EAAE,UAGlB;AAED;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,GAAI,IAAI,MAAM,IAAI,EAAE,OAAM,MAAY,MAIlD,GAAG,MAAM,EAAE,SAkBnB,CAAC"}
1
+ {"version":3,"file":"function.d.ts","sourceRoot":"","sources":["../../src/utils/function.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;;;;;GAWG;AACH,wBAAgB,KAAK,CACpB,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,EACrC,OAAO,EAAE,OAAO,EAChB,GAAG,IAAI,EAAE,OAAO,EAAE,UAGlB;AAED;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,GAAI,CAAC,SAAS,OAAO,EAAE,EAC3C,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,IAAI,EACxB,OAAM,MAAY,MAKV,GAAG,MAAM,CAAC,SAkBlB,CAAC"}
@@ -304,6 +304,20 @@ export default class Renderer {
304
304
  * @see Light2d
305
305
  */
306
306
  drawLight(light: object): void;
307
+ /**
308
+ * Draw a TMX tile layer. Default behavior:
309
+ * - if `layer.canvasRenderer` is set (preRender bake), blit the cached
310
+ * offscreen canvas in a single `drawImage` call;
311
+ * - otherwise delegate to the layer's TMX orientation renderer for
312
+ * the per-tile loop.
313
+ *
314
+ * `WebGLRenderer` overrides this to add the procedural shader fast
315
+ * path on top (when `layer.renderMode === "shader"`) and fall through
316
+ * to this base behavior for all other layers.
317
+ * @param {object} layer - the TMXLayer to draw
318
+ * @param {Rect} rect - the visible region in world coords
319
+ */
320
+ drawTileLayer(layer: object, rect: Rect): void;
307
321
  /**
308
322
  * Set the current fill & stroke style color.
309
323
  * By default, or upon reset, the value is set to #000000.
@@ -457,8 +471,8 @@ import Path2D from "./../geometries/path2d.js";
457
471
  import { Color } from "./../math/color.ts";
458
472
  import RenderState from "./renderstate.js";
459
473
  import { Matrix3d } from "../math/matrix3d.ts";
460
- import { Gradient } from "./gradient.js";
461
474
  import type { Rect } from "./../geometries/rectangle.ts";
475
+ import { Gradient } from "./gradient.js";
462
476
  import type { Bounds } from "./../physics/bounds.ts";
463
477
  import type { RoundRect } from "./../geometries/roundrect.ts";
464
478
  import type { Polygon } from "../geometries/polygon.ts";
@@ -1 +1 @@
1
- {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/video/renderer.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/video/renderer.js"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../src/video/texture/cache.js"],"names":[],"mappings":";AAKA;;;GAGG;AACH;IACC;;OAEG;IACH,8CAUC;IARA,cAAwB;IAExB,qBAAgC;IAChC,sBAAuB;IACvB,qBAAsB;IACtB,oBAA0B;IAC1B,iBAAwB;IAIzB;;OAEG;IACH,cAKC;IAED;;OAEG;IACH,8BAuBC;IAED;;;;OAIG;IACH,6BAOC;IAED;;OAEG;IACH,oCAQC;IAED;;OAEG;IACH,2BAMC;IAED;;;OAGG;IACH,4BAGC;IAED;;;OAGG;IACH,yCAsBC;IAED;;OAEG;IACH,yBAEC;IAED;;;OAGG;IACH,iCAwCC;IAED;;OAEG;IACH,yBAQC;IAED;;OAEG;IACH,gCAcC;CACD;8BA7N6B,+BAA+B"}
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../src/video/texture/cache.js"],"names":[],"mappings":";AAIA;;;GAGG;AACH;IACC;;OAEG;IACH,8CAUC;IARA,cAAwB;IAExB,qBAAgC;IAChC,sBAAuB;IACvB,qBAAsB;IACtB,oBAA0B;IAC1B,iBAAwB;IAIzB;;OAEG;IACH,cAKC;IAED;;OAEG;IACH,8BAuBC;IAED;;;;OAIG;IACH,6BAOC;IAED;;OAEG;IACH,oCAQC;IAED;;OAEG;IACH,2BAMC;IAED;;;OAGG;IACH,4BAGC;IAED;;;OAGG;IACH,yCAEC;IAED;;OAEG;IACH,yBAEC;IAED;;;OAGG;IACH,iCAwCC;IAED;;OAEG;IACH,yBAQC;IAED;;OAEG;IACH,gCAcC;CACD;8BAzM6B,+BAA+B"}
@@ -0,0 +1,113 @@
1
+ /**
2
+ * A texture data source that knows how to upload itself to a WebGL
3
+ * texture. Subclasses provide the actual upload logic for their kind
4
+ * of source (raw buffer, image, compressed data, etc.).
5
+ *
6
+ * Resources flow through the same `TextureCache` / batcher machinery
7
+ * as image-backed `TextureAtlas` instances: they expose the minimal
8
+ * shape (`sources`, `activeAtlas`, `getTexture()`, plus `width` /
9
+ * `height` / `premultipliedAlpha` / `repeat` / `filter`) the cache
10
+ * uses for unit allocation and the batcher uses for `boundTextures`
11
+ * bookkeeping. The cache therefore owns every `gl.bindTexture` call,
12
+ * which keeps the JS-side binding state in lockstep with the actual
13
+ * GL state across all texture kinds — image atlases included.
14
+ *
15
+ * Subclasses MUST implement `upload(gl, target)`. The framework calls
16
+ * it once per texture on first use (and again on forced re-upload via
17
+ * `batcher.uploadTexture(resource, w, h, true)`).
18
+ *
19
+ * @category Rendering
20
+ */
21
+ export class TextureResource {
22
+ /**
23
+ * @param {object} options
24
+ * @param {number} options.width - pixel width of the texture
25
+ * @param {number} options.height - pixel height of the texture
26
+ * @param {boolean} [options.premultipliedAlpha=false]
27
+ * @param {string} [options.repeat="no-repeat"] - "no-repeat" | "repeat" | "repeat-x" | "repeat-y"
28
+ * @param {number} [options.filter] - `gl.NEAREST` or `gl.LINEAR`; when
29
+ * omitted the batcher falls back to the renderer's `antiAlias` setting
30
+ */
31
+ constructor({ width, height, premultipliedAlpha, repeat, filter, }?: {
32
+ width: number;
33
+ height: number;
34
+ premultipliedAlpha?: boolean | undefined;
35
+ repeat?: string | undefined;
36
+ filter?: number | undefined;
37
+ });
38
+ /** @type {number} */
39
+ width: number;
40
+ /** @type {number} */
41
+ height: number;
42
+ /** @type {boolean} */
43
+ premultipliedAlpha: boolean;
44
+ /** @type {string} */
45
+ repeat: string;
46
+ /** @type {number|undefined} */
47
+ filter: number | undefined;
48
+ sources: Map<string, this>;
49
+ activeAtlas: string;
50
+ /**
51
+ * Returns the upload "source" the batcher hands to `createTexture2D`.
52
+ * For a resource this is the resource itself — `createTexture2D`
53
+ * dispatches to `resource.upload(gl, target)`.
54
+ * @ignore
55
+ */
56
+ getTexture(): this;
57
+ /**
58
+ * Issue the `gl.texImage2D` (or equivalent) call that uploads this
59
+ * resource's data into the currently-bound `TEXTURE_2D` slot.
60
+ * Subclasses MUST override.
61
+ * @abstract
62
+ * @param {WebGLRenderingContext|WebGL2RenderingContext} gl
63
+ * @param {number} target - `gl.TEXTURE_2D` (or future cube-map targets)
64
+ */
65
+ upload(gl: WebGLRenderingContext | WebGL2RenderingContext, target: number): void;
66
+ }
67
+ /**
68
+ * A texture sourced from a raw byte buffer. Used for synthesized
69
+ * textures (TMX layer GID index, font atlases, color LUTs, signed-
70
+ * distance fields, palette tables, etc.) — any case where the texture
71
+ * data isn't an image file.
72
+ *
73
+ * The buffer is uploaded as-is; the resource's `premultipliedAlpha`
74
+ * flag is applied at upload time so a raw-data texture (typical:
75
+ * `premultipliedAlpha = false`) doesn't get its RGB wiped by the
76
+ * driver when the alpha channel is zero.
77
+ *
78
+ * @category Rendering
79
+ */
80
+ export class BufferTextureResource extends TextureResource {
81
+ /**
82
+ * @param {ArrayBufferView} data - the pixel data; size must be
83
+ * `width * height * 4` bytes for the default RGBA / UNSIGNED_BYTE
84
+ * format
85
+ * @param {object} options
86
+ * @param {number} options.width
87
+ * @param {number} options.height
88
+ * @param {boolean} [options.premultipliedAlpha=false]
89
+ * @param {string} [options.repeat="no-repeat"]
90
+ * @param {number} [options.filter]
91
+ * @param {"rgba8"|"rgba8ui"} [options.format="rgba8"] - storage format.
92
+ * `"rgba8"` (default): normalized RGBA, sampled via `sampler2D` /
93
+ * `texture()`. `"rgba8ui"`: unsigned-integer RGBA, sampled via
94
+ * `usampler2D` / `texelFetch()` — requires WebGL2. Use the integer
95
+ * form for raw-data lookups (GID tables, palette indices, etc.) to
96
+ * skip the float-decode round trip and gain exact integer reads.
97
+ */
98
+ constructor(data: ArrayBufferView, options: {
99
+ width: number;
100
+ height: number;
101
+ premultipliedAlpha?: boolean | undefined;
102
+ repeat?: string | undefined;
103
+ filter?: number | undefined;
104
+ format?: "rgba8" | "rgba8ui" | undefined;
105
+ });
106
+ /** @type {ArrayBufferView} */
107
+ data: ArrayBufferView;
108
+ /** @type {string} */
109
+ format: string;
110
+ /** @ignore */
111
+ upload(gl: any, target: any): void;
112
+ }
113
+ //# sourceMappingURL=resource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../../../src/video/texture/resource.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH;IACC;;;;;;;;OAQG;IACH,qEAPG;QAAwB,KAAK,EAArB,MAAM;QACU,MAAM,EAAtB,MAAM;QACY,kBAAkB;QAClB,MAAM;QACN,MAAM;KAElC,EAsBA;IAdA,qBAAqB;IACrB,OADW,MAAM,CACC;IAClB,qBAAqB;IACrB,QADW,MAAM,CACG;IACpB,sBAAsB;IACtB,oBADW,OAAO,CAC0B;IAC5C,qBAAqB;IACrB,QADW,MAAM,CACG;IACpB,+BAA+B;IAC/B,QADW,MAAM,GAAC,SAAS,CACP;IAGpB,2BAA2C;IAC3C,oBAA4B;IAG7B;;;;;OAKG;IACH,mBAEC;IAED;;;;;;;OAOG;IAEH,WAJW,qBAAqB,GAAC,sBAAsB,UAC5C,MAAM,QAKhB;CACD;AAED;;;;;;;;;;;;GAYG;AACH;IACC;;;;;;;;;;;;;;;;OAgBG;IACH,kBAhBW,eAAe,WAIvB;QAAyB,KAAK,EAAtB,MAAM;QACW,MAAM,EAAvB,MAAM;QACY,kBAAkB;QAClB,MAAM;QACN,MAAM;QACI,MAAM;KAM5C,EAOA;IAJA,8BAA8B;IAC9B,MADW,eAAe,CACV;IAChB,qBAAqB;IACrB,QADW,MAAM,CACsB;IAGxC,cAAc;IACd,mCAoCC;CACD"}
@@ -57,8 +57,15 @@ export class MaterialBatcher extends Batcher {
57
57
  unbindTexture2D(texture?: WebGLTexture, unit?: number): number;
58
58
  /**
59
59
  * @ignore
60
+ * @param {TextureAtlas|TextureResource} texture
61
+ * @param {number} [w] - ignored when the source has its own `width` (the
62
+ * common case); kept for the legacy signature where callers passed a
63
+ * destination size. Forwarded only as a last-resort default.
64
+ * @param {number} [h] - same as `w`.
65
+ * @param {boolean} [force=false]
66
+ * @param {boolean} [flush=true]
60
67
  */
61
- uploadTexture(texture: any, w: any, h: any, force?: boolean, flush?: boolean): any;
68
+ uploadTexture(texture: TextureAtlas | TextureResource, w?: number, h?: number, force?: boolean, flush?: boolean): any;
62
69
  }
63
70
  import { Batcher } from "./batcher.js";
64
71
  import type { TextureAtlas } from "./../../texture/atlas.js";
@@ -1 +1 @@
1
- {"version":3,"file":"material_batcher.d.ts","sourceRoot":"","sources":["../../../../src/video/webgl/batchers/material_batcher.js"],"names":[],"mappings":"AAGA;;;GAGG;AAEH;;;;GAIG;AACH;IAQE;;;OAGG;IACH,wBAA4B;IAE5B;;;OAGG;IACH,iCAAuB;IA0BxB;;;;;;;;;;;OAWG;IACH,sBAVW,MAAM,WACN,8DAAM,iBAAiB,GAAC,SAAS,GAAC,UAAU,EAAE,GAAC,YAAY,EAAE,UAC7D,MAAM,WACN,MAAM,MACN,MAAM,MACN,MAAM,uBACN,OAAO,WACP,OAAO,kCACL,YAAY,CAmHxB;IAED;;;OAGG;IACH,yBAFW,YAAY,GAAC,YAAY,QAiBnC;IAED;;;;OAIG;IACH,mBAHW,MAAM,GACJ,YAAY,CAIxB;IAED;;;;OAIG;IACH,uBAHW,YAAY,QACZ,MAAM,yBAsBhB;IAED;;;;;OAKG;IACH,0BAJW,YAAY,SACZ,MAAM,GACJ,MAAM,CAalB;IAED;;OAEG;IACH,mFAsBC;CACD;wBA7RuB,cAAc;kCAIP,0BAA0B"}
1
+ {"version":3,"file":"material_batcher.d.ts","sourceRoot":"","sources":["../../../../src/video/webgl/batchers/material_batcher.js"],"names":[],"mappings":"AAGA;;;GAGG;AAEH;;;;GAIG;AACH;IAQE;;;OAGG;IACH,wBAA4B;IAE5B;;;OAGG;IACH,iCAAuB;IA0BxB;;;;;;;;;;;OAWG;IACH,sBAVW,MAAM,WACN,8DAAM,iBAAiB,GAAC,SAAS,GAAC,UAAU,EAAE,GAAC,YAAY,EAAE,UAC7D,MAAM,WACN,MAAM,MACN,MAAM,MACN,MAAM,uBACN,OAAO,WACP,OAAO,kCACL,YAAY,CA6IxB;IAED;;;OAGG;IACH,yBAFW,YAAY,GAAC,YAAY,QAiBnC;IAED;;;;OAIG;IACH,mBAHW,MAAM,GACJ,YAAY,CAIxB;IAED;;;;OAIG;IACH,uBAHW,YAAY,QACZ,MAAM,yBAsBhB;IAED;;;;;OAKG;IACH,0BAJW,YAAY,SACZ,MAAM,GACJ,MAAM,CAalB;IAED;;;;;;;;;OASG;IACH,uBARW,YAAY,GAAC,eAAe,MAC5B,MAAM,MAGN,MAAM,UACN,OAAO,UACP,OAAO,OAiDjB;CACD;wBAvVuB,cAAc;kCAIP,0BAA0B"}