melonjs 19.1.0 → 19.2.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 (83) hide show
  1. package/README.md +7 -5
  2. package/build/application/application.d.ts +33 -0
  3. package/build/application/application.d.ts.map +1 -1
  4. package/build/application/settings.d.ts +1 -0
  5. package/build/application/settings.d.ts.map +1 -1
  6. package/build/camera/camera2d.d.ts +45 -22
  7. package/build/camera/camera2d.d.ts.map +1 -1
  8. package/build/camera/effects/camera_effect.d.ts +45 -0
  9. package/build/camera/effects/camera_effect.d.ts.map +1 -0
  10. package/build/camera/effects/fade_effect.d.ts +60 -0
  11. package/build/camera/effects/fade_effect.d.ts.map +1 -0
  12. package/build/camera/effects/mask_effect.d.ts +88 -0
  13. package/build/camera/effects/mask_effect.d.ts.map +1 -0
  14. package/build/camera/effects/shake_effect.d.ts +47 -0
  15. package/build/camera/effects/shake_effect.d.ts.map +1 -0
  16. package/build/index.d.ts +10 -2
  17. package/build/index.d.ts.map +1 -1
  18. package/build/index.js +2788 -914
  19. package/build/index.js.map +4 -4
  20. package/build/level/tiled/TMXObjectFactory.d.ts.map +1 -1
  21. package/build/math/color_matrix.d.ts +51 -0
  22. package/build/math/color_matrix.d.ts.map +1 -0
  23. package/build/math/matrix2d.d.ts +6 -6
  24. package/build/math/matrix3d.d.ts +17 -0
  25. package/build/math/matrix3d.d.ts.map +1 -1
  26. package/build/particles/emitter.d.ts +19 -5
  27. package/build/particles/emitter.d.ts.map +1 -1
  28. package/build/particles/particle.d.ts +4 -1
  29. package/build/particles/particle.d.ts.map +1 -1
  30. package/build/particles/settings.d.ts +200 -31
  31. package/build/particles/settings.d.ts.map +1 -1
  32. package/build/physics/quadtree.d.ts.map +1 -1
  33. package/build/renderable/imagelayer.d.ts +13 -2
  34. package/build/renderable/imagelayer.d.ts.map +1 -1
  35. package/build/renderable/renderable.d.ts +54 -35
  36. package/build/renderable/renderable.d.ts.map +1 -1
  37. package/build/renderable/text/bitmaptext.d.ts +33 -5
  38. package/build/renderable/text/bitmaptext.d.ts.map +1 -1
  39. package/build/renderable/text/text.d.ts +27 -1
  40. package/build/renderable/text/text.d.ts.map +1 -1
  41. package/build/renderable/trigger.d.ts +44 -19
  42. package/build/renderable/trigger.d.ts.map +1 -1
  43. package/build/state/state.d.ts +44 -2
  44. package/build/state/state.d.ts.map +1 -1
  45. package/build/tweens/tween.d.ts +9 -0
  46. package/build/tweens/tween.d.ts.map +1 -1
  47. package/build/video/buffer/index.d.ts +40 -0
  48. package/build/video/buffer/index.d.ts.map +1 -0
  49. package/build/video/{webgl/buffer → buffer}/vertex.d.ts +3 -2
  50. package/build/video/buffer/vertex.d.ts.map +1 -0
  51. package/build/video/canvas/canvas_renderer.d.ts.map +1 -1
  52. package/build/video/renderer.d.ts +79 -0
  53. package/build/video/renderer.d.ts.map +1 -1
  54. package/build/video/renderstate.d.ts +7 -0
  55. package/build/video/renderstate.d.ts.map +1 -1
  56. package/build/video/rendertarget/canvasrendertarget.d.ts +26 -63
  57. package/build/video/rendertarget/canvasrendertarget.d.ts.map +1 -1
  58. package/build/video/rendertarget/render_target_pool.d.ts +73 -0
  59. package/build/video/rendertarget/render_target_pool.d.ts.map +1 -0
  60. package/build/video/rendertarget/rendertarget.d.ts +77 -0
  61. package/build/video/rendertarget/rendertarget.d.ts.map +1 -0
  62. package/build/video/rendertarget/webglrendertarget.d.ts +30 -0
  63. package/build/video/rendertarget/webglrendertarget.d.ts.map +1 -0
  64. package/build/video/webgl/batchers/batcher.d.ts +4 -4
  65. package/build/video/webgl/batchers/batcher.d.ts.map +1 -1
  66. package/build/video/webgl/batchers/quad_batcher.d.ts +15 -2
  67. package/build/video/webgl/batchers/quad_batcher.d.ts.map +1 -1
  68. package/build/video/webgl/buffer/index.d.ts +5 -34
  69. package/build/video/webgl/buffer/index.d.ts.map +1 -1
  70. package/build/video/webgl/effects/colorMatrix.d.ts +92 -0
  71. package/build/video/webgl/effects/colorMatrix.d.ts.map +1 -0
  72. package/build/video/webgl/effects/desaturate.d.ts +2 -4
  73. package/build/video/webgl/effects/desaturate.d.ts.map +1 -1
  74. package/build/video/webgl/effects/invert.d.ts +2 -2
  75. package/build/video/webgl/effects/invert.d.ts.map +1 -1
  76. package/build/video/webgl/effects/sepia.d.ts +2 -2
  77. package/build/video/webgl/effects/sepia.d.ts.map +1 -1
  78. package/build/video/webgl/effects/vignette.d.ts +42 -0
  79. package/build/video/webgl/effects/vignette.d.ts.map +1 -0
  80. package/build/video/webgl/webgl_renderer.d.ts +8 -8
  81. package/build/video/webgl/webgl_renderer.d.ts.map +1 -1
  82. package/package.json +1 -1
  83. package/build/video/webgl/buffer/vertex.d.ts.map +0 -1
