melonjs 20.4.0 → 20.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/application/defaultApplicationSettings.d.ts +1 -0
- package/build/application/defaultApplicationSettings.d.ts.map +1 -1
- package/build/application/settings.d.ts +37 -0
- package/build/application/settings.d.ts.map +1 -1
- package/build/audio/backend/sound.d.ts.map +1 -1
- package/build/audio/procedural.d.ts +7 -2
- package/build/audio/procedural.d.ts.map +1 -1
- package/build/audio/types.d.ts +22 -0
- package/build/audio/types.d.ts.map +1 -1
- package/build/camera/camera2d.d.ts +28 -0
- package/build/camera/camera2d.d.ts.map +1 -1
- package/build/camera/camera3d.d.ts +24 -3
- package/build/camera/camera3d.d.ts.map +1 -1
- package/build/geometries/polygon.d.ts +7 -1
- package/build/geometries/polygon.d.ts.map +1 -1
- package/build/index.d.ts +4 -0
- package/build/index.d.ts.map +1 -1
- package/build/index.js +1379 -226
- package/build/index.js.map +4 -4
- package/build/level/gltf/GLTFModel.d.ts +50 -7
- package/build/level/gltf/GLTFModel.d.ts.map +1 -1
- package/build/lighting/light3d.d.ts +20 -47
- package/build/lighting/light3d.d.ts.map +1 -1
- package/build/loader/loader.d.ts +106 -6
- package/build/loader/loader.d.ts.map +1 -1
- package/build/loader/loadingscreen.d.ts.map +1 -1
- package/build/renderable/animation.d.ts +21 -6
- package/build/renderable/animation.d.ts.map +1 -1
- package/build/renderable/container.d.ts +27 -5
- package/build/renderable/container.d.ts.map +1 -1
- package/build/renderable/instanced_mesh.d.ts +34 -9
- package/build/renderable/instanced_mesh.d.ts.map +1 -1
- package/build/renderable/mesh.d.ts +131 -94
- package/build/renderable/mesh.d.ts.map +1 -1
- package/build/renderable/renderable.d.ts +17 -0
- package/build/renderable/renderable.d.ts.map +1 -1
- package/build/renderable/sprite3d.d.ts +12 -2
- package/build/renderable/sprite3d.d.ts.map +1 -1
- package/build/renderable/text/bitmaptext.d.ts +32 -7
- package/build/renderable/text/bitmaptext.d.ts.map +1 -1
- package/build/renderable/text/text.d.ts +78 -3
- package/build/renderable/text/text.d.ts.map +1 -1
- package/build/renderable/text/textmetrics.d.ts +2 -0
- package/build/renderable/text/textmetrics.d.ts.map +1 -1
- package/build/renderable/text/textstyle.d.ts.map +1 -1
- package/build/state/stage.d.ts +21 -0
- package/build/state/stage.d.ts.map +1 -1
- package/build/system/device.d.ts +1 -1
- package/build/system/device.d.ts.map +1 -1
- package/build/system/save.d.ts +44 -1
- package/build/system/save.d.ts.map +1 -1
- package/build/video/effects/glsl_realization.d.ts.map +1 -1
- package/build/video/effects/mesh_splice.d.ts +2 -0
- package/build/video/effects/mesh_splice.d.ts.map +1 -0
- package/build/video/effects/shadereffect.d.ts +12 -128
- package/build/video/effects/shadereffect.d.ts.map +1 -1
- package/build/video/effects/wgsl_realization.d.ts.map +1 -1
- package/build/video/gradient.d.ts +19 -0
- package/build/video/gradient.d.ts.map +1 -1
- package/build/video/renderer.d.ts +44 -0
- package/build/video/renderer.d.ts.map +1 -1
- package/build/video/texture/noise_texture2d.d.ts +101 -34
- package/build/video/texture/noise_texture2d.d.ts.map +1 -1
- package/build/video/webgl/batchers/batcher.d.ts.map +1 -1
- package/build/video/webgl/batchers/mesh_batcher.d.ts.map +1 -1
- package/build/video/webgl/glshader.d.ts +7 -2
- package/build/video/webgl/glshader.d.ts.map +1 -1
- package/build/video/webgl/webgl_renderer.d.ts.map +1 -1
- package/build/video/webgpu/batchers/lit_mesh_batcher.d.ts.map +1 -1
- package/build/video/webgpu/batchers/mesh_batcher.d.ts +6 -1
- package/build/video/webgpu/batchers/mesh_batcher.d.ts.map +1 -1
- package/build/video/webgpu/effect_binding.d.ts.map +1 -1
- package/build/video/webgpu/pipeline/cache.d.ts.map +1 -1
- package/build/video/webgpu/webgpu_renderer.d.ts +1 -0
- package/build/video/webgpu/webgpu_renderer.d.ts.map +1 -1
- package/package.json +1 -1
- package/skills/melonjs-3d/SKILL.md +152 -3
- package/skills/melonjs-3d-assets/SKILL.md +139 -0
- package/skills/melonjs-audio/SKILL.md +17 -0
- package/skills/melonjs-camera-and-drawing/SKILL.md +45 -0
- package/skills/melonjs-effects-and-shaders/SKILL.md +130 -1
- package/skills/melonjs-loading-assets/SKILL.md +131 -1
- package/skills/melonjs-performance/SKILL.md +83 -1
- package/skills/melonjs-physics/SKILL.md +78 -0
- package/skills/melonjs-renderables/SKILL.md +63 -1
- package/skills/melonjs-renderer-backends/SKILL.md +19 -0
- package/skills/melonjs-scenes-and-state/SKILL.md +93 -0
- package/skills/melonjs-ui-and-text/SKILL.md +124 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../../src/renderable/text/text.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../../src/renderable/text/text.js"],"names":[],"mappings":"AAwCA;;;;;;;;;;;;;;GAcG;AACH;IACC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6DG;IACH,eA7DW,MAAM,KACN,MAAM,YAEd;QAAyB,IAAI,EAArB,MAAM;QACkB,IAAI,EAA5B,MAAM,GAAC,MAAM;QACoB,SAAS;QACvB,eAAe;QACV,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;QACZ,IAAI;QACJ,MAAM;QACI,IAAI;KACzC,EAsHF;IAtEA;;;;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;;;;;OAKG;IACH,cAAe;IAMhB;;;OAGG;IACH,kDAgIC;IA3HA;;;;;;;;;;;;;;;;OAgBG;IACH,cARU,QAAQ,GAAC,SAAS,CAQC;IAE7B;;;;;;;;;;;;;;OAcG;IACH,qCAA2B;IA0E3B,8CAEE;IAEF;;;OAGG;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,CAkFhB;IAkBD,oCAZU,MAAM,EAiBf;IArBD;;;;;;;;;;;OAWG;IACH,gCARU,MAAM,CAUf;IAkCD,+BAlBU,MAAM,EA4Bf;IAnCD;;;;;;;;;;;;;;OAcG;IACH,2BARU,MAAM,CAgBf;IAiED;;;;;;;;;;;;OAYG;IACH,mBAXW,MAAM,GACJ,WAAW,CAYvB;IAED;;;OAGG;IACH,eAFW,cAAc,GAAC,aAAa,QA0CtC;IAED;;;OAGG;IACH,4EA+GC;IAED;;;;OAIG;IACH,gBAWC;CACD;uBAzxBsB,kBAAkB;sBALR,qBAAqB;yBAC7B,yBAAyB;+BAEnB,gDAAgD;wBAGvD,kBAAkB"}
|
|
@@ -34,6 +34,8 @@ declare class TextMetrics extends Bounds {
|
|
|
34
34
|
measureText(text: string, context?: CanvasRenderingContext2D): TextMetrics;
|
|
35
35
|
glyphYOffset: number | undefined;
|
|
36
36
|
glyphMaxBottom: number | undefined;
|
|
37
|
+
inkPadTop: number | undefined;
|
|
38
|
+
inkPadBottom: number | undefined;
|
|
37
39
|
/**
|
|
38
40
|
* wrap the given text based on the given width
|
|
39
41
|
* @param {string|string[]} text - the text to be wrapped
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"textmetrics.d.ts","sourceRoot":"","sources":["../../../src/renderable/text/textmetrics.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"textmetrics.d.ts","sourceRoot":"","sources":["../../../src/renderable/text/textmetrics.js"],"names":[],"mappings":";AA0BA;;GAEG;AACH;IACC;;OAEG;IACH,sBAFW,IAAI,GAAC,UAAU,EAczB;IARA;;;;OAIG;IACH,UAHU,UAAU,CAGI;IAKzB;;;OAGG;IACH,cAFa,MAAM,CAalB;IAED;;;;;OAKG;IACH,gBAJW,MAAM,YACN,wBAAwB,GACtB,MAAM,CA4BlB;IAED;;;;;OAKG;IACH,kBAJW,MAAM,YACN,wBAAwB,GACtB,WAAW,CAiHvB;IA/EA,iCAAqB;IACrB,mCAAuB;IAmCvB,8BAAkB;IAClB,iCAAqB;IA4CtB;;;;;;;;;;;;;;;OAeG;IACH,gBAJa,WAAW,CAoBvB;IAED;;;;;;OAMG;IACH,eALW,MAAM,GAAC,MAAM,EAAE,SACf,MAAM,YACN,wBAAwB,GACtB,MAAM,EAAE,CAyCpB;CACD;uBA1SsB,yBAAyB;iBAC/B,WAAW"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"textstyle.d.ts","sourceRoot":"","sources":["../../../src/renderable/text/textstyle.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"textstyle.d.ts","sourceRoot":"","sources":["../../../src/renderable/text/textstyle.js"],"names":[],"mappings":"AAmEA;;;;;;;;GAQG;AACH,iDAPW,wBAAwB,SACxB,MAAM,GACJ,MAAM,GAAC,cAAc,CAcjC"}
|
package/build/state/stage.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import type Application from "./../application/application.ts";
|
|
|
2
2
|
import Camera2d from "./../camera/camera2d.ts";
|
|
3
3
|
import type Light2d from "./../lighting/light2d.ts";
|
|
4
4
|
import { Color } from "./../math/color.ts";
|
|
5
|
+
import type World from "./../physics/world.js";
|
|
5
6
|
import type Renderer from "./../video/renderer.js";
|
|
6
7
|
interface StageSettings {
|
|
7
8
|
cameras: Camera2d[];
|
|
@@ -82,6 +83,26 @@ export default class Stage {
|
|
|
82
83
|
* @param [settings.onDestroyEvent] - called by the state manager before switching to another state
|
|
83
84
|
*/
|
|
84
85
|
constructor(settings?: Partial<StageSettings>);
|
|
86
|
+
/**
|
|
87
|
+
* Update the stage. Override it to run your own per-frame logic, and call
|
|
88
|
+
* `super.update(dt)` so the world and cameras still advance.
|
|
89
|
+
* @param dt - time since the last update in milliseconds.
|
|
90
|
+
* @returns true if the stage needs to be redrawn
|
|
91
|
+
*/
|
|
92
|
+
update(dt: number): boolean;
|
|
93
|
+
/**
|
|
94
|
+
* draw the current stage
|
|
95
|
+
*
|
|
96
|
+
* Lights are rendered as part of the world tree (they're now first-class
|
|
97
|
+
* Renderables) and the ambient overlay pass runs inside each Camera's
|
|
98
|
+
* post-effect FBO bracket via {@link Stage#drawLighting}.
|
|
99
|
+
*
|
|
100
|
+
* Override it to draw under or over the world, calling `super.draw(...)`
|
|
101
|
+
* where the world itself belongs in that order.
|
|
102
|
+
* @param renderer - the renderer object to draw with
|
|
103
|
+
* @param world - the world object to draw
|
|
104
|
+
*/
|
|
105
|
+
draw(renderer: Renderer, world: World): void;
|
|
85
106
|
/**
|
|
86
107
|
* Draw the stage's ambient-light overlay with cutouts for each active
|
|
87
108
|
* light. Called from each `Camera2d` inside its post-effect FBO bracket —
|
|
@@ -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,KAAK,OAAO,MAAM,0BAA0B,CAAC;AAEpD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;
|
|
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;AAEpD,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;IAoB7B;;;;;;OAMG;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;IA2K7C;;;;;OAKG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAgB3B;;;;;;;;;;;OAWG;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;IAuEP;;;;;;;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"}
|
package/build/system/device.d.ts
CHANGED
|
@@ -204,7 +204,7 @@ export declare function isLandscape(): boolean;
|
|
|
204
204
|
* @returns a reference to the device storage
|
|
205
205
|
* @category Application
|
|
206
206
|
*/
|
|
207
|
-
export declare function getStorage(type?: string):
|
|
207
|
+
export declare function getStorage(type?: string): import("./save.ts").SaveAPI;
|
|
208
208
|
/**
|
|
209
209
|
* return the parent DOM element for the given parent name or HTMLElement object
|
|
210
210
|
* @param element - the parent element name or a HTMLElement object
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../src/system/device.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,eAAe,MAAM,eAAe,CAAC;AA2GjD;;GAEG;AACH,eAAO,MAAM,QAAQ,wBAAkB,CAAC;AAExC;;GAEG;AACH,eAAO,MAAM,UAAU,SAA+B,CAAC;AAEvD;;GAEG;AACH,eAAO,MAAM,YAAY,OAA4B,CAAC;AAEtD;;GAEG;AACH,eAAO,MAAM,KAAK,SACsD,CAAC;AAEzE;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,QAIvB,CAAC;AAEL;;GAEG;AACH,eAAO,MAAM,KAAK,SAEoC,CAAC;AAEvD;;GAEG;AACH,eAAO,MAAM,qBAAqB,SAE4B,CAAC;AAE/D;;GAEG;AACH,eAAO,MAAM,oBAAoB,OAAsC,CAAC;AAExE;;;GAGG;AACH,eAAO,MAAM,iBAAiB,SAC6C,CAAC;AAE5E;;GAEG;AACH,eAAO,MAAM,gBAAgB,OAAiC,CAAC;AAO/D,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAErE;;GAEG;AACH,eAAO,MAAM,WAAW,OAIvB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,SAA0C,CAAC;AAErE;;GAEG;AACH,eAAO,MAAM,KAAK,OAA+B,CAAC;AAElD;;GAEG;AACH,eAAO,MAAM,QAAQ,SAEoC,CAAC;AAE1D;;;GAGG;AACH,eAAO,MAAM,YAAY,SAAoB,CAAC;AAE9C;;GAEG;AACH,eAAO,MAAM,eAAe,SAAuB,CAAC;AAEpD;;GAEG;AACH,eAAO,MAAM,YAAY,SAAwC,CAAC;AAElE;;;;GAIG;AACH,eAAO,MAAM,QAAQ,QAMb,CAAC;AAET;;GAEG;AACH,eAAO,MAAM,gBAAgB,QAAmC,CAAC;AAEjE;;;GAGG;AACH,eAAO,MAAM,QAAQ,SAAoB,CAAC;AAE1C;;;GAGG;AACH,eAAO,IAAI,aAAa,QAAI,CAAC;AAE7B;;;GAGG;AACH,eAAO,IAAI,aAAa,QAAI,CAAC;AAE7B;;;GAGG;AACH,eAAO,IAAI,aAAa,QAAI,CAAC;AAE7B;;;GAGG;AACH,eAAO,IAAI,KAAK,QAAI,CAAC;AAErB;;;GAGG;AACH,eAAO,IAAI,IAAI,QAAI,CAAC;AAEpB;;;;GAIG;AACH,eAAO,IAAI,KAAK,QAAI,CAAC;AAErB;;;;;;;;;;GAUG;AACH,eAAO,IAAI,SAAS,SAAO,CAAC;AAE5B;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAElD;AAED;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,IAAI,QAErC;AA+CD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,MAAM,CAAC,EAAE,OAAO,QAiB3C;AAUD,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1E;;;;;;GAMG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAoC7C;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,WAY7D;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,YAYhC;AAED;;;GAGG;AACH,wBAAgB,UAAU,YAEzB;AAED;;;GAGG;AACH,wBAAgB,WAAW,YAE1B;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,IAAI,GAAE,MAAgB
|
|
1
|
+
{"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../src/system/device.ts"],"names":[],"mappings":"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"}
|
package/build/system/save.d.ts
CHANGED
|
@@ -1,3 +1,46 @@
|
|
|
1
|
-
|
|
1
|
+
import { Jsonifiable } from "type-fest";
|
|
2
|
+
/**
|
|
3
|
+
* The shape of the {@link save} namespace.
|
|
4
|
+
*
|
|
5
|
+
* Declared rather than left as a bare index signature: typed as
|
|
6
|
+
* `Record<string, unknown>` every member was swallowed by the index, so
|
|
7
|
+
* `save.add` came out as `unknown` and could not be CALLED at all under
|
|
8
|
+
* `strict` — the namespace's own documented example did not typecheck — while
|
|
9
|
+
* every registered key read back as `unknown` and needed a cast to compare or
|
|
10
|
+
* assign.
|
|
11
|
+
*
|
|
12
|
+
* The index signature stays, so anything registered elsewhere is still
|
|
13
|
+
* reachable; declared members simply take precedence over it.
|
|
14
|
+
*/
|
|
15
|
+
export interface SaveAPI {
|
|
16
|
+
/**
|
|
17
|
+
* Add new keys to localStorage and set them to the given default values if
|
|
18
|
+
* they do not exist.
|
|
19
|
+
* @param props - key and corresponding values
|
|
20
|
+
* @returns this namespace, typed with the keys just registered, so they can
|
|
21
|
+
* be read back without a cast
|
|
22
|
+
* @example
|
|
23
|
+
* // Initialize "score" and "lives" with default values
|
|
24
|
+
* me.save.add({ score : 0, lives : 3 });
|
|
25
|
+
* // get or set the value through me.save
|
|
26
|
+
* me.save.score = 1000;
|
|
27
|
+
* @example
|
|
28
|
+
* // or keep the returned view, and read the keys with their real types
|
|
29
|
+
* const store = me.save.add({ score : 0, lives : 3 });
|
|
30
|
+
* store.lives -= 1;
|
|
31
|
+
*/
|
|
32
|
+
add<T extends Record<string, Jsonifiable>>(props: T): this & T;
|
|
33
|
+
/**
|
|
34
|
+
* Remove a key from localStorage
|
|
35
|
+
* @param key - key to be removed
|
|
36
|
+
* @example
|
|
37
|
+
* // Remove the "score" key from localStorage
|
|
38
|
+
* me.save.remove("score");
|
|
39
|
+
*/
|
|
40
|
+
remove(key: string): void;
|
|
41
|
+
/** keys registered through {@link SaveAPI.add} */
|
|
42
|
+
[key: string]: unknown;
|
|
43
|
+
}
|
|
44
|
+
declare const save: SaveAPI;
|
|
2
45
|
export default save;
|
|
3
46
|
//# sourceMappingURL=save.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"save.d.ts","sourceRoot":"","sources":["../../src/system/save.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"save.d.ts","sourceRoot":"","sources":["../../src/system/save.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAqFxC;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,OAAO;IACvB;;;;;;;;;;;;;;;OAeG;IACH,GAAG,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;IAE/D;;;;;;OAMG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAE1B,kDAAkD;IAClD,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACvB;AAED,QAAA,MAAM,IAAI,EAAE,OAqEX,CAAC;AAEF,eAAe,IAAI,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glsl_realization.d.ts","sourceRoot":"","sources":["../../../src/video/effects/glsl_realization.js"],"names":[],"mappings":"AAoHA;;;;;;;;GAQG;AACH,+CALW,MAAM,GACJ;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,KAAK,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,CAAC,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAC,
|
|
1
|
+
{"version":3,"file":"glsl_realization.d.ts","sourceRoot":"","sources":["../../../src/video/effects/glsl_realization.js"],"names":[],"mappings":"AAoHA;;;;;;;;GAQG;AACH,+CALW,MAAM,GACJ;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,KAAK,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,CAAC,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAC,CAoCvH"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mesh_splice.d.ts","sourceRoot":"","sources":["../../../src/video/effects/mesh_splice.js"],"names":[],"mappings":"AA4EA;;;;;;;;;;;;GAYG;AACH,6CAPW,MAAM,+BAEN,MAAM,GACJ,MAAM,GAAC,IAAI,CAmCvB;AAED;;;;;;GAMG;AACH,yCALW,MAAM,GACJ,OAAO,CAWnB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qCANW,MAAM,QACN,MAAM,GACJ,MAAM,GAAC,IAAI,CAgBvB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,kCANW,MAAM,SACN,MAAM,GACJ,MAAM,CAWlB"}
|
|
@@ -1,129 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* A simplified shader class for applying custom fragment effects to renderables.
|
|
3
|
-
* Only requires a fragment `apply()` function — the vertex shader, uniforms, and
|
|
4
|
-
* texture sampling boilerplate are handled automatically.
|
|
5
|
-
*
|
|
6
|
-
* ## Dual-language bodies
|
|
7
|
-
*
|
|
8
|
-
* An effect body is written in the active renderer's shading language:
|
|
9
|
-
* GLSL on the WebGL renderer, WGSL on the WebGPU renderer. Pass a plain
|
|
10
|
-
* string for a GLSL-only effect (the historical form), or one body per
|
|
11
|
-
* language for an effect that runs on both backends:
|
|
12
|
-
*
|
|
13
|
-
* ```js
|
|
14
|
-
* new ShaderEffect(renderer, { glsl: glslBody, wgsl: wgslBody });
|
|
15
|
-
* ```
|
|
16
|
-
*
|
|
17
|
-
* The renderer compiles the body matching its
|
|
18
|
-
* {@link Renderer#shaderLanguage}. When no matching body exists — a
|
|
19
|
-
* GLSL-only effect on the WebGPU renderer, any effect on the Canvas
|
|
20
|
-
* renderer — the effect warns once and stays **disabled**
|
|
21
|
-
* (`enabled === false`, every method a safe no-op): the scene renders
|
|
22
|
-
* without the effect, it never breaks.
|
|
23
|
-
*
|
|
24
|
-
* ## The WGSL convention
|
|
25
|
-
*
|
|
26
|
-
* A WGSL body mirrors the GLSL one — declarations plus an apply function,
|
|
27
|
-
* compiled verbatim inside engine boilerplate:
|
|
28
|
-
*
|
|
29
|
-
* - `fn apply(color : vec4f, uv : vec2f) -> vec4f` — required; receives
|
|
30
|
-
* the sampled, tinted pixel and its UV, returns the modified color.
|
|
31
|
-
* - Uniforms are the members of ONE struct bound as
|
|
32
|
-
* `@group(3) @binding(0) var<uniform> fx : MyUniforms;` — member names
|
|
33
|
-
* are the {@link ShaderEffect#setUniform} names, so a dual-language
|
|
34
|
-
* effect uses the same uniform names in both bodies and one
|
|
35
|
-
* `setUniform` call serves both. Supported member types: `f32`, `i32`,
|
|
36
|
-
* `u32`, `vec2f`, `vec3f`, `vec4f`, `mat3x3f`, `mat4x4f`,
|
|
37
|
-
* `array<vec4f, N>`.
|
|
38
|
-
* - Extra {@link ShaderEffect#setTexture} samplers are texture/sampler
|
|
39
|
-
* pairs at explicit consecutive group-3 bindings (from 1):
|
|
40
|
-
* `@group(3) @binding(1) var uNoise : texture_2d<f32>;`
|
|
41
|
-
* `@group(3) @binding(2) var uNoiseSampler : sampler;`
|
|
42
|
-
* - The source texture is available as `uTexture` with `uSampler`
|
|
43
|
-
* (`textureSample(uTexture, uSampler, uv)` — the WGSL spelling of
|
|
44
|
-
* GLSL's `texture2D(uSampler, uv)`), and the interpolated tint as
|
|
45
|
-
* `vColor`, under the same names as the GLSL side.
|
|
46
|
-
* - The shader builtins keep their names: `screen_uv`, `noise_uv`, and
|
|
47
|
-
* `screen_texture` — sampled through `screen_sampler` (clamped) or
|
|
48
|
-
* `screen_sampler_repeat` (wrapping), replacing the GLSL
|
|
49
|
-
* `: screen_texture(repeat)` annotation.
|
|
50
|
-
* - Porting note: a texture sampled after a non-uniform `return` or
|
|
51
|
-
* inside a varying branch must use
|
|
52
|
-
* `textureSampleLevel(uTexture, uSampler, uv, 0.0)` (a WGSL
|
|
53
|
-
* uniform-control-flow rule; identical output for sprite textures).
|
|
54
|
-
*
|
|
55
|
-
* ## Directional UV arithmetic (`uUVYDir`)
|
|
56
|
-
*
|
|
57
|
-
* The vertical orientation of `apply()`'s UV space depends on the draw
|
|
58
|
-
* path: sampling the sprite directly, `uv.y` grows downward, but the
|
|
59
|
-
* WebGL multi-effect (pooled) path composites through capture FBOs whose
|
|
60
|
-
* rows are bottom-up — there `uv.y` grows upward. A body that offsets its
|
|
61
|
-
* sampling coordinate vertically (a drop shadow, a directional smear)
|
|
62
|
-
* would render mirrored on that path. Declare a `float uUVYDir` uniform
|
|
63
|
-
* (WGSL: `uUVYDir : f32` in the uniform struct) and multiply vertical UV
|
|
64
|
-
* offsets by it: the renderer feeds `+1` where `uv.y` grows downward —
|
|
65
|
-
* including every WebGPU path — and `-1` on the WebGL pooled path, so
|
|
66
|
-
* "down" stays down everywhere. Initialize it to `1.0` with `setUniform`;
|
|
67
|
-
* bodies that don't declare it are unaffected. The built-in
|
|
68
|
-
* {@link DropShadowEffect} is the reference use.
|
|
69
|
-
* @category Rendering
|
|
70
|
-
* @example
|
|
71
|
-
* // one effect, both backends: dual-language body
|
|
72
|
-
* const fx = new ShaderEffect(renderer, {
|
|
73
|
-
* glsl: `
|
|
74
|
-
* uniform float uStrength;
|
|
75
|
-
* vec4 apply(vec4 color, vec2 uv) {
|
|
76
|
-
* return vec4(color.rgb * uStrength, color.a);
|
|
77
|
-
* }
|
|
78
|
-
* `,
|
|
79
|
-
* wgsl: `
|
|
80
|
-
* struct Fx { uStrength : f32, };
|
|
81
|
-
* @group(3) @binding(0) var<uniform> fx : Fx;
|
|
82
|
-
* fn apply(color : vec4f, uv : vec2f) -> vec4f {
|
|
83
|
-
* return vec4f(color.rgb * fx.uStrength, color.a);
|
|
84
|
-
* }
|
|
85
|
-
* `,
|
|
86
|
-
* });
|
|
87
|
-
* mySprite.addPostEffect(fx);
|
|
88
|
-
* fx.setUniform("uStrength", 0.5); // sets either backend
|
|
89
|
-
* @example
|
|
90
|
-
* // create a grayscale effect
|
|
91
|
-
* mySprite.addPostEffect(new ShaderEffect(renderer, `
|
|
92
|
-
* vec4 apply(vec4 color, vec2 uv) {
|
|
93
|
-
* float gray = dot(color.rgb, vec3(0.299, 0.587, 0.114));
|
|
94
|
-
* return vec4(vec3(gray), color.a);
|
|
95
|
-
* }
|
|
96
|
-
* `));
|
|
97
|
-
* @example
|
|
98
|
-
* // create an effect with a custom uniform
|
|
99
|
-
* const pulse = new ShaderEffect(renderer, `
|
|
100
|
-
* uniform float uTime;
|
|
101
|
-
* vec4 apply(vec4 color, vec2 uv) {
|
|
102
|
-
* float brightness = 0.8 + 0.2 * sin(uTime * 3.0);
|
|
103
|
-
* return vec4(color.rgb * brightness, color.a);
|
|
104
|
-
* }
|
|
105
|
-
* `);
|
|
106
|
-
* mySprite.addPostEffect(pulse);
|
|
107
|
-
* // update the uniform each frame
|
|
108
|
-
* pulse.setUniform("uTime", time);
|
|
109
|
-
* @example
|
|
110
|
-
* // Shader builtins — no JS plumbing, no UV math:
|
|
111
|
-
* // `: screen_texture` keeps the sampler filled with everything drawn so
|
|
112
|
-
* // far (a back-buffer copy; one screen copy per draw of the effect),
|
|
113
|
-
* // `screen_uv` is this fragment's 0..1 screen position, and `noise_uv`
|
|
114
|
-
* // runs 0..1 across the sprite regardless of its atlas frame.
|
|
115
|
-
* const water = new ShaderEffect(renderer, `
|
|
116
|
-
* uniform sampler2D uNoise;
|
|
117
|
-
* uniform sampler2D screenTex : screen_texture;
|
|
118
|
-
* uniform float uTime;
|
|
119
|
-
* vec4 apply(vec4 color, vec2 uv) {
|
|
120
|
-
* vec2 flow = texture2D(uNoise, noise_uv + uTime * 0.25).rg;
|
|
121
|
-
* vec4 refracted = texture2D(screenTex, screen_uv + flow * 0.005);
|
|
122
|
-
* return refracted * texture2D(uSampler, uv + flow * 0.005);
|
|
123
|
-
* }
|
|
124
|
-
* `);
|
|
125
|
-
* water.setTexture("uNoise", noiseTexture.getTexture(), "repeat");
|
|
126
|
-
*/
|
|
127
1
|
export default class ShaderEffect {
|
|
128
2
|
/**
|
|
129
3
|
* @param {WebGLRenderer|WebGPURenderer|CanvasRenderer} renderer - the current renderer instance
|
|
@@ -173,9 +47,19 @@ export default class ShaderEffect {
|
|
|
173
47
|
/**
|
|
174
48
|
* Set the uniform to the given value
|
|
175
49
|
* @param {string} name - the uniform name
|
|
176
|
-
* @param {
|
|
50
|
+
* @param {number|boolean|number[]|Float32Array|object} value - the value to assign to that
|
|
51
|
+
* uniform. Scalars (`float`, `int`, `bool`) take a number or a boolean;
|
|
52
|
+
* vectors and matrices take an array, a `Float32Array`, or any object
|
|
53
|
+
* exposing `toArray()` — which is every {@link Vector2d},
|
|
54
|
+
* {@link Vector3d}, {@link Color} and {@link Matrix3d}.
|
|
55
|
+
* @example
|
|
56
|
+
* // a scalar the body declares as `uniform float uStrength;`
|
|
57
|
+
* fx.setUniform("uStrength", 0.5);
|
|
58
|
+
* // a vec3 — an array, or anything with toArray()
|
|
59
|
+
* fx.setUniform("uTint", [1.0, 0.82, 0.55]);
|
|
60
|
+
* fx.setUniform("uOrigin", new me.Vector2d(0.5, 0.5));
|
|
177
61
|
*/
|
|
178
|
-
setUniform(name: string, value:
|
|
62
|
+
setUniform(name: string, value: number | boolean | number[] | Float32Array | object): void;
|
|
179
63
|
/**
|
|
180
64
|
* Set the shader's `uTime` uniform (elapsed time, in seconds). A convenience
|
|
181
65
|
* over `setUniform("uTime", ...)`; call it once per frame from your update
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shadereffect.d.ts","sourceRoot":"","sources":["../../../src/video/effects/shadereffect.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"shadereffect.d.ts","sourceRoot":"","sources":["../../../src/video/effects/shadereffect.js"],"names":[],"mappings":"AAiJA;IAiCC;;;;;;;;;;;OAWG;IACH,sBAXW,aAAa,GAAC,cAAc,GAAC,cAAc,QAC3C,MAAM,GAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAC,cAQrC,MAAM,EAiKhB;IA3MD;;;;;;OAMG;IACH,SAFU,OAAO,CAED;IAEhB;;;;;;;OAOG;IACH,oBAHU,OAAO,CAGC;IAElB;;;;;;;;;;OAUG;IACH,QAHU,OAAO,CAGF;IAed;;;;;;;OAOG;IACH,eAAyB;IAEzB;;;;;;OAMG;IACH;eA5ByB,MAAM;eAAS,MAAM;MA4BrB;IACzB;;;OAGG;IACH,+BAA2B;IAoB3B;;;;;;;OAOG;IACH,0CAA+B;IAE/B;;;;;OAKG;IACH,0CAA+B;IAE/B;;;;OAIG;IACH,8BAAgC;IAQ/B;;;;;;OAMG;IACH,wBAJU,KAAK,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,CAAC,CAIK;IACpD;;;OAGG;IACH,iBAAkC;IAClC;;;;;;OAMG;IACH,eAA6B;IAC7B;;;OAGG;IACH,mBAAqC;IAErC;;;OAGG;IACH,8BAKC;IAyBD;;;OAGG;IACH,mDAAkC;IAsBpC;;;;OAIG;IACH,uBAsBC;IAjBA;;;OAGG;IACH,2CAAyC;IAe1C;;;;OAIG;IACH,2BAQC;IAED;;;;;;;;;;;;;;OAcG;IACH,iBAbW,MAAM,SACN,MAAM,GAAC,OAAO,GAAC,MAAM,EAAE,GAAC,YAAY,GAAC,MAAM,QAsCrD;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,iBAbW,MAAM,GACJ,YAAY,CAoDxB;IAED;;;;;;;;;;;;OAYG;IACH,gBAJW,MAAM,QA0BhB;IAbC;;;OAGG;IACH,aAAkB;IAWpB;;;;;;;;;;;;;;OAcG;IACH,6BATW,MAAM,gBACN,MAAM,eACN,MAAM,gBACN,MAAM,MACN,MAAM,MACN,MAAM,QAqDhB;IAED;;;;;;;OAOG;IACH,8DAaC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,iBAnBW,MAAM,SACN,SAAS,GAAC,gBAAgB,GAAC,iBAAiB,GAAC,eAAe,GAAC,WAAW,WACxE,QAAQ,GAAC,UAAU,GAAC,UAAU,GAAC,WAAW,GACxC,YAAY,CA0GxB;IAED;;;;;;;;;OASG;IACH,0BAJW,MAAM,QAgGhB;IA/DI;;;OAGG;IACH,4CAAkC;IA6DvC;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,SATa,YAAY,CAsDxB;IAKD;;;OAGG;IACH,aAIC;IAED;;;OAGG;IACH,qCAIC;IAED;;;OAGG;IACH,iEAIC;IAED;;;OAGG;IACH,mCAEC;IAED;;;OAGG;IACH,kBAEC;IAED;;;OAGG;IACH,oBAEC;IAED;;;OAGG;IACH,qBAEC;IAED;;;OAGG;IACH,uBAEC;IAED;;;;OAIG;IACH,gBAyCC;CACD;qBAjhCoB,sBAAsB;kCAET,uBAAuB;sBAHnC,yBAAyB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wgsl_realization.d.ts","sourceRoot":"","sources":["../../../src/video/effects/wgsl_realization.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wgsl_realization.d.ts","sourceRoot":"","sources":["../../../src/video/effects/wgsl_realization.js"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;GAeG;AACH;IACC;;;;OAIG;IACH,kBAFW,MAAM,EA2EhB;IAtEA;;;OAGG;IACH,OAFU,OAAO,CAEc;IAC/B,0BAA0B;IAC1B,OADW,MAAM,GAAC,IAAI,CAC+B;IAMrD;;;;OAIG;IACH,MAFU,MAAM,CAEA;IAChB,wEAAwE;IACxE,2BAAoB;IACpB,iEAAiE;IACjE,YAA2B;IAC3B,4DAA4D;IAC5D,gBAAmC;IACnC,iDAAiD;IACjD,cAA+B;IAC/B,0BAA0B;IAC1B,cAA+B;IAG/B,8CAA8C;IAC9C,yBAAuB;IACvB,mEAAmE;IACnE,oCAAsC;IAEtC;;;;;OAKG;IACH,uCAA4B;IAG5B,6BAAwD;IACxD,2CAAqC;IACrC,yCAAmC;IACnC,0CAAoC;IAIpC,gDAAmC;IAEnC;;;;OAIG;IACH,QAFU,GAAG,CAAC,MAAM,EAAE,MAAM,GAAC,MAAM,EAAE,CAAC,CAEf;IAIvB,6BAAuB;IAEvB;;;;OAIG;IACH,KAFU,MAAM,GAAC,IAAI,CAEN;IAGhB;;;;;;OAMG;IACH,iBALW,MAAM,SACN,MAAM,GAAC,MAAM,EAAE,GAAC,YAAY,GAAC;QAAC,GAAG,EAAE,YAAY,CAAA;KAAC,GAE9C,OAAO,CAwDnB;IAED;;;;;OAKG;IACH,iBAHW,MAAM,GACJ,OAAO,CAInB;IAED;;;OAGG;IACH,mBAEC;IAED;;;;;;;;;;;OAWG;IACH,uBALW,MAAM,GACJ,MAAM,CAWlB;CACD"}
|
|
@@ -21,6 +21,25 @@ export class Gradient {
|
|
|
21
21
|
* gradient.addColorStop(1, "blue");
|
|
22
22
|
*/
|
|
23
23
|
addColorStop(offset: number, color: Color | string): Gradient;
|
|
24
|
+
/**
|
|
25
|
+
* Get or create a native `CanvasGradient` for use with a 2D context.
|
|
26
|
+
*
|
|
27
|
+
* This is the one to reach for when baking a gradient into your own
|
|
28
|
+
* canvas — it hands back a value for `ctx.fillStyle` and touches no
|
|
29
|
+
* shared state, so two callers cannot clobber each other.
|
|
30
|
+
*
|
|
31
|
+
* The result is cached and reused until a stop changes.
|
|
32
|
+
* @param {CanvasRenderingContext2D} context - the 2D context to create the gradient on
|
|
33
|
+
* @returns {CanvasGradient} a native gradient bound to that context
|
|
34
|
+
* @example
|
|
35
|
+
* // bake a gradient into a standalone canvas
|
|
36
|
+
* const c = document.createElement("canvas");
|
|
37
|
+
* c.width = 64; c.height = 64;
|
|
38
|
+
* const ctx = c.getContext("2d");
|
|
39
|
+
* ctx.fillStyle = myGradient.toCanvasGradient(ctx);
|
|
40
|
+
* ctx.fillRect(0, 0, 64, 64);
|
|
41
|
+
*/
|
|
42
|
+
toCanvasGradient(context: CanvasRenderingContext2D): CanvasGradient;
|
|
24
43
|
/**
|
|
25
44
|
* Get the interpolated color at a given position along the gradient.
|
|
26
45
|
* Useful for procedural effects like trails that need per-segment colors.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gradient.d.ts","sourceRoot":"","sources":["../../src/video/gradient.js"],"names":[],"mappings":"AAmCA;;;;GAIG;AACH;IACC;;;OAGG;IACH,kBAHW,QAAQ,GAAC,QAAQ,UACjB,MAAM,EAAE,EA8DlB;IA3DA;;;OAGG;IACH;;;OAGG;IACH,YAA2B;IAE3B,0BAAgB;IAEhB;;;;;OAKG;IACH,QAJU,MAAM,EAAE,CAIE;IAEpB;;;;;OAKG;IACH,YAJU,KAAK,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAC,CAAC,CAI5B;IAEpB;;;;;OAKG;IACH,iBAJU,cAAc,GAAC,SAAS,CAIF;IAEhC;;;;;OAKG;IACH,eAJU,kBAAkB,GAAC,SAAS,CAIR;IAE9B;;;;;OAKG;IACH,QAJU,OAAO,CAIC;IAElB;;;;;OAKG;IACH,cAJU;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAC,EAAE,GAAC,IAAI,CAIvB;IAGzB;;;;;;;;;OASG;IACH,qBARW,MAAM,SACN,KAAK,GAAC,MAAM,GACV,QAAQ,CA0BpB;IAED
|
|
1
|
+
{"version":3,"file":"gradient.d.ts","sourceRoot":"","sources":["../../src/video/gradient.js"],"names":[],"mappings":"AAmCA;;;;GAIG;AACH;IACC;;;OAGG;IACH,kBAHW,QAAQ,GAAC,QAAQ,UACjB,MAAM,EAAE,EA8DlB;IA3DA;;;OAGG;IACH;;;OAGG;IACH,YAA2B;IAE3B,0BAAgB;IAEhB;;;;;OAKG;IACH,QAJU,MAAM,EAAE,CAIE;IAEpB;;;;;OAKG;IACH,YAJU,KAAK,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAC,CAAC,CAI5B;IAEpB;;;;;OAKG;IACH,iBAJU,cAAc,GAAC,SAAS,CAIF;IAEhC;;;;;OAKG;IACH,eAJU,kBAAkB,GAAC,SAAS,CAIR;IAE9B;;;;;OAKG;IACH,QAJU,OAAO,CAIC;IAElB;;;;;OAKG;IACH,cAJU;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAC,EAAE,GAAC,IAAI,CAIvB;IAGzB;;;;;;;;;OASG;IACH,qBARW,MAAM,SACN,KAAK,GAAC,MAAM,GACV,QAAQ,CA0BpB;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,0BAVW,wBAAwB,GACtB,cAAc,CAuC1B;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,mBATW,cAAc,GAAC,aAAa,KAC5B,MAAM,KACN,MAAM,SACN,MAAM,UACN,MAAM,GACJ;QAAC,MAAM,EAAE,iBAAiB,GAAC,eAAe,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,CAyFtF;IAED;;;;;;;;;;;OAWG;IACH,qBATW,MAAM,OACN,KAAK,GACH,KAAK,CA+CjB;IAED;;;;OAIG;IACH,0BAWC;IAED;;OAEG;IACH,gBAOC;CACD;+BAvX8B,sCAAsC;2BAF7C,kBAAkB"}
|
|
@@ -240,6 +240,50 @@ declare class Renderer {
|
|
|
240
240
|
* render the main framebuffer on screen
|
|
241
241
|
*/
|
|
242
242
|
flush(): void;
|
|
243
|
+
/**
|
|
244
|
+
* Compile the backend's built-in shader programs up front, so the first
|
|
245
|
+
* frame that draws them does not stall while the driver builds them.
|
|
246
|
+
*
|
|
247
|
+
* A GPU backend does not finish a shader when you hand it the source. It
|
|
248
|
+
* finishes it the first time something is actually drawn with it, which
|
|
249
|
+
* puts the whole cost on the frame a scene first appears — the moment a
|
|
250
|
+
* level or stage comes up and its geometry arrives a beat late. Calling
|
|
251
|
+
* this while a loading screen is still on screen moves that cost to where
|
|
252
|
+
* nobody is waiting on a frame.
|
|
253
|
+
*
|
|
254
|
+
* Resolves immediately on a backend with nothing to compile (Canvas).
|
|
255
|
+
* What "ready" means is backend-specific and worth knowing: WebGL's link
|
|
256
|
+
* blocks, so a resolved promise there means the programs are genuinely
|
|
257
|
+
* built; WebGPU's `createShaderModule` returns before its compilation
|
|
258
|
+
* finishes, so a resolved promise there means the modules have been
|
|
259
|
+
* requested and validation is under way.
|
|
260
|
+
*
|
|
261
|
+
* **You normally do not call this.** `loader.preload()` calls it for you,
|
|
262
|
+
* once the assets are in and before `LOADER_COMPLETE` fires — so it runs
|
|
263
|
+
* while the loading screen is still up — whenever the application's
|
|
264
|
+
* `prewarm` setting is on, which it is by default. Every `preload()` warms,
|
|
265
|
+
* not just the first, so a per-level preload warms whatever that level
|
|
266
|
+
* brought with it.
|
|
267
|
+
*
|
|
268
|
+
* Two consequences worth knowing:
|
|
269
|
+
*
|
|
270
|
+
* - **A game that never calls `loader.preload()` is never warmed.** There
|
|
271
|
+
* is no other hook. Call this yourself if you load assets some other way
|
|
272
|
+
* and still want the warm-up.
|
|
273
|
+
* - It is deliberately NOT called from `Application.init()`. That runs
|
|
274
|
+
* before anything is on screen, so warming there would only lengthen a
|
|
275
|
+
* blank page instead of hiding behind a progress bar.
|
|
276
|
+
* @returns {Promise<void>} settles when the built-in programs are ready
|
|
277
|
+
* @example
|
|
278
|
+
* // the usual case: nothing to write. `preload()` warms on the way through
|
|
279
|
+
* await loader.preload(resources);
|
|
280
|
+
* @example
|
|
281
|
+
* // only needed if you do not use the preloader, or want a second warm-up
|
|
282
|
+
* // at a point of your own choosing
|
|
283
|
+
* await app.renderer.prewarm();
|
|
284
|
+
* state.change(state.PLAY);
|
|
285
|
+
*/
|
|
286
|
+
prewarm(): Promise<void>;
|
|
243
287
|
/**
|
|
244
288
|
* Run the transparent pass: draw everything the CURRENT render target has
|
|
245
289
|
* queued since its last drain, back-to-front, then empty that queue.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/video/renderer.js"],"names":[],"mappings":"AAiCA;;;GAGG;AACH;
|
|
1
|
+
{"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/video/renderer.js"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,100 @@
|
|
|
1
1
|
export default NoiseTexture2d;
|
|
2
|
+
/**
|
|
3
|
+
* What a {@link NoiseTexture2d} bakes WITH — its own settings, as opposed to
|
|
4
|
+
* the field's.
|
|
5
|
+
*/
|
|
6
|
+
export type NoiseTexture2dBakeSettings = {
|
|
7
|
+
/**
|
|
8
|
+
* - baked texture width in pixels
|
|
9
|
+
*/
|
|
10
|
+
width?: number;
|
|
11
|
+
/**
|
|
12
|
+
* - baked texture height in pixels
|
|
13
|
+
*/
|
|
14
|
+
height?: number;
|
|
15
|
+
/**
|
|
16
|
+
* - an existing {@link Noise} to bake; when omitted
|
|
17
|
+
* one is built from the forwarded field settings
|
|
18
|
+
*/
|
|
19
|
+
noise?: Noise;
|
|
20
|
+
/**
|
|
21
|
+
* - tile cleanly in both axes
|
|
22
|
+
*/
|
|
23
|
+
seamless?: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* - edge blend band width as a
|
|
26
|
+
* fraction (0..1) of the smaller dimension, when `seamless`
|
|
27
|
+
*/
|
|
28
|
+
seamlessBlendSkirt?: number;
|
|
29
|
+
/**
|
|
30
|
+
* - invert the noise value (`1 - v`)
|
|
31
|
+
*/
|
|
32
|
+
invert?: boolean;
|
|
33
|
+
/**
|
|
34
|
+
* - encode as a normal map
|
|
35
|
+
*/
|
|
36
|
+
asNormalMap?: boolean;
|
|
37
|
+
/**
|
|
38
|
+
* - normal steepness when `asNormalMap`
|
|
39
|
+
*/
|
|
40
|
+
bumpStrength?: number;
|
|
41
|
+
/**
|
|
42
|
+
* - map the noise
|
|
43
|
+
* value to a color
|
|
44
|
+
*/
|
|
45
|
+
colorRamp?: import("../gradient.js").Gradient;
|
|
46
|
+
/**
|
|
47
|
+
* - sample in 3D (`getNoise3d`) using an
|
|
48
|
+
* internal `time` as the third axis, advanced by {@link NoiseTexture2d#update}
|
|
49
|
+
*/
|
|
50
|
+
animated?: boolean;
|
|
51
|
+
/**
|
|
52
|
+
* - animation speed in noise z-units per second
|
|
53
|
+
* (only used while `animated`)
|
|
54
|
+
*/
|
|
55
|
+
speed?: number;
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* Everything the constructor takes.
|
|
59
|
+
*
|
|
60
|
+
* The settings object is handed to {@link Noise} WHOLE when no `noise` instance
|
|
61
|
+
* is given, so every field setting — `type`, `seed`, `frequency`/`scale`,
|
|
62
|
+
* `octaves`, `gain`/`persistence`, `lacunarity`, `fractalType`, the domain-warp
|
|
63
|
+
* settings — belongs here too. Spelling them out a second time is what would
|
|
64
|
+
* drift; the intersection cannot.
|
|
65
|
+
*/
|
|
66
|
+
export type NoiseTexture2dSettings = NoiseTexture2dBakeSettings & import("../../math/noise.ts").NoiseSettings;
|
|
67
|
+
/**
|
|
68
|
+
* What a {@link NoiseTexture2d} bakes WITH — its own settings, as opposed to
|
|
69
|
+
* the field's.
|
|
70
|
+
* @typedef {object} NoiseTexture2dBakeSettings
|
|
71
|
+
* @property {number} [width=256] - baked texture width in pixels
|
|
72
|
+
* @property {number} [height=256] - baked texture height in pixels
|
|
73
|
+
* @property {Noise} [noise] - an existing {@link Noise} to bake; when omitted
|
|
74
|
+
* one is built from the forwarded field settings
|
|
75
|
+
* @property {boolean} [seamless=false] - tile cleanly in both axes
|
|
76
|
+
* @property {number} [seamlessBlendSkirt=0.1] - edge blend band width as a
|
|
77
|
+
* fraction (0..1) of the smaller dimension, when `seamless`
|
|
78
|
+
* @property {boolean} [invert=false] - invert the noise value (`1 - v`)
|
|
79
|
+
* @property {boolean} [asNormalMap=false] - encode as a normal map
|
|
80
|
+
* @property {number} [bumpStrength=1] - normal steepness when `asNormalMap`
|
|
81
|
+
* @property {import("../gradient.js").Gradient} [colorRamp] - map the noise
|
|
82
|
+
* value to a color
|
|
83
|
+
* @property {boolean} [animated=false] - sample in 3D (`getNoise3d`) using an
|
|
84
|
+
* internal `time` as the third axis, advanced by {@link NoiseTexture2d#update}
|
|
85
|
+
* @property {number} [speed=1] - animation speed in noise z-units per second
|
|
86
|
+
* (only used while `animated`)
|
|
87
|
+
*/
|
|
88
|
+
/**
|
|
89
|
+
* Everything the constructor takes.
|
|
90
|
+
*
|
|
91
|
+
* The settings object is handed to {@link Noise} WHOLE when no `noise` instance
|
|
92
|
+
* is given, so every field setting — `type`, `seed`, `frequency`/`scale`,
|
|
93
|
+
* `octaves`, `gain`/`persistence`, `lacunarity`, `fractalType`, the domain-warp
|
|
94
|
+
* settings — belongs here too. Spelling them out a second time is what would
|
|
95
|
+
* drift; the intersection cannot.
|
|
96
|
+
* @typedef {NoiseTexture2dBakeSettings & import("../../math/noise.ts").NoiseSettings} NoiseTexture2dSettings
|
|
97
|
+
*/
|
|
2
98
|
/**
|
|
3
99
|
* A {@link Texture2d} that bakes a {@link Noise} field into a drawable canvas —
|
|
4
100
|
* usable directly as a sprite image, a normal map, an image layer, or a custom
|
|
@@ -41,39 +137,10 @@ export default NoiseTexture2d;
|
|
|
41
137
|
*/
|
|
42
138
|
declare class NoiseTexture2d extends Texture2d {
|
|
43
139
|
/**
|
|
44
|
-
* @param {
|
|
45
|
-
*
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
* @param {number} [settings.width=256] - baked texture width in pixels
|
|
49
|
-
* @param {number} [settings.height=256] - baked texture height in pixels
|
|
50
|
-
* @param {Noise} [settings.noise] - an existing {@link Noise} to bake; when
|
|
51
|
-
* omitted one is built from the forwarded settings
|
|
52
|
-
* @param {boolean} [settings.seamless=false] - tile cleanly in both axes
|
|
53
|
-
* @param {number} [settings.seamlessBlendSkirt=0.1] - edge blend band width
|
|
54
|
-
* as a fraction (0..1) of the smaller dimension, when `seamless`
|
|
55
|
-
* @param {boolean} [settings.invert=false] - invert the noise value (`1 - v`)
|
|
56
|
-
* @param {boolean} [settings.asNormalMap=false] - encode as a normal map
|
|
57
|
-
* @param {number} [settings.bumpStrength=1] - normal steepness when `asNormalMap`
|
|
58
|
-
* @param {Gradient} [settings.colorRamp] - map the noise value to a color
|
|
59
|
-
* @param {boolean} [settings.animated=false] - sample in 3D (`getNoise3d`)
|
|
60
|
-
* using an internal `time` as the third axis, advanced by {@link NoiseTexture2d#update}
|
|
61
|
-
* @param {number} [settings.speed=1] - animation speed in noise z-units per
|
|
62
|
-
* second (only used while `animated`)
|
|
63
|
-
*/
|
|
64
|
-
constructor(settings?: {
|
|
65
|
-
width?: number | undefined;
|
|
66
|
-
height?: number | undefined;
|
|
67
|
-
noise?: Noise | undefined;
|
|
68
|
-
seamless?: boolean | undefined;
|
|
69
|
-
seamlessBlendSkirt?: number | undefined;
|
|
70
|
-
invert?: boolean | undefined;
|
|
71
|
-
asNormalMap?: boolean | undefined;
|
|
72
|
-
bumpStrength?: number | undefined;
|
|
73
|
-
colorRamp?: any;
|
|
74
|
-
animated?: boolean | undefined;
|
|
75
|
-
speed?: number | undefined;
|
|
76
|
-
});
|
|
140
|
+
* @param {NoiseTexture2dSettings} [settings] - bake settings, plus any
|
|
141
|
+
* {@link NoiseSettings} for the field itself
|
|
142
|
+
*/
|
|
143
|
+
constructor(settings?: NoiseTexture2dSettings);
|
|
77
144
|
/** baked texture width in pixels @type {number} */
|
|
78
145
|
width: number;
|
|
79
146
|
/** baked texture height in pixels @type {number} */
|
|
@@ -128,6 +195,6 @@ declare class NoiseTexture2d extends Texture2d {
|
|
|
128
195
|
*/
|
|
129
196
|
getTexture(): HTMLCanvasElement;
|
|
130
197
|
}
|
|
131
|
-
import Texture2d from "./texture2d.ts";
|
|
132
198
|
import { Noise } from "../../math/noise.ts";
|
|
199
|
+
import Texture2d from "./texture2d.ts";
|
|
133
200
|
//# sourceMappingURL=noise_texture2d.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"noise_texture2d.d.ts","sourceRoot":"","sources":["../../../src/video/texture/noise_texture2d.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"noise_texture2d.d.ts","sourceRoot":"","sources":["../../../src/video/texture/noise_texture2d.js"],"names":[],"mappings":";;;;;;;;;YAkBc,MAAM;;;;aACN,MAAM;;;;;YACN,KAAK;;;;eAEL,OAAO;;;;;yBACP,MAAM;;;;aAEN,OAAO;;;;kBACP,OAAO;;;;mBACP,MAAM;;;;;gBACN,OAAO,gBAAgB,EAAE,QAAQ;;;;;eAEjC,OAAO;;;;;YAEP,MAAM;;;;;;;;;;;qCAYP,0BAA0B,GAAG,OAAO,qBAAqB,EAAE,aAAa;AA9BrF;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH;;;;;;;;;GASG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH;IACC;;;OAGG;IACH,uBAHW,sBAAsB,EA0DhC;IApDA,mDAAmD;IACnD,OADyC,MAAM,CACb;IAClC,oDAAoD;IACpD,QAD0C,MAAM,CACZ;IACpC,0DAA0D;IAC1D,OADiD,KAAK,CAEiB;IACvE,gDAAgD;IAChD,UADqC,OAAO,CACF;IAC1C,2EAA2E;IAC3E,oBADiE,MAAM,CAItE;IACD,6CAA6C;IAC7C,QADkC,OAAO,CACH;IACtC,qEAAqE;IACrE,aAD0D,OAAO,CACjB;IAChD,yDAAyD;IACzD,cAD+C,MAAM,CACL;IAChD,2EAA2E;IAC3E,WAD0D,QAAQ,GAAC,IAAI,CAC5B;IAC3C,4EAA4E;IAC5E,UADiE,OAAO,CAC9B;IAC1C,iEAAiE;IACjE,OADuD,MAAM,CAC7B;IAChC,sEAAsE;IACtE,MAD4D,MAAM,CACrD;IAEb;;;;OAIG;IACH,SAJ2D,iBAAiB,GAAC,IAAI,CAI9D;IACnB;;;;OAIG;IACH,YAJkE,SAAS,GAAC,IAAI,CAI1D;IACtB;;;;OAIG;IACH,UAJqE,YAAY,GAAC,IAAI,CAIlE;IACpB;wFACoF;IACpF,UADkE,MAAM,CACvD;IAKlB;;;;;OAKG;IACH,eAFa,MAAM,CAIlB;IAED;;;;;OAKG;IACH,QAFa,cAAc,CAiC1B;IAED;;;;;;;;;OASG;IACH,WAHW,MAAM,GACJ,cAAc,CAQ1B;IAED;;;;;;;;OAQG;IACH,kCAMC;IAED;;;;;OAKG;IACH,8CAOC;IAED;;;;;;;OAOG;IACH,qBAJa,YAAY,CA4CxB;IAED;;;OAGG;IACH,+CASC;IAED;;;OAGG;IACH,+CAWC;IAED;;;;;;OAMG;IACH,+CA+BC;IAED;;OAEG;IACH,cAFa,iBAAiB,CAI7B;CAcD;sBApYqB,qBAAqB;sBAErB,gBAAgB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"batcher.d.ts","sourceRoot":"","sources":["../../../../src/video/webgl/batchers/batcher.js"],"names":[],"mappings":"AASA;;;;;;GAMG;AAEH;;;;;;;GAOG;AACH;IAkBC;;;OAGG;IACH,sBAHW,aAAa,YACb,MAAM,EAKhB;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,eAfW,aAAa,YAErB;QAA2B,UAAU,EACrC;YAAoC,IAAI,EAAhC,MAAM;YACsB,IAAI,EAAhC,MAAM;YACsB,IAAI,EAAhC,MAAM;YACuB,UAAU,EAAvC,OAAO;YACqB,MAAM,EAAlC,MAAM;SACd;QAAyB,MAAM,EAC/B;YAAgC,MAAM,EAA9B,MAAM;YACkB,QAAQ,EAAhC,MAAM;SACd;QAA0B,WAAW;QACV,OAAO;QACR,iBAAiB;KAC7C,QAiJA;IA3IA,QAAqB;IAGrB,iCAA2C;IAE3C;;;OAGG;IACH,oCAA8B;IAE9B;;;OAGG;IACH,oCAA8B;IA4Y/B;;OAEG;IACH,gBAFW,QAAQ,GAAC,MAAM,EASzB;IAxBD;;;;;;;;;OASG;IACH,YAHU,MAAM,CAKf;IAhYC,iDAAuB;IAGxB;;;;OAIG;IACH,iCAAoB;IAEpB;;;;;OAKG;IACH,2BAAe;IAEf;;;;;OAKG;IACH,+BAAmB;IAEnB;;;OAGG;IACH,0CAAsB;IA4CtB;;;OAGG;IACH,sCAA0E;IAE1E;;;OAGG;IACH,oCAA+C;IAE/C;;;;;OAKG;IACH,+CAA0B;IAE1B;;;;;OAKG;IACH,iDAAuB;IAgBxB;;;;;;;OAOG;IACH,oBAJU,WAAW,CAMpB;IAED;;;;;;;;;;;OAWG;IACH,0BAiBC;IAoGD;;;;;;;;;OASG;IACH,2CA0BC;IAxBC,8CAAqC;IA0BvC;;;;;;;;;;;;OAYG;IACH,oBAaC;IAED;;;;OAIG;IACH,kBAFW,QAAQ,QAuBlB;IAHE,uCAA4B;IAmB/B;;OAEG;IACH,oBAFW,QAAQ,GAAC,MAAM,EAIzB;IAnBD;;;;;;;;;OASG;IACH,gBAHU,QAAQ,CAKjB;IAmCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmCG;IACH,mBAPW,MAAM,GAAC,MAAM,SACb,MAAM,GAAC,YAAY,SACnB,MAAM,GAAC,MAAM,eACb,OAAO,WACP,MAAM,wBA4BhB;IAoJD;;;OAGG;IACH,sBAFW,QAAQ,QAIlB;IAED;;;;OAIG;IACH,oBAFW,MAAM,EAAE,QAOlB;IAED;;;OAGG;IACH,aAFW,MAAM,QAqEhB;;CACD;;
|
|
1
|
+
{"version":3,"file":"batcher.d.ts","sourceRoot":"","sources":["../../../../src/video/webgl/batchers/batcher.js"],"names":[],"mappings":"AASA;;;;;;GAMG;AAEH;;;;;;;GAOG;AACH;IAkBC;;;OAGG;IACH,sBAHW,aAAa,YACb,MAAM,EAKhB;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,eAfW,aAAa,YAErB;QAA2B,UAAU,EACrC;YAAoC,IAAI,EAAhC,MAAM;YACsB,IAAI,EAAhC,MAAM;YACsB,IAAI,EAAhC,MAAM;YACuB,UAAU,EAAvC,OAAO;YACqB,MAAM,EAAlC,MAAM;SACd;QAAyB,MAAM,EAC/B;YAAgC,MAAM,EAA9B,MAAM;YACkB,QAAQ,EAAhC,MAAM;SACd;QAA0B,WAAW;QACV,OAAO;QACR,iBAAiB;KAC7C,QAiJA;IA3IA,QAAqB;IAGrB,iCAA2C;IAE3C;;;OAGG;IACH,oCAA8B;IAE9B;;;OAGG;IACH,oCAA8B;IA4Y/B;;OAEG;IACH,gBAFW,QAAQ,GAAC,MAAM,EASzB;IAxBD;;;;;;;;;OASG;IACH,YAHU,MAAM,CAKf;IAhYC,iDAAuB;IAGxB;;;;OAIG;IACH,iCAAoB;IAEpB;;;;;OAKG;IACH,2BAAe;IAEf;;;;;OAKG;IACH,+BAAmB;IAEnB;;;OAGG;IACH,0CAAsB;IA4CtB;;;OAGG;IACH,sCAA0E;IAE1E;;;OAGG;IACH,oCAA+C;IAE/C;;;;;OAKG;IACH,+CAA0B;IAE1B;;;;;OAKG;IACH,iDAAuB;IAgBxB;;;;;;;OAOG;IACH,oBAJU,WAAW,CAMpB;IAED;;;;;;;;;;;OAWG;IACH,0BAiBC;IAoGD;;;;;;;;;OASG;IACH,2CA0BC;IAxBC,8CAAqC;IA0BvC;;;;;;;;;;;;OAYG;IACH,oBAaC;IAED;;;;OAIG;IACH,kBAFW,QAAQ,QAuBlB;IAHE,uCAA4B;IAmB/B;;OAEG;IACH,oBAFW,QAAQ,GAAC,MAAM,EAIzB;IAnBD;;;;;;;;;OASG;IACH,gBAHU,QAAQ,CAKjB;IAmCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmCG;IACH,mBAPW,MAAM,GAAC,MAAM,SACb,MAAM,GAAC,YAAY,SACnB,MAAM,GAAC,MAAM,eACb,OAAO,WACP,MAAM,wBA4BhB;IAoJD;;;OAGG;IACH,sBAFW,QAAQ,QAIlB;IAED;;;;OAIG;IACH,oBAFW,MAAM,EAAE,QAOlB;IAED;;;OAGG;IACH,aAFW,MAAM,QAqEhB;IACD;;;;;;;;OAQG;IACH,WAJa,OAAO,CAAC,IAAI,CAAC,CAMzB;;CACD;;wBAzyB6C,sBAAsB;+BAUtC,wBAAwB;8BAC3B,2BAA2B;qBAPjC,gBAAgB;8BASV,uBAAuB;6BAVrB,0BAA0B;8BAJzB,wBAAwB;6BAGzB,oBAAoB;kCAUlB,2BAA2B"}
|