melonjs 19.7.1 → 19.9.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 (146) hide show
  1. package/README.md +21 -6
  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 +34 -0
  6. package/build/application/settings.d.ts.map +1 -1
  7. package/build/audio/audio.d.ts +1 -1
  8. package/build/audio/audio.d.ts.map +1 -1
  9. package/build/audio/backend.d.ts +21 -2
  10. package/build/audio/backend.d.ts.map +1 -1
  11. package/build/audio/playback.d.ts +8 -28
  12. package/build/audio/playback.d.ts.map +1 -1
  13. package/build/camera/camera3d.d.ts +49 -0
  14. package/build/camera/camera3d.d.ts.map +1 -1
  15. package/build/geometries/path2d.d.ts +188 -75
  16. package/build/geometries/path2d.d.ts.map +1 -1
  17. package/build/geometries/rectangle.d.ts.map +1 -1
  18. package/build/index.d.ts +11 -2
  19. package/build/index.d.ts.map +1 -1
  20. package/build/index.js +19170 -13625
  21. package/build/index.js.map +4 -4
  22. package/build/level/gltf/GLTFModel.d.ts +173 -0
  23. package/build/level/gltf/GLTFModel.d.ts.map +1 -0
  24. package/build/level/gltf/GLTFScene.d.ts +84 -0
  25. package/build/level/gltf/GLTFScene.d.ts.map +1 -0
  26. package/build/level/gltf/gltf_sampler.d.ts +49 -0
  27. package/build/level/gltf/gltf_sampler.d.ts.map +1 -0
  28. package/build/level/level.d.ts +7 -3
  29. package/build/level/level.d.ts.map +1 -1
  30. package/build/level/tiled/TMXTileMap.d.ts +5 -0
  31. package/build/level/tiled/TMXTileMap.d.ts.map +1 -1
  32. package/build/{renderable → lighting}/light2d.d.ts +79 -78
  33. package/build/lighting/light2d.d.ts.map +1 -0
  34. package/build/lighting/light3d.d.ts +86 -0
  35. package/build/lighting/light3d.d.ts.map +1 -0
  36. package/build/loader/cache.d.ts +2 -0
  37. package/build/loader/cache.d.ts.map +1 -1
  38. package/build/loader/loader.d.ts +156 -8
  39. package/build/loader/loader.d.ts.map +1 -1
  40. package/build/loader/parsers/fetchdata.d.ts +14 -0
  41. package/build/loader/parsers/fetchdata.d.ts.map +1 -1
  42. package/build/loader/parsers/gltf.d.ts +71 -0
  43. package/build/loader/parsers/gltf.d.ts.map +1 -0
  44. package/build/loader/parsers/mtl.d.ts.map +1 -1
  45. package/build/loader/parsers/shader.d.ts +47 -0
  46. package/build/loader/parsers/shader.d.ts.map +1 -0
  47. package/build/loader/parsers/video.d.ts.map +1 -1
  48. package/build/math/color.d.ts.map +1 -1
  49. package/build/math/math.d.ts +2 -2
  50. package/build/math/matrix2d.d.ts.map +1 -1
  51. package/build/math/noise.d.ts +141 -0
  52. package/build/math/noise.d.ts.map +1 -0
  53. package/build/math/observableVector2d.d.ts +1 -1
  54. package/build/math/observableVector2d.d.ts.map +1 -1
  55. package/build/math/observableVector3d.d.ts +1 -1
  56. package/build/math/observableVector3d.d.ts.map +1 -1
  57. package/build/math/vector2d.d.ts +1 -1
  58. package/build/math/vector2d.d.ts.map +1 -1
  59. package/build/math/vector3d.d.ts +1 -1
  60. package/build/math/vector3d.d.ts.map +1 -1
  61. package/build/math/vertex.d.ts +25 -0
  62. package/build/math/vertex.d.ts.map +1 -1
  63. package/build/physics/adapter.d.ts +4 -3
  64. package/build/physics/adapter.d.ts.map +1 -1
  65. package/build/physics/broadphase/aabb3d.d.ts +23 -2
  66. package/build/physics/broadphase/aabb3d.d.ts.map +1 -1
  67. package/build/renderable/anchorPoint.d.ts +80 -0
  68. package/build/renderable/anchorPoint.d.ts.map +1 -0
  69. package/build/renderable/animation.d.ts +41 -0
  70. package/build/renderable/animation.d.ts.map +1 -0
  71. package/build/renderable/collectable.d.ts +7 -1
  72. package/build/renderable/collectable.d.ts.map +1 -1
  73. package/build/renderable/container.d.ts +0 -1
  74. package/build/renderable/container.d.ts.map +1 -1
  75. package/build/renderable/entity/entity.d.ts +5 -2
  76. package/build/renderable/entity/entity.d.ts.map +1 -1
  77. package/build/renderable/frameAnimation.d.ts +154 -0
  78. package/build/renderable/frameAnimation.d.ts.map +1 -0
  79. package/build/renderable/imagelayer.d.ts +5 -2
  80. package/build/renderable/imagelayer.d.ts.map +1 -1
  81. package/build/renderable/mesh.d.ts +175 -6
  82. package/build/renderable/mesh.d.ts.map +1 -1
  83. package/build/renderable/nineslicesprite.d.ts +5 -7
  84. package/build/renderable/nineslicesprite.d.ts.map +1 -1
  85. package/build/renderable/renderable.d.ts +28 -1
  86. package/build/renderable/renderable.d.ts.map +1 -1
  87. package/build/renderable/sprite.d.ts +84 -34
  88. package/build/renderable/sprite.d.ts.map +1 -1
  89. package/build/renderable/sprite3d.d.ts +350 -0
  90. package/build/renderable/sprite3d.d.ts.map +1 -0
  91. package/build/renderable/text/bitmaptext.d.ts +24 -12
  92. package/build/renderable/text/bitmaptext.d.ts.map +1 -1
  93. package/build/renderable/text/bitmaptextdata.d.ts +24 -1
  94. package/build/renderable/text/bitmaptextdata.d.ts.map +1 -1
  95. package/build/renderable/text/text.d.ts +50 -12
  96. package/build/renderable/text/text.d.ts.map +1 -1
  97. package/build/state/stage.d.ts +20 -1
  98. package/build/state/stage.d.ts.map +1 -1
  99. package/build/system/event.d.ts +18 -2
  100. package/build/system/event.d.ts.map +1 -1
  101. package/build/video/buffer/vertex.d.ts +7 -0
  102. package/build/video/buffer/vertex.d.ts.map +1 -1
  103. package/build/video/canvas/canvas_renderer.d.ts +4 -0
  104. package/build/video/canvas/canvas_renderer.d.ts.map +1 -1
  105. package/build/video/renderer.d.ts +62 -1
  106. package/build/video/renderer.d.ts.map +1 -1
  107. package/build/video/rendertarget/render_target_pool.d.ts +17 -6
  108. package/build/video/rendertarget/render_target_pool.d.ts.map +1 -1
  109. package/build/video/texture/atlas.d.ts +3 -2
  110. package/build/video/texture/atlas.d.ts.map +1 -1
  111. package/build/video/texture/cache.d.ts +55 -6
  112. package/build/video/texture/cache.d.ts.map +1 -1
  113. package/build/video/texture/frametexture.d.ts +73 -0
  114. package/build/video/texture/frametexture.d.ts.map +1 -0
  115. package/build/video/texture/noise_texture2d.d.ts +176 -0
  116. package/build/video/texture/noise_texture2d.d.ts.map +1 -0
  117. package/build/video/texture/parser/aseprite.d.ts.map +1 -1
  118. package/build/video/texture/texture2d.d.ts +83 -0
  119. package/build/video/texture/texture2d.d.ts.map +1 -0
  120. package/build/video/webgl/batchers/batcher.d.ts.map +1 -1
  121. package/build/video/webgl/batchers/lit_mesh_batcher.d.ts +18 -0
  122. package/build/video/webgl/batchers/lit_mesh_batcher.d.ts.map +1 -0
  123. package/build/video/webgl/batchers/lit_quad_batcher.d.ts +30 -4
  124. package/build/video/webgl/batchers/lit_quad_batcher.d.ts.map +1 -1
  125. package/build/video/webgl/batchers/material_batcher.d.ts +39 -3
  126. package/build/video/webgl/batchers/material_batcher.d.ts.map +1 -1
  127. package/build/video/webgl/batchers/mesh_batcher.d.ts +52 -11
  128. package/build/video/webgl/batchers/mesh_batcher.d.ts.map +1 -1
  129. package/build/video/webgl/batchers/primitive_batcher.d.ts.map +1 -1
  130. package/build/video/webgl/batchers/quad_batcher.d.ts.map +1 -1
  131. package/build/video/webgl/buffer/index.d.ts +13 -0
  132. package/build/video/webgl/buffer/index.d.ts.map +1 -1
  133. package/build/video/webgl/effects/hologram.d.ts +0 -5
  134. package/build/video/webgl/effects/hologram.d.ts.map +1 -1
  135. package/build/video/webgl/effects/shine.d.ts +1 -6
  136. package/build/video/webgl/effects/shine.d.ts.map +1 -1
  137. package/build/video/webgl/glshader.d.ts +29 -0
  138. package/build/video/webgl/glshader.d.ts.map +1 -1
  139. package/build/video/webgl/lighting/pack3d.d.ts +32 -0
  140. package/build/video/webgl/lighting/pack3d.d.ts.map +1 -0
  141. package/build/video/webgl/shadereffect.d.ts +183 -0
  142. package/build/video/webgl/shadereffect.d.ts.map +1 -1
  143. package/build/video/webgl/webgl_renderer.d.ts +59 -1
  144. package/build/video/webgl/webgl_renderer.d.ts.map +1 -1
  145. package/package.json +5 -5
  146. package/build/renderable/light2d.d.ts.map +0 -1
