melonjs 19.3.0 → 19.5.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 +19 -2
- package/build/application/application.d.ts.map +1 -1
- package/build/application/defaultApplicationSettings.d.ts +1 -0
- package/build/application/defaultApplicationSettings.d.ts.map +1 -1
- package/build/application/settings.d.ts +37 -2
- package/build/application/settings.d.ts.map +1 -1
- package/build/audio/audio.d.ts +77 -253
- package/build/audio/audio.d.ts.map +1 -1
- package/build/audio/backend.d.ts +121 -0
- package/build/audio/backend.d.ts.map +1 -0
- package/build/audio/playback.d.ts +157 -0
- package/build/audio/playback.d.ts.map +1 -0
- package/build/audio/procedural.d.ts +105 -0
- package/build/audio/procedural.d.ts.map +1 -0
- package/build/audio/types.d.ts +205 -0
- package/build/audio/types.d.ts.map +1 -0
- package/build/index.d.ts +6 -3
- package/build/index.d.ts.map +1 -1
- package/build/index.js +3334 -498
- package/build/index.js.map +4 -4
- package/build/input/pointerevent.d.ts.map +1 -1
- package/build/level/tiled/TMXLayer.d.ts +72 -5
- package/build/level/tiled/TMXLayer.d.ts.map +1 -1
- package/build/level/tiled/TMXTile.d.ts +19 -1
- package/build/level/tiled/TMXTile.d.ts.map +1 -1
- package/build/level/tiled/TMXTileMap.d.ts.map +1 -1
- package/build/level/tiled/TMXTileset.d.ts +27 -0
- package/build/level/tiled/TMXTileset.d.ts.map +1 -1
- package/build/level/tiled/factories/shape.d.ts +1 -1
- package/build/level/tiled/factories/shape.d.ts.map +1 -1
- package/build/level/tiled/factories/tile.d.ts.map +1 -1
- package/build/level/tiled/renderer/TMXHexagonalRenderer.d.ts +7 -1
- package/build/level/tiled/renderer/TMXHexagonalRenderer.d.ts.map +1 -1
- package/build/level/tiled/renderer/TMXIsometricRenderer.d.ts +7 -1
- package/build/level/tiled/renderer/TMXIsometricRenderer.d.ts.map +1 -1
- package/build/level/tiled/renderer/TMXObliqueRenderer.d.ts.map +1 -1
- package/build/level/tiled/renderer/TMXOrthogonalRenderer.d.ts +7 -1
- package/build/level/tiled/renderer/TMXOrthogonalRenderer.d.ts.map +1 -1
- package/build/loader/loader.d.ts +2 -2
- package/build/loader/loader.d.ts.map +1 -1
- package/build/loader/parsers/aseprite.d.ts +37 -0
- package/build/loader/parsers/aseprite.d.ts.map +1 -0
- package/build/physics/adapter.d.ts +560 -0
- package/build/physics/adapter.d.ts.map +1 -0
- package/build/physics/bounds.d.ts +18 -5
- package/build/physics/bounds.d.ts.map +1 -1
- package/build/physics/builtin/body.d.ts +605 -0
- package/build/physics/builtin/body.d.ts.map +1 -0
- package/build/physics/builtin/builtin-adapter.d.ts +91 -0
- package/build/physics/builtin/builtin-adapter.d.ts.map +1 -0
- package/build/physics/builtin/detector.d.ts +167 -0
- package/build/physics/builtin/detector.d.ts.map +1 -0
- package/build/physics/builtin/quadtree.d.ts +112 -0
- package/build/physics/builtin/quadtree.d.ts.map +1 -0
- package/build/physics/builtin/raycast.d.ts +4 -0
- package/build/physics/builtin/raycast.d.ts.map +1 -0
- package/build/physics/{sat.d.ts → builtin/sat.d.ts} +7 -7
- package/build/physics/builtin/sat.d.ts.map +1 -0
- package/build/physics/world.d.ts +77 -26
- package/build/physics/world.d.ts.map +1 -1
- package/build/renderable/collectable.d.ts +7 -1
- package/build/renderable/collectable.d.ts.map +1 -1
- package/build/renderable/container.d.ts +0 -13
- package/build/renderable/container.d.ts.map +1 -1
- package/build/renderable/imagelayer.d.ts.map +1 -1
- package/build/renderable/renderable.d.ts +78 -17
- package/build/renderable/renderable.d.ts.map +1 -1
- package/build/renderable/trigger.d.ts +14 -1
- package/build/renderable/trigger.d.ts.map +1 -1
- package/build/renderable/ui/uispriteelement.d.ts.map +1 -1
- package/build/system/timer.d.ts +0 -5
- package/build/system/timer.d.ts.map +1 -1
- package/build/utils/function.d.ts +1 -1
- package/build/utils/function.d.ts.map +1 -1
- package/build/video/canvas/canvas_renderer.d.ts +0 -130
- package/build/video/canvas/canvas_renderer.d.ts.map +1 -1
- package/build/video/renderer.d.ts +126 -1
- package/build/video/renderer.d.ts.map +1 -1
- package/build/video/rendertarget/canvasrendertarget.d.ts.map +1 -1
- package/build/video/texture/cache.d.ts.map +1 -1
- package/build/video/texture/resource.d.ts +113 -0
- package/build/video/texture/resource.d.ts.map +1 -0
- package/build/video/webgl/batchers/material_batcher.d.ts +8 -1
- package/build/video/webgl/batchers/material_batcher.d.ts.map +1 -1
- package/build/video/webgl/effects/shine.d.ts +87 -0
- package/build/video/webgl/effects/shine.d.ts.map +1 -0
- package/build/video/webgl/renderers/tmxlayer/orthogonal.d.ts +108 -0
- package/build/video/webgl/renderers/tmxlayer/orthogonal.d.ts.map +1 -0
- package/build/video/webgl/utils/attributes.d.ts +7 -0
- package/build/video/webgl/utils/attributes.d.ts.map +1 -1
- package/build/video/webgl/utils/precision.d.ts +1 -1
- package/build/video/webgl/utils/precision.d.ts.map +1 -1
- package/build/video/webgl/utils/uniforms.d.ts +13 -0
- package/build/video/webgl/utils/uniforms.d.ts.map +1 -1
- package/build/video/webgl/webgl_renderer.d.ts +19 -106
- package/build/video/webgl/webgl_renderer.d.ts.map +1 -1
- package/package.json +1 -1
- package/build/physics/body.d.ts +0 -351
- package/build/physics/body.d.ts.map +0 -1
- package/build/physics/detector.d.ts +0 -72
- package/build/physics/detector.d.ts.map +0 -1
- package/build/physics/quadtree.d.ts +0 -69
- package/build/physics/quadtree.d.ts.map +0 -1
- package/build/physics/sat.d.ts.map +0 -1
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A texture data source that knows how to upload itself to a WebGL
|
|
3
|
+
* texture. Subclasses provide the actual upload logic for their kind
|
|
4
|
+
* of source (raw buffer, image, compressed data, etc.).
|
|
5
|
+
*
|
|
6
|
+
* Resources flow through the same `TextureCache` / batcher machinery
|
|
7
|
+
* as image-backed `TextureAtlas` instances: they expose the minimal
|
|
8
|
+
* shape (`sources`, `activeAtlas`, `getTexture()`, plus `width` /
|
|
9
|
+
* `height` / `premultipliedAlpha` / `repeat` / `filter`) the cache
|
|
10
|
+
* uses for unit allocation and the batcher uses for `boundTextures`
|
|
11
|
+
* bookkeeping. The cache therefore owns every `gl.bindTexture` call,
|
|
12
|
+
* which keeps the JS-side binding state in lockstep with the actual
|
|
13
|
+
* GL state across all texture kinds — image atlases included.
|
|
14
|
+
*
|
|
15
|
+
* Subclasses MUST implement `upload(gl, target)`. The framework calls
|
|
16
|
+
* it once per texture on first use (and again on forced re-upload via
|
|
17
|
+
* `batcher.uploadTexture(resource, w, h, true)`).
|
|
18
|
+
*
|
|
19
|
+
* @category Rendering
|
|
20
|
+
*/
|
|
21
|
+
export class TextureResource {
|
|
22
|
+
/**
|
|
23
|
+
* @param {object} options
|
|
24
|
+
* @param {number} options.width - pixel width of the texture
|
|
25
|
+
* @param {number} options.height - pixel height of the texture
|
|
26
|
+
* @param {boolean} [options.premultipliedAlpha=false]
|
|
27
|
+
* @param {string} [options.repeat="no-repeat"] - "no-repeat" | "repeat" | "repeat-x" | "repeat-y"
|
|
28
|
+
* @param {number} [options.filter] - `gl.NEAREST` or `gl.LINEAR`; when
|
|
29
|
+
* omitted the batcher falls back to the renderer's `antiAlias` setting
|
|
30
|
+
*/
|
|
31
|
+
constructor({ width, height, premultipliedAlpha, repeat, filter, }?: {
|
|
32
|
+
width: number;
|
|
33
|
+
height: number;
|
|
34
|
+
premultipliedAlpha?: boolean | undefined;
|
|
35
|
+
repeat?: string | undefined;
|
|
36
|
+
filter?: number | undefined;
|
|
37
|
+
});
|
|
38
|
+
/** @type {number} */
|
|
39
|
+
width: number;
|
|
40
|
+
/** @type {number} */
|
|
41
|
+
height: number;
|
|
42
|
+
/** @type {boolean} */
|
|
43
|
+
premultipliedAlpha: boolean;
|
|
44
|
+
/** @type {string} */
|
|
45
|
+
repeat: string;
|
|
46
|
+
/** @type {number|undefined} */
|
|
47
|
+
filter: number | undefined;
|
|
48
|
+
sources: Map<string, this>;
|
|
49
|
+
activeAtlas: string;
|
|
50
|
+
/**
|
|
51
|
+
* Returns the upload "source" the batcher hands to `createTexture2D`.
|
|
52
|
+
* For a resource this is the resource itself — `createTexture2D`
|
|
53
|
+
* dispatches to `resource.upload(gl, target)`.
|
|
54
|
+
* @ignore
|
|
55
|
+
*/
|
|
56
|
+
getTexture(): this;
|
|
57
|
+
/**
|
|
58
|
+
* Issue the `gl.texImage2D` (or equivalent) call that uploads this
|
|
59
|
+
* resource's data into the currently-bound `TEXTURE_2D` slot.
|
|
60
|
+
* Subclasses MUST override.
|
|
61
|
+
* @abstract
|
|
62
|
+
* @param {WebGLRenderingContext|WebGL2RenderingContext} gl
|
|
63
|
+
* @param {number} target - `gl.TEXTURE_2D` (or future cube-map targets)
|
|
64
|
+
*/
|
|
65
|
+
upload(gl: WebGLRenderingContext | WebGL2RenderingContext, target: number): void;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* A texture sourced from a raw byte buffer. Used for synthesized
|
|
69
|
+
* textures (TMX layer GID index, font atlases, color LUTs, signed-
|
|
70
|
+
* distance fields, palette tables, etc.) — any case where the texture
|
|
71
|
+
* data isn't an image file.
|
|
72
|
+
*
|
|
73
|
+
* The buffer is uploaded as-is; the resource's `premultipliedAlpha`
|
|
74
|
+
* flag is applied at upload time so a raw-data texture (typical:
|
|
75
|
+
* `premultipliedAlpha = false`) doesn't get its RGB wiped by the
|
|
76
|
+
* driver when the alpha channel is zero.
|
|
77
|
+
*
|
|
78
|
+
* @category Rendering
|
|
79
|
+
*/
|
|
80
|
+
export class BufferTextureResource extends TextureResource {
|
|
81
|
+
/**
|
|
82
|
+
* @param {ArrayBufferView} data - the pixel data; size must be
|
|
83
|
+
* `width * height * 4` bytes for the default RGBA / UNSIGNED_BYTE
|
|
84
|
+
* format
|
|
85
|
+
* @param {object} options
|
|
86
|
+
* @param {number} options.width
|
|
87
|
+
* @param {number} options.height
|
|
88
|
+
* @param {boolean} [options.premultipliedAlpha=false]
|
|
89
|
+
* @param {string} [options.repeat="no-repeat"]
|
|
90
|
+
* @param {number} [options.filter]
|
|
91
|
+
* @param {"rgba8"|"rgba8ui"} [options.format="rgba8"] - storage format.
|
|
92
|
+
* `"rgba8"` (default): normalized RGBA, sampled via `sampler2D` /
|
|
93
|
+
* `texture()`. `"rgba8ui"`: unsigned-integer RGBA, sampled via
|
|
94
|
+
* `usampler2D` / `texelFetch()` — requires WebGL2. Use the integer
|
|
95
|
+
* form for raw-data lookups (GID tables, palette indices, etc.) to
|
|
96
|
+
* skip the float-decode round trip and gain exact integer reads.
|
|
97
|
+
*/
|
|
98
|
+
constructor(data: ArrayBufferView, options: {
|
|
99
|
+
width: number;
|
|
100
|
+
height: number;
|
|
101
|
+
premultipliedAlpha?: boolean | undefined;
|
|
102
|
+
repeat?: string | undefined;
|
|
103
|
+
filter?: number | undefined;
|
|
104
|
+
format?: "rgba8" | "rgba8ui" | undefined;
|
|
105
|
+
});
|
|
106
|
+
/** @type {ArrayBufferView} */
|
|
107
|
+
data: ArrayBufferView;
|
|
108
|
+
/** @type {string} */
|
|
109
|
+
format: string;
|
|
110
|
+
/** @ignore */
|
|
111
|
+
upload(gl: any, target: any): void;
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=resource.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../../../src/video/texture/resource.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH;IACC;;;;;;;;OAQG;IACH,qEAPG;QAAwB,KAAK,EAArB,MAAM;QACU,MAAM,EAAtB,MAAM;QACY,kBAAkB;QAClB,MAAM;QACN,MAAM;KAElC,EAsBA;IAdA,qBAAqB;IACrB,OADW,MAAM,CACC;IAClB,qBAAqB;IACrB,QADW,MAAM,CACG;IACpB,sBAAsB;IACtB,oBADW,OAAO,CAC0B;IAC5C,qBAAqB;IACrB,QADW,MAAM,CACG;IACpB,+BAA+B;IAC/B,QADW,MAAM,GAAC,SAAS,CACP;IAGpB,2BAA2C;IAC3C,oBAA4B;IAG7B;;;;;OAKG;IACH,mBAEC;IAED;;;;;;;OAOG;IAEH,WAJW,qBAAqB,GAAC,sBAAsB,UAC5C,MAAM,QAKhB;CACD;AAED;;;;;;;;;;;;GAYG;AACH;IACC;;;;;;;;;;;;;;;;OAgBG;IACH,kBAhBW,eAAe,WAIvB;QAAyB,KAAK,EAAtB,MAAM;QACW,MAAM,EAAvB,MAAM;QACY,kBAAkB;QAClB,MAAM;QACN,MAAM;QACI,MAAM;KAM5C,EAOA;IAJA,8BAA8B;IAC9B,MADW,eAAe,CACV;IAChB,qBAAqB;IACrB,QADW,MAAM,CACsB;IAGxC,cAAc;IACd,mCAoCC;CACD"}
|
|
@@ -57,8 +57,15 @@ export class MaterialBatcher extends Batcher {
|
|
|
57
57
|
unbindTexture2D(texture?: WebGLTexture, unit?: number): number;
|
|
58
58
|
/**
|
|
59
59
|
* @ignore
|
|
60
|
+
* @param {TextureAtlas|TextureResource} texture
|
|
61
|
+
* @param {number} [w] - ignored when the source has its own `width` (the
|
|
62
|
+
* common case); kept for the legacy signature where callers passed a
|
|
63
|
+
* destination size. Forwarded only as a last-resort default.
|
|
64
|
+
* @param {number} [h] - same as `w`.
|
|
65
|
+
* @param {boolean} [force=false]
|
|
66
|
+
* @param {boolean} [flush=true]
|
|
60
67
|
*/
|
|
61
|
-
uploadTexture(texture:
|
|
68
|
+
uploadTexture(texture: TextureAtlas | TextureResource, w?: number, h?: number, force?: boolean, flush?: boolean): any;
|
|
62
69
|
}
|
|
63
70
|
import { Batcher } from "./batcher.js";
|
|
64
71
|
import type { TextureAtlas } from "./../../texture/atlas.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"material_batcher.d.ts","sourceRoot":"","sources":["../../../../src/video/webgl/batchers/material_batcher.js"],"names":[],"mappings":"AAGA;;;GAGG;AAEH;;;;GAIG;AACH;IAQE;;;OAGG;IACH,wBAA4B;IAE5B;;;OAGG;IACH,iCAAuB;IA0BxB;;;;;;;;;;;OAWG;IACH,sBAVW,MAAM,WACN,8DAAM,iBAAiB,GAAC,SAAS,GAAC,UAAU,EAAE,GAAC,YAAY,EAAE,UAC7D,MAAM,WACN,MAAM,MACN,MAAM,MACN,MAAM,uBACN,OAAO,WACP,OAAO,kCACL,YAAY,
|
|
1
|
+
{"version":3,"file":"material_batcher.d.ts","sourceRoot":"","sources":["../../../../src/video/webgl/batchers/material_batcher.js"],"names":[],"mappings":"AAGA;;;GAGG;AAEH;;;;GAIG;AACH;IAQE;;;OAGG;IACH,wBAA4B;IAE5B;;;OAGG;IACH,iCAAuB;IA0BxB;;;;;;;;;;;OAWG;IACH,sBAVW,MAAM,WACN,8DAAM,iBAAiB,GAAC,SAAS,GAAC,UAAU,EAAE,GAAC,YAAY,EAAE,UAC7D,MAAM,WACN,MAAM,MACN,MAAM,MACN,MAAM,uBACN,OAAO,WACP,OAAO,kCACL,YAAY,CAqJxB;IAED;;;OAGG;IACH,yBAFW,YAAY,GAAC,YAAY,QAiBnC;IAED;;;;OAIG;IACH,mBAHW,MAAM,GACJ,YAAY,CAIxB;IAED;;;;OAIG;IACH,uBAHW,YAAY,QACZ,MAAM,yBAsBhB;IAED;;;;;OAKG;IACH,0BAJW,YAAY,SACZ,MAAM,GACJ,MAAM,CAalB;IAED;;;;;;;;;OASG;IACH,uBARW,YAAY,GAAC,eAAe,MAC5B,MAAM,MAGN,MAAM,UACN,OAAO,UACP,OAAO,OAiDjB;CACD;wBA/VuB,cAAc;kCAIP,0BAA0B"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A shader effect that sweeps a bright highlight band across the sprite —
|
|
3
|
+
* the classic "shine" pass commonly used for coins, gems, polished metal,
|
|
4
|
+
* and hover-highlighted UI elements. Similar to pixi-filters' ShineFilter.
|
|
5
|
+
*
|
|
6
|
+
* Set `bands` > 1 to tile the sweep into N parallel glints (useful for the
|
|
7
|
+
* "etched grooves" look of a coin's rim). An optional subtle brightness
|
|
8
|
+
* pulse can be layered on top via `pulseDepth` — set to 0 to disable.
|
|
9
|
+
*
|
|
10
|
+
* The `time` uniform must be updated each frame for the animation.
|
|
11
|
+
* @category Effects
|
|
12
|
+
* @see {@link Renderable.shader} for usage
|
|
13
|
+
* @example
|
|
14
|
+
* // single diagonal sweep — classic "button shine"
|
|
15
|
+
* const shine = new ShineEffect(renderer, {
|
|
16
|
+
* color: [1.0, 0.95, 0.7],
|
|
17
|
+
* speed: 0.5,
|
|
18
|
+
* width: 0.18,
|
|
19
|
+
* angle: 0.5,
|
|
20
|
+
* });
|
|
21
|
+
*
|
|
22
|
+
* // gold coin with ~14 parallel glints and a subtle brightness pulse
|
|
23
|
+
* const coinShine = new ShineEffect(renderer, {
|
|
24
|
+
* color: [1.0, 0.95, 0.7],
|
|
25
|
+
* bands: 14.5,
|
|
26
|
+
* width: 0.15,
|
|
27
|
+
* intensity: 0.4,
|
|
28
|
+
* speed: 0.8,
|
|
29
|
+
* pulseDepth: 0.08,
|
|
30
|
+
* });
|
|
31
|
+
*
|
|
32
|
+
* mySprite.addPostEffect(coinShine);
|
|
33
|
+
*
|
|
34
|
+
* // update each frame
|
|
35
|
+
* coinShine.setTime(timer.getTime() / 1000);
|
|
36
|
+
*/
|
|
37
|
+
export default class ShineEffect extends ShaderEffect {
|
|
38
|
+
/**
|
|
39
|
+
* @param {import("../webgl_renderer.js").default} renderer - the current renderer instance
|
|
40
|
+
* @param {object} [options] - effect options
|
|
41
|
+
* @param {number[]} [options.color=[1.0, 1.0, 1.0]] - shine color as [r, g, b] (0.0–1.0)
|
|
42
|
+
* @param {number} [options.speed=0.5] - sweeps per second
|
|
43
|
+
* @param {number} [options.width=0.15] - glint half-width as a fraction of one tile (0.0–1.0)
|
|
44
|
+
* @param {number} [options.intensity=0.5] - maximum highlight strength
|
|
45
|
+
* @param {number} [options.angle=0.5] - sweep direction in radians (0 = horizontal L→R, π/2 = vertical T→B)
|
|
46
|
+
* @param {number} [options.bands=1.0] - number of parallel glints (1 = single shine; ~14.5 mimics a coin's etched-rim look)
|
|
47
|
+
* @param {number} [options.pulseDepth=0.0] - subtle base-brightness pulse amplitude (0 disables the pulse)
|
|
48
|
+
* @param {number} [options.pulseSpeed=3.0] - pulse oscillation rate (radians/second)
|
|
49
|
+
*/
|
|
50
|
+
constructor(renderer: import("../webgl_renderer.js").default, options?: {
|
|
51
|
+
color?: number[] | undefined;
|
|
52
|
+
speed?: number | undefined;
|
|
53
|
+
width?: number | undefined;
|
|
54
|
+
intensity?: number | undefined;
|
|
55
|
+
angle?: number | undefined;
|
|
56
|
+
bands?: number | undefined;
|
|
57
|
+
pulseDepth?: number | undefined;
|
|
58
|
+
pulseSpeed?: number | undefined;
|
|
59
|
+
});
|
|
60
|
+
/**
|
|
61
|
+
* set the current time (call each frame for animation)
|
|
62
|
+
* @param {number} time - time in seconds
|
|
63
|
+
*/
|
|
64
|
+
setTime(time: number): void;
|
|
65
|
+
/**
|
|
66
|
+
* set the shine color
|
|
67
|
+
* @param {number[]} color - shine color as [r, g, b] (0.0–1.0)
|
|
68
|
+
*/
|
|
69
|
+
setColor(color: number[]): void;
|
|
70
|
+
/**
|
|
71
|
+
* set the sweep speed
|
|
72
|
+
* @param {number} value - sweeps per second
|
|
73
|
+
*/
|
|
74
|
+
setSpeed(value: number): void;
|
|
75
|
+
/**
|
|
76
|
+
* set the highlight intensity
|
|
77
|
+
* @param {number} value - maximum highlight strength
|
|
78
|
+
*/
|
|
79
|
+
setIntensity(value: number): void;
|
|
80
|
+
/**
|
|
81
|
+
* set the number of parallel glints
|
|
82
|
+
* @param {number} value - 1 for a single shine, >1 for tiled stripes
|
|
83
|
+
*/
|
|
84
|
+
setBands(value: number): void;
|
|
85
|
+
}
|
|
86
|
+
import ShaderEffect from "../shadereffect.js";
|
|
87
|
+
//# sourceMappingURL=shine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shine.d.ts","sourceRoot":"","sources":["../../../../src/video/webgl/effects/shine.js"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH;IACC;;;;;;;;;;;OAWG;IACH,sBAXW,OAAO,sBAAsB,EAAE,OAAO,YAE9C;QAA2B,KAAK;QACP,KAAK;QACL,KAAK;QACL,SAAS;QACT,KAAK;QACL,KAAK;QACL,UAAU;QACV,UAAU;KACrC,EAuDA;IAED;;;OAGG;IACH,cAFW,MAAM,QAIhB;IAED;;;OAGG;IACH,gBAFW,MAAM,EAAE,QAIlB;IAED;;;OAGG;IACH,gBAFW,MAAM,QAIhB;IAED;;;OAGG;IACH,oBAFW,MAAM,QAIhB;IAED;;;OAGG;IACH,gBAFW,MAAM,QAIhB;CACD;yBAlJwB,oBAAoB"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GPU-accelerated renderer for orthogonal TMX tile layers (WebGL2). Draws
|
|
3
|
+
* the visible region of a layer as one screen-aligned quad per tileset
|
|
4
|
+
* referenced by the layer — the fragment shader samples a per-layer GID
|
|
5
|
+
* index texture and the tileset atlas, eliminating the per-tile draw
|
|
6
|
+
* loop. The visible rect, GID range, tile size, opacity, and tint are
|
|
7
|
+
* pushed as uniforms; the index texture is uploaded once at activation
|
|
8
|
+
* and re-uploaded only when `layer.dataVersion` changes (mutations from
|
|
9
|
+
* `setTile`/`clearTile`).
|
|
10
|
+
*
|
|
11
|
+
* The per-layer index texture is a `BufferTextureResource` flowing
|
|
12
|
+
* through the standard `TextureCache` / batcher path — same lane as
|
|
13
|
+
* every other texture in the engine. Dynamic unit allocation, correct
|
|
14
|
+
* `boundTextures` bookkeeping, and per-resource premultiplied-alpha /
|
|
15
|
+
* filter all come for free; nothing here pokes `gl.bindTexture` or
|
|
16
|
+
* `gl.activeTexture` directly.
|
|
17
|
+
*
|
|
18
|
+
* Cache lifecycle: one `BufferTextureResource` per `TMXLayer`. Tile
|
|
19
|
+
* layers don't come and go individually — they only churn on game reset
|
|
20
|
+
* — so the cache is freed in bulk via `reset()`, called from
|
|
21
|
+
* `WebGLRenderer.reset()` (which the `GAME_RESET` event already
|
|
22
|
+
* triggers).
|
|
23
|
+
*
|
|
24
|
+
* @ignore
|
|
25
|
+
*/
|
|
26
|
+
export default class OrthogonalTMXLayerGPURenderer {
|
|
27
|
+
/**
|
|
28
|
+
* @param {WebGLRenderer} renderer - the WebGL renderer instance
|
|
29
|
+
*/
|
|
30
|
+
constructor(renderer: WebGLRenderer);
|
|
31
|
+
renderer: WebGLRenderer;
|
|
32
|
+
gl: WebGLRenderingContext;
|
|
33
|
+
shader: GLShader;
|
|
34
|
+
resources: Map<any, any>;
|
|
35
|
+
animLookups: Map<any, any>;
|
|
36
|
+
_v2: Float32Array<ArrayBuffer>;
|
|
37
|
+
_v4: Float32Array<ArrayBuffer>;
|
|
38
|
+
/**
|
|
39
|
+
* Free every cached per-layer index texture and empty the local
|
|
40
|
+
* resource map. Called from `WebGLRenderer.reset()` (which
|
|
41
|
+
* `GAME_RESET` triggers) so each level transition starts clean.
|
|
42
|
+
* @ignore
|
|
43
|
+
*/
|
|
44
|
+
reset(): void;
|
|
45
|
+
/**
|
|
46
|
+
* Write a `vec2` uniform without allocating a fresh Float32Array per
|
|
47
|
+
* call. Both components flow into the shared `_v2` scratch buffer,
|
|
48
|
+
* which `setUniform` reads synchronously and forwards to
|
|
49
|
+
* `gl.uniform2fv` — so reusing the buffer across calls is safe.
|
|
50
|
+
* @param {string} name
|
|
51
|
+
* @param {number} x
|
|
52
|
+
* @param {number} y
|
|
53
|
+
* @private
|
|
54
|
+
*/
|
|
55
|
+
private _setV2;
|
|
56
|
+
/**
|
|
57
|
+
* `vec4` counterpart to {@link _setV2}.
|
|
58
|
+
* @param {string} name
|
|
59
|
+
* @param {number} x
|
|
60
|
+
* @param {number} y
|
|
61
|
+
* @param {number} z
|
|
62
|
+
* @param {number} w
|
|
63
|
+
* @private
|
|
64
|
+
*/
|
|
65
|
+
private _setV4;
|
|
66
|
+
/**
|
|
67
|
+
* Get-or-create the per-tileset animation-lookup entry. Returns
|
|
68
|
+
* `undefined` for tilesets that have no animated tiles (the shader's
|
|
69
|
+
* `uAnimEnabled` uniform is then set to 0 and the lookup texture is
|
|
70
|
+
* not bound).
|
|
71
|
+
*
|
|
72
|
+
* The entry holds a `tileCount × 1` RGBA8 `BufferTextureResource`
|
|
73
|
+
* where texel `localId` encodes the CURRENT frame's local id as
|
|
74
|
+
* `R = lo byte, G = hi byte` (same encoding as the GID index
|
|
75
|
+
* texture). Each call walks `tileset.animations` and rewrites
|
|
76
|
+
* dirty texels — `tileset.update(dt)` (driven by the layer) advances
|
|
77
|
+
* `anim.cur.tileid` independently of this renderer.
|
|
78
|
+
*
|
|
79
|
+
* @param {object} tileset
|
|
80
|
+
* @param {number} tileCount - tiles in the tileset's atlas grid
|
|
81
|
+
* (`atlasCols * atlasRows`)
|
|
82
|
+
* @returns {{resource: BufferTextureResource, data: Uint8Array,
|
|
83
|
+
* tileCount: number, dirty: boolean}|undefined}
|
|
84
|
+
*/
|
|
85
|
+
_getOrUpdateAnimLookup(tileset: object, tileCount: number): {
|
|
86
|
+
resource: BufferTextureResource;
|
|
87
|
+
data: Uint8Array;
|
|
88
|
+
tileCount: number;
|
|
89
|
+
dirty: boolean;
|
|
90
|
+
} | undefined;
|
|
91
|
+
/**
|
|
92
|
+
* Get-or-create the per-layer index `BufferTextureResource`.
|
|
93
|
+
* @param {TMXLayer} layer
|
|
94
|
+
* @returns {BufferTextureResource}
|
|
95
|
+
*/
|
|
96
|
+
_getResource(layer: TMXLayer): BufferTextureResource;
|
|
97
|
+
/**
|
|
98
|
+
* Draw an orthogonal TMX layer through the shader path.
|
|
99
|
+
* @param {TMXLayer} layer
|
|
100
|
+
* @param {object} rect - the visible viewport rect (world coords)
|
|
101
|
+
*/
|
|
102
|
+
draw(layer: TMXLayer, rect: object): void;
|
|
103
|
+
}
|
|
104
|
+
import type { default as WebGLRenderer } from "../../webgl_renderer.js";
|
|
105
|
+
import GLShader from "../../glshader.js";
|
|
106
|
+
import { BufferTextureResource } from "../../../texture/resource.js";
|
|
107
|
+
import type { default as TMXLayer } from "../../../../level/tiled/TMXLayer.js";
|
|
108
|
+
//# sourceMappingURL=orthogonal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orthogonal.d.ts","sourceRoot":"","sources":["../../../../../src/video/webgl/renderers/tmxlayer/orthogonal.js"],"names":[],"mappings":"AAeA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH;IACC;;OAEG;IACH,sBAFW,aAAa,EAkCvB;IA/BA,wBAAwB;IACxB,0BAAqB;IAUrB,iBAKC;IAMD,yBAA0B;IAI1B,2BAA4B;IAG5B,+BAA8B;IAC9B,+BAA8B;IAG/B;;;;;OAKG;IACH,cAyBC;IAED;;;;;;;;;OASG;IACH,eAIC;IAED;;;;;;;;OAQG;IACH,eAMC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,gCANW,MAAM,aACN,MAAM,GAEJ;QAAC,QAAQ,EAAE,qBAAqB,CAAC;QAAC,IAAI,EAAE,UAAU,CAAC;QAC3D,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAC,GAAC,SAAS,CA+ChD;IAED;;;;OAIG;IACH,oBAHW,QAAQ,GACN,qBAAqB,CA6BjC;IAED;;;;OAIG;IACH,YAHW,QAAQ,QACR,MAAM,QA0JhB;CACD;8CA1Y4C,yBAAyB;qBAPjD,mBAAmB;sCADF,8BAA8B;yCAO5B,qCAAqC"}
|
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
+
* Pick out every vertex attribute name from a shader source, regardless of
|
|
3
|
+
* GLSL version. GLSL 1.00 marks attributes with the `attribute` storage
|
|
4
|
+
* qualifier; GLSL ES 3.00 reuses `in` at file scope for the same purpose
|
|
5
|
+
* (and `in` inside function parameter lists, which we exclude by requiring
|
|
6
|
+
* the qualifier to start at the beginning of a line). Skipping the 3.00
|
|
7
|
+
* form leaves the shader with no bound vertex data and the rasterizer
|
|
8
|
+
* silently degenerates every triangle.
|
|
2
9
|
* @ignore
|
|
3
10
|
*/
|
|
4
11
|
export function extractAttributes(gl: any, shader: any): {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attributes.d.ts","sourceRoot":"","sources":["../../../../src/video/webgl/utils/attributes.js"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"attributes.d.ts","sourceRoot":"","sources":["../../../../src/video/webgl/utils/attributes.js"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,4DAmBC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"precision.d.ts","sourceRoot":"","sources":["../../../../src/video/webgl/utils/precision.js"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,
|
|
1
|
+
{"version":3,"file":"precision.d.ts","sourceRoot":"","sources":["../../../../src/video/webgl/utils/precision.js"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,4DA+BC;AAED;;;;;;GAMG;AACH,0CAJW,qBAAqB,kBACrB,OAAO,GACL,MAAM,CAoBlB"}
|
|
@@ -1,4 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
|
+
* Build the `uniforms` proxy object for a compiled shader program.
|
|
3
|
+
*
|
|
4
|
+
* Each detected uniform gets a defineProperty getter (returns its
|
|
5
|
+
* `WebGLUniformLocation`) and a setter that pushes the value to GL. The
|
|
6
|
+
* setter caches the last value it sent and skips the underlying
|
|
7
|
+
* `gl.uniform*` call when the incoming value matches — uniform writes are
|
|
8
|
+
* cheap individually, but a typical per-frame draw pass sets a dozen of
|
|
9
|
+
* them per shader, and most are layer-lifetime constants (`uMapSize`,
|
|
10
|
+
* `uCellSize`, `uOpacity`, projection matrix on idle frames, etc.).
|
|
11
|
+
*
|
|
12
|
+
* Cache scope is per-shader: each `GLShader` calls `extractUniforms` once
|
|
13
|
+
* and gets its own closure-captured `cache` map, so caches don't leak
|
|
14
|
+
* across programs.
|
|
2
15
|
* @ignore
|
|
3
16
|
*/
|
|
4
17
|
export function extractUniforms(gl: any, shader: any): {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uniforms.d.ts","sourceRoot":"","sources":["../../../../src/video/webgl/utils/uniforms.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"uniforms.d.ts","sourceRoot":"","sources":["../../../../src/video/webgl/utils/uniforms.js"],"names":[],"mappings":"AA0FA;;;;;;;;;;;;;;;GAeG;AACH,0DAmEC"}
|
|
@@ -22,12 +22,6 @@ export default class WebGLRenderer extends Renderer {
|
|
|
22
22
|
* @ignore
|
|
23
23
|
*/
|
|
24
24
|
_savedEffectProjection: Matrix3d;
|
|
25
|
-
/**
|
|
26
|
-
* sets or returns the thickness of lines for shape drawing
|
|
27
|
-
* @type {number}
|
|
28
|
-
* @default 1
|
|
29
|
-
*/
|
|
30
|
-
lineWidth: number;
|
|
31
25
|
/**
|
|
32
26
|
* sets or returns the shape used to join two line segments where they meet.
|
|
33
27
|
* Out of the three possible values for this property: "round", "bevel", and "miter", only "round" is supported for now in WebGL
|
|
@@ -94,6 +88,24 @@ export default class WebGLRenderer extends Renderer {
|
|
|
94
88
|
get WebGLVersion(): number;
|
|
95
89
|
_lightShader: RadialGradientEffect | undefined;
|
|
96
90
|
_lightAtlas: TextureAtlas | undefined;
|
|
91
|
+
_orthogonalTMXGPURenderer: OrthogonalTMXLayerGPURenderer | null | undefined;
|
|
92
|
+
/**
|
|
93
|
+
* Draw a TMX tile layer through whichever path the layer's `renderMode`
|
|
94
|
+
* resolves to. WebGL2-eligible layers (`renderMode === "shader"`) take
|
|
95
|
+
* the procedural shader path — one quad per tileset, GID lookup in a
|
|
96
|
+
* per-layer data texture. All other layers fall through to the base
|
|
97
|
+
* `Renderer.drawTileLayer` (preRender blit or per-tile loop).
|
|
98
|
+
* @param {object} layer - the TMXLayer to draw
|
|
99
|
+
* @param {object} rect - the visible region in world coords
|
|
100
|
+
*/
|
|
101
|
+
drawTileLayer(layer: object, rect: object): void;
|
|
102
|
+
/**
|
|
103
|
+
* Lazy-init the orientation-specific GPU tilemap renderer.
|
|
104
|
+
* @param {string} orientation
|
|
105
|
+
* @returns {object|undefined}
|
|
106
|
+
* @ignore
|
|
107
|
+
*/
|
|
108
|
+
_getTMXGPURendererFor(orientation: string): object | undefined;
|
|
97
109
|
/**
|
|
98
110
|
* add a new batcher to this renderer
|
|
99
111
|
* @param {Batcher} batcher - a batcher instance
|
|
@@ -304,58 +316,6 @@ export default class WebGLRenderer extends Renderer {
|
|
|
304
316
|
*/
|
|
305
317
|
setBlendMode(mode?: string, premultipliedAlpha?: boolean): string;
|
|
306
318
|
currentPremultipliedAlpha: any;
|
|
307
|
-
/**
|
|
308
|
-
* restores the most recently saved renderer state by popping the top entry in the drawing state stack
|
|
309
|
-
* @example
|
|
310
|
-
* // Save the current state
|
|
311
|
-
* renderer.save();
|
|
312
|
-
*
|
|
313
|
-
* // apply a transform and draw a rect
|
|
314
|
-
* renderer.tranform(matrix);
|
|
315
|
-
* renderer.fillRect(10, 10, 100, 100);
|
|
316
|
-
*
|
|
317
|
-
* // Restore to the state saved by the most recent call to save()
|
|
318
|
-
* renderer.restore();
|
|
319
|
-
*/
|
|
320
|
-
restore(): void;
|
|
321
|
-
/**
|
|
322
|
-
* saves the entire state of the renderer by pushing the current state onto a stack.
|
|
323
|
-
* @example
|
|
324
|
-
* // Save the current state
|
|
325
|
-
* renderer.save();
|
|
326
|
-
*
|
|
327
|
-
* // apply a transform and draw a rect
|
|
328
|
-
* renderer.tranform(matrix);
|
|
329
|
-
* renderer.fillRect(10, 10, 100, 100);
|
|
330
|
-
*
|
|
331
|
-
* // Restore to the state saved by the most recent call to save()
|
|
332
|
-
* renderer.restore();
|
|
333
|
-
*/
|
|
334
|
-
save(): void;
|
|
335
|
-
/**
|
|
336
|
-
* adds a rotation to the transformation matrix.
|
|
337
|
-
* @param {number} angle - the rotation angle, clockwise in radians
|
|
338
|
-
* @example
|
|
339
|
-
* // Rotated rectangle
|
|
340
|
-
* renderer.rotate((45 * Math.PI) / 180);
|
|
341
|
-
* renderer.setColor("red");
|
|
342
|
-
* renderer.fillRect(10, 10, 100, 100);
|
|
343
|
-
*
|
|
344
|
-
* // Reset transformation matrix to the identity matrix
|
|
345
|
-
* renderer.setTransform(1, 0, 0, 1, 0, 0);
|
|
346
|
-
*/
|
|
347
|
-
rotate(angle: number): void;
|
|
348
|
-
/**
|
|
349
|
-
* adds a scaling transformation to the renderer units horizontally and/or vertically
|
|
350
|
-
* @param {number} x - Scaling factor in the horizontal direction. A negative value flips pixels across the vertical axis. A value of 1 results in no horizontal scaling.
|
|
351
|
-
* @param {number} y - Scaling factor in the vertical direction. A negative value flips pixels across the horizontal axis. A value of 1 results in no vertical scaling
|
|
352
|
-
*/
|
|
353
|
-
scale(x: number, y: number): void;
|
|
354
|
-
/**
|
|
355
|
-
* Set the global alpha
|
|
356
|
-
* @param {number} alpha - 0.0 to 1.0 values accepted.
|
|
357
|
-
*/
|
|
358
|
-
setGlobalAlpha(alpha: number): void;
|
|
359
319
|
/**
|
|
360
320
|
* Return the global alpha
|
|
361
321
|
* @returns {number} global alpha value
|
|
@@ -382,31 +342,6 @@ export default class WebGLRenderer extends Renderer {
|
|
|
382
342
|
* @param {boolean} [antiClockwise=false] - draw arc anti-clockwise
|
|
383
343
|
*/
|
|
384
344
|
fillArc(x: number, y: number, radius: number, start: number, end: number, antiClockwise?: boolean): void;
|
|
385
|
-
/**
|
|
386
|
-
* Stroke an ellipse at the specified coordinates with given radius
|
|
387
|
-
* @param {number} x - ellipse center point x-axis
|
|
388
|
-
* @param {number} y - ellipse center point y-axis
|
|
389
|
-
* @param {number} w - horizontal radius of the ellipse
|
|
390
|
-
* @param {number} h - vertical radius of the ellipse
|
|
391
|
-
* @param {boolean} [fill=false] - also fill the shape with the current color if true
|
|
392
|
-
*/
|
|
393
|
-
strokeEllipse(x: number, y: number, w: number, h: number, fill?: boolean): void;
|
|
394
|
-
/**
|
|
395
|
-
* Fill an ellipse at the specified coordinates with given radius
|
|
396
|
-
* @param {number} x - ellipse center point x-axis
|
|
397
|
-
* @param {number} y - ellipse center point y-axis
|
|
398
|
-
* @param {number} w - horizontal radius of the ellipse
|
|
399
|
-
* @param {number} h - vertical radius of the ellipse
|
|
400
|
-
*/
|
|
401
|
-
fillEllipse(x: number, y: number, w: number, h: number): void;
|
|
402
|
-
/**
|
|
403
|
-
* Stroke a line of the given two points
|
|
404
|
-
* @param {number} startX - the start x coordinate
|
|
405
|
-
* @param {number} startY - the start y coordinate
|
|
406
|
-
* @param {number} endX - the end x coordinate
|
|
407
|
-
* @param {number} endY - the end y coordinate
|
|
408
|
-
*/
|
|
409
|
-
strokeLine(startX: number, startY: number, endX: number, endY: number): void;
|
|
410
345
|
/**
|
|
411
346
|
* Fill a line of the given two points
|
|
412
347
|
* @param {number} startX - the start x coordinate
|
|
@@ -426,23 +361,6 @@ export default class WebGLRenderer extends Renderer {
|
|
|
426
361
|
* @param {Polygon} poly - the shape to draw
|
|
427
362
|
*/
|
|
428
363
|
fillPolygon(poly: Polygon): void;
|
|
429
|
-
/**
|
|
430
|
-
* Draw a stroke rectangle at the specified coordinates
|
|
431
|
-
* @param {number} x - x axis of the coordinate for the rectangle starting point.
|
|
432
|
-
* @param {number} y - y axis of the coordinate for the rectangle starting point.
|
|
433
|
-
* @param {number} width - The rectangle's width.
|
|
434
|
-
* @param {number} height - The rectangle's height.
|
|
435
|
-
* @param {boolean} [fill=false] - also fill the shape with the current color if true
|
|
436
|
-
*/
|
|
437
|
-
strokeRect(x: number, y: number, width: number, height: number, fill?: boolean): void;
|
|
438
|
-
/**
|
|
439
|
-
* Draw a filled rectangle at the specified coordinates
|
|
440
|
-
* @param {number} x - x axis of the coordinate for the rectangle starting point.
|
|
441
|
-
* @param {number} y - y axis of the coordinate for the rectangle starting point.
|
|
442
|
-
* @param {number} width - The rectangle's width.
|
|
443
|
-
* @param {number} height - The rectangle's height.
|
|
444
|
-
*/
|
|
445
|
-
fillRect(x: number, y: number, width: number, height: number): void;
|
|
446
364
|
/**
|
|
447
365
|
* Stroke a rounded rectangle at the specified coordinates
|
|
448
366
|
* @param {number} x - x axis of the coordinate for the rounded rectangle starting point.
|
|
@@ -496,12 +414,6 @@ export default class WebGLRenderer extends Renderer {
|
|
|
496
414
|
* @param {number} f - the f component to multiply the current matrix by
|
|
497
415
|
*/
|
|
498
416
|
transform(a: Matrix2d | Matrix3d | number, b: number, c: number, d: number, e: number, f: number): void;
|
|
499
|
-
/**
|
|
500
|
-
* adds a translation transformation to the current matrix.
|
|
501
|
-
* @param {number} x - Distance to move in the horizontal direction. Positive values are to the right, and negative to the left.
|
|
502
|
-
* @param {number} y - Distance to move in the vertical direction. Positive values are down, and negative are up.
|
|
503
|
-
*/
|
|
504
|
-
translate(x: number, y: number): void;
|
|
505
417
|
/**
|
|
506
418
|
* clip the given region from the original canvas. Once a region is clipped,
|
|
507
419
|
* all future drawing will be limited to the clipped region.
|
|
@@ -532,6 +444,7 @@ import type { Batcher } from "./batchers/batcher.js";
|
|
|
532
444
|
import TextureCache from "./../texture/cache.js";
|
|
533
445
|
import RadialGradientEffect from "./effects/radialGradient.js";
|
|
534
446
|
import { TextureAtlas } from "./../texture/atlas.js";
|
|
447
|
+
import OrthogonalTMXLayerGPURenderer from "./renderers/tmxlayer/orthogonal.js";
|
|
535
448
|
import { Color } from "./../../math/color.ts";
|
|
536
449
|
import type { Rect } from "./../../geometries/rectangle.ts";
|
|
537
450
|
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":"
|
|
1
|
+
{"version":3,"file":"webgl_renderer.d.ts","sourceRoot":"","sources":["../../../src/video/webgl/webgl_renderer.js"],"names":[],"mappings":"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"}
|