@@ -19,13 +19,13 @@ export default class BitmapText extends Renderable {
19
19
  * @param {number} [settings.wordWrapWidth] - the maximum length in CSS pixel for a single segment of text
20
20
  * @param {(string|string[])} [settings.text] - a string, or an array of strings
21
21
  * @example
22
- * // Use me.loader.preload or me.loader.load to load assets
23
- * me.loader.preload([
24
- * { name: "arial", type: "binary" src: "data/font/arial.fnt" },
25
- * { name: "arial", type: "image" src: "data/font/arial.png" },
22
+ * // Use loader.preload or loader.load to load assets
23
+ * loader.preload([
24
+ * { name: "arial", type: "binary", src: "data/font/arial.fnt" },
25
+ * { name: "arial", type: "image", src: "data/font/arial.png" },
26
26
  * ])
27
27
  * // Then create an instance of your bitmap font:
28
- * let myFont = new me.BitmapText(x, y, {font:"arial", text:"Hello"});
28
+ * let myFont = new BitmapText(x, y, {font:"arial", text:"Hello"});
29
29
  * // two possibilities for using "myFont"
30
30
  * // either call the draw function from your Renderable draw function
31
31
  * myFont.draw(renderer, "Hello!", 0, 0);
@@ -105,6 +105,10 @@ export default class BitmapText extends Renderable {
105
105
  * @see Renderable#tint
106
106
  */
107
107
  public get fillStyle(): Color;
108
+ /**
109
+ * @ignore
110
+ */
111
+ _visibleCharacters: number;
108
112
  metrics: TextMetrics;
109
113
  /**
110
114
  * change the font settings
@@ -119,6 +123,30 @@ export default class BitmapText extends Renderable {
119
123
  * @returns {BitmapText} this object for chaining
120
124
  */
121
125
  setText(value?: number | string | string[]): BitmapText;
126
+ public set visibleCharacters(value: number);
127
+ /**
128
+ * the number of characters to display (use -1 to show all).
129
+ * Useful for typewriter effects combined with Tween.
130
+ * @public
131
+ * @type {number}
132
+ * @default -1
133
+ * @see BitmapText#visibleRatio
134
+ * @example
135
+ * // show only the first 5 characters
136
+ * bitmapText.visibleCharacters = 5;
137
+ * // typewriter effect
138
+ * bitmapText.visibleCharacters = 0;
139
+ * new Tween(bitmapText).to({ visibleRatio: 1.0 }, { duration: 2000 }).start();
140
+ */
141
+ public get visibleCharacters(): number;
142
+ public set visibleRatio(value: number);
143
+ /**
144
+ * the ratio of visible characters (0.0 to 1.0).
145
+ * Setting this automatically updates {@link visibleCharacters}.
146
+ * @public
147
+ * @type {number}
148
+ */
149
+ public get visibleRatio(): number;
122
150
  /**
123
151
  * change the font display size
124
152
  * @param {number} scale - ratio
@@ -1 +1 @@
1
- {"version":3,"file":"bitmaptext.d.ts","sourceRoot":"","sources":["../../../src/renderable/text/bitmaptext.js"],"names":[],"mappings":"AAOA;;;GAGG;AACH;IACC;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,eA5BW,MAAM,KACN,MAAM,YAEd;QAA+B,IAAI,EAA3B,MAAM,8DAAM;QACM,QAAQ;QACR,IAAI;QACE,SAAS;QACf,SAAS;QACT,SAAS;QACT,YAAY;QACZ,UAAU;QACR,WAAW;QACb,aAAa;QACF,IAAI;KACzC,EAsHF;IApGA;;;;;;OAMG;IACH,kBAHU,MAAM,CAG6B;IAE7C;;;;;;OAMG;IACH,qBAHU,MAAM,CAGkC;IAElD;;;;;;OAMG;IACH,mBAHU,MAAM,CAG4B;IAE5C;;;;;;OAMG;IACH,sBAHU,MAAM,CAGiC;IAEjD;;;OAGG;IACH,cAAe;IAEf;;;OAGG;IACH,kBAA2C;IAE3C;;;OAGG;IACH,kBAG2B;IAG1B;;;OAGG;IAEH,iBAAgE;IAgJlE,4BANU,KAAK,EAad;IAhBD;;;;;OAKG;IACH,wBAHU,KAAK,CAKd;IAnHA,qBAAoC;IAWrC;;;;;OAKG;IACH,eAJW,MAAM,UACN,MAAM,GACJ,UAAU,CAWtB;IAED;;;;OAIG;IACH,gBAHW,MAAM,GAAC,MAAM,GAAC,MAAM,EAAE,GACpB,UAAU,CAqBtB;IAyED;;;;OAIG;IACH,cAHW,MAAM,GACJ,UAAU,CAYtB;IAED;;;;OAIG;IACH,mBAHW,MAAM,GACJ,WAAW,CAIvB;IAED;;;OAGG;IACH,eAFW,cAAc,GAAC,aAAa,QAwFtC;IAED;;;OAGG;IACH,gBAQC;CACD;uBArYsB,kBAAkB;sBAFnB,qBAAqB;wBAInB,kBAAkB"}
1
+ {"version":3,"file":"bitmaptext.d.ts","sourceRoot":"","sources":["../../../src/renderable/text/bitmaptext.js"],"names":[],"mappings":"AAOA;;;GAGG;AACH;IACC;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,eA5BW,MAAM,KACN,MAAM,YAEd;QAA+B,IAAI,EAA3B,MAAM,8DAAM;QACM,QAAQ;QACR,IAAI;QACE,SAAS;QACf,SAAS;QACT,SAAS;QACT,YAAY;QACZ,UAAU;QACR,WAAW;QACb,aAAa;QACF,IAAI;KACzC,EA2HF;IAzGA;;;;;;OAMG;IACH,kBAHU,MAAM,CAG6B;IAE7C;;;;;;OAMG;IACH,qBAHU,MAAM,CAGkC;IAElD;;;;;;OAMG;IACH,mBAHU,MAAM,CAG4B;IAE5C;;;;;;OAMG;IACH,sBAHU,MAAM,CAGiC;IAEjD;;;OAGG;IACH,cAAe;IAEf;;;OAGG;IACH,kBAA2C;IAE3C;;;OAGG;IACH,kBAG2B;IAG1B;;;OAGG;IAEH,iBAAgE;IA0MlE,4BANU,KAAK,EAad;IAhBD;;;;;OAKG;IACH,wBAHU,KAAK,CAKd;IA9KA;;OAEG;IACH,2BAA4B;IAG5B,qBAAoC;IAWrC;;;;;OAKG;IACH,eAJW,MAAM,UACN,MAAM,GACJ,UAAU,CAWtB;IAED;;;;OAIG;IACH,gBAHW,MAAM,GAAC,MAAM,GAAC,MAAM,EAAE,GACpB,UAAU,CAqBtB;IAoBD,oCAdU,MAAM,EAmBf;IAvBD;;;;;;;;;;;;;OAaG;IACH,gCAVU,MAAM,CAYf;IAyBD,+BAZU,MAAM,EAsBf;IA1BD;;;;;OAKG;IACH,2BAFU,MAAM,CAUf;IAqFD;;;;OAIG;IACH,cAHW,MAAM,GACJ,UAAU,CAYtB;IAED;;;;OAIG;IACH,mBAHW,MAAM,GACJ,WAAW,CAIvB;IAED;;;OAGG;IACH,eAFW,cAAc,GAAC,aAAa,QAmGtC;IAED;;;OAGG;IACH,gBAQC;CACD;uBA1csB,kBAAkB;sBAFnB,qBAAqB;wBAInB,kBAAkB"}
@@ -19,7 +19,7 @@ export default class Text extends Renderable {
19
19
  * @param {number} [settings.wordWrapWidth] - the maximum length in CSS pixel for a single segment of text
20
20
  * @param {(string|string[])} [settings.text=""] - a string, or an array of strings
21
21
  * @example
22
- * let font = new me.Text(0, 0, {font: "Arial", size: 8, fillStyle: this.color});
22
+ * let font = new Text(0, 0, {font: "Arial", size: 8, fillStyle: this.color});
23
23
  */
24
24
  constructor(x: number, y: number, settings: {
25
25
  font: string;
@@ -94,6 +94,10 @@ export default class Text extends Renderable {
94
94
  /** @ignore */
95
95
  onResetEvent(x: any, y: any, settings: any): void;
96
96
  canvasTexture: CanvasRenderTarget | undefined;
97
+ /**
98
+ * @ignore
99
+ */
100
+ _visibleCharacters: any;
97
101
  metrics: TextMetrics | undefined;
98
102
  /**
99
103
  * make the font bold
@@ -122,6 +126,28 @@ export default class Text extends Renderable {
122
126
  * @returns {Text} this object for chaining
123
127
  */
124
128
  setText(value?: number | string | string[]): Text;
129
+ public set visibleCharacters(value: number);
130
+ /**
131
+ * the number of characters to display (use -1 to show all).
132
+ * Useful for typewriter effects combined with Tween.
133
+ * @public
134
+ * @type {number}
135
+ * @default -1
136
+ * @see Text#visibleRatio
137
+ * @example
138
+ * // typewriter effect
139
+ * text.visibleCharacters = 0;
140
+ * new Tween(text).to({ visibleRatio: 1.0 }, { duration: 2000 }).start();
141
+ */
142
+ public get visibleCharacters(): number;
143
+ public set visibleRatio(value: number);
144
+ /**
145
+ * the ratio of visible characters (0.0 to 1.0).
146
+ * Setting this automatically updates {@link visibleCharacters}.
147
+ * @public
148
+ * @type {number}
149
+ */
150
+ public get visibleRatio(): number;
125
151
  /**
126
152
  * measure the given text size in pixels
127
153
  * @param {string} [text] - the text to be measured
@@ -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,kDAqEC;IATA,8CAEE;IAGF,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;IAqDD;;;;OAIG;IACH,mBAHW,MAAM,GACJ,WAAW,CAIvB;IAED;;;OAGG;IACH,eAFW,cAAc,GAAC,aAAa,QAetC;IAED;;OAEG;IACH,4EAiBC;IAED;;;OAGG;IACH,gBAUC;CACD;uBA/asB,kBAAkB;sBAHR,qBAAqB;+BAEvB,gDAAgD;wBAEvD,kBAAkB"}
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"}
@@ -3,7 +3,8 @@
3
3
  * @import ResponseObject from "./../physics/response.js";
4
4
  */
5
5
  /**
6
- * trigger an event when colliding with another object
6
+ * Trigger an event when colliding with another object.
7
+ * Supports both fade and mask-based transitions when loading a new level.
7
8
  * @category Game Objects
8
9
  */
9
10
  export default class Trigger extends Renderable {
@@ -14,8 +15,10 @@ export default class Trigger extends Renderable {
14
15
  * @param {number} [settings.width] - width of the trigger area
15
16
  * @param {number} [settings.height] - height of the trigger area
16
17
  * @param {Rect[]|Polygon[]|Line[]|Ellipse[]} [settings.shapes] - collision shape(s) that will trigger the event
17
- * @param {string} [settings.duration] - Fade duration (in ms)
18
- * @param {string|Color} [settings.color] - Fade color
18
+ * @param {number} [settings.duration] - Transition duration (in ms)
19
+ * @param {string|Color} [settings.color] - Transition color (also accepts legacy `fade` property)
20
+ * @param {string} [settings.transition="fade"] - Transition type: "fade" for a color fade, "mask" for a shape-based mask transition
21
+ * @param {Ellipse|Polygon} [settings.shape] - Mask shape for "mask" transition type (e.g. an Ellipse for iris, a Polygon for diamond/star)
19
22
  * @param {string} [settings.event="level"] - the type of event to trigger (only "level" supported for now)
20
23
  * @param {string} [settings.to] - level to load if level trigger
21
24
  * @param {string|Container} [settings.container] - Target container. See {@link level.load}
@@ -23,21 +26,45 @@ export default class Trigger extends Renderable {
23
26
  * @param {boolean} [settings.flatten] - Flatten all objects into the target container. See {@link level.load}
24
27
  * @param {boolean} [settings.setViewportBounds] - Resize the viewport to match the level. See {@link level.load}
25
28
  * @example
26
- * world.addChild(new me.Trigger(
27
- * x, y, {
28
- * shapes: [new me.Rect(0, 0, 100, 100)],
29
- * "duration" : 250,
30
- * "color" : "#000",
31
- * "to" : "mymap2"
32
- * }
33
- * ));
29
+ * // fade transition (default)
30
+ * world.addChild(new Trigger(x, y, {
31
+ * shapes: [new Rect(0, 0, 100, 100)],
32
+ * color: "#000",
33
+ * duration: 250,
34
+ * to: "mymap2",
35
+ * }));
36
+ * @example
37
+ * // mask transition with iris (ellipse) shape
38
+ * world.addChild(new Trigger(x, y, {
39
+ * shapes: [new Rect(0, 0, 100, 100)],
40
+ * transition: "mask",
41
+ * shape: new Ellipse(0, 0, 1, 1),
42
+ * color: "#000",
43
+ * duration: 500,
44
+ * to: "mymap2",
45
+ * }));
46
+ * @example
47
+ * // mask transition with diamond polygon
48
+ * world.addChild(new Trigger(x, y, {
49
+ * shapes: [new Rect(0, 0, 100, 100)],
50
+ * transition: "mask",
51
+ * shape: new Polygon(0, 0, [
52
+ * { x: 0, y: -1 }, { x: 1, y: 0 },
53
+ * { x: 0, y: 1 }, { x: -1, y: 0 },
54
+ * ]),
55
+ * color: "#000",
56
+ * duration: 400,
57
+ * to: "mymap2",
58
+ * }));
34
59
  */
35
60
  constructor(x: number, y: number, settings: {
36
61
  width?: number | undefined;
37
62
  height?: number | undefined;
38
63
  shapes?: Rect[] | Polygon[] | Line[] | Ellipse[] | undefined;
39
- duration?: string | undefined;
64
+ duration?: number | undefined;
40
65
  color?: string | Color;
66
+ transition?: string | undefined;
67
+ shape?: Ellipse | Polygon;
41
68
  event?: string | undefined;
42
69
  to?: string | undefined;
43
70
  container?: string | Container;
@@ -45,8 +72,10 @@ export default class Trigger extends Renderable {
45
72
  flatten?: boolean | undefined;
46
73
  setViewportBounds?: boolean | undefined;
47
74
  });
48
- fade: any;
49
- duration: string | undefined;
75
+ color: any;
76
+ duration: number | undefined;
77
+ transition: string;
78
+ transitionShape: any;
50
79
  fading: boolean;
51
80
  type: any;
52
81
  id: any;
@@ -62,11 +91,7 @@ export default class Trigger extends Renderable {
62
91
  event: string;
63
92
  };
64
93
  /**
65
- * @ignore
66
- */
67
- onFadeComplete(): void;
68
- /**
69
- * trigger this event
94
+ * Trigger this event. Override in subclasses to customize behavior.
70
95
  * @protected
71
96
  */
72
97
  protected triggerEvent(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"trigger.d.ts","sourceRoot":"","sources":["../../src/renderable/trigger.js"],"names":[],"mappings":"AAOA;;;GAGG;AAEH;;;GAGG;AACH;IACC;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,eAxBW,MAAM,KACN,MAAM,YAEd;QAA0B,KAAK;QACL,MAAM;QACqB,MAAM;QACjC,QAAQ;QACF,KAAK,GAA7B,MAAM,GAAC,KAAK;QACM,KAAK;QACL,EAAE;QACQ,SAAS,GAArC,MAAM,GAAC,SAAS;QACI,QAAQ;QACT,OAAO;QACP,iBAAiB;KAC5C,EA+DF;IA9CA,UAAyB;IACzB,6BAAiC;IACjC,gBAAmB;IAInB,UAAyB;IACzB,QAAqB;IAGrB,8BAA4B;IAG5B;;MAGC;IAwBD,UAAiC;IAQlC;;OAEG;IACH;;MASC;IAED;;OAEG;IACH,uBAIC;IAED;;;OAGG;IACH,+BAqBC;CAcD;uBA1JsB,iBAAiB"}
1
+ {"version":3,"file":"trigger.d.ts","sourceRoot":"","sources":["../../src/renderable/trigger.js"],"names":[],"mappings":"AASA;;;GAGG;AAEH;;;;GAIG;AACH;IACC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgDG;IACH,eAhDW,MAAM,KACN,MAAM,YAEd;QAA0B,KAAK;QACL,MAAM;QACqB,MAAM;QACjC,QAAQ;QACF,KAAK,GAA7B,MAAM,GAAC,KAAK;QACM,UAAU;QACD,KAAK,GAAhC,OAAO,GAAC,OAAO;QACG,KAAK;QACL,EAAE;QACQ,SAAS,GAArC,MAAM,GAAC,SAAS;QACI,QAAQ;QACT,OAAO;QACP,iBAAiB;KAC5C,EAiFF;IA5CA,WAA4C;IAC5C,6BAAiC;IACjC,mBAA+C;IAC/C,qBAAqC;IACrC,gBAAmB;IAInB,UAAyB;IACzB,QAAqB;IACrB,8BAA4B;IAG5B;;MAEC;IAwBD,UAAiC;IAOlC;;OAEG;IACH;;MAQC;IAED;;;OAGG;IACH,+BA+EC;CAcD;uBA/NsB,iBAAiB"}
@@ -73,6 +73,35 @@ declare const state: {
73
73
  * @param [music=false] - resume current music track on screen resume
74
74
  */
75
75
  resume(music?: boolean): void;
76
+ /**
77
+ * Freeze the current stage for a fixed duration, then automatically resume.
78
+ * Useful for hit-stop / hit-pause effects on impact.
79
+ *
80
+ * Behaviour notes:
81
+ * - If `freeze()` is called again while a freeze is already active, the
82
+ * freeze is *extended* to whichever end-time is later (calls do not
83
+ * stack). The `music` flag from the initial call is preserved.
84
+ * - If the game was already paused when `freeze()` was called, the freeze
85
+ * timer will *not* unpause it on expiry — the game stays paused.
86
+ * - Calling `state.resume()` or `state.stop()` while a freeze is active
87
+ * cancels the timer and resolves the returned promise immediately.
88
+ * - The freeze is also cancelled when the window loses focus (BLUR) since
89
+ * the hit-stop's "moment" is short enough that the user has missed it
90
+ * by the time they return. The regular `pauseOnBlur` behaviour still
91
+ * keeps the game paused while away.
92
+ * - Negative, `NaN`, and `Infinity` durations silently no-op.
93
+ * @param duration - duration of the freeze in milliseconds
94
+ * @param [music=false] - also pause the current music track during the freeze
95
+ * @returns a Promise that resolves once the freeze ends (or is cancelled)
96
+ * @example
97
+ * // simple hit-stop on impact
98
+ * state.freeze(80);
99
+ *
100
+ * // chain VFX after the freeze
101
+ * await state.freeze(120);
102
+ * spawnImpactParticles();
103
+ */
104
+ freeze(duration: number, music?: boolean): Promise<void>;
76
105
  /**
77
106
  * return the running state of the state manager
78
107
  * @returns true if a "process is running"
@@ -127,11 +156,24 @@ declare const state: {
127
156
  current(): Stage | undefined;
128
157
  /**
129
158
  * specify a global transition effect
130
- * @param effect - (only "fade" is supported for now)
159
+ * @param effect - "fade" for a color fade, "mask" for a shape-based mask transition
131
160
  * @param color - a CSS color value
132
161
  * @param [duration=1000] - expressed in milliseconds
162
+ * @param [shape] - an Ellipse or Polygon defining the mask shape (required when effect is "mask")
163
+ * @example
164
+ * // classic fade to black
165
+ * state.transition("fade", "#000", 500);
166
+ * @example
167
+ * // iris (circle) mask transition
168
+ * state.transition("mask", "#000", 500, new Ellipse(0, 0, 1, 1));
169
+ * @example
170
+ * // diamond mask transition
171
+ * state.transition("mask", "#000", 400, new Polygon(0, 0, [
172
+ * { x: 0, y: -1 }, { x: 1, y: 0 },
173
+ * { x: 0, y: 1 }, { x: -1, y: 0 },
174
+ * ]));
133
175
  */
134
- transition(effect: string, color: string, duration: number): void;
176
+ transition(effect: "fade" | "mask", color: string, duration?: number, shape?: import("../geometries/ellipse.ts").Ellipse | import("../geometries/polygon.ts").Polygon): void;
135
177
  /**
136
178
  * enable/disable the transition to a particular state (by default enabled for all)
137
179
  * @param stateId - State ID (see constants)
@@ -1 +1 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/state/state.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,qBAAqB,CAAC;AAkKxC;;GAEG;AACH,QAAA,MAAM,KAAK;IACV;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;;OAGG;;IAGH;;;;;;;OAOG;;IAGH;;;OAGG;4BACoB,OAAO,GAAW,IAAI;IAmB7C;;;OAGG;kBACU,OAAO,GAAW,IAAI;IAkBnC;;;OAGG;oBACY,OAAO,GAAW,IAAI;IAiBrC;;;OAGG;mBACW,OAAO,GAAW,IAAI;IAiBpC;;;OAGG;iBACU,OAAO;IAIpB;;;OAGG;gBACS,OAAO;IAInB;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;iBACU,MAAM,SAAS,KAAK,UAAS,OAAO,GAAW,IAAI;IAchE;;;;;OAKG;kBACU,MAAM,GAAY,KAAK,GAAG,SAAS;IAQhD;;;;OAIG;eACQ,KAAK,GAAG,SAAS;IAI5B;;;;;OAKG;uBACgB,MAAM,SAAS,MAAM,YAAY,MAAM,GAAG,IAAI;IAOjE;;;;OAIG;2BACoB,MAAM,UAAU,OAAO,GAAG,IAAI;IAIrD;;;;;;;;;OASG;oBAEO,MAAM,gBACF,OAAO,gBACN,OAAO,EAAE,GACrB,IAAI;IA4CP;;;;OAIG;uBACgB,MAAM,GAAG,OAAO;CAGnC,CAAC;AACF,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/state/state.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,qBAAqB,CAAC;AAwOxC;;GAEG;AACH,QAAA,MAAM,KAAK;IACV;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;;OAGG;;IAGH;;;;;;;OAOG;;IAGH;;;OAGG;4BACoB,OAAO,GAAW,IAAI;IAqB7C;;;OAGG;kBACU,OAAO,GAAW,IAAI;IAkBnC;;;OAGG;oBACY,OAAO,GAAW,IAAI;IAiBrC;;;OAGG;mBACW,OAAO,GAAW,IAAI;IAmBpC;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;qBACc,MAAM,UAAS,OAAO,GAAW,OAAO,CAAC,IAAI,CAAC;IAkC/D;;;OAGG;iBACU,OAAO;IAIpB;;;OAGG;gBACS,OAAO;IAInB;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;iBACU,MAAM,SAAS,KAAK,UAAS,OAAO,GAAW,IAAI;IAchE;;;;;OAKG;kBACU,MAAM,GAAY,KAAK,GAAG,SAAS;IAQhD;;;;OAIG;eACQ,KAAK,GAAG,SAAS;IAI5B;;;;;;;;;;;;;;;;;;OAkBG;uBAEM,MAAM,GAAG,MAAM,SAChB,MAAM,aACH,MAAM,UAEb,OAAO,0BAA0B,EAAE,OAAO,GAC1C,OAAO,0BAA0B,EAAE,OAAO,GAC3C,IAAI;IAOP;;;;OAIG;2BACoB,MAAM,UAAU,OAAO,GAAG,IAAI;IAIrD;;;;;;;;;OASG;oBAEO,MAAM,gBACF,OAAO,gBACN,OAAO,EAAE,GACrB,IAAI;IAoGP;;;;OAIG;uBACgB,MAAM,GAAG,OAAO;CAGnC,CAAC;AACF,eAAe,KAAK,CAAC"}
@@ -43,6 +43,7 @@ export default class Tween {
43
43
  _yoyo: boolean;
44
44
  _reversed: boolean;
45
45
  _delayTime: number;
46
+ _repeatDelayTime: number | undefined;
46
47
  _startTime: number | null;
47
48
  _easingFunction: EasingFunction;
48
49
  _interpolationFunction: InterpolationFunction;
@@ -109,6 +110,7 @@ export default class Tween {
109
110
  * @param [options.delay] - delay before starting, in milliseconds
110
111
  * @param [options.yoyo] - bounce back to original values when finished (use with `repeat`)
111
112
  * @param [options.repeat] - number of times to repeat (use `Infinity` for endless loops)
113
+ * @param [options.repeatDelay] - delay in milliseconds before each repeat cycle
112
114
  * @param [options.interpolation] - interpolation function for array values
113
115
  * @param [options.autoStart] - start the tween immediately without calling `start()`
114
116
  * @returns this instance for object chaining
@@ -119,6 +121,7 @@ export default class Tween {
119
121
  yoyo?: boolean | undefined;
120
122
  repeat?: number | undefined;
121
123
  delay?: number | undefined;
124
+ repeatDelay?: number | undefined;
122
125
  interpolation?: InterpolationFunction | undefined;
123
126
  autoStart?: boolean | undefined;
124
127
  }): this;
@@ -145,6 +148,12 @@ export default class Tween {
145
148
  * @returns this instance for object chaining
146
149
  */
147
150
  repeat(times: number): this;
151
+ /**
152
+ * Set a delay before each repeat.
153
+ * @param amount - delay in milliseconds before each repeat cycle
154
+ * @returns this instance for object chaining
155
+ */
156
+ repeatDelay(amount: number): this;
148
157
  /**
149
158
  * Allows the tween to bounce back to their original value when finished.
150
159
  * To be used together with repeat to create endless loops.
@@ -1 +1 @@
1
- {"version":3,"file":"tween.d.ts","sourceRoot":"","sources":["../../src/tweens/tween.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tween.d.ts","sourceRoot":"","sources":["../../src/tweens/tween.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * A renderer-agnostic index buffer.
3
+ * Manages a typed array of vertex indices for indexed drawing.
4
+ * {@link WebGLIndexBuffer} extends this with GL-specific bind/upload operations.
5
+ * @ignore
6
+ */
7
+ export default class IndexBuffer {
8
+ /**
9
+ * @param {number} maxIndices - maximum number of indices this buffer can hold
10
+ * @param {boolean} [useUint32=false] - use Uint32 indices instead of Uint16
11
+ */
12
+ constructor(maxIndices: number, useUint32?: boolean);
13
+ data: Uint16Array<ArrayBuffer> | Uint32Array<ArrayBuffer>;
14
+ /**
15
+ * the current number of indices in the buffer
16
+ * @type {number}
17
+ */
18
+ length: number;
19
+ /**
20
+ * Fill the buffer with a repeating quad index pattern [0,1,2, 2,1,3, 4,5,6, ...]
21
+ * @param {number} maxQuads - number of quads to generate indices for
22
+ */
23
+ fillQuadPattern(maxQuads: number): void;
24
+ /**
25
+ * Reset the index count
26
+ */
27
+ clear(): void;
28
+ /**
29
+ * Add indices to the buffer, rebased by the given vertex offset
30
+ * @param {number[]} indices - source indices to add
31
+ * @param {number} vertexOffset - value to add to each index
32
+ */
33
+ add(indices: number[], vertexOffset: number): void;
34
+ /**
35
+ * Add pre-computed absolute indices to the buffer (no rebasing)
36
+ * @param {number[]} indices - absolute index values to add
37
+ */
38
+ addRaw(indices: number[]): void;
39
+ }
40
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/video/buffer/index.js"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;IACC;;;OAGG;IACH,wBAHW,MAAM,cACN,OAAO,EAYjB;IATA,0DAE8B;IAE9B;;;OAGG;IACH,QAFU,MAAM,CAED;IAGhB;;;OAGG;IACH,0BAFW,MAAM,QAYhB;IAED;;OAEG;IACH,cAEC;IAED;;;;OAIG;IACH,aAHW,MAAM,EAAE,gBACR,MAAM,QAOhB;IAED;;;OAGG;IACH,gBAFW,MAAM,EAAE,QAOlB;CACD"}
@@ -1,6 +1,7 @@
1
1
  /**
2
- * a fixed-size Vertex Buffer object.
3
- * Compositors must check isFull() and flush before the buffer overflows.
2
+ * A fixed-size vertex array buffer for batching vertex data.
3
+ * Renderer-agnostic stores vertex data in typed arrays (Float32/Uint32).
4
+ * Batchers must check isFull() and flush before the buffer overflows.
4
5
  * @ignore
5
6
  */
6
7
  export default class VertexArrayBuffer {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vertex.d.ts","sourceRoot":"","sources":["../../../src/video/buffer/vertex.js"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;IACC,6CAeC;IAbA,gBAA4B;IAE5B,eAA0B;IAE1B,oBAAoB;IAGpB,oBAEC;IAED,qCAA8C;IAC9C,oCAA6C;IAG9C;;;OAGG;IACH,cAEC;IAED;;;OAGG;IACH,6BAEC;IAED;;;;;;;;;OASG;IACH,QARW,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,QACN,MAAM,cACN,MAAM,QAkBhB;IAED;;;;;;OAMG;IACH,iBALW,SAAS,CAAC,MAAM,CAAC,aACjB,MAAM,SACN,MAAM,QAahB;IAED;;;OAGG;IACH,kEAaC;IAED;;;OAGG;IACH,2DAMC;IAED;;;OAGG;IACH,yDAMC;CACD"}
@@ -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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"}
@@ -1,3 +1,6 @@
1
+ /**
2
+ * @import RenderTargetPool from "./rendertarget/render_target_pool.js";
3
+ */
1
4
  /**
2
5
  * @import {Rect} from "./../geometries/rectangle.ts";
3
6
  * @import {RoundRect} from "./../geometries/roundrect.ts";
@@ -55,8 +58,16 @@ export default class Renderer {
55
58
  * Set by a renderable's preDraw when a shader is assigned.
56
59
  * (WebGL only, ignored by Canvas renderer)
57
60
  * @type {GLShader|ShaderEffect|undefined}
61
+ * @ignore
58
62
  */
59
63
  customShader: GLShader | ShaderEffect | undefined;
64
+ /**
65
+ * The render target pool for post-effect processing (ping-pong FBOs).
66
+ * Initialized by GPU renderers (WebGL, WebGPU). Null on Canvas renderer.
67
+ * @type {RenderTargetPool|null}
68
+ * @ignore
69
+ */
70
+ _renderTargetPool: RenderTargetPool | null;
60
71
  /**
61
72
  * The Path2D instance used by the renderer to draw primitives
62
73
  * @type {Path2D}
@@ -152,6 +163,73 @@ export default class Renderer {
152
163
  * @returns {boolean}
153
164
  */
154
165
  hasSupportedCompressedFormats(format: number): boolean;
166
+ /**
167
+ * Begin capturing rendering to an offscreen buffer for post-effect processing.
168
+ * Call endPostEffect() after rendering to blit the result to the screen.
169
+ * No-op on Canvas renderer.
170
+ * @param {Renderable} renderable - the renderable with postEffects to apply
171
+ * @returns {boolean} false (Canvas renderer does not support post-effect processing)
172
+ * @ignore
173
+ */
174
+ beginPostEffect(renderable: Renderable): boolean;
175
+ /**
176
+ * End post-effect capture and blit the offscreen buffer to the screen
177
+ * through the renderable's post-effects.
178
+ * No-op on Canvas renderer.
179
+ * @param {Renderable} renderable - the renderable with postEffects to apply
180
+ * @ignore
181
+ */
182
+ endPostEffect(renderable: Renderable): void;
183
+ /**
184
+ * Blit a texture to the screen through a shader effect.
185
+ * Draws a screen-aligned quad using the given texture as source
186
+ * and the given shader for post-processing (e.g. scanlines, desaturation).
187
+ * No-op on Canvas renderer.
188
+ * @param {WebGLTexture} source - the source texture to blit
189
+ * @param {number} x - destination x position
190
+ * @param {number} y - destination y position
191
+ * @param {number} width - destination width
192
+ * @param {number} height - destination height
193
+ * @param {ShaderEffect} shader - the shader effect to apply
194
+ * @param {boolean} [keepBlend=false] - if true, keep current blend mode (for sprite compositing)
195
+ */
196
+ blitEffect(source: WebGLTexture, x: number, y: number, width: number, height: number, shader: ShaderEffect, keepBlend?: boolean): void;
197
+ /**
198
+ * Sets the viewport for the renderer.
199
+ * Defines the affine transformation from normalized device coordinates to window coordinates.
200
+ * No-op on Canvas renderer.
201
+ * @param {number} [x=0] - x coordinate of the viewport origin
202
+ * @param {number} [y=0] - y coordinate of the viewport origin
203
+ * @param {number} [w] - width of the viewport (defaults to canvas width)
204
+ * @param {number} [h] - height of the viewport (defaults to canvas height)
205
+ */
206
+ setViewport(x?: number, y?: number, w?: number, h?: number): void;
207
+ /**
208
+ * Clear the current render target to transparent black (color + stencil).
209
+ * Used to prepare FBOs for post-effect capture.
210
+ * No-op on Canvas renderer.
211
+ */
212
+ clearRenderTarget(): void;
213
+ /**
214
+ * Enable the scissor test with the given rectangle.
215
+ * No-op on Canvas renderer.
216
+ * @param {number} x - x coordinate of the scissor rectangle
217
+ * @param {number} y - y coordinate of the scissor rectangle
218
+ * @param {number} width - width of the scissor rectangle
219
+ * @param {number} height - height of the scissor rectangle
220
+ */
221
+ enableScissor(x: number, y: number, width: number, height: number): void;
222
+ /**
223
+ * Disable the scissor test, allowing rendering to the full viewport.
224
+ * No-op on Canvas renderer.
225
+ */
226
+ disableScissor(): void;
227
+ /**
228
+ * Enable or disable alpha blending.
229
+ * No-op on Canvas renderer (Canvas always blends).
230
+ * @param {boolean} enable - true to enable blending, false to disable
231
+ */
232
+ setBlendEnabled(enable: boolean): void;
155
233
  /**
156
234
  * returns the current blend mode for this renderer
157
235
  * @returns {string} blend mode
@@ -312,6 +390,7 @@ export default class Renderer {
312
390
  }
313
391
  import CanvasRenderTarget from "./rendertarget/canvasrendertarget.js";
314
392
  import { Vector2d } from "../math/vector2d.ts";
393
+ import type RenderTargetPool from "./rendertarget/render_target_pool.js";
315
394
  import Path2D from "./../geometries/path2d.js";
316
395
  import { Color } from "./../math/color.ts";
317
396
  import RenderState from "./renderstate.js";
@@ -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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"}
@@ -45,6 +45,11 @@ export default class RenderState {
45
45
  * @type {string}
46
46
  */
47
47
  currentBlendMode: string;
48
+ /**
49
+ * current custom shader effect (undefined when using default shader)
50
+ * @type {ShaderEffect|undefined}
51
+ */
52
+ currentShader: ShaderEffect | undefined;
48
53
  /**
49
54
  * @ignore
50
55
  */
@@ -70,6 +75,8 @@ export default class RenderState {
70
75
  _gradientStack: any[];
71
76
  /** @ignore */
72
77
  _blendStack: any[];
78
+ /** @ignore */
79
+ _shaderStack: any[];
73
80
  /**
74
81
  * Save the current state onto the stack (zero allocations).
75
82
  * @param {boolean} [scissorTestActive=false] - whether scissor/clip is currently enabled
@@ -1 +1 @@
1
- {"version":3,"file":"renderstate.d.ts","sourceRoot":"","sources":["../../src/video/renderstate.js"],"names":[],"mappings":"AAGA;;GAEG;AAEH;;;;;;;GAOG;AACH;IAEE;;;OAGG;IACH,cAFU,KAAK,CAE4B;IAE3C;;;OAGG;IACH,aAFU,KAAK,CAEiC;IAEhD;;;OAGG;IACH,kBAFU,QAAQ,CAEoB;IAEtC;;;OAGG;IACH,gBAFU,UAAU,CAEmB;IAEvC;;;OAGG;IACH,iBAFU,QAAQ,GAAC,IAAI,CAEI;IAE3B;;;OAGG;IACH,UAFU,MAAM,EAAE,CAEA;IAElB;;;OAGG;IACH,kBAFU,MAAM,CAEc;IAI9B;;OAEG;IACH,uBAAwB;IAExB;;;OAGG;IACH,oBAAoB;IAEpB,cAAc;IACd,qBAEE;IAEF,cAAc;IACd,oBAEE;IAEF,cAAc;IACd,yBAEE;IAEF,cAAc;IACd,yCAEE;IAEF,cAAc;IACd,sBAAoD;IAEpD,cAAc;IACd,wCAAyD;IAEzD,cAAc;IACd,sBAAoD;IAEpD,cAAc;IACd,mBAAiD;IAGlD;;;OAGG;IACH,yBAFW,OAAO,QAwBjB;IAED;;;;;;;;OAQG;IACH,qBAJW,MAAM,gBACN,MAAM,GACJ;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAwBhE;IAED;;;;OAIG;IACH,aAHW,MAAM,UACN,MAAM,QAShB;IAED,sDAAsD;IACtD,oBAgBC;CACD;sBAtMqB,oBAAoB;yBACjB,qBAAqB;8BAGnB,eAAe"}
1
+ {"version":3,"file":"renderstate.d.ts","sourceRoot":"","sources":["../../src/video/renderstate.js"],"names":[],"mappings":"AAGA;;GAEG;AAEH;;;;;;;GAOG;AACH;IAEE;;;OAGG;IACH,cAFU,KAAK,CAE4B;IAE3C;;;OAGG;IACH,aAFU,KAAK,CAEiC;IAEhD;;;OAGG;IACH,kBAFU,QAAQ,CAEoB;IAEtC;;;OAGG;IACH,gBAFU,UAAU,CAEmB;IAEvC;;;OAGG;IACH,iBAFU,QAAQ,GAAC,IAAI,CAEI;IAE3B;;;OAGG;IACH,UAFU,MAAM,EAAE,CAEA;IAElB;;;OAGG;IACH,kBAFU,MAAM,CAEc;IAE9B;;;OAGG;IACH,eAFU,YAAY,GAAC,SAAS,CAEF;IAI9B;;OAEG;IACH,uBAAwB;IAExB;;;OAGG;IACH,oBAAoB;IAEpB,cAAc;IACd,qBAEE;IAEF,cAAc;IACd,oBAEE;IAEF,cAAc;IACd,yBAEE;IAEF,cAAc;IACd,yCAEE;IAEF,cAAc;IACd,sBAAoD;IAEpD,cAAc;IACd,wCAAyD;IAEzD,cAAc;IACd,sBAAoD;IAEpD,cAAc;IACd,mBAAiD;IAEjD,cAAc;IACd,oBAAkD;IAGnD;;;OAGG;IACH,yBAFW,OAAO,QAyBjB;IAED;;;;;;;;OAQG;IACH,qBAJW,MAAM,gBACN,MAAM,GACJ;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAyBhE;IAED;;;;OAIG;IACH,aAHW,MAAM,UACN,MAAM,QAUhB;IAED,sDAAsD;IACtD,oBAiBC;CACD;sBAnNqB,oBAAoB;yBACjB,qBAAqB;8BAGnB,eAAe"}