@@ -1,6 +1,7 @@
1
1
  import Glyph from "./glyph.ts";
2
2
  /**
3
- * a bitmap font data object
3
+ * a bitmap font data object — parses the AngelCode BMFont format in both its
4
+ * text (`.fnt`) and XML serialisations (the flavour is auto-detected).
4
5
  * @category Text
5
6
  */
6
7
  export default class BitmapTextData {
@@ -18,6 +19,28 @@ export default class BitmapTextData {
18
19
  };
19
20
  constructor(data: string);
20
21
  parse(fontData: string): void;
22
+ /**
23
+ * Record a parsed glyph and fold it into the font's vertical metrics.
24
+ * @ignore
25
+ */
26
+ recordGlyph(glyph: Glyph, baseLine: number): void;
27
+ /**
28
+ * Look up a glyph by char code, honestly typed as possibly missing (the
29
+ * glyph map's index signature otherwise hides that a lookup can be absent).
30
+ * @ignore
31
+ */
32
+ glyphFor(id: number): Glyph | undefined;
33
+ /**
34
+ * Parse the AngelCode BMFont text (.fnt) format.
35
+ * @ignore
36
+ */
37
+ parseText(fontData: string): void;
38
+ /**
39
+ * Parse the AngelCode BMFont XML format (same data as the .fnt text form).
40
+ * Padding is optional in XML exports (e.g. frostyfreeze) and defaults to 0.
41
+ * @ignore
42
+ */
43
+ parseXML(fontData: string): void;
21
44
  }
22
45
  export declare const bitmapTextDataPool: import("../../system/pool.ts").Pool<BitmapTextData, [fontData: string]>;
23
46
  //# sourceMappingURL=bitmaptextdata.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bitmaptextdata.d.ts","sourceRoot":"","sources":["../../../src/renderable/text/bitmaptextdata.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,YAAY,CAAC;AA8E/B;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,cAAc;IAClC,MAAM,EAAE,MAAM,CAAK;IACnB,QAAQ,EAAE,MAAM,CAAK;IACrB,SAAS,EAAE,MAAM,CAAK;IACtB,OAAO,EAAE,MAAM,CAAK;IACpB,UAAU,EAAE,MAAM,CAAK;IACvB,SAAS,EAAE,MAAM,CAAK;IACtB,OAAO,EAAE,MAAM,CAAK;IACpB,WAAW,EAAE,MAAM,CAAK;IACxB,cAAc,EAAE,MAAM,CAAK;IAC3B,MAAM,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAAA;KAAE,CAAM;gBAE1B,IAAI,EAAE,MAAM;IAIxB,KAAK,CAAC,QAAQ,EAAE,MAAM;CAuGtB;AAED,eAAO,MAAM,kBAAkB,yEAY7B,CAAC"}
