melonjs 20.1.0 → 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.
Files changed (48) hide show
  1. package/README.md +2 -2
  2. package/build/application/settings.d.ts +3 -2
  3. package/build/application/settings.d.ts.map +1 -1
  4. package/build/index.js +1399 -229
  5. package/build/index.js.map +4 -4
  6. package/build/input/pointerevent.d.ts.map +1 -1
  7. package/build/level/gltf/GLTFModel.d.ts +17 -1
  8. package/build/level/gltf/GLTFModel.d.ts.map +1 -1
  9. package/build/loader/parsers/fontface.d.ts.map +1 -1
  10. package/build/particles/emitter.d.ts +81 -3
  11. package/build/particles/emitter.d.ts.map +1 -1
  12. package/build/particles/particle.d.ts +62 -1
  13. package/build/particles/particle.d.ts.map +1 -1
  14. package/build/particles/settings.d.ts +50 -7
  15. package/build/particles/settings.d.ts.map +1 -1
  16. package/build/physics/builtin/builtin-adapter.d.ts.map +1 -1
  17. package/build/physics/builtin/detector.d.ts.map +1 -1
  18. package/build/renderable/container.d.ts +10 -0
  19. package/build/renderable/container.d.ts.map +1 -1
  20. package/build/renderable/entity/entity.d.ts +10 -0
  21. package/build/renderable/entity/entity.d.ts.map +1 -1
  22. package/build/renderable/frameAnimation.d.ts +20 -2
  23. package/build/renderable/frameAnimation.d.ts.map +1 -1
  24. package/build/renderable/renderable.d.ts +106 -22
  25. package/build/renderable/renderable.d.ts.map +1 -1
  26. package/build/system/timer.d.ts.map +1 -1
  27. package/build/video/blendmodes.d.ts +107 -0
  28. package/build/video/blendmodes.d.ts.map +1 -0
  29. package/build/video/canvas/canvas_renderer.d.ts +28 -24
  30. package/build/video/canvas/canvas_renderer.d.ts.map +1 -1
  31. package/build/video/effects/blendEffect.d.ts +57 -0
  32. package/build/video/effects/blendEffect.d.ts.map +1 -0
  33. package/build/video/renderer.d.ts +3 -4
  34. package/build/video/renderer.d.ts.map +1 -1
  35. package/build/video/rendertarget/canvasrendertarget.d.ts +1 -0
  36. package/build/video/rendertarget/canvasrendertarget.d.ts.map +1 -1
  37. package/build/video/webgl/batchers/batcher.d.ts.map +1 -1
  38. package/build/video/webgl/glshader.d.ts.map +1 -1
  39. package/build/video/webgl/utils/program.d.ts.map +1 -1
  40. package/build/video/webgl/webgl_renderer.d.ts +116 -29
  41. package/build/video/webgl/webgl_renderer.d.ts.map +1 -1
  42. package/build/video/webgpu/batchers/quad_batcher.d.ts +7 -0
  43. package/build/video/webgpu/batchers/quad_batcher.d.ts.map +1 -1
  44. package/build/video/webgpu/pipeline/cache.d.ts +0 -9
  45. package/build/video/webgpu/pipeline/cache.d.ts.map +1 -1
  46. package/build/video/webgpu/webgpu_renderer.d.ts +100 -6
  47. package/build/video/webgpu/webgpu_renderer.d.ts.map +1 -1
  48. package/package.json +3 -3
