melonjs 20.1.1 → 20.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.
- package/README.md +2 -2
- package/build/application/settings.d.ts +3 -2
- package/build/application/settings.d.ts.map +1 -1
- package/build/index.js +1304 -219
- package/build/index.js.map +4 -4
- package/build/input/pointerevent.d.ts.map +1 -1
- package/build/particles/emitter.d.ts +81 -3
- package/build/particles/emitter.d.ts.map +1 -1
- package/build/particles/particle.d.ts +62 -1
- package/build/particles/particle.d.ts.map +1 -1
- package/build/particles/settings.d.ts +50 -7
- package/build/particles/settings.d.ts.map +1 -1
- package/build/renderable/container.d.ts +10 -0
- package/build/renderable/container.d.ts.map +1 -1
- package/build/renderable/entity/entity.d.ts +10 -0
- package/build/renderable/entity/entity.d.ts.map +1 -1
- package/build/renderable/renderable.d.ts +106 -22
- package/build/renderable/renderable.d.ts.map +1 -1
- package/build/video/blendmodes.d.ts +107 -0
- package/build/video/blendmodes.d.ts.map +1 -0
- package/build/video/canvas/canvas_renderer.d.ts +28 -24
- package/build/video/canvas/canvas_renderer.d.ts.map +1 -1
- package/build/video/effects/blendEffect.d.ts +57 -0
- package/build/video/effects/blendEffect.d.ts.map +1 -0
- package/build/video/renderer.d.ts +3 -4
- package/build/video/renderer.d.ts.map +1 -1
- package/build/video/rendertarget/canvasrendertarget.d.ts +1 -0
- package/build/video/rendertarget/canvasrendertarget.d.ts.map +1 -1
- package/build/video/webgl/batchers/batcher.d.ts.map +1 -1
- package/build/video/webgl/glshader.d.ts.map +1 -1
- package/build/video/webgl/utils/program.d.ts.map +1 -1
- package/build/video/webgl/webgl_renderer.d.ts +116 -29
- package/build/video/webgl/webgl_renderer.d.ts.map +1 -1
- package/build/video/webgpu/batchers/quad_batcher.d.ts +7 -0
- package/build/video/webgpu/batchers/quad_batcher.d.ts.map +1 -1
- package/build/video/webgpu/pipeline/cache.d.ts +0 -9
- package/build/video/webgpu/pipeline/cache.d.ts.map +1 -1
- package/build/video/webgpu/webgpu_renderer.d.ts +100 -6
- package/build/video/webgpu/webgpu_renderer.d.ts.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webgl_renderer.d.ts","sourceRoot":"","sources":["../../../src/video/webgl/webgl_renderer.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"webgl_renderer.d.ts","sourceRoot":"","sources":["../../../src/video/webgl/webgl_renderer.js"],"names":[],"mappings":"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"}
|
|
@@ -23,11 +23,18 @@ export default class WebGPUQuadBatcher extends WebGPUBatcher {
|
|
|
23
23
|
currentMaterial: any;
|
|
24
24
|
currentEffect: any;
|
|
25
25
|
slotTable: TextureSlotTable | undefined;
|
|
26
|
+
_memoView: any;
|
|
26
27
|
/** @type {{view: GPUTextureView, sampler: GPUSampler}[]} indexed by slot */
|
|
27
28
|
segmentEntries: {
|
|
28
29
|
view: GPUTextureView;
|
|
29
30
|
sampler: GPUSampler;
|
|
30
31
|
}[] | undefined;
|
|
32
|
+
/** @ignore */
|
|
33
|
+
_memoFilter: any;
|
|
34
|
+
/** @ignore */
|
|
35
|
+
_memoWrap: any;
|
|
36
|
+
/** @ignore */
|
|
37
|
+
_memoSlot: number | undefined;
|
|
31
38
|
segmentGroup: GPUBindGroup | null | undefined;
|
|
32
39
|
/** @type {Map<string, GPUBindGroup>} */
|
|
33
40
|
composedGroups: Map<string, GPUBindGroup> | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quad_batcher.d.ts","sourceRoot":"","sources":["../../../../src/video/webgpu/batchers/quad_batcher.js"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;;;GAeG;AACH;IACC;;;OAGG;IACH,wBAHW,OAAO,uBAAuB,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"quad_batcher.d.ts","sourceRoot":"","sources":["../../../../src/video/webgpu/batchers/quad_batcher.js"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;;;GAeG;AACH;IACC;;;OAGG;IACH,wBAHW,OAAO,uBAAuB,EAAE,OAAO,uBAwGjD;IAjEA,qBAA2B;IAM3B,mBAAyB;IASzB,wCAcE;IAHC,eAAqB;IAIxB,4EAA4E;IAC5E;cADkB,cAAc;iBAAW,UAAU;oBAC7B;IAGxB,cAAc;IACd,iBAAuB;IACvB,cAAc;IACd,eAAqB;IACrB,cAAc;IACd,8BAAkB;IAElB,8CAAwB;IAIxB,wCAAwC;IACxC,sDAA+B;IAE/B,8CAAgC;IAChC,mCAAuB;IAQvB,0CAKE;IAKH;;;;;;;;;;;;;;;OAeG;IACH,iBAZW,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,QACN,MAAM,aACN,OAAO,QAyEjB;IAED;;;;;;;;;;OAUG;IACH,wBALW,MAAM,YACN,OAAO,GACL,MAAM,CAuDlB;IAED;;;OAGG;IACH,+BAOC;IAED;;;;;;;OAOG;IACH,uBAHa,YAAY,CA+BxB;IAED;;;OAGG;IACH,qBAQC;IAED;;;;;OAKG;IACH,2BAGC;IAED;;;;;;;;;OASG;IACH,0HAgBC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,oBATW,OAAO,0CAA0C,EAAE,OAAO,KAC1D,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,WACN,YAAY,cACZ,OAAO,QAyDjB;IAqBD;;OAEG;IACH,oCA6BC;IAED;;;;;OAKG;IACH,8BAEC;IAED;;;;;;OAMG;IACH,yBAHW,MAAM,QAuChB;CAwBD;0BA3kByB,qBAAqB;iCAHd,2BAA2B"}
|
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Normalize a user-facing blend-mode string to a cache-key token — the
|
|
3
|
-
* same collapsing the WebGL backend applies ("add"/"lighter" → additive,
|
|
4
|
-
* unknown → normal).
|
|
5
|
-
* @param {string} mode - blend mode as set through `setBlendMode`
|
|
6
|
-
* @returns {string} normalized token
|
|
7
|
-
* @ignore
|
|
8
|
-
*/
|
|
9
|
-
export function normalizeBlendMode(mode: string): string;
|
|
10
1
|
/**
|
|
11
2
|
* Texture slots per quad draw segment — the quad family batches quads
|
|
12
3
|
* across up to this many distinct textures before a flush is forced (the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../../src/video/webgpu/pipeline/cache.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../../src/video/webgpu/pipeline/cache.js"],"names":[],"mappings":"AA6BA;;;;;;;GAOG;AACH,gCAAiC,CAAC,CAAC;AAEnC;;;;;;;GAOG;AACH,mCAAoC,sBAAsB,CAAC;AA6E3D;;;;;;;;;;;;GAYG;AACH;IAwKC;;;OAGG;IACH,4BAAwB;IA3KxB;;;OAGG;IACH,oBAHW,SAAS,UACT,MAAM,EAmKhB;IAhKA,kBAAoB;IACpB,eAAoB;IACpB,oBAAoB;IACpB,6CAA6C;IAC7C,WADW,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CACf;IAC1B,kEAAkE;IAClE,eADW,GAAG,CAAC,MAAM,EAAE;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAA;KAAC,CAAC,CAChC;IAG9B,gCAaE;IACF,qCAaE;IACF,mCAME;IAYF,uCAQE;IAiBF,wCAGE;IAGF;;;;;MAmBC;IAGD;;;;;MAaC;IAKD,0DAA0D;IAC1D,mBADW,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CACI;IAGlC,+BAAgC;IAChC,mGAAmG;IACnG,qBADW,GAAG,CAAC,MAAM,EAAE;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAA;KAAC,CAAC,CAC1B;IAGpC,+EAA+E;IAC/E,eADW,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CACZ;IAM9B,gCAGE;IACF,6BAIE;IAEF;;;;;;OAMG;IACH,OAFU,MAAM,CAE+B;IAShD;;;;;;;;;;;;;OAaG;IACH,qBATW,MAAM,YAEd;QAAuC,gBAAgB;QAE9B,eAAe;QAEf,KAAK;KAC9B,GAAU,MAAM,CAsClB;IAED;;;;;;;;OAQG;IACH,2BAJW,MAAM,WACN,uBAAuB,EAAE,GACvB,kBAAkB,CAY9B;IAED;;;;;;;;;;;;;;;OAeG;IACH,gCAJW,MAAM,UACN,MAAM,GAAC,MAAM,EAAE,eACf;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,EAAE,QAqC5C;IAED;;;;;;;;;;;;;;OAcG;IACH,eAbW,MAAM,YACN,MAAM,aACN,MAAM,sBACN,OAAO,gBACP,MAAM,cACN;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAC,GAMnC,iBAAiB,CA4E7B;IAED;;;OAGG;IACH,cAEC;CACD"}
|
|
@@ -50,6 +50,37 @@ export default class WebGPURenderer extends Renderer {
|
|
|
50
50
|
readonly preferredFormat: string | undefined;
|
|
51
51
|
cache: TextureCache;
|
|
52
52
|
currentTransform: Matrix3d;
|
|
53
|
+
/**
|
|
54
|
+
* Advanced-blend state — the WebGPU twin of the WebGL bracket, and
|
|
55
|
+
* deliberately the same shape. The six CSS modes fixed-function
|
|
56
|
+
* cannot express are composited by capturing the destination,
|
|
57
|
+
* rendering the draw to an offscreen target, then blitting that
|
|
58
|
+
* through {@link BlendEffect}. All lazily created.
|
|
59
|
+
*
|
|
60
|
+
* `_advancedBlendBusy` is a DEPTH, not a flag: the bracket nests
|
|
61
|
+
* inside itself (the composite blit re-enters `setBatcher`).
|
|
62
|
+
*
|
|
63
|
+
* One documented difference from WebGL: masks need no handling here.
|
|
64
|
+
* `beginPass` attaches the shared depth/stencil texture whatever the
|
|
65
|
+
* current target is, so an armed mask clips the offscreen draw
|
|
66
|
+
* directly — where the GL backend has to disable the test (its
|
|
67
|
+
* offscreen FBO owns a separate, zeroed stencil) and let the
|
|
68
|
+
* composite carry the clip instead. Same result, different route.
|
|
69
|
+
* @ignore
|
|
70
|
+
*/
|
|
71
|
+
_advancedBlendEffect: BlendEffect | undefined;
|
|
72
|
+
/** @ignore */
|
|
73
|
+
_advancedBlendCapture: any;
|
|
74
|
+
/** @ignore */
|
|
75
|
+
_advancedBlendTarget: WebGPURenderTarget | undefined;
|
|
76
|
+
/** @ignore */
|
|
77
|
+
_advancedBlendOpen: boolean;
|
|
78
|
+
/** @ignore */
|
|
79
|
+
_advancedBlendBusy: number;
|
|
80
|
+
/** @ignore */
|
|
81
|
+
_advancedBlendParent: WebGPURenderTarget | null;
|
|
82
|
+
/** @ignore */
|
|
83
|
+
_advancedBlendWarned: Set<any>;
|
|
53
84
|
onGameReset: () => void;
|
|
54
85
|
onCanvasResize: () => void;
|
|
55
86
|
GPUVendor: string | undefined;
|
|
@@ -102,6 +133,8 @@ export default class WebGPURenderer extends Renderer {
|
|
|
102
133
|
height: number;
|
|
103
134
|
} | undefined;
|
|
104
135
|
}): Texture2d | null;
|
|
136
|
+
/** @ignore */
|
|
137
|
+
_toFrameTexture(options?: {}): any;
|
|
105
138
|
/**
|
|
106
139
|
* Draw a pooled render target through an effect's pipeline as a
|
|
107
140
|
* screen-space quad — the compositing primitive of the post-effect
|
|
@@ -118,6 +151,35 @@ export default class WebGPURenderer extends Renderer {
|
|
|
118
151
|
* @override
|
|
119
152
|
*/
|
|
120
153
|
override blitEffect(source: import("../rendertarget/webgpurendertarget.js").default, x: number, y: number, width: number, height: number, effect: ShaderEffect, keepBlend?: boolean): void;
|
|
154
|
+
/**
|
|
155
|
+
* Say once, per excluded path and mode, that an advanced blend mode is
|
|
156
|
+
* falling back to `"normal"`. A silent data-dependent fallback is exactly
|
|
157
|
+
* what the advanced-blend work exists to remove, so the exclusions are
|
|
158
|
+
* loud.
|
|
159
|
+
* @param {string} what - the excluded path, named for the message
|
|
160
|
+
* @ignore
|
|
161
|
+
*/
|
|
162
|
+
_warnAdvancedBlendFallback(what: string): void;
|
|
163
|
+
/**
|
|
164
|
+
* Close a pending advanced-blend bracket, if one is open and we are not
|
|
165
|
+
* already inside the bracket machinery.
|
|
166
|
+
* @ignore
|
|
167
|
+
*/
|
|
168
|
+
_drainAdvancedBlend(): void;
|
|
169
|
+
/**
|
|
170
|
+
* Open an advanced-blend bracket: capture the destination, then redirect
|
|
171
|
+
* this draw into an offscreen target.
|
|
172
|
+
* @returns {boolean} false when the effect could not be realized, in which
|
|
173
|
+
* case the draw proceeds unbracketed (plain source-over)
|
|
174
|
+
* @ignore
|
|
175
|
+
*/
|
|
176
|
+
_openAdvancedBlend(): boolean;
|
|
177
|
+
/**
|
|
178
|
+
* Close an advanced-blend bracket: drain the offscreen, retarget to the
|
|
179
|
+
* parent, and composite through {@link BlendEffect}.
|
|
180
|
+
* @ignore
|
|
181
|
+
*/
|
|
182
|
+
_closeAdvancedBlend(): void;
|
|
121
183
|
/**
|
|
122
184
|
* Clear the current clip region with the given color — a full-viewport
|
|
123
185
|
* triangle clipped by the active scissor, drawn with blending replaced
|
|
@@ -227,13 +289,44 @@ export default class WebGPURenderer extends Renderer {
|
|
|
227
289
|
*/
|
|
228
290
|
getGlobalAlpha(): number;
|
|
229
291
|
/**
|
|
230
|
-
*
|
|
231
|
-
*
|
|
232
|
-
*
|
|
233
|
-
*
|
|
234
|
-
*
|
|
292
|
+
* set the current blend mode for this renderer. <br>
|
|
293
|
+
* Every renderer supports the full set: <br>
|
|
294
|
+
* - "normal" : draws new content on top of the existing content <br>
|
|
295
|
+
* <img src="../images/normal-blendmode.png" width="180"/> <br>
|
|
296
|
+
* - "add", "additive", or "lighter" : color values are added together <br>
|
|
297
|
+
* <img src="../images/add-blendmode.png" width="180"/> <br>
|
|
298
|
+
* - "multiply" : pixels are multiplied, resulting in a darker picture <br>
|
|
299
|
+
* <img src="../images/multiply-blendmode.png" width="180"/> <br>
|
|
300
|
+
* - "screen" : pixels are inverted, multiplied, and inverted again (opposite of multiply) <br>
|
|
301
|
+
* <img src="../images/screen-blendmode.png" width="180"/> <br>
|
|
302
|
+
* - "darken" : retains the darkest pixels of both layers <br>
|
|
303
|
+
* <img src="../images/darken-blendmode.png" width="180"/> <br>
|
|
304
|
+
* - "lighten" : retains the lightest pixels of both layers <br>
|
|
305
|
+
* <img src="../images/lighten-blendmode.png" width="180"/> <br>
|
|
306
|
+
* - "overlay" : multiplies or screens, depending on the backdrop <br>
|
|
307
|
+
* <img src="../images/overlay-blendmode.png" width="180"/> <br>
|
|
308
|
+
* - "hard-light" : overlay with the layers swapped — a harsh spotlight <br>
|
|
309
|
+
* <img src="../images/hard-light-blendmode.png" width="180"/> <br>
|
|
310
|
+
* - "soft-light" : a diffused spotlight, gentler than hard-light <br>
|
|
311
|
+
* <img src="../images/soft-light-blendmode.png" width="180"/> <br>
|
|
312
|
+
* - "color-dodge" : brightens the backdrop to reflect the source <br>
|
|
313
|
+
* <img src="../images/color-dodge-blendmode.png" width="180"/> <br>
|
|
314
|
+
* - "color-burn" : darkens the backdrop to reflect the source <br>
|
|
315
|
+
* <img src="../images/color-burn-blendmode.png" width="180"/> <br>
|
|
316
|
+
* - "difference" : the absolute difference of the two layers <br>
|
|
317
|
+
* <img src="../images/difference-blendmode.png" width="180"/> <br>
|
|
318
|
+
* - "exclusion" : like difference, but lower in contrast <br>
|
|
319
|
+
* <img src="../images/exclusion-blendmode.png" width="180"/> <br>
|
|
320
|
+
* - "none" : blending disabled — the source replaces the destination
|
|
321
|
+
* outright, alpha included <br>
|
|
322
|
+
* A few draw types cannot honour every mode — 3D meshes, and fills using
|
|
323
|
+
* a {@link Gradient} — and fall back to "normal" with a one-time console
|
|
324
|
+
* warning. `setBlendMode` returns what it actually applied, so comparing
|
|
325
|
+
* the result against your request detects that case.
|
|
326
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/globalCompositeOperation
|
|
327
|
+
* @param {string} [mode="normal"] - blend mode
|
|
235
328
|
* @param {boolean} [premultipliedAlpha=true] - whether textures use premultiplied alpha (affects the source blend factor)
|
|
236
|
-
* @returns {string} the blend mode actually applied
|
|
329
|
+
* @returns {string} the blend mode actually applied (may differ if the requested mode is unsupported)
|
|
237
330
|
*/
|
|
238
331
|
setBlendMode(mode?: string, premultipliedAlpha?: boolean): string;
|
|
239
332
|
/**
|
|
@@ -529,6 +622,7 @@ import WebGPUBufferArena from "./buffer/arena.js";
|
|
|
529
622
|
import WebGPUUniformRing from "./buffer/uniformring.js";
|
|
530
623
|
import WebGPUTextureStore from "./texture/store.js";
|
|
531
624
|
import WebGPURenderTarget from "../rendertarget/webgpurendertarget.js";
|
|
625
|
+
import BlendEffect from "../effects/blendEffect.js";
|
|
532
626
|
import { Color } from "../../math/color.ts";
|
|
533
627
|
import WebGPUBatcher from "./batchers/webgpu_batcher.js";
|
|
534
628
|
import RadialGradientEffect from "../effects/radialGradient.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webgpu_renderer.d.ts","sourceRoot":"","sources":["../../../src/video/webgpu/webgpu_renderer.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"webgpu_renderer.d.ts","sourceRoot":"","sources":["../../../src/video/webgpu/webgpu_renderer.js"],"names":[],"mappings":"AAyDA;;;;;;;;;;;;;;;GAeG;AACH,iDANW,OAAO,qBACP,OAAO,GACL;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAC,CAYvD;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH;IACC;;OAEG;IACH,qBAFW,mBAAmB,EA0T7B;IAlTA;;;;OAIG;IACH,kBAHU,UAAU,GAAC,SAAS,CAGN;IAExB;;;;;OAKG;IACH,iBAHU,SAAS,GAAC,SAAS,CAGN;IAEvB;;;;OAIG;IACH,SAFU,gBAAgB,CAEc;IAExC;;;;;OAKG;IACH,0BAHU,MAAM,GAAC,SAAS,CAGM;IA0BhC;mBACe;IACf,iEAAsC;IAGtC,oBAAmC;IAInC,2BAAyD;IAKzD;mBACe;IACf,qBAA2B;IAG3B;mBACe;IACf;;;QAEE;IACF;mBACe;IACf,iBAAmB;IAEnB;mBACe;IACf,iBAA4B;IAE5B;mBACe;IACf,uBAAuB;IAEvB;;;;;OAKG;IACH,UAJU,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAIJ;IAEzB;;;;OAIG;IACH,oBAA0B;IAG1B;mBACe;IACf,0CAAyB;IACzB;mBACe;IACf,sCAAuB;IAEvB;mBACe;IACf,qCAAsB;IACtB;mBACe;IACf,sCAAuB;IACvB;mBACe;IACf,wCAAwB;IAGxB;mBACe;IACf,yCAA0B;IAC1B;mBACe;IACf,wCAAsB;IAGtB;mBACe;IACf,+CAA+B;IAE/B;;;;;;;;;;;;;;;;;OAiBG;IACH,8CAAqC;IACrC,cAAc;IACd,2BAAsC;IACtC,cAAc;IACd,qDAAqC;IACrC,cAAc;IACd,4BAA+B;IAC/B,cAAc;IACd,2BAA2B;IAC3B,cAAc;IACd,gDAAgC;IAChC,cAAc;IACd,+BAAqC;IAGrC;mBACe;IACf,2BAA8B;IAC9B;mBACe;IACf,uBAA6B;IAC7B;mBACe;IACf,6BAAgC;IAKhC;mBACe;IACf,2BAA8B;IAI9B;mBACe;IACf,yBAA4B;IAG5B;mBACe;IACf;;;;;aAAwB;IAGxB;mBACe;IACf,0BAA6B;IAG7B;mBACe;IACf,gCAAwB;IAExB;mBACe;IACf,oBAA+B;IAG/B;mBACe;IACf,+BAAuB;IAEvB;mBACe;IACf,6BAA+B;IAC/B;mBACe;IACf,wBAAwB;IAExB;mBACe;IACf,6CAA8B;IAG9B;mBACe;IACf,gBAAgB;IAIhB;mBACe;IACf,uBAAyB;IAIzB;mBACe;IACf,8BAA8B;IAC9B;mBACe;IACf,wCAA4B;IAC5B;mBACe;IACf,kBAAwB;IAMxB;mBACe;IACf,0BAA0B;IAC1B;mBACe;IACf,oCAA4B;IAC5B;mBACe;IACf,qCAAyB;IACzB;mBACe;IACf,sBAA4B;IAC5B;mBACe;IACf,qBAA2B;IAC3B;mBACe;IACf;;;aAA+B;IAC/B;mBACe;IACf,uBAA0B;IAE1B;mBACe;IACf,4BAA8B;IAE9B;mBACe;IACf,oBAAyB;IAMzB,wBAEC;IAID,2BAUC;IAmFA,8BAAyC;IA0F3C;;;;;;;;;OASG;IACH,2BALW,MAAM,WACN,MAAM,8BA6BhB;IAED;;;;;;;OAOG;IACH,8BALW,MAAM,UACN,MAAM,QAoBhB;IA4DD;;;;;;OAMG;IACH,iBAJW,MAAM,QA8GhB;IAED;;;;;;OAMG;IACH,iBAJa,CAAC,MAAM,EAAE,MAAM,CAAC,CAW5B;IAED;;;;;;;;;;OAUG;IACH,wBANW,OAAO,uCAAuC,EAAE,OAAO,GAAC,IAAI,YAEpE;QAA0B,KAAK;KAC/B,QAsBF;IAED;;;;;;;;OAQG;IACH,uBAJW,UAAU,QAUpB;IAED;;;;;;;;;OASG;IACH,qBAJW,SAAS,QAMnB;IAED;;;;;;OAMG;IACH,sBAJa,cAAc,CAqB1B;IAHC,mDAAoD;IAKtD;;;;;;;;;;;;;OAaG;IACH,wBANW,MAAM,KACN,MAAM,SACN,MAAM,UACN,MAAM,QAehB;IAED;;;;;OAKG;IACH,sBA0BC;IAeD;;;;;;;;;;OAUG;IACH,gBAJa,OAAO,2BAA2B,EAAE,kBAAkB,GAAC,IAAI,CAMvE;IAED;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,yBARG;QAAiC,MAAM,GAA/B,SAAS,GAAC,IAAI;QAGyD,MAAM;eAAlE,MAAM;eAAK,MAAM;mBAAS,MAAM;oBAAU,MAAM;;KAEnE,GAAU,SAAS,GAAC,IAAI,CAmB1B;IAED,cAAc;IACd,mCAqGC;IA0KD;;;;;;;;;;;;;;OAcG;IACH,4BATW,OAAO,uCAAuC,EAAE,OAAO,KACvD,MAAM,KACN,MAAM,SACN,MAAM,UACN,MAAM,UACN,YAAY,cACZ,OAAO,QAoBjB;IAED;;;;;;;OAOG;IACH,iCAHW,MAAM,QAYhB;IAED;;;;OAIG;IACH,4BAIC;IAED;;;;;;OAMG;IACH,sBAJa,OAAO,CAiDnB;IAED;;;;OAIG;IACH,4BAgCC;IAED;;;;;;;OAOG;IACH,0CAUC;IA4BD;;;;;OAKG;IACH,qBAoCC;IAED;;;;;OAKG;IACH,+BAOC;IAED;;;;OAIG;IACH,qBAiBC;IAED;;;;;;;;;;;;;OAaG;IACH,4BAJW,KAAK,GAAC,MAAM,WACZ,OAAO,QA2CjB;IAED;;;;;;;;OAQG;IACH,sBANW,MAAM,KACN,MAAM,SACN,MAAM,UACN,MAAM,QAUhB;IAED;;;;;;;;OAQG;IACH,8BAJW,MAAM,QACN,MAAM,QAiBhB;IAED;;;;;OAKG;IACH,oBAJW,aAAa,SACb,MAAM,aACN,OAAO,QAkBjB;IAED;;;;;;;OAOG;IACH,kBAHW,MAAM,GACJ,aAAa,CAuDzB;IAED;;;;;;;;;;;;;;OAcG;IACH;;;;;;;OAOG;IACH,0BALW,aAAa,gBACb,QAAQ,QACR,MAAM,QAahB;IAED,4CA+FC;IAED;;;;OAIG;IACH,yBAFW,MAAM,QAMhB;IAyCD;;;;;;;;;OASG;IACH,aAPW,QAAQ,GAAC,QAAQ,GAAC,MAAM,MACxB,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,QAkBhB;IAED;;;;;;;;OAQG;IACH,gBAPW,QAAQ,GAAC,QAAQ,GAAC,MAAM,MACxB,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,QAKhB;IAqDD;;;OAGG;IACH,kBAFa,MAAM,CAIlB;IAmBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAuCG;IACH,oBAJW,MAAM,uBACN,OAAO,GACL,MAAM,CAkClB;IAmBD;;;;;OAKG;IACH,yBAMC;IAED;;;;;;;;;;;OAWG;IACH,iBAVW,gBAAgB,GAAC,iBAAiB,GAAC,gBAAgB,GAAC,WAAW,GAAC,eAAe,GAAC,UAAU,MAC1F,MAAM,MACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,OACN,MAAM,QA6EhB;IAED;;;;;;;;;OASG;IACH,iDAHa,MAAM,CA0ElB;IAHC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAAuC;IAKzC;;;;;;;;;OASG;IACH,kCANW,GAAG,CAAC,OAAO,CAAC,GAAC,KAAK,CAAC,OAAO,CAAC,WAC3B,KAAK,eACL,MAAM,eACN,MAAM,QAmBhB;IAdC,0FAAuD;IAgBzD;;;;;;OAMG;IACH,0BAHW,OAAO,QAyBjB;IApBC,8CAAiD;IAsBnD;;;;;;OAMG;IACH,iBAJa,YAAY,CAwBxB;IAPC,qCAIC;IAKH;;;;;;;OAOG;IACH,qBANW,YAAY,KACZ,MAAM,KACN,MAAM,SACN,MAAM,UACN,MAAM,QAiBhB;IAED;;;;;OAKG;IACH,qBAJW,gBAAgB,GAAC,eAAe,GAAC,gBAAgB,GAAC,iBAAiB,GAAC,WAAW,GAAC,eAAe,GAAC,UAAU,WAC1G,MAAM,GACJ,YAAY,CAUxB;IAwDD;;;;;;;;;;OAUG;IACH,mBAPW,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,QAsChB;IAsCE,mCAA2C;IA6B9C;;;;;;;;;;;;;;;OAeG;IACH,eAHW,IAAI,GAAC,SAAS,GAAC,OAAO,GAAC,IAAI,GAAC,OAAO,WACnC,OAAO,QAoCjB;IAjBE,qCAA2B;IAkC9B;;;;;;;;;;;;;;;OAeG;IACH,mEAgEC;IAED;;;;;;;;;OASG;IACH,aARW,MAAM,KACN,MAAM,UACN,MAAM,SACN,MAAM,OACN,MAAM,kBACN,OAAO,SACP,OAAO,QAWjB;IAED;;;;;;;;OAQG;IACH,WAPW,MAAM,KACN,MAAM,UACN,MAAM,SACN,MAAM,OACN,MAAM,kBACN,OAAO,QAqCjB;IA2ED;;;;;;OAMG;IACH,iBALW,MAAM,UACN,MAAM,QACN,MAAM,QACN,MAAM,QAIhB;IAED;;;;OAIG;IACH,oBAHW,OAAO,SACP,OAAO,QAkDjB;IAED;;;OAGG;IACH,kBAFW,OAAO,QAuDjB;IAoFD;;;;;;;;OAQG;IACH,mBAPW,MAAM,KACN,MAAM,SACN,MAAM,UACN,MAAM,UACN,MAAM,SACN,OAAO,QAWjB;IAED;;;;;;;OAOG;IACH,iBANW,MAAM,KACN,MAAM,SACN,MAAM,UACN,MAAM,UACN,MAAM,QAyFhB;IAED;;;;OAIG;IACH,eAHW,MAAM,KACN,MAAM,QAIhB;IAED;;;;OAIG;IACH,aAHW,MAAM,KACN,MAAM,QAIhB;IAED;;OAEG;IACH,kBAEC;IAED;;;;OAIG;IACH,UAHW,MAAM,KACN,MAAM,QAIhB;IAED;;;;OAIG;IACH,UAHW,MAAM,KACN,MAAM,QAIhB;IAED;;;;;;OAMG;IACH,sBALW,MAAM,OACN,MAAM,KACN,MAAM,KACN,MAAM,QAIhB;IAED;;;;;;;;OAQG;IACH,oBAPW,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,KACN,MAAM,KACN,MAAM,QAIhB;IAED;;;;;;;OAOG;IACH,UANW,MAAM,MACN,MAAM,MACN,MAAM,MACN,MAAM,UACN,MAAM,QAIhB;IAED;;;;;;OAMG;IACH,QALW,MAAM,KACN,MAAM,SACN,MAAM,UACN,MAAM,QAIhB;IAED;;;;;;;OAOG;IACH,aANW,MAAM,KACN,MAAM,SACN,MAAM,UACN,MAAM,SACN,MAAM,QAIhB;IAED;;OAEG;IACH,kBAEC;IAED;;;;OAIG;IACH,eAHW,IAAI,GAAC,SAAS,GAAC,OAAO,GAAC,IAAI,GAAC,OAAO,GAAC,MAAM,SAC1C,OAAO,QA2BjB;IAED;;;OAGG;IACH,aAFW,IAAI,GAAC,SAAS,GAAC,OAAO,GAAC,IAAI,GAAC,OAAO,GAAC,MAAM,QAIpD;IAmCD;;;;;OAKG;IACH,+BAwCC;IAED;;;OAGG;IACH,cAFa,gBAAgB,CAI5B;CAqFD;qBArgHoB,gBAAgB;0CAyBK,oCAAoC;yBArBrD,qBAAqB;yBAzBrB,wBAAwB;uBAC1B,yBAAyB;gCA4CU,qBAAqB;8BAFjD,mBAAmB;8BACnB,yBAAyB;+BAKxB,oBAAoB;+BA1BpB,uCAAuC;wBAL9C,2BAA2B;sBAnBlB,qBAAqB;0BA2C5B,8BAA8B;iCAvBvB,8BAA8B;6BAKrB,qBAAqB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "melonjs",
|
|
3
|
-
"version": "20.
|
|
3
|
+
"version": "20.2.0",
|
|
4
4
|
"description": "melonJS Game Engine",
|
|
5
5
|
"homepage": "http://www.melonjs.org/",
|
|
6
6
|
"type": "module",
|
|
@@ -81,8 +81,8 @@
|
|
|
81
81
|
"build": "pnpm lint && tsx scripts/build.js && pnpm types",
|
|
82
82
|
"dist": "pnpm clean && pnpm lint && pnpm vitest run && pnpm build && pnpm doc && cp ../../README.md .",
|
|
83
83
|
"dist:publish": "pnpm clean && pnpm lint && pnpm build && pnpm doc && cp ../../README.md .",
|
|
84
|
-
"doc": "typedoc src/index.ts --tsconfig tsconfig.build.json --readme DOC_README.md --hideGenerator --name 'melonJS' --navigation.includeCategories true --categorizeByGroup false",
|
|
85
|
-
"doc:watch": "typedoc src/index.ts --tsconfig tsconfig.build.json --readme DOC_README.md --hideGenerator --name 'melonJS' --navigation.includeCategories true --categorizeByGroup false --watch --skipErrorChecking --preserveWatchOutput --logLevel Error",
|
|
84
|
+
"doc": "tsx scripts/check-doc-readme.ts && typedoc src/index.ts --tsconfig tsconfig.build.json --readme ../../DOC_README.md --hideGenerator --name 'melonJS' --navigation.includeCategories true --categorizeByGroup false",
|
|
85
|
+
"doc:watch": "typedoc src/index.ts --tsconfig tsconfig.build.json --readme ../../DOC_README.md --hideGenerator --name 'melonJS' --navigation.includeCategories true --categorizeByGroup false --watch --skipErrorChecking --preserveWatchOutput --logLevel Error",
|
|
86
86
|
"serve": "serve docs",
|
|
87
87
|
"prepublishOnly": "pnpm dist:publish",
|
|
88
88
|
"clean": "tsx scripts/clean.ts",
|