1
+ {"version":3,"file":"bitmaptextdata.d.ts","sourceRoot":"","sources":["../../../src/renderable/text/bitmaptextdata.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,YAAY,CAAC;AA8E/B;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,cAAc;IAClC,MAAM,EAAE,MAAM,CAAK;IACnB,QAAQ,EAAE,MAAM,CAAK;IACrB,SAAS,EAAE,MAAM,CAAK;IACtB,OAAO,EAAE,MAAM,CAAK;IACpB,UAAU,EAAE,MAAM,CAAK;IACvB,SAAS,EAAE,MAAM,CAAK;IACtB,OAAO,EAAE,MAAM,CAAK;IACpB,WAAW,EAAE,MAAM,CAAK;IACxB,cAAc,EAAE,MAAM,CAAK;IAC3B,MAAM,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAAA;KAAE,CAAM;gBAE1B,IAAI,EAAE,MAAM;IAIxB,KAAK,CAAC,QAAQ,EAAE,MAAM;IAqDtB;;;OAGG;IACH,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM;IAY1C;;;;OAIG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS;IAIvC;;;OAGG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM;IA6C1B;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM;CAwDzB;AAED,eAAO,MAAM,kBAAkB,yEAY7B,CAAC"}
@@ -1,5 +1,16 @@
1
1
  /**
2
- * a generic system font object.
2
+ * a Text object: draws a string using a system or web font.
3
+ *
4
+ * The text is rasterised to a cached texture, so it draws as fast as a sprite
5
+ * while staying fully styleable — `fillStyle`, `strokeStyle` + `lineWidth`, and
6
+ * per-object opacity — with multi-line text (embedded `\n`), optional
7
+ * `wordWrapWidth` word-wrapping, and chainable {@link Text#bold} /
8
+ * {@link Text#italic}. `font` accepts any CSS family, including the generic
9
+ * keywords (`sans-serif`, `monospace`, …); a web font loaded through the
10
+ * `fontface` loader is referenced by its family name.
11
+ *
12
+ * For a crisp, tintable, retro look — or large amounts of mostly-static text —
13
+ * consider {@link BitmapText} instead.
3
14
  * @category Text
4
15
  */
5
16
  export default class Text extends Renderable {
@@ -7,19 +18,43 @@ export default class Text extends Renderable {
7
18
  * @param {number} x - position of the text object
8
19
  * @param {number} y - position of the text object
9
20
  * @param {object} settings - the text configuration
10
- * @param {string} settings.font - a CSS family font name
11
- * @param {number|string} settings.size - size, or size + suffix (px, em, pt)
12
- * @param {Color|string} [settings.fillStyle="#000000"] - a CSS color value
13
- * @param {Color|string} [settings.strokeStyle="#000000"] - a CSS color value
14
- * @param {number} [settings.lineWidth=0] - line width, in pixels, when drawing stroke
15
- * @param {string} [settings.textAlign="left"] - horizontal text alignment
16
- * @param {string} [settings.textBaseline="top"] - the text baseline
21
+ * @param {string} settings.font - a CSS font family: a specific name (`"Arial"`), a generic keyword (`"sans-serif"`, `"monospace"`, …), or a web font loaded via the `fontface` loader (referenced by its family name)
22
+ * @param {number|string} settings.size - the font size: a number in pixels, or a CSS size string with a unit (`"24px"` / `"1.5em"` / `"18pt"`)
23
+ * @param {Color|string} [settings.fillStyle="#000000"] - a CSS color value used to fill the glyphs
24
+ * @param {Color|string} [settings.strokeStyle="#000000"] - a CSS color value used for the glyph outline (drawn when `lineWidth` > 0)
25
+ * @param {number} [settings.lineWidth=0] - outline width in pixels (0 = no stroke)
26
+ * @param {string} [settings.textAlign="left"] - horizontal text alignment ("left", "center", "right")
27
+ * @param {string} [settings.textBaseline="top"] - the text baseline ("top", "hanging", "middle", "alphabetic", "ideographic", "bottom")
17
28
  * @param {number} [settings.lineHeight=1.0] - line spacing height
18
- * @param {Vector2d} [settings.anchorPoint={x:0.0, y:0.0}] - anchor point to draw the text at
19
- * @param {number} [settings.wordWrapWidth] - the maximum length in CSS pixel for a single segment of text
29
+ * @param {string|Vector2d|{x:number,y:number}} [settings.anchorPoint={x:0.0, y:0.0}] - anchor point to draw the text at. Also accepts the named presets `"center"`, `"top"`, `"bottom"`, `"left"`, `"right"`, `"top-left"`, `"top-right"`, `"bottom-left"`, `"bottom-right"`.
30
+ * @param {number} [settings.wordWrapWidth] - the maximum length in CSS pixels of a line before it wraps
20
31
  * @param {(string|string[])} [settings.text=""] - a string, or an array of strings
21
32
  * @example
22
- * let font = new Text(0, 0, {font: "Arial", size: 8, fillStyle: this.color});
33
+ * // a styled, word-wrapped, multi-line label using a generic system font
34
+ * const label = new Text(8, 8, {
35
+ * font: "sans-serif", // any CSS family (generic keywords work too)
36
+ * size: 24, // number (px) or a "1.5em" / "18pt" string
37
+ * fillStyle: "#ffffff",
38
+ * strokeStyle: "#202020",
39
+ * lineWidth: 2, // outline the glyphs
40
+ * textAlign: "left",
41
+ * textBaseline: "top",
42
+ * wordWrapWidth: 200, // wrap lines longer than 200px
43
+ * text: "Hello melonJS!\nStyled, wrapped, multi-line text.",
44
+ * });
45
+ * label.bold(); // bold() / italic() are chainable
46
+ * label.setOpacity(0.8); // per-object transparency
47
+ * app.world.addChild(label);
48
+ * @example
49
+ * // a web font (loaded via the fontface loader) is used by its family name
50
+ * loader.preload(
51
+ * [{ name: "kenpixel", type: "fontface", src: "data/font/kenvector.woff2" }],
52
+ * () => {
53
+ * app.world.addChild(
54
+ * new Text(0, 0, { font: "kenpixel", size: 32, text: "Web font" }),
55
+ * );
56
+ * },
57
+ * );
23
58
  */
24
59
  constructor(x: number, y: number, settings: {
25
60
  font: string;
@@ -30,7 +65,10 @@ export default class Text extends Renderable {
30
65
  textAlign?: string | undefined;
31
66
  textBaseline?: string | undefined;
32
67
  lineHeight?: number | undefined;
33
- anchorPoint?: any;
68
+ anchorPoint?: string | Vector2d | {
69
+ x: number;
70
+ y: number;
71
+ };
34
72
  wordWrapWidth?: number | undefined;
35
73
  text?: string | string[] | undefined;
36
74
  });
@@ -1 +1 @@
1
- {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../../src/renderable/text/text.js"],"names":[],"mappings":"AAmBA;;;GAGG;AACH;IACC;;;;;;;;;;;;;;;;;OAiBG;IACH,eAjBW,MAAM,KACN,MAAM,YAEd;QAAyB,IAAI,EAArB,MAAM;QACkB,IAAI,EAA5B,MAAM,GAAC,MAAM;QACW,SAAS;QACT,WAAW;QACjB,SAAS;QACT,SAAS;QACT,YAAY;QACZ,UAAU;QACR,WAAW;QACb,aAAa;QACF,IAAI;KACzC,EA2EF;IApEA;;;;OAIG;IACH,WAHU,KAAK,CAGwB;IAEvC;;;;OAIG;IACH,aAHU,KAAK,CAG0B;IAEzC;;;;OAIG;IACH,WAHU,MAAM,CAGE;IAElB;;;;;OAKG;IACH,WAHU,MAAM,CAGO;IAEvB;;;;;OAKG;IACH,cAHU,MAAM,CAGS;IAEzB;;;;;OAKG;IACH,YAHU,MAAM,CAGK;IAErB;;;;;OAKG;IACH,eAHU,MAAM,CAGO;IAEvB;;;;OAIG;IACH,UAHU,MAAM,CAGE;IAElB;;;OAGG;IACH,cAAe;IAMhB,cAAc;IACd,kDA0EC;IAdA,8CAEE;IAEF;;OAEG;IACH,wBAA4B;IAG5B,iCAAoC;IAMrC;;;OAGG;IACH,QAFa,IAAI,CAWhB;IAJC,UAA+B;IAMjC;;;OAGG;IACH,UAFa,IAAI,CAWhB;IAED;;;;;;;;OAQG;IACH,cAPW,MAAM,SACN,MAAM,GAAC,MAAM,GACX,IAAI,CAiChB;IAED;;;;OAIG;IACH,gBAHW,MAAM,GAAC,MAAM,GAAC,MAAM,EAAE,GACpB,IAAI,CAyDhB;IAkBD,oCAZU,MAAM,EAiBf;IArBD;;;;;;;;;;;OAWG;IACH,gCARU,MAAM,CAUf;IAyBD,+BAZU,MAAM,EAsBf;IA1BD;;;;;OAKG;IACH,2BAFU,MAAM,CAUf;IAiED;;;;OAIG;IACH,mBAHW,MAAM,GACJ,WAAW,CAIvB;IAED;;;OAGG;IACH,eAFW,cAAc,GAAC,aAAa,QA2BtC;IAED;;OAEG;IACH,4EA6BC;IAED;;;OAGG;IACH,gBAUC;CACD;uBA/fsB,kBAAkB;sBAHR,qBAAqB;+BAEvB,gDAAgD;wBAEvD,kBAAkB"}
1
+ {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../../src/renderable/text/text.js"],"names":[],"mappings":"AAuCA;;;;;;;;;;;;;;GAcG;AACH;IACC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAyCG;IACH,eAzCW,MAAM,KACN,MAAM,YAEd;QAAyB,IAAI,EAArB,MAAM;QACkB,IAAI,EAA5B,MAAM,GAAC,MAAM;QACW,SAAS;QACT,WAAW;QACjB,SAAS;QACT,SAAS;QACT,YAAY;QACZ,UAAU;QACmB,WAAW,GAA1D,MAAM,GAAC,QAAQ,GAAC;YAAC,CAAC,EAAC,MAAM,CAAC;YAAA,CAAC,EAAC,MAAM,CAAA;SAAC;QACjB,aAAa;QACF,IAAI;KACzC,EAmGF;IApEA;;;;OAIG;IACH,WAHU,KAAK,CAGwB;IAEvC;;;;OAIG;IACH,aAHU,KAAK,CAG0B;IAEzC;;;;OAIG;IACH,WAHU,MAAM,CAGE;IAElB;;;;;OAKG;IACH,WAHU,MAAM,CAGO;IAEvB;;;;;OAKG;IACH,cAHU,MAAM,CAGS;IAEzB;;;;;OAKG;IACH,YAHU,MAAM,CAGK;IAErB;;;;;OAKG;IACH,eAHU,MAAM,CAGO;IAEvB;;;;OAIG;IACH,UAHU,MAAM,CAGE;IAElB;;;OAGG;IACH,cAAe;IAMhB,cAAc;IACd,kDA8EC;IAdA,8CAEE;IAEF;;OAEG;IACH,wBAA4B;IAG5B,iCAAoC;IAMrC;;;OAGG;IACH,QAFa,IAAI,CAWhB;IAJC,UAA+B;IAMjC;;;OAGG;IACH,UAFa,IAAI,CAWhB;IAED;;;;;;;;OAQG;IACH,cAPW,MAAM,SACN,MAAM,GAAC,MAAM,GACX,IAAI,CAwChB;IAED;;;;OAIG;IACH,gBAHW,MAAM,GAAC,MAAM,GAAC,MAAM,EAAE,GACpB,IAAI,CAyDhB;IAkBD,oCAZU,MAAM,EAiBf;IArBD;;;;;;;;;;;OAWG;IACH,gCARU,MAAM,CAUf;IAyBD,+BAZU,MAAM,EAsBf;IA1BD;;;;;OAKG;IACH,2BAFU,MAAM,CAUf;IAiED;;;;OAIG;IACH,mBAHW,MAAM,GACJ,WAAW,CAIvB;IAED;;;OAGG;IACH,eAFW,cAAc,GAAC,aAAa,QA2BtC;IAED;;OAEG;IACH,4EA6BC;IAED;;;OAGG;IACH,gBAUC;CACD;uBAhkBsB,kBAAkB;sBAJR,qBAAqB;+BAEvB,gDAAgD;wBAGvD,kBAAkB"}
@@ -1,8 +1,9 @@
1
1
  import type Application from "./../application/application.ts";
2
2
  import Camera2d from "./../camera/camera2d.ts";
3
+ import type Light2d from "./../lighting/light2d.ts";
4
+ import type { Light3d } from "./../lighting/light3d.ts";
3
5
  import { Color } from "./../math/color.ts";
4
6
  import type World from "./../physics/world.js";
5
- import type Light2d from "./../renderable/light2d.js";
6
7
  import type Renderer from "./../video/renderer.js";
7
8
  interface StageSettings {
8
9
  cameras: Camera2d[];
@@ -61,6 +62,13 @@ export default class Stage {
61
62
  * @ignore
62
63
  */
63
64
  _activeLights: Set<Light2d>;
65
+ /**
66
+ * Internal set of active 3D lights, auto-populated by `Light3d`'s
67
+ * `onActivateEvent` / `onDeactivateEvent` hooks. Read by the lit mesh
68
+ * batcher each frame to shade `lit` meshes under a `Camera3d`.
69
+ * @ignore
70
+ */
71
+ _activeLights3d: Set<Light3d>;
64
72
  /**
65
73
  * an ambient light that will be added to the stage rendering
66
74
  * @default "#000000"
@@ -99,6 +107,17 @@ export default class Stage {
99
107
  * @ignore
100
108
  */
101
109
  _unregisterLight(light: Light2d): void;
110
+ /**
111
+ * Called by `Light3d.onActivateEvent` to register a 3D light with the stage.
112
+ * Read by the lit mesh batcher. Users normally don't call this.
113
+ * @ignore
114
+ */
115
+ _registerLight3d(light: Light3d): void;
116
+ /**
117
+ * Called by `Light3d.onDeactivateEvent` to deregister a 3D light.
118
+ * @ignore
119
+ */
120
+ _unregisterLight3d(light: Light3d): void;
102
121
  /**
103
122
  * Object reset function
104
123
  * @ignore
@@ -1 +1 @@
1
- {"version":3,"file":"stage.d.ts","sourceRoot":"","sources":["../../src/state/stage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,WAAW,MAAM,iCAAiC,CAAC;AAC/D,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,KAAK,KAAK,MAAM,uBAAuB,CAAC;AAC/C,OAAO,KAAK,OAAO,MAAM,4BAA4B,CAAC;AAEtD,OAAO,KAAK,QAAQ,MAAM,wBAAwB,CAAC;AAEnD,UAAU,aAAa;IACtB,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,KACb,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,KACR,QAAQ,CAAC;IACd,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IAC9D,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,IAAI,CAAC;CAC5C;AAUD;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,KAAK;IACzB;;;;OAIG;IACH,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAE/B;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE7B;;;;;OAKG;IACH,aAAa,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IAE5B;;;;OAIG;IACH,YAAY,EAAE,KAAK,CAAC;IAEpB;;;;;;;;OAQG;IACH,oBAAoB,EAAE,KAAK,CAAC;IAE5B;;OAEG;IACH,QAAQ,EAAE,aAAa,CAAC;IAExB;;;;;OAKG;gBACS,QAAQ,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC;IAS7C;;;;OAIG;IACH,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAIpC;;;OAGG;IACH,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAItC;;;OAGG;IACH,KAAK,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,SAAS,EAAE,OAAO,EAAE,GAAG,IAAI;IAsHtD;;;;;OAKG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAgB3B;;;;;;;;;OASG;IACH,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;IAM5C;;;;;;;;;;;;;;;;;OAiBG;IACH,YAAY,CACX,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,QAAQ,EAChB,UAAU,GAAE,MAAuC,EACnD,UAAU,GAAE,MAAuC,GACjD,IAAI;IAiCP;;;OAGG;IACH,OAAO,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI;IAkB/B;;;;;;;OAOG;IACH,YAAY,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAOxD;;;;OAIG;IACH,cAAc,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI;CAMtC"}
1
+ {"version":3,"file":"stage.d.ts","sourceRoot":"","sources":["../../src/state/stage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,WAAW,MAAM,iCAAiC,CAAC;AAC/D,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAC/C,OAAO,KAAK,OAAO,MAAM,0BAA0B,CAAC;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,KAAK,KAAK,MAAM,uBAAuB,CAAC;AAE/C,OAAO,KAAK,QAAQ,MAAM,wBAAwB,CAAC;AAEnD,UAAU,aAAa;IACtB,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,KACb,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,KACR,QAAQ,CAAC;IACd,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IAC9D,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,IAAI,CAAC;CAC5C;AAUD;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,KAAK;IACzB;;;;OAIG;IACH,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAE/B;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE7B;;;;;OAKG;IACH,aAAa,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IAE5B;;;;;OAKG;IACH,eAAe,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IAE9B;;;;OAIG;IACH,YAAY,EAAE,KAAK,CAAC;IAEpB;;;;;;;;OAQG;IACH,oBAAoB,EAAE,KAAK,CAAC;IAE5B;;OAEG;IACH,QAAQ,EAAE,aAAa,CAAC;IAExB;;;;;OAKG;gBACS,QAAQ,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC;IAU7C;;;;OAIG;IACH,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAIpC;;;OAGG;IACH,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAItC;;;;OAIG;IACH,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAItC;;;OAGG;IACH,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAIxC;;;OAGG;IACH,KAAK,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,SAAS,EAAE,OAAO,EAAE,GAAG,IAAI;IAsHtD;;;;;OAKG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAgB3B;;;;;;;;;OASG;IACH,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;IAM5C;;;;;;;;;;;;;;;;;OAiBG;IACH,YAAY,CACX,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,QAAQ,EAChB,UAAU,GAAE,MAAuC,EACnD,UAAU,GAAE,MAAuC,GACjD,IAAI;IAiCP;;;OAGG;IACH,OAAO,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI;IAmB/B;;;;;;;OAOG;IACH,YAAY,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAOxD;;;;OAIG;IACH,cAAc,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI;CAMtC"}
@@ -7,6 +7,7 @@ import { Vector2d } from "../math/vector2d.ts";
7
7
  import { Draggable } from "../renderable/draggable.js";
8
8
  import type Stage from "../state/stage.ts";
9
9
  import Renderer from "../video/renderer.js";
10
+ import type { Texture2dSource } from "../video/texture/texture2d.ts";
10
11
  /**
11
12
  * event when the DOM is Ready is booting
12
13
  * @see event.on
@@ -334,10 +335,24 @@ export declare const GPU_TEXTURE_CACHE_RESET = "renderer.gpu.texturecachereset";
334
335
  * `RenderPassEncoder` (clear loadOps replace `clear()` calls in WebGPU's
335
336
  * declarative pass descriptors).
336
337
  *
337
- * Data passed: none
338
+ * Data passed: the emitting renderer. Subscribers holding per-renderer
339
+ * state should ignore broadcasts from other renderer instances (several
340
+ * Applications can coexist on one page); a missing argument (legacy
341
+ * emitters) should be treated as "mine".
338
342
  * @see event.on
339
343
  */
340
344
  export declare const RENDER_TARGET_CHANGED = "renderer.target.changed";
345
+ /**
346
+ * Fired when a {@link Texture2d} asset is destroyed, with its backing
347
+ * drawable source. GPU-side caches keyed by source image — e.g. the lit
348
+ * batcher's per-image normal-map textures — subscribe to release the GL
349
+ * texture and drop their entry, so destroying a texture (a per-level
350
+ * {@link NoiseTexture2d}, for instance) doesn't leak GPU memory.
351
+ *
352
+ * Data passed: the destroyed texture's backing canvas/image
353
+ * @see event.on
354
+ */
355
+ export declare const TEXTURE2D_DESTROYED = "texture2d.destroyed";
341
356
  interface Events {
342
357
  [DOM_READY]: () => void;
343
358
  [BOOT]: () => void;
@@ -384,7 +399,8 @@ interface Events {
384
399
  [ONCONTEXT_LOST]: (renderer: Renderer) => void;
385
400
  [ONCONTEXT_RESTORED]: (renderer: Renderer) => void;
386
401
  [GPU_TEXTURE_CACHE_RESET]: () => void;
387
- [RENDER_TARGET_CHANGED]: () => void;
402
+ [RENDER_TARGET_CHANGED]: (renderer?: object) => void;
403
+ [TEXTURE2D_DESTROYED]: (source: Texture2dSource) => void;
388
404
  }
389
405
  /**
390
406
  * Add a listener for a given event.
@@ -1 +1 @@
1
- {"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../src/system/event.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../src/system/event.ts"],"names":[],"mappings":"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"}
@@ -54,6 +54,13 @@ export default class VertexArrayBuffer {
54
54
  * @ignore
55
55
  */
56
56
  pushMesh(x: any, y: any, z: any, u: any, v: any, tint: any): this;
57
+ /**
58
+ * push a new lit-mesh vertex (mesh format + a world-space normal):
59
+ * x, y, z, u, v, tint, nx, ny, nz. Used by the lit mesh batcher, whose
60
+ * vertex layout is 12 floats (the 9 of {@link pushMesh} plus `aNormal`).
61
+ * @ignore
62
+ */
63
+ pushMeshLit(x: any, y: any, z: any, u: any, v: any, tint: any, nx: any, ny: any, nz: any): this;
57
64
  /**
58
65
  * return a reference to the data in Float32 format
59
66
  * @ignore
@@ -1 +1 @@
1
- {"version":3,"file":"vertex.d.ts","sourceRoot":"","sources":["../../../src/video/buffer/vertex.js"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;IACC,6CAyBC;IAvBA,gBAA4B;IAE5B,eAA0B;IAE1B,oBAAoB;IAGpB,oBAEC;IAED,qCAA8C;IAC9C,oCAA6C;IAU7C,kCAA2C;IAG5C;;;OAGG;IACH,cAEC;IAED;;;OAGG;IACH,6BAEC;IAED;;;;;;;;;;;OAWG;IACH,QAVW,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,QACN,MAAM,cACN,MAAM,oBACN,MAAM,QA6BhB;IAED;;;;;;OAMG;IACH,iBALW,SAAS,CAAC,MAAM,CAAC,aACjB,MAAM,SACN,MAAM,QAahB;IAED;;;;;;;;OAQG;IACH,kEAgBC;IAED;;;OAGG;IACH,2DAMC;IAED;;;OAGG;IACH,yDAMC;IAED;;;;;;OAMG;IACH,+DAMC;CACD"}
1
+ {"version":3,"file":"vertex.d.ts","sourceRoot":"","sources":["../../../src/video/buffer/vertex.js"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;IACC,6CAyBC;IAvBA,gBAA4B;IAE5B,eAA0B;IAE1B,oBAAoB;IAGpB,oBAEC;IAED,qCAA8C;IAC9C,oCAA6C;IAU7C,kCAA2C;IAG5C;;;OAGG;IACH,cAEC;IAED;;;OAGG;IACH,6BAEC;IAED;;;;;;;;;;;OAWG;IACH,QAVW,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,QACN,MAAM,cACN,MAAM,oBACN,MAAM,QA6BhB;IAED;;;;;;OAMG;IACH,iBALW,SAAS,CAAC,MAAM,CAAC,aACjB,MAAM,SACN,MAAM,QAahB;IAED;;;;;;;;OAQG;IACH,kEAgBC;IAED;;;;;OAKG;IACH,gGAoBC;IAED;;;OAGG;IACH,2DAMC;IAED;;;OAGG;IACH,yDAMC;IAED;;;;;;OAMG;IACH,+DAMC;CACD"}
@@ -6,6 +6,8 @@
6
6
  * @import {Line} from "./../../geometries/line.ts";
7
7
  * @import {Ellipse} from "./../../geometries/ellipse.ts";
8
8
  * @import {Matrix2d} from "../../math/matrix2d.ts";
9
+ * @import {Bounds} from "../../physics/bounds.ts";
10
+ * @import {default as Texture2d} from "../texture/texture2d.ts";
9
11
  */
10
12
  /**
11
13
  * a canvas renderer object
@@ -14,6 +16,7 @@
14
16
  export default class CanvasRenderer extends Renderer {
15
17
  cache: TextureCache;
16
18
  _lightCache: WeakMap<object, any> | undefined;
19
+ _frameTexture: any;
17
20
  /**
18
21
  * Reset the canvas transform to identity
19
22
  */
@@ -329,5 +332,6 @@ import type { RoundRect } from "./../../geometries/roundrect.ts";
329
332
  import type { Polygon } from "../../geometries/polygon.ts";
330
333
  import type { Line } from "./../../geometries/line.ts";
331
334
  import type { Ellipse } from "./../../geometries/ellipse.ts";
335
+ import type { Bounds } from "../../physics/bounds.ts";
332
336
  import type { Matrix2d } from "../../math/matrix2d.ts";
333
337
  //# sourceMappingURL=canvas_renderer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"canvas_renderer.d.ts","sourceRoot":"","sources":["../../../src/video/canvas/canvas_renderer.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"canvas_renderer.d.ts","sourceRoot":"","sources":["../../../src/video/canvas/canvas_renderer.js"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@
8
8
  * @import {Line} from "./../geometries/line.ts";
9
9
  * @import {Ellipse} from "./../geometries/ellipse.ts";
10
10
  * @import {Bounds} from "./../physics/bounds.ts";
11
+ * @import {default as Texture2d} from "./texture/texture2d.ts";
11
12
  */
12
13
  /**
13
14
  * a base renderer object
@@ -449,6 +450,27 @@ declare class Renderer {
449
450
  * @param {boolean} [enable=false]
450
451
  */
451
452
  setAntiAlias(enable?: boolean): void;
453
+ /**
454
+ * Resolve the default texture filter **mode** for this renderer, decoupled
455
+ * from {@link Renderer#setAntiAlias} (which controls polygon-edge MSAA on GPU
456
+ * backends). Honors the `textureFilter` setting (`"nearest"` / `"linear"`),
457
+ * falling back to the `antiAlias` setting when it's `"auto"` (the default).
458
+ *
459
+ * Backend-neutral on purpose: it returns the mode as a string so each GPU
460
+ * backend maps it to its own enum (WebGL `gl.LINEAR` / `gl.NEAREST`, a future
461
+ * WebGPU renderer `GPUFilterMode`). The Canvas renderer has no per-texture
462
+ * filtering, so this is informational there.
463
+ * @returns {"linear"|"nearest"} the resolved default filter mode
464
+ */
465
+ getDefaultTextureFilter(): "linear" | "nearest";
466
+ /**
467
+ * Set the default texture magnification/minification filter at runtime,
468
+ * decoupled from {@link Renderer#setAntiAlias}. The base implementation just
469
+ * records the setting (the Canvas renderer has no per-texture filtering);
470
+ * GPU backends override this to re-apply the filter to live textures.
471
+ * @param {"auto"|"nearest"|"linear"} [mode="auto"] - `"auto"` follows `antiAlias`
472
+ */
473
+ setTextureFilter(mode?: "auto" | "nearest" | "linear"): void;
452
474
  /**
453
475
  * set/change the current projection matrix (GPU renderers only —
454
476
  * the Canvas renderer applies projection via the 2D context's transform stack).
@@ -644,6 +666,44 @@ declare class Renderer {
644
666
  * renderer.toDataURL().then((dataURL) => console.log(dataURL));
645
667
  */
646
668
  toDataURL(type?: string, quality?: number): Promise<any>;
669
+ /**
670
+ * Capture the current frame — everything drawn to the active framebuffer /
671
+ * canvas so far — into a {@link Texture2d}, on the GPU where possible (no
672
+ * `readPixels` round-trip). The fourth member of the {@link Renderer#toDataURL}
673
+ * / {@link Renderer#toBlob} / {@link Renderer#toImageBitmap} family — "the
674
+ * current frame as X" — and the only one whose result can stay GPU-resident,
675
+ * ready to feed a shader as a screen texture (water refraction, heat haze,
676
+ * frosted glass).
677
+ *
678
+ * Abstract on the base renderer: the concrete backends implement it —
679
+ * {@link WebGLRenderer#toFrameTexture} (a `copyTexImage2D` into a live GPU
680
+ * texture, bound as an extra sampler via {@link ShaderEffect#setTexture}) and
681
+ * {@link CanvasRenderer#toFrameTexture} (an offscreen-canvas copy, for family
682
+ * parity — custom shaders don't run under Canvas).
683
+ * @param {object} [options]
684
+ * @param {Texture2d|null} [options.target] - controls the destination: omit
685
+ * for the shared renderer slot (default); pass a capture previously
686
+ * returned by this method to refresh it in place; pass `null` to mint a
687
+ * fresh, caller-owned capture
688
+ * @param {Bounds|{x: number, y: number, width: number, height: number}} [options.region] - capture
689
+ * only this sub-region of the frame — a {@link Bounds} (or any
690
+ * `{x, y, width, height}`); from a {@link Rect} pass `rect.getBounds()`.
691
+ * NOTE the origin differs by backend: WebGL uses framebuffer coords
692
+ * (**bottom-left** origin), Canvas uses **top-left** — relevant under
693
+ * `video.AUTO`.
694
+ * @returns {Texture2d} a texture holding the captured frame
695
+ * @example
696
+ * effect.setTexture("uScene", renderer.toFrameTexture());
697
+ */
698
+ toFrameTexture(options?: {
699
+ target?: Texture2d | null | undefined;
700
+ region?: Bounds | {
701
+ x: number;
702
+ y: number;
703
+ width: number;
704
+ height: number;
705
+ } | undefined;
706
+ }): Texture2d;
647
707
  }
648
708
  declare namespace Renderer {
649
709
  let _whitePixel: any;
@@ -652,7 +712,7 @@ export default Renderer;
652
712
  import CanvasRenderTarget from "./rendertarget/canvasrendertarget.js";
653
713
  import { Vector2d } from "../math/vector2d.ts";
654
714
  import type RenderTargetPool from "./rendertarget/render_target_pool.js";
655
- import Path2D from "./../geometries/path2d.js";
715
+ import Path2D from "./../geometries/path2d.ts";
656
716
  import { Color } from "./../math/color.ts";
657
717
  import RenderState from "./renderstate.js";
658
718
  import { Matrix3d } from "../math/matrix3d.ts";
@@ -663,4 +723,5 @@ import type { RoundRect } from "./../geometries/roundrect.ts";
663
723
  import type { Polygon } from "../geometries/polygon.ts";
664
724
  import type { Line } from "./../geometries/line.ts";
665
725
  import type { Ellipse } from "./../geometries/ellipse.ts";
726
+ import type { default as Texture2d } from "./texture/texture2d.ts";
666
727
  //# sourceMappingURL=renderer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/video/renderer.js"],"names":[],"mappings":"AAUA;;GAEG;AAEH;;;;;;;GAOG;AAEH;;;GAGG;AACH;IAiQC;;;;;;;;;;;;OAYG;IACH,2BANW,MAAM,UACN,MAAM,0BACN,OAAO,GAEL,iBAAiB,GAAC,eAAe,CAI7C;IAED;;;;;;;;;;;;OAYG;IACH,wBAFa,iBAAiB,GAAC,eAAe,CAgB7C;IA5SD;;OAEG;IACH,sBAFW,mBAAmB,EAsJ7B;IAnJA;;;;OAIG;IACH,cAFU,kBAAkB,CAS3B;IAED;;;;OAIG;IACH,iBAFU,MAAM,CAEO;IAEvB;;;;OAIG;IACH,oBAFU,MAAM,CAE6C;IAE7D;;;;OAIG;IACH,YAHU,QAAQ,CAGsD;IAExE;;;;OAIG;IACH,gBAFU,OAAO,CAES;IAE1B;;;;OAIG;IACH,aAFU,MAAM,GAAC,SAAS,CAEE;IAE5B;;;;;;OAMG;IACH,cAHU,QAAQ,GAAC,YAAY,GAAC,SAAS,CAGZ;IAE7B;;;;;OAKG;IACH,mBAHU,gBAAgB,GAAC,IAAI,CAGF;IAE7B;;;OAGG;IACH,QAFU,MAAM,CAEU;IAE1B;;;;OAIG;IACH,MAFU,MAAM,CAEK;IAErB;;;;;OAKG;IACH,iBAFU,KAAK,CAOd;IAED;;;;OAIG;IACH,aAFU,WAAW,CAEe;IAGpC,oBAAiD;IACjD,mBAA+C;IAC/C,4CAAqD;IAErD;;;;;;;;;OASG;IACH,WAHU,MAAM,CAGE;IAElB;;OAEG;IACH,kBAAkB;IAGlB,2BAAsC;IAGtC,iBAAiB;IAEjB;;;;;;;;OAQG;IACH,kBAFU,gBAAgB,GAAC,iBAAiB,GAAC,eAAe,GAAC,WAAW,GAAC,IAAI,CAEjD;IAE5B;;;;;;;OAOG;IACH,kBAFU,MAAM,CAES;IAU1B,4BANU,MAAM,EAQf;IATD;;OAEG;IACH,wBAFU,MAAM,CAIf;IAoBD,wBAPU,MAAM,EASf;IAhBD;;;;;;;;;OASG;IACH,oBAHU,MAAM,CAKf;IAcD,kBANa,MAAM,EAQlB;IAVD;;;OAGG;IACH,cAFa,MAAM,CAIlB;IAcD,iBANa,MAAM,EAQlB;IAVD;;;OAGG;IACH,aAFa,MAAM,CAIlB;IAMD;;OAEG;IACH,cAAU;IAEV;;OAEG;IACH,cAAU;IAEV;;;;;;;;OAQG;IAEH,eAHW,IAAI,QAGE;IAEjB;;OAEG;IACH,cAQC;IAED;;;;OAIG;IACH,gBAAY;IAEZ;;;OAGG;IACH,aAFa,iBAAiB,CAI7B;IAgDD;;;OAGG;IACH,cAFa,wBAAwB,GAAC,qBAAqB,CAI1D;IAED;;;;;;;OAOG;IACH,wCAFa,MAAM,CAYlB;IAED;;;;OAIG;IACH,sCAHW,MAAM,GACJ,OAAO,CAgBnB;IAED;;;;;;;OAOG;IACH,4BAJW,UAAU,GACR,OAAO,CAcnB;IAED;;;;;;OAMG;IAEH,0BAJW,UAAU,QAIO;IAE5B;;;;;;;;;;;;OAYG;IAEH,mBATW,YAAY,KACZ,MAAM,KACN,MAAM,SACN,MAAM,UACN,MAAM,UACN,YAAY,cACZ,OAAO,QAG2C;IAE7D;;;;;;;;OAQG;IAEH,gBANW,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,QAGiB;IAElC;;;;OAIG;IACH,0BAAsB;IAEtB;;;;;;;OAOG;IAEH,iBANW,MAAM,KACN,MAAM,SACN,MAAM,UACN,MAAM,QAGoB;IAErC;;;OAGG;IACH,uBAAmB;IAEnB;;;;OAIG;IAEH,wBAHW,OAAO,QAGQ;IAE1B;;;OAGG;IACH,gBAFa,MAAM,CAIlB;IAED;;;;;;OAMG;IACH,oBAHW,MAAM,QAKhB;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IAEH,0BANW,QAAQ,CAAC,MAAM,CAAC,YAChB,MAAM,eACN,MAAM,eACN,MAAM,QAqBhB;IAPC,wCAA8B;IAShC;;;;;;;;;;;;;;;;;;;;OAoBG;IAEH,iBAJW,MAAM,QAMhB;IAED;;;;;;;;;;;;OAYG;IACH,qBAHW,MAAM,QACN,IAAI,QA4Bd;IAED;;;;OAIG;IAEH,gBAHW,KAAK,GAAC,MAAM,GAAC,QAAQ,QAK/B;IAED;;;OAGG;IACH,YAFa,KAAK,CAIjB;IAED;;;;;;;OAOG;IACH,yBANW,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,GACJ,QAAQ,CAIpB;IAED;;;;;;;;;OASG;IACH,yBARW,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,GACJ,QAAQ,CAIpB;IAED;;;;;;;;;OASG;IACH,sBARW,MAAM,EAAE,QAsBlB;IAED;;;OAGG;IACH,eAFa,MAAM,EAAE,CAIpB;IAED;;;OAGG;IACH,eAFa,MAAM,CAIlB;IAED;;;;OAIG;IACH,iBAHW,IAAI,GAAC,MAAM,GACT,OAAO,CASnB;IAED;;;;OAIG;IACH,cAHW,MAAM,UACN,MAAM,QAchB;IAED;;;OAGG;IACH,sBAFW,OAAO,QAOjB;IAED;;;;OAIG;IACH,sBAFW,QAAQ,QAIlB;IAED;;;;OAIG;IACH,cAHW,IAAI,GAAC,SAAS,GAAC,OAAO,GAAC,IAAI,GAAC,OAAO,GAAC,MAAM,SAC1C,OAAO,QAiFjB;IAED;;;OAGG;IACH,YAFW,IAAI,GAAC,SAAS,GAAC,OAAO,GAAC,IAAI,GAAC,OAAO,GAAC,MAAM,QAIpD;IAED;;;;;;OAMG;IACH,UALW,gBAAgB,GAAC,iBAAiB,GAAC,eAAe,SAClD,KAAK,GAAC,MAAM,SACZ,MAAM,GACJ,iBAAiB,GAAC,eAAe,CAyB7C;IAED;;;OAGG;IACH,aAAS;IAET;;;;OAIG;IACH,gBAAY;IAEZ;;;;OAIG;IAEH,aAJW,MAAM,KACN,MAAM,QAGC;IAElB;;;OAGG;IAEH,cAHW,MAAM,QAGD;IAEhB;;;;OAIG;IAEH,SAJW,MAAM,KACN,MAAM,QAGH;IAEd;;;;OAIG;IAEH,sBAHW,MAAM,QAGO;IAExB;;;;;;;OAOG;IAEH,YANW,MAAM,KACN,MAAM,SACN,MAAM,UACN,MAAM,QAGe;IAEhC;;;;;;;;OAQG;IAEH,cAPW,MAAM,KACN,MAAM,SACN,MAAM,UACN,MAAM,SACN,OAAO,QAGsB;IAExC;;;;;;;OAOG;IAEH,eANW,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,QAGS;IAE1B;;;;;;;;OAQG;IAEH,iBAPW,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,SACN,OAAO,QAGgB;IAElC;;;;;;;OAOG;IAEH,mBANW,MAAM,UACN,MAAM,QACN,MAAM,QACN,MAAM,QAGwB;IAEzC;;;;;;;;;;;;;;;;;;OAkBG;IAEH,iBAXW,gBAAgB,GAAC,eAAe,GAAC,gBAAgB,GAAC,iBAAiB,GAAC,WAAW,GAAC,eAAe,GAAC,UAAU,MAC1G,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,QAGkC;IAEnD;;;;;;OAMG;IACH,gBAAY;IAEZ;;;OAGG;IACH,kBAAc;IAEd;;;;OAIG;IACH,cAHW,KAAK,UACL,MAAM,QAMhB;IAED;;;OAGG;IACH,kBAGC;IAED;;;;;;;;;;;;;;;OAeG;IACH,gBAHW,MAAM,QAKhB;IAED;;;;;;;OAOG;IACH,cANW,MAAM,YACN,MAAM,gBAOhB;IAED;;;;;;;;OAQG;IACH,qBANW,MAAM,YACN,MAAM,gBAOhB;IAED;;;;;;;OAOG;IACH,iBANW,MAAM,YACN,MAAM,gBAOhB;CACD;;;;;+BA5iC8B,sCAAsC;yBAL5C,qBAAqB;kCAQb,sCAAsC;mBAXpD,2BAA2B;sBACxB,oBAAoB;wBAMlB,kBAAkB;yBALjB,qBAAqB;0BAavB,8BAA8B;yBAT5B,eAAe;4BAcf,wBAAwB;+BAJrB,8BAA8B;6BAChC,0BAA0B;0BAC7B,yBAAyB;6BACtB,4BAA4B"}
1
+ {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/video/renderer.js"],"names":[],"mappings":"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"}
@@ -6,8 +6,11 @@
6
6
  * Renderer-agnostic — the actual RenderTarget creation is delegated to a
7
7
  * factory function provided by the renderer (WebGL, WebGPU, etc.).
8
8
  *
9
- * Camera effects use pool indices 0 and 1 (capture + ping-pong),
10
- * sprite effects use indices 2 and 3.
9
+ * Camera effects use pool indices 0 and 1 (capture + ping-pong); sprite
10
+ * effects use indices 2 and 3, and each NESTED sprite pass (a multi-effect
11
+ * renderable drawn inside another multi-effect renderable) gets its own pair
12
+ * above that (4/5, 6/7, …), tracked by a stack of active bases so begin/end
13
+ * pairs compose like save/restore.
11
14
  * Render targets are lazily created and resized to match the required dimensions.
12
15
  * @ignore
13
16
  */
@@ -20,10 +23,18 @@ export default class RenderTargetPool {
20
23
  _factory: (arg0: number, arg1: number) => RenderTarget;
21
24
  /** @type {RenderTarget[]} */
22
25
  _pool: RenderTarget[];
23
- /** @type {number} */
24
- _activeBase: number;
25
- /** @type {number} */
26
- _previousBase: number;
26
+ /**
27
+ * active pass bases, innermost last — a STACK, so nested begin/end
28
+ * pairs unwind correctly (two scalars silently corrupted the pool on
29
+ * nested passes: the inner end() popped the outer pass's slot)
30
+ * @type {number[]}
31
+ */
32
+ _baseStack: number[];
33
+ /**
34
+ * The base index of the innermost active pass, or -1 when none.
35
+ * @returns {number}
36
+ */
37
+ get activeBase(): number;
27
38
  /**
28
39
  * Get or create a render target at the given pool index, resized to the given dimensions.
29
40
  * @param {number} index - pool index
@@ -1 +1 @@
1
- {"version":3,"file":"render_target_pool.d.ts","sourceRoot":"","sources":["../../../src/video/rendertarget/render_target_pool.js"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;;;GASG;AACH;IACC;;OAEG;IACH,qBAFW,CAAS,IAAM,EAAN,MAAM,EAAE,IAAM,EAAN,MAAM,KAAG,YAAY,EAWhD;IARA,qDAAqD;IACrD,UADW,CAAS,IAAM,EAAN,MAAM,EAAE,IAAM,EAAN,MAAM,KAAG,YAAY,CAC1B;IACvB,6BAA6B;IAC7B,OADW,YAAY,EAAE,CACV;IACf,qBAAqB;IACrB,aADW,MAAM,CACI;IACrB,qBAAqB;IACrB,eADW,MAAM,CACM;IAGxB;;;;;;OAMG;IACH,WALW,MAAM,SACN,MAAM,UACN,MAAM,GACJ,YAAY,CASxB;IAED;;;;;;;;OAQG;IACH,gBANW,OAAO,eACP,MAAM,SACN,MAAM,UACN,MAAM,GACJ,YAAY,CAexB;IAED;;;OAGG;IACH,oBAFa,YAAY,GAAC,SAAS,CAOlC;IAED;;;OAGG;IACH,qBAFa,YAAY,GAAC,SAAS,CAOlC;IAED;;;;OAIG;IACH,OAFa,YAAY,GAAC,IAAI,CAS7B;IAED;;;;OAIG;IACH,iBAHW,MAAM,UACN,MAAM,QAQhB;IAED;;OAEG;IACH,gBASC;CACD;8BAlI4B,mBAAmB"}
1
+ {"version":3,"file":"render_target_pool.d.ts","sourceRoot":"","sources":["../../../src/video/rendertarget/render_target_pool.js"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;;;;;;GAYG;AACH;IACC;;OAEG;IACH,qBAFW,CAAS,IAAM,EAAN,MAAM,EAAE,IAAM,EAAN,MAAM,KAAG,YAAY,EAchD;IAXA,qDAAqD;IACrD,UADW,CAAS,IAAM,EAAN,MAAM,EAAE,IAAM,EAAN,MAAM,KAAG,YAAY,CAC1B;IACvB,6BAA6B;IAC7B,OADW,YAAY,EAAE,CACV;IACf;;;;;OAKG;IACH,YAFU,MAAM,EAAE,CAEE;IAGrB;;;OAGG;IACH,kBAFa,MAAM,CAMlB;IAED;;;;;;OAMG;IACH,WALW,MAAM,SACN,MAAM,UACN,MAAM,GACJ,YAAY,CASxB;IAED;;;;;;;;OAQG;IACH,gBANW,OAAO,eACP,MAAM,SACN,MAAM,UACN,MAAM,GACJ,YAAY,CAuBxB;IAED;;;OAGG;IACH,oBAFa,YAAY,GAAC,SAAS,CAQlC;IAED;;;OAGG;IACH,qBAFa,YAAY,GAAC,SAAS,CAQlC;IAED;;;;OAIG;IACH,OAFa,YAAY,GAAC,IAAI,CAS7B;IAED;;;;OAIG;IACH,iBAHW,MAAM,UACN,MAAM,QAQhB;IAED;;OAEG;IACH,gBAQC;CACD;8BA3J4B,mBAAmB"}
@@ -30,7 +30,7 @@ export function createAtlas(width: any, height: any, name?: string, repeat?: str
30
30
  * return a string that identifies the texture atlas type
31
31
  * @ignore
32
32
  */
33
- export function identifyFormat(app: any): "texturepacker" | "shoebox" | "aseprite" | "melonJS";
33
+ export function identifyFormat(app: any): "melonJS" | "texturepacker" | "shoebox" | "aseprite";
34
34
  /**
35
35
  * A Texture atlas class, currently supports : <br>
36
36
  * - [TexturePacker]{@link http://www.codeandweb.com/texturepacker/} : through JSON export (standard and multipack texture atlas) <br>
@@ -42,7 +42,7 @@ export function identifyFormat(app: any): "texturepacker" | "shoebox" | "aseprit
42
42
  * );
43
43
  * @category Game Objects
44
44
  */
45
- export class TextureAtlas {
45
+ export class TextureAtlas extends Texture2d {
46
46
  /**
47
47
  * @param {object|object[]} atlases - atlas information. See {@link loader.getJSON}
48
48
  * @param {HTMLImageElement|HTMLCanvasElement|OffscreenCanvas|CompressedImage|string|OffscreenCanvas[]|HTMLImageElement[]|HTMLCanvasElement[]|string[]} [src=atlas.meta.image] - Image source
@@ -266,6 +266,7 @@ export class TextureAtlas {
266
266
  getAnimationSettings(names?: string[] | number[]): object;
267
267
  createAnimationFromName(names: any, settings: any): Sprite;
268
268
  }
269
+ import Texture2d from "./texture2d.ts";
269
270
  import Sprite from "./../../renderable/sprite.js";
270
271
  import type NineSliceSprite from "./../../renderable/nineslicesprite.js";
271
272
  //# sourceMappingURL=atlas.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"atlas.d.ts","sourceRoot":"","sources":["../../../src/video/texture/atlas.js"],"names":[],"mappings":"AASA;;;GAGG;AAEH;;;GAGG;AACH;;;;;;;;;;;;;;;;;;;EAoBC;AAED;;;GAGG;AACH,+FAYC;AAED;;;;;;;;;;GAUG;AACH;IACC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACH,qBAjCW,MAAM,GAAC,MAAM,EAAE,QACf,gBAAgB,GAAC,iBAAiB,GAAC,eAAe,GAAC,eAAe,GAAC,MAAM,GAAC,eAAe,EAAE,GAAC,gBAAgB,EAAE,GAAC,iBAAiB,EAAE,GAAC,MAAM,EAAE,YAC3I,OAAO,GAAC,MAAM,EAsOxB;IAjMA;;;OAGG;IACH,sBAAkB;IAElB;;;;OAIG;IACH,uBAAwB;IAExB;;;;;;OAMG;IACH,6BAA8B;IAE9B;;;;OAIG;IACH,uBAAwB;IAExB;;;;OAIG;IACH,2BAA4B;IAE5B;;;OAGG;IACH;;;;;;MAA6D;IAW1D,YAA8C;IAgJlD;;;;OAIG;IACH,gBAHW,MAAM,GACJ,MAAM,CAQlB;IAED;;;OAGG;IACH,aAFa,MAAM,CAIlB;IAED;;;;OAIG;IACH,oBAHW,MAAM,GACJ,gBAAgB,GAAC,iBAAiB,CAQ9C;IAED;;;;;;OAMG;IACH,0BAHW,MAAM,GACJ,gBAAgB,GAAC,iBAAiB,GAAC,eAAe,GAAC,WAAW,GAAC,IAAI,CAU/E;IAED;;;;;;;;OAQG;IACH,gBAPW,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,GACJ,MAAM,CAmBlB;IAED;;;;;OAKG;IACH,gBAJW,MAAM,UACN,MAAM,GACJ,MAAM,CAiBlB;IAED;;;;;;;OAOG;IACH,aANW,MAAM,GAAC,MAAM,OACb,MAAM,OACN,MAAM,OACN,MAAM,GACJ,YAAY,CAsCxB;IAED;;;;;;;OAOG;IACH,cANW,MAAM,QACN,MAAM,KACN,MAAM,KACN,MAAM,GACJ,YAAY,CAoBxB;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,2BA1BW,MAAM,aACN,MAAM,cACN,OAAO,GACL,MAAM,GAAC,eAAe,CAqClC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,6BAnBW,MAAM,EAAE,GAAC,MAAM,EAAE,GAGf,MAAM,CAyElB;IAED,2DA2CC;CACD;mBAtqBkB,8BAA8B;iCAQjB,uCAAuC"}
1
+ {"version":3,"file":"atlas.d.ts","sourceRoot":"","sources":["../../../src/video/texture/atlas.js"],"names":[],"mappings":"AAUA;;;GAGG;AAEH;;;GAGG;AACH;;;;;;;;;;;;;;;;;;;EAoBC;AAED;;;GAGG;AACH,+FAYC;AAED;;;;;;;;;;GAUG;AACH;IACC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACH,qBAjCW,MAAM,GAAC,MAAM,EAAE,QACf,gBAAgB,GAAC,iBAAiB,GAAC,eAAe,GAAC,eAAe,GAAC,MAAM,GAAC,eAAe,EAAE,GAAC,gBAAgB,EAAE,GAAC,iBAAiB,EAAE,GAAC,MAAM,EAAE,YAC3I,OAAO,GAAC,MAAM,EAuOxB;IAjMA;;;OAGG;IACH,sBAAkB;IAElB;;;;OAIG;IACH,uBAAwB;IAExB;;;;;;OAMG;IACH,6BAA8B;IAE9B;;;;OAIG;IACH,uBAAwB;IAExB;;;;OAIG;IACH,2BAA4B;IAE5B;;;OAGG;IACH;;;;;;MAA6D;IAW1D,YAA8C;IAgJlD;;;;OAIG;IACH,gBAHW,MAAM,GACJ,MAAM,CAQlB;IAED;;;OAGG;IACH,aAFa,MAAM,CAIlB;IAED;;;;OAIG;IACH,oBAHW,MAAM,GACJ,gBAAgB,GAAC,iBAAiB,CAQ9C;IAED;;;;;;OAMG;IACH,0BAHW,MAAM,GACJ,gBAAgB,GAAC,iBAAiB,GAAC,eAAe,GAAC,WAAW,GAAC,IAAI,CAU/E;IAED;;;;;;;;OAQG;IACH,gBAPW,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,GACJ,MAAM,CAsBlB;IAED;;;;;OAKG;IACH,gBAJW,MAAM,UACN,MAAM,GACJ,MAAM,CAiBlB;IAED;;;;;;;OAOG;IACH,aANW,MAAM,GAAC,MAAM,OACb,MAAM,OACN,MAAM,OACN,MAAM,GACJ,YAAY,CAsCxB;IAED;;;;;;;OAOG;IACH,cANW,MAAM,QACN,MAAM,KACN,MAAM,KACN,MAAM,GACJ,YAAY,CA2BxB;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,2BA1BW,MAAM,aACN,MAAM,cACN,OAAO,GACL,MAAM,GAAC,eAAe,CAqClC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,6BAnBW,MAAM,EAAE,GAAC,MAAM,EAAE,GAGf,MAAM,CAkFlB;IAED,2DAiDC;CACD;sBA5rBqB,gBAAgB;mBALnB,8BAA8B;iCASjB,uCAAuC"}
@@ -13,6 +13,7 @@ declare class TextureCache {
13
13
  tinted: Map<any, any>;
14
14
  units: Map<any, any>;
15
15
  usedUnits: Set<any>;
16
+ reservedUnits: Map<any, any>;
16
17
  max_size: number;
17
18
  /**
18
19
  * @ignore
@@ -22,6 +23,22 @@ declare class TextureCache {
22
23
  * @ignore
23
24
  */
24
25
  allocateTextureUnit(): number;
26
+ /**
27
+ * Reserve a texture unit so {@link allocateTextureUnit} never hands it to a
28
+ * color texture — used by `ShaderEffect.setTexture` to hold high units for
29
+ * its extra samplers. Reference-counted, so a unit shared by several effects
30
+ * stays reserved until the last one releases it.
31
+ * @param {number} unit - the texture unit to reserve
32
+ * @ignore
33
+ */
34
+ reserveUnit(unit: number): void;
35
+ /**
36
+ * Release a unit previously held by {@link reserveUnit}. The unit becomes
37
+ * allocatable again once its last holder releases it.
38
+ * @param {number} unit - the texture unit to release
39
+ * @ignore
40
+ */
41
+ releaseUnit(unit: number): void;
25
42
  /**
26
43
  * Reset all texture unit assignments without clearing the texture cache.
27
44
  * Used by multi-texture batching when the shader's sampler range is exceeded.
@@ -31,21 +48,53 @@ declare class TextureCache {
31
48
  /**
32
49
  * @ignore
33
50
  *
34
- * Hot-path note: `getUnit` / `peekUnit` / `freeTextureUnit` are
35
- * called per-texture per-draw, so the `(source, repeat)` lookup is
36
- * inlined here rather than going through a helper that allocates a
37
- * `{source, repeat}` object on every call.
51
+ * Frees the single `(source, repeat)` unit matching the texture's
52
+ * current `repeat` field — deliberately granular, so freeing one live
53
+ * consumer (e.g. one of two patterns with different repeats over the
54
+ * same image) never evicts the other's unit. When a SOURCE goes away
55
+ * entirely, use {@link freeAllUnits} instead — a source can hold units
56
+ * under several repeat modes (per-mesh `textureRepeat` overrides,
57
+ * #1503) that this granular free would leave pinned.
38
58
  */
39
59
  freeTextureUnit(texture: any): void;
40
60
  /**
41
61
  * @ignore
62
+ *
63
+ * Free every texture unit allocated for the texture's source, across
64
+ * ALL repeat modes. A single source can hold several `(source, repeat)`
65
+ * units — patterns with different repeats over one image, or meshes
66
+ * sampling one image with per-mesh `textureRepeat` overrides (#1503) —
67
+ * and the source going away invalidates all of them at once.
68
+ */
69
+ freeAllUnits(texture: any): void;
70
+ /**
71
+ * @ignore
72
+ * @param {string} [repeat] - overrides the texture's own `repeat` for the
73
+ * unit lookup — sampler state per use (a mesh's `textureRepeat`), so one
74
+ * source can be sampled with several wrap modes without mutating the
75
+ * shared atlas (#1503). Omit to use `texture.repeat`.
76
+ *
77
+ * Hot-path note: `getUnit` / `peekUnit` are called per-texture per-draw,
78
+ * so the `(source, repeat)` lookup is inlined here rather than going
79
+ * through a helper that allocates a `{source, repeat}` object per call.
80
+ */
81
+ getUnit(texture: any, repeat?: string): any;
82
+ /**
83
+ * @ignore
84
+ * return every texture unit allocated for the given texture's source,
85
+ * across ALL repeat modes — the unload-time counterpart of the per-use
86
+ * `getUnit(texture, repeat)` override (#1503): a single source can hold
87
+ * one unit per wrap mode it was sampled with, and per-repeat `peekUnit`
88
+ * lookups would only ever find the one matching the texture's current
89
+ * `repeat` field. Not a hot path (allocates the result array).
42
90
  */
43
- getUnit(texture: any): any;
91
+ peekAllUnits(texture: any): any[];
44
92
  /**
45
93
  * @ignore
46
94
  * return the texture unit for the given texture, or -1 if not allocated
95
+ * @param {string} [repeat] - same per-use wrap override as {@link getUnit}
47
96
  */
48
- peekUnit(texture: any): any;
97
+ peekUnit(texture: any, repeat?: string): any;
49
98
  /**
50
99
  * @ignore
51
100
  * cache the textureAltas for the given image