@@ -24,6 +24,34 @@ export default class WebGLRenderer extends Renderer {
24
24
  */
25
25
  _effectProjectionStack: Matrix3d;
26
26
  _effectPassDepth: number;
27
+ /**
28
+ * Advanced-blend state. The six CSS modes fixed-function cannot
29
+ * express are composited by capturing the destination, rendering the
30
+ * draw to an offscreen target, and blitting that through
31
+ * {@link BlendEffect}. All of it is created lazily — a game that
32
+ * never asks for an advanced mode pays nothing.
33
+ *
34
+ * `_advancedBlendBusy` is a DEPTH, not a flag: the bracket nests
35
+ * inside itself (the composite blit re-enters `setBatcher`, and
36
+ * `toFrameTexture` does too), so a boolean would be cleared by the
37
+ * inner scope while the outer one is still running.
38
+ * @ignore
39
+ */
40
+ _advancedBlendEffect: BlendEffect | undefined;
41
+ /** @ignore */
42
+ _advancedBlendCapture: any;
43
+ /** @ignore */
44
+ _advancedBlendTarget: WebGLRenderTarget | undefined;
45
+ /** @ignore */
46
+ _advancedBlendOpen: boolean;
47
+ /** @ignore */
48
+ _advancedBlendBusy: number;
49
+ /** @ignore */
50
+ _advancedBlendParent: import("../rendertarget/rendertarget.ts").default | null | undefined;
51
+ /** @ignore */
52
+ _advancedBlendStencil: boolean;
53
+ /** @ignore */
54
+ _advancedBlendWarned: Set<any>;
27
55
  /**
28
56
  * sets or returns the shape used to join two line segments where they meet.
29
57
  * Out of the three possible values for this property: "round", "bevel", and "miter", only "round" is supported for now in WebGL
@@ -105,11 +133,26 @@ export default class WebGLRenderer extends Renderer {
105
133
  * @type {WebGLBatcher}
106
134
  */
107
135
  currentBatcher: WebGLBatcher;
136
+ set currentProgram(value: WebGLProgram | undefined);
108
137
  /**
109
- * a reference to the current shader program used by the renderer
110
- * @type {WebGLProgram}
138
+ * Returns the WebGLContext instance for the renderer
139
+ * return a reference to the system 2d Context
140
+ * @returns {WebGLRenderingContext} the current WebGL context
111
141
  */
112
- currentProgram: WebGLProgram;
142
+ /**
143
+ * The shader program the GL context actually has bound.
144
+ *
145
+ * Backed by the CONTEXT rather than by a field on this renderer, because
146
+ * `GLShader` binds programs too — writing a uniform calls `useProgram`,
147
+ * and a freshly linked program is left bound — and it is constructed with
148
+ * a bare `gl`, so it cannot reach a renderer-owned cache. A field here
149
+ * would silently drift out of step with GL, and every batcher that
150
+ * compares against it (`syncProgram`, the mesh and primitive paths) would
151
+ * skip a rebind it actually needed, drawing a pending batch through the
152
+ * wrong program.
153
+ * @type {WebGLProgram|undefined}
154
+ */
155
+ get currentProgram(): WebGLProgram | undefined;
113
156
  /**
114
157
  * the GL texture unit currently active (`gl.activeTexture`) — global
115
158
  * GL state, so tracked once per renderer and shared by every batcher
@@ -163,7 +206,7 @@ export default class WebGLRenderer extends Renderer {
163
206
  deleteMeshGeometry(mesh: object): void;
164
207
  _lightShader: RadialGradientEffect | undefined;
165
208
  _lightAtlas: TextureAtlas | undefined;
166
- _frameTexture: FrameTexture | undefined;
209
+ _frameTexture: any;
167
210
  _orthogonalTMXGPURenderer: OrthogonalTMXLayerGPURenderer | null | undefined;
168
211
  /**
169
212
  * Draw a TMX tile layer through whichever path the layer's `renderMode`
@@ -255,6 +298,8 @@ export default class WebGLRenderer extends Renderer {
255
298
  * @ignore
256
299
  */
257
300
  _getLightAtlas(): TextureAtlas;
301
+ /** @ignore */
302
+ _toFrameTexture(options?: {}): any;
258
303
  /**
259
304
  * The renderer-owned shared frame-capture slot, minted lazily so it has a
260
305
  * stable identity from the moment an effect is constructed — before the
@@ -283,6 +328,37 @@ export default class WebGLRenderer extends Renderer {
283
328
  invalidateTextureUnit(unit: number, except?: WebGLBatcher): void;
284
329
  /** @ignore */
285
330
  endPostEffect(renderable: any): void;
331
+ /**
332
+ * Say once, per excluded path and mode, that an advanced blend mode is
333
+ * falling back to `"normal"`. A silent data-dependent fallback is exactly
334
+ * what the advanced-blend work exists to remove, so the exclusions are
335
+ * loud.
336
+ * @param {string} what - the excluded path, named for the message
337
+ * @ignore
338
+ */
339
+ _warnAdvancedBlendFallback(what: string): void;
340
+ /**
341
+ * Close a pending advanced-blend bracket, if one is open and we are not
342
+ * already inside the bracket machinery. The safe form to call from any
343
+ * path that is about to disturb the destination.
344
+ * @ignore
345
+ */
346
+ _drainAdvancedBlend(): void;
347
+ /**
348
+ * Open an advanced-blend bracket: capture the destination, then redirect
349
+ * this draw into an offscreen target. Closed by {@link _closeAdvancedBlend}
350
+ * at the next draw, flush or clear.
351
+ * @returns {boolean} false when the effect could not be realized, in which
352
+ * case the draw proceeds unbracketed (plain source-over)
353
+ * @ignore
354
+ */
355
+ _openAdvancedBlend(): boolean;
356
+ /**
357
+ * Close an advanced-blend bracket: drain the offscreen, return to the
358
+ * parent target, and composite through {@link BlendEffect}.
359
+ * @ignore
360
+ */
361
+ _closeAdvancedBlend(): void;
286
362
  /**
287
363
  * Clears the gl context with the given color.
288
364
  * @param {Color|string} [color="#000000"] - CSS color.
@@ -448,15 +524,10 @@ export default class WebGLRenderer extends Renderer {
448
524
  * add a straight line from the current point to the start of the current sub-path. If the shape has already been closed or has only one point, this function does nothing
449
525
  */
450
526
  closePath(): void;
451
- /**
452
- * Returns the WebGLContext instance for the renderer
453
- * return a reference to the system 2d Context
454
- * @returns {WebGLRenderingContext} the current WebGL context
455
- */
456
527
  getContext(): WebGLRenderingContext;
457
528
  /**
458
529
  * set the current blend mode for this renderer. <br>
459
- * All renderers support: <br>
530
+ * Every renderer supports the full set: <br>
460
531
  * - "normal" : draws new content on top of the existing content <br>
461
532
  * <img src="../images/normal-blendmode.png" width="180"/> <br>
462
533
  * - "add", "additive", or "lighter" : color values are added together <br>
@@ -465,19 +536,33 @@ export default class WebGLRenderer extends Renderer {
465
536
  * <img src="../images/multiply-blendmode.png" width="180"/> <br>
466
537
  * - "screen" : pixels are inverted, multiplied, and inverted again (opposite of multiply) <br>
467
538
  * <img src="../images/screen-blendmode.png" width="180"/> <br>
468
- * WebGL2 additionally supports: <br>
469
539
  * - "darken" : retains the darkest pixels of both layers <br>
470
540
  * <img src="../images/darken-blendmode.png" width="180"/> <br>
471
541
  * - "lighten" : retains the lightest pixels of both layers <br>
472
542
  * <img src="../images/lighten-blendmode.png" width="180"/> <br>
543
+ * - "overlay" : multiplies or screens, depending on the backdrop <br>
544
+ * <img src="../images/overlay-blendmode.png" width="180"/> <br>
545
+ * - "hard-light" : overlay with the layers swapped — a harsh spotlight <br>
546
+ * <img src="../images/hard-light-blendmode.png" width="180"/> <br>
547
+ * - "soft-light" : a diffused spotlight, gentler than hard-light <br>
548
+ * <img src="../images/soft-light-blendmode.png" width="180"/> <br>
549
+ * - "color-dodge" : brightens the backdrop to reflect the source <br>
550
+ * <img src="../images/color-dodge-blendmode.png" width="180"/> <br>
551
+ * - "color-burn" : darkens the backdrop to reflect the source <br>
552
+ * <img src="../images/color-burn-blendmode.png" width="180"/> <br>
553
+ * - "difference" : the absolute difference of the two layers <br>
554
+ * <img src="../images/difference-blendmode.png" width="180"/> <br>
555
+ * - "exclusion" : like difference, but lower in contrast <br>
556
+ * <img src="../images/exclusion-blendmode.png" width="180"/> <br>
473
557
  * - "none" : blending disabled — the source replaces the destination
474
- * outright, alpha included (matches the WebGPU renderer's "none") <br>
475
- * Other CSS blend modes ("overlay", "color-dodge", "color-burn", "hard-light", "soft-light",
476
- * "difference", "exclusion") may be supported by the Canvas renderer (browser-dependent)
477
- * and will always fall back to "normal" in WebGL. <br>
558
+ * outright, alpha included <br>
559
+ * A few draw types cannot honour every mode — 3D meshes, and fills using
560
+ * a {@link Gradient} — and fall back to "normal" with a one-time console
561
+ * warning. `setBlendMode` returns what it actually applied, so comparing
562
+ * the result against your request detects that case.
478
563
  * @see https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/globalCompositeOperation
479
564
  * @param {string} [mode="normal"] - blend mode
480
- * @param {boolean} [premultipliedAlpha=true] - whether textures use premultiplied alpha (affects source blend factor)
565
+ * @param {boolean} [premultipliedAlpha=true] - whether textures use premultiplied alpha (affects the source blend factor)
481
566
  * @returns {string} the blend mode actually applied (may differ if the requested mode is unsupported)
482
567
  */
483
568
  setBlendMode(mode?: string, premultipliedAlpha?: boolean): string;
@@ -580,24 +665,24 @@ export default class WebGLRenderer extends Renderer {
580
665
  * Reset (overrides) the renderer transformation matrix to the
581
666
  * identity one, and then apply the given transformation matrix.
582
667
  * @param {Matrix2d|Matrix3d|number} a - a matrix to transform by, or the a component to multiply the current matrix by
583
- * @param {number} b - the b component to multiply the current matrix by
584
- * @param {number} c - the c component to multiply the current matrix by
585
- * @param {number} d - the d component to multiply the current matrix by
586
- * @param {number} e - the e component to multiply the current matrix by
587
- * @param {number} f - the f component to multiply the current matrix by
668
+ * @param {number} [b] - the b component to multiply the current matrix by; omitted when `a` is a matrix
669
+ * @param {number} [c] - the c component to multiply the current matrix by; omitted when `a` is a matrix
670
+ * @param {number} [d] - the d component to multiply the current matrix by; omitted when `a` is a matrix
671
+ * @param {number} [e] - the e component to multiply the current matrix by; omitted when `a` is a matrix
672
+ * @param {number} [f] - the f component to multiply the current matrix by; omitted when `a` is a matrix
588
673
  */
589
- setTransform(a: Matrix2d | Matrix3d | number, b: number, c: number, d: number, e: number, f: number): void;
674
+ setTransform(a: Matrix2d | Matrix3d | number, b?: number, c?: number, d?: number, e?: number, f?: number): void;
590
675
  /**
591
676
  * Multiply given matrix into the renderer tranformation matrix
592
677
  * @see {@link WebGLRenderer.setTransform} which will reset the current transform matrix prior to performing the new transformation
593
678
  * @param {Matrix2d|Matrix3d|number} a - a matrix to transform by, or the a component to multiply the current matrix by
594
- * @param {number} b - the b component to multiply the current matrix by
595
- * @param {number} c - the c component to multiply the current matrix by
596
- * @param {number} d - the d component to multiply the current matrix by
597
- * @param {number} e - the e component to multiply the current matrix by
598
- * @param {number} f - the f component to multiply the current matrix by
679
+ * @param {number} [b] - the b component to multiply the current matrix by; omitted when `a` is a matrix
680
+ * @param {number} [c] - the c component to multiply the current matrix by; omitted when `a` is a matrix
681
+ * @param {number} [d] - the d component to multiply the current matrix by; omitted when `a` is a matrix
682
+ * @param {number} [e] - the e component to multiply the current matrix by; omitted when `a` is a matrix
683
+ * @param {number} [f] - the f component to multiply the current matrix by; omitted when `a` is a matrix
599
684
  */
600
- transform(a: Matrix2d | Matrix3d | number, b: number, c: number, d: number, e: number, f: number): void;
685
+ transform(a: Matrix2d | Matrix3d | number, b?: number, c?: number, d?: number, e?: number, f?: number): void;
601
686
  /**
602
687
  * A mask limits rendering elements to the shape and position of the given mask object.
603
688
  * If the drawing or rendering area is larger than the mask, only the intersecting part of the renderable will be visible.
@@ -613,14 +698,16 @@ export default class WebGLRenderer extends Renderer {
613
698
  import Renderer from "./../renderer.js";
614
699
  import RenderTargetPool from "../rendertarget/render_target_pool.js";
615
700
  import { Matrix3d } from "../../math/matrix3d.ts";
701
+ import BlendEffect from "../effects/blendEffect.js";
702
+ import WebGLRenderTarget from "../rendertarget/webglrendertarget.js";
616
703
  import { GLSamplerCache } from "./utils/samplercache.js";
617
704
  import { Bounds } from "../../physics/bounds.ts";
618
705
  import { WebGLBatcher } from "./batchers/batcher.js";
619
706
  import TextureCache from "./../texture/cache.js";
620
707
  import RadialGradientEffect from "../effects/radialGradient.js";
621
708
  import { TextureAtlas } from "./../texture/atlas.js";
622
- import { FrameTexture } from "./../texture/frametexture.js";
623
709
  import OrthogonalTMXLayerGPURenderer from "./renderers/tmxlayer/orthogonal.js";
710
+ import { FrameTexture } from "./../texture/frametexture.js";
624
711
  import { Color } from "./../../math/color.ts";
625
712
  import type { Rect } from "./../../geometries/rectangle.ts";
626
713
  import type { RoundRect } from "./../../geometries/roundrect.ts";
@@ -1 +1 @@
1
- {"version":3,"file":"webgl_renderer.d.ts","sourceRoot":"","sources":["../../../src/video/webgl/webgl_renderer.js"],"names":[],"mappings":"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"}
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,uBA2FjD;IApDA,qBAA2B;IAM3B,mBAAyB;IASzB,wCASE;IACF,4EAA4E;IAC5E;cADkB,cAAc;iBAAW,UAAU;oBAC7B;IAExB,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,CAyBlB;IAED;;;OAGG;IACH,+BAOC;IAED;;;;;;;OAOG;IACH,uBAHa,YAAY,CA+BxB;IAED;;;OAGG;IACH,qBAMC;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;0BA9hByB,qBAAqB;iCAHd,2BAA2B"}
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":"AAuFA;;;;;;;GAOG;AACH,yCAJW,MAAM,GACJ,MAAM,CAoBlB;AA1GD;;;;;;;GAOG;AACH,gCAAiC,CAAC,CAAC;AAEnC;;;;;;;GAOG;AACH,mCAAoC,sBAAsB,CAAC;AAqK3D;;;;;;;;;;;;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"}
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
- * Set the blend mode for subsequent draws. Under WebGPU blending is
231
- * pipeline state: the change is recorded (after draining vertices
232
- * queued under the previous mode) and the next batcher flush picks the
233
- * matching pipeline variant.
234
- * @param {string} [mode="normal"] - blend mode ("normal", "multiply", "additive"/"lighter", "screen", "darken", "lighten", "none")
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":"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"}
1
+ {"version":3,"file":"webgpu_renderer.d.ts","sourceRoot":"","sources":["../../../src/video/webgpu/webgpu_renderer.js"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "melonjs",
3
- "version": "20.1.0",
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",