melonjs 19.3.0 → 19.4.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 +1 -0
- 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 +12 -0
- package/build/application/settings.d.ts.map +1 -1
- package/build/index.js +1063 -121
- 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 +15 -0
- package/build/level/tiled/TMXTileset.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/physics/sat.d.ts.map +1 -1
- package/build/physics/world.d.ts +16 -0
- package/build/physics/world.d.ts.map +1 -1
- package/build/renderable/imagelayer.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/renderer.d.ts +15 -1
- package/build/video/renderer.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/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 -0
- package/build/video/webgl/webgl_renderer.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -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"}
|
|
@@ -94,6 +94,24 @@ export default class WebGLRenderer extends Renderer {
|
|
|
94
94
|
get WebGLVersion(): number;
|
|
95
95
|
_lightShader: RadialGradientEffect | undefined;
|
|
96
96
|
_lightAtlas: TextureAtlas | undefined;
|
|
97
|
+
_orthogonalTMXGPURenderer: OrthogonalTMXLayerGPURenderer | null | undefined;
|
|
98
|
+
/**
|
|
99
|
+
* Draw a TMX tile layer through whichever path the layer's `renderMode`
|
|
100
|
+
* resolves to. WebGL2-eligible layers (`renderMode === "shader"`) take
|
|
101
|
+
* the procedural shader path — one quad per tileset, GID lookup in a
|
|
102
|
+
* per-layer data texture. All other layers fall through to the base
|
|
103
|
+
* `Renderer.drawTileLayer` (preRender blit or per-tile loop).
|
|
104
|
+
* @param {object} layer - the TMXLayer to draw
|
|
105
|
+
* @param {object} rect - the visible region in world coords
|
|
106
|
+
*/
|
|
107
|
+
drawTileLayer(layer: object, rect: object): void;
|
|
108
|
+
/**
|
|
109
|
+
* Lazy-init the orientation-specific GPU tilemap renderer.
|
|
110
|
+
* @param {string} orientation
|
|
111
|
+
* @returns {object|undefined}
|
|
112
|
+
* @ignore
|
|
113
|
+
*/
|
|
114
|
+
_getTMXGPURendererFor(orientation: string): object | undefined;
|
|
97
115
|
/**
|
|
98
116
|
* add a new batcher to this renderer
|
|
99
117
|
* @param {Batcher} batcher - a batcher instance
|
|
@@ -532,6 +550,7 @@ import type { Batcher } from "./batchers/batcher.js";
|
|
|
532
550
|
import TextureCache from "./../texture/cache.js";
|
|
533
551
|
import RadialGradientEffect from "./effects/radialGradient.js";
|
|
534
552
|
import { TextureAtlas } from "./../texture/atlas.js";
|
|
553
|
+
import OrthogonalTMXLayerGPURenderer from "./renderers/tmxlayer/orthogonal.js";
|
|
535
554
|
import { Color } from "./../../math/color.ts";
|
|
536
555
|
import type { Rect } from "./../../geometries/rectangle.ts";
|
|
537
556
|
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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"}
|