melonjs 18.2.2 → 19.0.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 (200) hide show
  1. package/README.md +33 -27
  2. package/build/application/application.d.ts +85 -13
  3. package/build/application/application.d.ts.map +1 -1
  4. package/build/application/defaultApplicationSettings.d.ts +1 -1
  5. package/build/application/header.d.ts.map +1 -1
  6. package/build/application/settings.d.ts +20 -7
  7. package/build/application/settings.d.ts.map +1 -1
  8. package/build/camera/camera2d.d.ts +10 -11
  9. package/build/camera/camera2d.d.ts.map +1 -1
  10. package/build/geometries/earcut.d.ts.map +1 -1
  11. package/build/geometries/path2d.d.ts.map +1 -1
  12. package/build/geometries/rectangle.d.ts.map +1 -1
  13. package/build/index.d.ts +99 -92
  14. package/build/index.d.ts.map +1 -1
  15. package/build/index.js +16586 -13472
  16. package/build/index.js.map +4 -4
  17. package/build/input/gamepad.d.ts.map +1 -1
  18. package/build/input/keyboard.d.ts.map +1 -1
  19. package/build/input/pointer.d.ts.map +1 -1
  20. package/build/input/pointerevent.d.ts +6 -0
  21. package/build/input/pointerevent.d.ts.map +1 -1
  22. package/build/level/level.d.ts +5 -5
  23. package/build/level/level.d.ts.map +1 -1
  24. package/build/level/tiled/TMXGroup.d.ts +1 -1
  25. package/build/level/tiled/TMXLayer.d.ts +4 -4
  26. package/build/level/tiled/TMXLayer.d.ts.map +1 -1
  27. package/build/level/tiled/TMXObject.d.ts +1 -1
  28. package/build/level/tiled/TMXObjectFactory.d.ts +98 -0
  29. package/build/level/tiled/TMXObjectFactory.d.ts.map +1 -0
  30. package/build/level/tiled/TMXTile.d.ts.map +1 -1
  31. package/build/level/tiled/TMXTileMap.d.ts +7 -3
  32. package/build/level/tiled/TMXTileMap.d.ts.map +1 -1
  33. package/build/level/tiled/TMXTileset.d.ts.map +1 -1
  34. package/build/level/tiled/TMXUtils.d.ts +22 -0
  35. package/build/level/tiled/TMXUtils.d.ts.map +1 -1
  36. package/build/level/tiled/factories/shape.d.ts +9 -0
  37. package/build/level/tiled/factories/shape.d.ts.map +1 -0
  38. package/build/level/tiled/factories/text.d.ts +8 -0
  39. package/build/level/tiled/factories/text.d.ts.map +1 -0
  40. package/build/level/tiled/factories/tile.d.ts +8 -0
  41. package/build/level/tiled/factories/tile.d.ts.map +1 -0
  42. package/build/level/tiled/renderer/TMXHexagonalRenderer.d.ts +1 -1
  43. package/build/level/tiled/renderer/TMXIsometricRenderer.d.ts +1 -1
  44. package/build/loader/cache.d.ts +2 -0
  45. package/build/loader/cache.d.ts.map +1 -1
  46. package/build/loader/loader.d.ts +60 -0
  47. package/build/loader/loader.d.ts.map +1 -1
  48. package/build/loader/loadingscreen.d.ts +2 -2
  49. package/build/loader/loadingscreen.d.ts.map +1 -1
  50. package/build/loader/parsers/fetchdata.d.ts.map +1 -1
  51. package/build/loader/parsers/fontface.d.ts +2 -2
  52. package/build/loader/parsers/mtl.d.ts +11 -0
  53. package/build/loader/parsers/mtl.d.ts.map +1 -0
  54. package/build/loader/parsers/obj.d.ts +11 -0
  55. package/build/loader/parsers/obj.d.ts.map +1 -0
  56. package/build/loader/parsers/tmx.d.ts +0 -1
  57. package/build/loader/parsers/tmx.d.ts.map +1 -1
  58. package/build/loader/parsers/video.d.ts.map +1 -1
  59. package/build/math/color.d.ts.map +1 -1
  60. package/build/math/math.d.ts +12 -0
  61. package/build/math/math.d.ts.map +1 -1
  62. package/build/math/matrix2d.d.ts +2 -2
  63. package/build/math/matrix2d.d.ts.map +1 -1
  64. package/build/math/matrix3d.d.ts +19 -4
  65. package/build/math/matrix3d.d.ts.map +1 -1
  66. package/build/math/observableVector2d.d.ts +1 -1
  67. package/build/math/observableVector2d.d.ts.map +1 -1
  68. package/build/math/observableVector3d.d.ts +1 -1
  69. package/build/math/observableVector3d.d.ts.map +1 -1
  70. package/build/math/vertex.d.ts +42 -0
  71. package/build/math/vertex.d.ts.map +1 -0
  72. package/build/particles/emitter.d.ts +2 -2
  73. package/build/particles/particle.d.ts.map +1 -1
  74. package/build/physics/bounds.d.ts +4 -3
  75. package/build/physics/bounds.d.ts.map +1 -1
  76. package/build/physics/collision.d.ts +1 -1
  77. package/build/physics/detector.d.ts +1 -1
  78. package/build/physics/quadtree.d.ts.map +1 -1
  79. package/build/physics/world.d.ts +3 -3
  80. package/build/physics/world.d.ts.map +1 -1
  81. package/build/plugin/plugin.d.ts +3 -3
  82. package/build/renderable/container.d.ts +32 -8
  83. package/build/renderable/container.d.ts.map +1 -1
  84. package/build/renderable/draggable.d.ts.map +1 -1
  85. package/build/renderable/dragndrop.d.ts.map +1 -1
  86. package/build/renderable/entity/entity.d.ts +7 -0
  87. package/build/renderable/entity/entity.d.ts.map +1 -1
  88. package/build/renderable/imagelayer.d.ts +1 -4
  89. package/build/renderable/imagelayer.d.ts.map +1 -1
  90. package/build/renderable/mesh.d.ts +147 -0
  91. package/build/renderable/mesh.d.ts.map +1 -0
  92. package/build/renderable/renderable.d.ts +59 -33
  93. package/build/renderable/renderable.d.ts.map +1 -1
  94. package/build/renderable/sprite.d.ts +2 -2
  95. package/build/renderable/sprite.d.ts.map +1 -1
  96. package/build/renderable/text/bitmaptext.d.ts +2 -11
  97. package/build/renderable/text/bitmaptext.d.ts.map +1 -1
  98. package/build/renderable/text/bitmaptextdata.d.ts +2 -0
  99. package/build/renderable/text/bitmaptextdata.d.ts.map +1 -1
  100. package/build/renderable/text/glyph.d.ts +1 -1
  101. package/build/renderable/text/glyph.d.ts.map +1 -1
  102. package/build/renderable/text/text.d.ts +2 -7
  103. package/build/renderable/text/text.d.ts.map +1 -1
  104. package/build/renderable/text/textmetrics.d.ts +2 -0
  105. package/build/renderable/text/textmetrics.d.ts.map +1 -1
  106. package/build/renderable/trail.d.ts +120 -0
  107. package/build/renderable/trail.d.ts.map +1 -0
  108. package/build/renderable/ui/uibaseelement.d.ts +0 -1
  109. package/build/renderable/ui/uibaseelement.d.ts.map +1 -1
  110. package/build/renderable/ui/uitextbutton.d.ts +2 -6
  111. package/build/renderable/ui/uitextbutton.d.ts.map +1 -1
  112. package/build/state/stage.d.ts +39 -55
  113. package/build/state/stage.d.ts.map +1 -1
  114. package/build/state/state.d.ts +15 -29
  115. package/build/state/state.d.ts.map +1 -1
  116. package/build/system/bootstrap.d.ts +13 -0
  117. package/build/system/bootstrap.d.ts.map +1 -0
  118. package/build/system/device.d.ts +5 -4
  119. package/build/system/device.d.ts.map +1 -1
  120. package/build/system/event.d.ts +26 -6
  121. package/build/system/event.d.ts.map +1 -1
  122. package/build/system/eventEmitter.d.ts +4 -4
  123. package/build/system/eventEmitter.d.ts.map +1 -1
  124. package/build/system/legacy_pool.d.ts +32 -4
  125. package/build/system/legacy_pool.d.ts.map +1 -1
  126. package/build/system/platform.d.ts.map +1 -1
  127. package/build/system/timer.d.ts.map +1 -1
  128. package/build/tweens/easing.d.ts +23 -34
  129. package/build/tweens/easing.d.ts.map +1 -1
  130. package/build/tweens/interpolation.d.ts +32 -0
  131. package/build/tweens/interpolation.d.ts.map +1 -1
  132. package/build/tweens/tween.d.ts +80 -42
  133. package/build/tweens/tween.d.ts.map +1 -1
  134. package/build/utils/function.d.ts +1 -1
  135. package/build/utils/function.d.ts.map +1 -1
  136. package/build/video/canvas/canvas_renderer.d.ts +34 -10
  137. package/build/video/canvas/canvas_renderer.d.ts.map +1 -1
  138. package/build/video/gradient.d.ts +116 -0
  139. package/build/video/gradient.d.ts.map +1 -0
  140. package/build/video/renderer.d.ts +60 -6
  141. package/build/video/renderer.d.ts.map +1 -1
  142. package/build/video/renderstate.d.ts +22 -4
  143. package/build/video/renderstate.d.ts.map +1 -1
  144. package/build/video/rendertarget/canvasrendertarget.d.ts +3 -1
  145. package/build/video/rendertarget/canvasrendertarget.d.ts.map +1 -1
  146. package/build/video/texture/atlas.d.ts.map +1 -1
  147. package/build/video/texture/cache.d.ts +2 -1
  148. package/build/video/texture/cache.d.ts.map +1 -1
  149. package/build/video/utils/dash.d.ts +15 -0
  150. package/build/video/utils/dash.d.ts.map +1 -0
  151. package/build/video/utils/tessellation.d.ts +29 -0
  152. package/build/video/utils/tessellation.d.ts.map +1 -0
  153. package/build/video/video.d.ts +16 -2
  154. package/build/video/video.d.ts.map +1 -1
  155. package/build/video/webgl/batchers/material_batcher.d.ts +65 -0
  156. package/build/video/webgl/batchers/material_batcher.d.ts.map +1 -0
  157. package/build/video/webgl/batchers/mesh_batcher.d.ts +20 -0
  158. package/build/video/webgl/batchers/mesh_batcher.d.ts.map +1 -0
  159. package/build/video/webgl/batchers/quad_batcher.d.ts +2 -45
  160. package/build/video/webgl/batchers/quad_batcher.d.ts.map +1 -1
  161. package/build/video/webgl/buffer/index.d.ts +5 -0
  162. package/build/video/webgl/buffer/index.d.ts.map +1 -1
  163. package/build/video/webgl/buffer/vertex.d.ts +5 -0
  164. package/build/video/webgl/buffer/vertex.d.ts.map +1 -1
  165. package/build/video/webgl/effects/blur.d.ts +36 -0
  166. package/build/video/webgl/effects/blur.d.ts.map +1 -0
  167. package/build/video/webgl/effects/chromaticAberration.d.ts +39 -0
  168. package/build/video/webgl/effects/chromaticAberration.d.ts.map +1 -0
  169. package/build/video/webgl/effects/desaturate.d.ts +32 -0
  170. package/build/video/webgl/effects/desaturate.d.ts.map +1 -0
  171. package/build/video/webgl/effects/dissolve.d.ts +42 -0
  172. package/build/video/webgl/effects/dissolve.d.ts.map +1 -0
  173. package/build/video/webgl/effects/dropShadow.d.ts +47 -0
  174. package/build/video/webgl/effects/dropShadow.d.ts.map +1 -0
  175. package/build/video/webgl/effects/flash.d.ts +46 -0
  176. package/build/video/webgl/effects/flash.d.ts.map +1 -0
  177. package/build/video/webgl/effects/glow.d.ts +48 -0
  178. package/build/video/webgl/effects/glow.d.ts.map +1 -0
  179. package/build/video/webgl/effects/hologram.d.ts +37 -0
  180. package/build/video/webgl/effects/hologram.d.ts.map +1 -0
  181. package/build/video/webgl/effects/invert.d.ts +29 -0
  182. package/build/video/webgl/effects/invert.d.ts.map +1 -0
  183. package/build/video/webgl/effects/outline.d.ts +49 -0
  184. package/build/video/webgl/effects/outline.d.ts.map +1 -0
  185. package/build/video/webgl/effects/pixelate.d.ts +38 -0
  186. package/build/video/webgl/effects/pixelate.d.ts.map +1 -0
  187. package/build/video/webgl/effects/scanline.d.ts +47 -0
  188. package/build/video/webgl/effects/scanline.d.ts.map +1 -0
  189. package/build/video/webgl/effects/sepia.d.ts +28 -0
  190. package/build/video/webgl/effects/sepia.d.ts.map +1 -0
  191. package/build/video/webgl/effects/tintPulse.d.ts +43 -0
  192. package/build/video/webgl/effects/tintPulse.d.ts.map +1 -0
  193. package/build/video/webgl/effects/wave.d.ts +43 -0
  194. package/build/video/webgl/effects/wave.d.ts.map +1 -0
  195. package/build/video/webgl/utils/program.d.ts.map +1 -1
  196. package/build/video/webgl/webgl_renderer.d.ts +40 -15
  197. package/build/video/webgl/webgl_renderer.d.ts.map +1 -1
  198. package/package.json +10 -10
  199. package/build/system/eventEmitter.spec.d.ts +0 -2
  200. package/build/system/eventEmitter.spec.d.ts.map +0 -1
@@ -0,0 +1,32 @@
1
+ /**
2
+ * A shader effect that desaturates (grayscales) the sprite.
3
+ * The `intensity` uniform controls how much color is removed
4
+ * (0.0 = full color, 1.0 = fully grayscale).
5
+ * Commonly used for disabled states, death effects, or petrification.
6
+ * @category Effects
7
+ * @see {@link Renderable.shader} for usage
8
+ * @example
9
+ * // full grayscale
10
+ * mySprite.shader = new DesaturateEffect(renderer);
11
+ * @example
12
+ * // partial desaturation (50%)
13
+ * mySprite.shader = new DesaturateEffect(renderer, { intensity: 0.5 });
14
+ */
15
+ export default class DesaturateEffect extends ShaderEffect {
16
+ /**
17
+ * @param {import("../webgl_renderer.js").default} renderer - the current renderer instance
18
+ * @param {object} [options] - effect options
19
+ * @param {number} [options.intensity=1.0] - desaturation intensity (0.0 = full color, 1.0 = grayscale)
20
+ */
21
+ constructor(renderer: import("../webgl_renderer.js").default, options?: {
22
+ intensity?: number | undefined;
23
+ });
24
+ intensity: number;
25
+ /**
26
+ * set the desaturation intensity
27
+ * @param {number} value - desaturation intensity (0.0 = full color, 1.0 = grayscale)
28
+ */
29
+ setIntensity(value: number): void;
30
+ }
31
+ import ShaderEffect from "../shadereffect.js";
32
+ //# sourceMappingURL=desaturate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"desaturate.d.ts","sourceRoot":"","sources":["../../../../src/video/webgl/effects/desaturate.js"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;GAaG;AACH;IACC;;;;OAIG;IACH,sBAJW,OAAO,sBAAsB,EAAE,OAAO,YAE9C;QAAyB,SAAS;KACpC,EAgBA;IAHA,kBACgE;IAIjE;;;OAGG;IACH,oBAFW,MAAM,QAKhB;CACD;yBA/CwB,oBAAoB"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * A shader effect that dissolves the sprite using a noise-based threshold.
3
+ * Pixels are discarded based on a pseudo-random noise pattern as the
4
+ * `progress` value increases from 0 to 1.
5
+ * Commonly used for death, spawn, or teleport effects.
6
+ * @category Effects
7
+ * @see {@link Renderable.shader} for usage
8
+ * @example
9
+ * // create a dissolve effect
10
+ * const dissolve = new DissolveEffect(renderer);
11
+ * mySprite.shader = dissolve;
12
+ *
13
+ * // animate the dissolve (0 = fully visible, 1 = fully dissolved)
14
+ * dissolve.setProgress(0.5);
15
+ */
16
+ export default class DissolveEffect extends ShaderEffect {
17
+ /**
18
+ * @param {import("../webgl_renderer.js").default} renderer - the current renderer instance
19
+ * @param {object} [options] - effect options
20
+ * @param {number} [options.progress=0.0] - dissolve progress (0.0 = visible, 1.0 = dissolved)
21
+ * @param {number[]} [options.edgeColor=[1.0, 0.5, 0.0]] - color of the dissolve edge
22
+ * @param {number} [options.edgeWidth=0.1] - width of the colored edge (0.0–1.0)
23
+ */
24
+ constructor(renderer: import("../webgl_renderer.js").default, options?: {
25
+ progress?: number | undefined;
26
+ edgeColor?: number[] | undefined;
27
+ edgeWidth?: number | undefined;
28
+ });
29
+ progress: number;
30
+ /**
31
+ * set the dissolve progress
32
+ * @param {number} value - dissolve progress (0.0 = visible, 1.0 = dissolved)
33
+ */
34
+ setProgress(value: number): void;
35
+ /**
36
+ * set the edge color
37
+ * @param {number[]} color - edge color as [r, g, b] (0.0–1.0)
38
+ */
39
+ setEdgeColor(color: number[]): void;
40
+ }
41
+ import ShaderEffect from "../shadereffect.js";
42
+ //# sourceMappingURL=dissolve.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dissolve.d.ts","sourceRoot":"","sources":["../../../../src/video/webgl/effects/dissolve.js"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;GAcG;AACH;IACC;;;;;;OAMG;IACH,sBANW,OAAO,sBAAsB,EAAE,OAAO,YAE9C;QAAyB,QAAQ;QACN,SAAS;QACX,SAAS;KACpC,EA0DA;IAPA,iBAAuC;IASxC;;;OAGG;IACH,mBAFW,MAAM,QAKhB;IAED;;;OAGG;IACH,oBAFW,MAAM,EAAE,QAIlB;CACD;yBApGwB,oBAAoB"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * A shader effect that adds a drop shadow beneath the sprite.
3
+ * Works by sampling the texture at an offset — if the offset position
4
+ * has an opaque pixel but the current position doesn't, the shadow is drawn.
5
+ * @category Effects
6
+ * @see {@link Renderable.shader} for usage
7
+ * @example
8
+ * // dark shadow offset to the bottom-right
9
+ * mySprite.shader = new DropShadowEffect(renderer, {
10
+ * offsetX: 3.0,
11
+ * offsetY: 3.0,
12
+ * color: [0.0, 0.0, 0.0],
13
+ * opacity: 0.5,
14
+ * });
15
+ */
16
+ export default class DropShadowEffect extends ShaderEffect {
17
+ /**
18
+ * @param {import("../webgl_renderer.js").default} renderer - the current renderer instance
19
+ * @param {object} [options] - effect options
20
+ * @param {number} [options.offsetX=2.0] - shadow x offset in texels
21
+ * @param {number} [options.offsetY=2.0] - shadow y offset in texels
22
+ * @param {number[]} [options.color=[0.0, 0.0, 0.0]] - shadow color as [r, g, b] (0.0–1.0)
23
+ * @param {number} [options.opacity=0.5] - shadow opacity (0.0–1.0)
24
+ * @param {number[]} [options.textureSize=[256, 256]] - texture dimensions [width, height]
25
+ */
26
+ constructor(renderer: import("../webgl_renderer.js").default, options?: {
27
+ offsetX?: number | undefined;
28
+ offsetY?: number | undefined;
29
+ color?: number[] | undefined;
30
+ opacity?: number | undefined;
31
+ textureSize?: number[] | undefined;
32
+ });
33
+ /**
34
+ * set the shadow offset
35
+ * @param {number} x - x offset in texels
36
+ * @param {number} y - y offset in texels
37
+ */
38
+ setOffset(x: number, y: number): void;
39
+ /**
40
+ * set the texture size
41
+ * @param {number} width - texture width in pixels
42
+ * @param {number} height - texture height in pixels
43
+ */
44
+ setTextureSize(width: number, height: number): void;
45
+ }
46
+ import ShaderEffect from "../shadereffect.js";
47
+ //# sourceMappingURL=dropShadow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dropShadow.d.ts","sourceRoot":"","sources":["../../../../src/video/webgl/effects/dropShadow.js"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;GAcG;AACH;IACC;;;;;;;;OAQG;IACH,sBARW,OAAO,sBAAsB,EAAE,OAAO,YAE9C;QAAyB,OAAO;QACP,OAAO;QACL,KAAK;QACP,OAAO;QACL,WAAW;KACxC,EAmCA;IAED;;;;OAIG;IACH,aAHW,MAAM,KACN,MAAM,QAIhB;IAED;;;;OAIG;IACH,sBAHW,MAAM,UACN,MAAM,QAIhB;CACD;yBAhFwB,oBAAoB"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * A shader effect that flashes the sprite with a solid color.
3
+ * Commonly used for hit feedback — flash white when the player takes damage.
4
+ * The `intensity` uniform controls how much of the flash color is mixed in
5
+ * (0.0 = original sprite, 1.0 = fully colored).
6
+ * @category Effects
7
+ * @see {@link Renderable.shader} for usage
8
+ * @example
9
+ * // create a white flash effect
10
+ * const flash = new FlashEffect(renderer);
11
+ * mySprite.shader = flash;
12
+ *
13
+ * // trigger the flash (e.g. on hit)
14
+ * flash.setIntensity(1.0);
15
+ *
16
+ * // fade it out over time (e.g. in update loop)
17
+ * flash.setIntensity(flash.intensity - dt / 200);
18
+ * @example
19
+ * // red flash
20
+ * const flash = new FlashEffect(renderer, { color: [1.0, 0.0, 0.0] });
21
+ */
22
+ export default class FlashEffect extends ShaderEffect {
23
+ /**
24
+ * @param {import("../webgl_renderer.js").default} renderer - the current renderer instance
25
+ * @param {object} [options] - effect options
26
+ * @param {number[]} [options.color=[1.0, 1.0, 1.0]] - flash color as [r, g, b] (0.0–1.0)
27
+ * @param {number} [options.intensity=0.0] - initial flash intensity (0.0–1.0)
28
+ */
29
+ constructor(renderer: import("../webgl_renderer.js").default, options?: {
30
+ color?: number[] | undefined;
31
+ intensity?: number | undefined;
32
+ });
33
+ intensity: number;
34
+ /**
35
+ * set the flash intensity
36
+ * @param {number} value - flash intensity (0.0 = no flash, 1.0 = fully colored)
37
+ */
38
+ setIntensity(value: number): void;
39
+ /**
40
+ * set the flash color
41
+ * @param {number[]} color - flash color as [r, g, b] (0.0–1.0)
42
+ */
43
+ setColor(color: number[]): void;
44
+ }
45
+ import ShaderEffect from "../shadereffect.js";
46
+ //# sourceMappingURL=flash.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flash.d.ts","sourceRoot":"","sources":["../../../../src/video/webgl/effects/flash.js"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH;IACC;;;;;OAKG;IACH,sBALW,OAAO,sBAAsB,EAAE,OAAO,YAE9C;QAA2B,KAAK;QACP,SAAS;KACpC,EAkBA;IAJA,kBAAyC;IAM1C;;;OAGG;IACH,oBAFW,MAAM,QAKhB;IAED;;;OAGG;IACH,gBAFW,MAAM,EAAE,QAIlB;CACD;yBAjEwB,oBAAoB"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * A shader effect that adds a colored glow around the sprite.
3
+ * Similar to OutlineEffect but with a soft, blurred edge instead of a hard line.
4
+ * Commonly used for power-ups, magic items, or selection highlights.
5
+ * @category Effects
6
+ * @see {@link Renderable.shader} for usage
7
+ * @example
8
+ * // blue glow for a magic item
9
+ * mySprite.shader = new GlowEffect(renderer, {
10
+ * color: [0.2, 0.5, 1.0],
11
+ * intensity: 1.5,
12
+ * });
13
+ */
14
+ export default class GlowEffect extends ShaderEffect {
15
+ /**
16
+ * @param {import("../webgl_renderer.js").default} renderer - the current renderer instance
17
+ * @param {object} [options] - effect options
18
+ * @param {number[]} [options.color=[1.0, 1.0, 1.0]] - glow color as [r, g, b] (0.0–1.0)
19
+ * @param {number} [options.width=3.0] - glow spread in pixels
20
+ * @param {number} [options.intensity=1.0] - glow brightness multiplier
21
+ * @param {number[]} [options.textureSize=[256, 256]] - texture dimensions [width, height]
22
+ */
23
+ constructor(renderer: import("../webgl_renderer.js").default, options?: {
24
+ color?: number[] | undefined;
25
+ width?: number | undefined;
26
+ intensity?: number | undefined;
27
+ textureSize?: number[] | undefined;
28
+ });
29
+ intensity: number;
30
+ /**
31
+ * set the glow color
32
+ * @param {number[]} color - glow color as [r, g, b] (0.0–1.0)
33
+ */
34
+ setColor(color: number[]): void;
35
+ /**
36
+ * set the glow intensity
37
+ * @param {number} value - glow brightness multiplier
38
+ */
39
+ setIntensity(value: number): void;
40
+ /**
41
+ * set the texture size
42
+ * @param {number} width - texture width in pixels
43
+ * @param {number} height - texture height in pixels
44
+ */
45
+ setTextureSize(width: number, height: number): void;
46
+ }
47
+ import ShaderEffect from "../shadereffect.js";
48
+ //# sourceMappingURL=glow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glow.d.ts","sourceRoot":"","sources":["../../../../src/video/webgl/effects/glow.js"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AACH;IACC;;;;;;;OAOG;IACH,sBAPW,OAAO,sBAAsB,EAAE,OAAO,YAE9C;QAA2B,KAAK;QACP,KAAK;QACL,SAAS;QACP,WAAW;KACxC,EAsCA;IANA,kBAAyC;IAQ1C;;;OAGG;IACH,gBAFW,MAAM,EAAE,QAIlB;IAED;;;OAGG;IACH,oBAFW,MAAM,QAKhB;IAED;;;;OAIG;IACH,sBAHW,MAAM,UACN,MAAM,QAIhB;CACD;yBAxFwB,oBAAoB"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * A shader effect that simulates a holographic projection with
3
+ * horizontal scan lines, color shift, and flickering.
4
+ * Commonly used for sci-fi UI, ghost/spirit characters, or tech displays.
5
+ * The `time` uniform should be updated each frame for animation.
6
+ * @category Effects
7
+ * @see {@link Renderable.shader} for usage
8
+ * @example
9
+ * const holo = new HologramEffect(renderer);
10
+ * mySprite.shader = holo;
11
+ * // update each frame
12
+ * holo.setTime(performance.now() / 1000);
13
+ */
14
+ export default class HologramEffect extends ShaderEffect {
15
+ /**
16
+ * @param {import("../webgl_renderer.js").default} renderer - the current renderer instance
17
+ * @param {object} [options] - effect options
18
+ * @param {number[]} [options.color=[0.1, 0.7, 1.0]] - hologram tint color [r, g, b]
19
+ * @param {number} [options.intensity=0.5] - effect intensity (0.0–1.0)
20
+ */
21
+ constructor(renderer: import("../webgl_renderer.js").default, options?: {
22
+ color?: number[] | undefined;
23
+ intensity?: number | undefined;
24
+ });
25
+ /**
26
+ * set the current time (call each frame for animation)
27
+ * @param {number} time - time in seconds
28
+ */
29
+ setTime(time: number): void;
30
+ /**
31
+ * set the hologram tint color
32
+ * @param {number[]} color - color as [r, g, b] (0.0–1.0)
33
+ */
34
+ setColor(color: number[]): void;
35
+ }
36
+ import ShaderEffect from "../shadereffect.js";
37
+ //# sourceMappingURL=hologram.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hologram.d.ts","sourceRoot":"","sources":["../../../../src/video/webgl/effects/hologram.js"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AACH;IACC;;;;;OAKG;IACH,sBALW,OAAO,sBAAsB,EAAE,OAAO,YAE9C;QAA2B,KAAK;QACP,SAAS;KACpC,EAyBA;IAED;;;OAGG;IACH,cAFW,MAAM,QAIhB;IAED;;;OAGG;IACH,gBAFW,MAAM,EAAE,QAIlB;CACD;yBA/DwB,oBAAoB"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * A shader effect that inverts the colors of the sprite.
3
+ * Commonly used for damage feedback, negative image, or X-ray effects.
4
+ * @category Effects
5
+ * @see {@link Renderable.shader} for usage
6
+ * @example
7
+ * mySprite.shader = new InvertEffect(renderer);
8
+ * @example
9
+ * // partial inversion
10
+ * mySprite.shader = new InvertEffect(renderer, { intensity: 0.5 });
11
+ */
12
+ export default class InvertEffect extends ShaderEffect {
13
+ /**
14
+ * @param {import("../webgl_renderer.js").default} renderer - the current renderer instance
15
+ * @param {object} [options] - effect options
16
+ * @param {number} [options.intensity=1.0] - inversion intensity (0.0 = original, 1.0 = fully inverted)
17
+ */
18
+ constructor(renderer: import("../webgl_renderer.js").default, options?: {
19
+ intensity?: number | undefined;
20
+ });
21
+ intensity: number;
22
+ /**
23
+ * set the inversion intensity
24
+ * @param {number} value - inversion intensity (0.0 = original, 1.0 = fully inverted)
25
+ */
26
+ setIntensity(value: number): void;
27
+ }
28
+ import ShaderEffect from "../shadereffect.js";
29
+ //# sourceMappingURL=invert.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invert.d.ts","sourceRoot":"","sources":["../../../../src/video/webgl/effects/invert.js"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH;IACC;;;;OAIG;IACH,sBAJW,OAAO,sBAAsB,EAAE,OAAO,YAE9C;QAAyB,SAAS;KACpC,EAgBA;IAHA,kBACgE;IAIjE;;;OAGG;IACH,oBAFW,MAAM,QAKhB;CACD;yBA5CwB,oBAAoB"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * A shader effect that draws a colored outline around the sprite.
3
+ * Works by sampling neighboring pixels — if any neighbor is opaque but the
4
+ * current pixel is transparent, it draws the outline color.
5
+ * Commonly used for selection highlights, hover states, or collectible glow.
6
+ * @category Effects
7
+ * @see {@link Renderable.shader} for usage
8
+ * @example
9
+ * // yellow outline for selection
10
+ * mySprite.shader = new OutlineEffect(renderer, {
11
+ * color: [1.0, 1.0, 0.0],
12
+ * width: 2.0,
13
+ * });
14
+ * @example
15
+ * // remove the effect
16
+ * mySprite.shader = undefined;
17
+ */
18
+ export default class OutlineEffect extends ShaderEffect {
19
+ /**
20
+ * @param {import("../webgl_renderer.js").default} renderer - the current renderer instance
21
+ * @param {object} [options] - effect options
22
+ * @param {number[]} [options.color=[1.0, 1.0, 1.0]] - outline color as [r, g, b] (0.0–1.0)
23
+ * @param {number} [options.width=1.0] - outline width in pixels
24
+ * @param {number[]} [options.textureSize] - texture dimensions [width, height] (defaults to renderer size)
25
+ */
26
+ constructor(renderer: import("../webgl_renderer.js").default, options?: {
27
+ color?: number[] | undefined;
28
+ width?: number | undefined;
29
+ textureSize?: number[] | undefined;
30
+ });
31
+ /**
32
+ * set the outline color
33
+ * @param {number[]} color - outline color as [r, g, b] (0.0–1.0)
34
+ */
35
+ setColor(color: number[]): void;
36
+ /**
37
+ * set the outline width
38
+ * @param {number} width - outline width in pixels
39
+ */
40
+ setWidth(width: number): void;
41
+ /**
42
+ * set the texture size for accurate outline width calculation
43
+ * @param {number} width - texture width in pixels
44
+ * @param {number} height - texture height in pixels
45
+ */
46
+ setTextureSize(width: number, height: number): void;
47
+ }
48
+ import ShaderEffect from "../shadereffect.js";
49
+ //# sourceMappingURL=outline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outline.d.ts","sourceRoot":"","sources":["../../../../src/video/webgl/effects/outline.js"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;GAgBG;AACH;IACC;;;;;;OAMG;IACH,sBANW,OAAO,sBAAsB,EAAE,OAAO,YAE9C;QAA2B,KAAK;QACP,KAAK;QACH,WAAW;KACxC,EAsCA;IAED;;;OAGG;IACH,gBAFW,MAAM,EAAE,QAIlB;IAED;;;OAGG;IACH,gBAFW,MAAM,QAIhB;IAED;;;;OAIG;IACH,sBAHW,MAAM,UACN,MAAM,QAIhB;CACD;yBA1FwB,oBAAoB"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * A shader effect that pixelates the sprite by snapping UV coordinates
3
+ * to a grid. Commonly used for teleport effects, transitions, or retro styling.
4
+ * @category Effects
5
+ * @see {@link Renderable.shader} for usage
6
+ * @example
7
+ * // moderate pixelation
8
+ * mySprite.shader = new PixelateEffect(renderer, { size: 8.0 });
9
+ * @example
10
+ * // animate the pixelation (e.g. for teleport)
11
+ * pixelate.setSize(pixelate.size + dt / 50);
12
+ */
13
+ export default class PixelateEffect extends ShaderEffect {
14
+ /**
15
+ * @param {import("../webgl_renderer.js").default} renderer - the current renderer instance
16
+ * @param {object} [options] - effect options
17
+ * @param {number} [options.size=4.0] - pixel size in texels (higher = more pixelated)
18
+ * @param {number[]} [options.textureSize=[256, 256]] - texture dimensions [width, height]
19
+ */
20
+ constructor(renderer: import("../webgl_renderer.js").default, options?: {
21
+ size?: number | undefined;
22
+ textureSize?: number[] | undefined;
23
+ });
24
+ size: number;
25
+ /**
26
+ * set the pixel size
27
+ * @param {number} size - pixel size in texels
28
+ */
29
+ setSize(size: number): void;
30
+ /**
31
+ * set the texture size
32
+ * @param {number} width - texture width in pixels
33
+ * @param {number} height - texture height in pixels
34
+ */
35
+ setTextureSize(width: number, height: number): void;
36
+ }
37
+ import ShaderEffect from "../shadereffect.js";
38
+ //# sourceMappingURL=pixelate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pixelate.d.ts","sourceRoot":"","sources":["../../../../src/video/webgl/effects/pixelate.js"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AACH;IACC;;;;;OAKG;IACH,sBALW,OAAO,sBAAsB,EAAE,OAAO,YAE9C;QAAyB,IAAI;QACF,WAAW;KACxC,EAoBA;IALA,aAA+B;IAOhC;;;OAGG;IACH,cAFW,MAAM,QAKhB;IAED;;;;OAIG;IACH,sBAHW,MAAM,UACN,MAAM,QAIhB;CACD;yBA3DwB,oBAAoB"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * A shader effect that overlays horizontal scanlines on the sprite.
3
+ * Can optionally add barrel distortion and vignette for a full CRT monitor look.
4
+ * @category Effects
5
+ * @see {@link Renderable.shader} for usage
6
+ * @example
7
+ * // simple scanlines
8
+ * mySprite.shader = new ScanlineEffect(renderer, { opacity: 0.3 });
9
+ * @example
10
+ * // full CRT look with curvature and vignette
11
+ * mySprite.shader = new ScanlineEffect(renderer, {
12
+ * opacity: 0.3,
13
+ * curvature: 0.02,
14
+ * vignetteStrength: 0.3,
15
+ * });
16
+ */
17
+ export default class ScanlineEffect extends ShaderEffect {
18
+ /**
19
+ * @param {import("../webgl_renderer.js").default} renderer - the current renderer instance
20
+ * @param {object} [options] - effect options
21
+ * @param {number} [options.opacity=0.25] - scanline darkness (0.0 = invisible, 1.0 = fully black lines)
22
+ * @param {number} [options.curvature=0.0] - barrel distortion strength (0.0 = flat, 0.02 = subtle CRT curve)
23
+ * @param {number} [options.vignetteStrength=0.0] - edge darkening strength (0.0 = none, 0.3 = subtle)
24
+ */
25
+ constructor(renderer: import("../webgl_renderer.js").default, options?: {
26
+ opacity?: number | undefined;
27
+ curvature?: number | undefined;
28
+ vignetteStrength?: number | undefined;
29
+ });
30
+ /**
31
+ * set the scanline opacity
32
+ * @param {number} opacity - scanline darkness (0.0–1.0)
33
+ */
34
+ setOpacity(opacity: number): void;
35
+ /**
36
+ * set the barrel curvature strength
37
+ * @param {number} curvature - distortion amount (0.0 = flat)
38
+ */
39
+ setCurvature(curvature: number): void;
40
+ /**
41
+ * set the vignette strength
42
+ * @param {number} strength - edge darkening (0.0 = none)
43
+ */
44
+ setVignetteStrength(strength: number): void;
45
+ }
46
+ import ShaderEffect from "../shadereffect.js";
47
+ //# sourceMappingURL=scanline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scanline.d.ts","sourceRoot":"","sources":["../../../../src/video/webgl/effects/scanline.js"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;GAeG;AACH;IACC;;;;;;OAMG;IACH,sBANW,OAAO,sBAAsB,EAAE,OAAO,YAE9C;QAAyB,OAAO;QACP,SAAS;QACT,gBAAgB;KAC3C,EAyCA;IAED;;;OAGG;IACH,oBAFW,MAAM,QAIhB;IAED;;;OAGG;IACH,wBAFW,MAAM,QAIhB;IAED;;;OAGG;IACH,8BAFW,MAAM,QAIhB;CACD;yBA3FwB,oBAAoB"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * A shader effect that applies a warm sepia (vintage photo) tone to the sprite.
3
+ * @category Effects
4
+ * @see {@link Renderable.shader} for usage
5
+ * @example
6
+ * mySprite.shader = new SepiaEffect(renderer);
7
+ * @example
8
+ * // partial sepia
9
+ * mySprite.shader = new SepiaEffect(renderer, { intensity: 0.5 });
10
+ */
11
+ export default class SepiaEffect extends ShaderEffect {
12
+ /**
13
+ * @param {import("../webgl_renderer.js").default} renderer - the current renderer instance
14
+ * @param {object} [options] - effect options
15
+ * @param {number} [options.intensity=1.0] - sepia intensity (0.0 = original, 1.0 = full sepia)
16
+ */
17
+ constructor(renderer: import("../webgl_renderer.js").default, options?: {
18
+ intensity?: number | undefined;
19
+ });
20
+ intensity: number;
21
+ /**
22
+ * set the sepia intensity
23
+ * @param {number} value - sepia intensity (0.0 = original, 1.0 = full sepia)
24
+ */
25
+ setIntensity(value: number): void;
26
+ }
27
+ import ShaderEffect from "../shadereffect.js";
28
+ //# sourceMappingURL=sepia.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sepia.d.ts","sourceRoot":"","sources":["../../../../src/video/webgl/effects/sepia.js"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AACH;IACC;;;;OAIG;IACH,sBAJW,OAAO,sBAAsB,EAAE,OAAO,YAE9C;QAAyB,SAAS;KACpC,EAmBA;IAHA,kBACgE;IAIjE;;;OAGG;IACH,oBAFW,MAAM,QAKhB;CACD;yBA9CwB,oBAAoB"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * A shader effect that pulses a color overlay on the sprite.
3
+ * Commonly used for status effects — poison green, freeze blue, fire red.
4
+ * The `time` uniform should be updated each frame for the pulse animation.
5
+ * @category Effects
6
+ * @see {@link Renderable.shader} for usage
7
+ * @example
8
+ * // poison pulse
9
+ * const poison = new TintPulseEffect(renderer, {
10
+ * color: [0.0, 1.0, 0.0],
11
+ * speed: 3.0,
12
+ * });
13
+ * mySprite.shader = poison;
14
+ *
15
+ * // update each frame
16
+ * poison.setTime(timer.getTime() / 1000);
17
+ */
18
+ export default class TintPulseEffect extends ShaderEffect {
19
+ /**
20
+ * @param {import("../webgl_renderer.js").default} renderer - the current renderer instance
21
+ * @param {object} [options] - effect options
22
+ * @param {number[]} [options.color=[1.0, 0.0, 0.0]] - pulse color as [r, g, b] (0.0–1.0)
23
+ * @param {number} [options.speed=2.0] - pulse speed (oscillations per second)
24
+ * @param {number} [options.intensity=0.3] - maximum tint strength (0.0–1.0)
25
+ */
26
+ constructor(renderer: import("../webgl_renderer.js").default, options?: {
27
+ color?: number[] | undefined;
28
+ speed?: number | undefined;
29
+ intensity?: number | undefined;
30
+ });
31
+ /**
32
+ * set the current time (call each frame for animation)
33
+ * @param {number} time - time in seconds
34
+ */
35
+ setTime(time: number): void;
36
+ /**
37
+ * set the pulse color
38
+ * @param {number[]} color - pulse color as [r, g, b] (0.0–1.0)
39
+ */
40
+ setColor(color: number[]): void;
41
+ }
42
+ import ShaderEffect from "../shadereffect.js";
43
+ //# sourceMappingURL=tintPulse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tintPulse.d.ts","sourceRoot":"","sources":["../../../../src/video/webgl/effects/tintPulse.js"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;GAgBG;AACH;IACC;;;;;;OAMG;IACH,sBANW,OAAO,sBAAsB,EAAE,OAAO,YAE9C;QAA2B,KAAK;QACP,KAAK;QACL,SAAS;KACpC,EAqBA;IAED;;;OAGG;IACH,cAFW,MAAM,QAIhB;IAED;;;OAGG;IACH,gBAFW,MAAM,EAAE,QAIlB;CACD;yBAhEwB,oBAAoB"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * A shader effect that applies a sine wave distortion to the sprite.
3
+ * Commonly used for underwater, heat haze, or dream sequence effects.
4
+ * The `time` uniform should be updated each frame for animation.
5
+ * @category Effects
6
+ * @see {@link Renderable.shader} for usage
7
+ * @example
8
+ * const wave = new WaveEffect(renderer, { amplitude: 0.01, frequency: 10.0 });
9
+ * mySprite.shader = wave;
10
+ * // update each frame
11
+ * wave.setTime(performance.now() / 1000);
12
+ */
13
+ export default class WaveEffect extends ShaderEffect {
14
+ /**
15
+ * @param {import("../webgl_renderer.js").default} renderer - the current renderer instance
16
+ * @param {object} [options] - effect options
17
+ * @param {number} [options.amplitude=0.01] - wave displacement strength (in UV space, 0.01 = subtle)
18
+ * @param {number} [options.frequency=10.0] - number of waves across the sprite
19
+ * @param {number} [options.speed=2.0] - wave animation speed
20
+ */
21
+ constructor(renderer: import("../webgl_renderer.js").default, options?: {
22
+ amplitude?: number | undefined;
23
+ frequency?: number | undefined;
24
+ speed?: number | undefined;
25
+ });
26
+ /**
27
+ * set the current time (call each frame for animation)
28
+ * @param {number} time - time in seconds
29
+ */
30
+ setTime(time: number): void;
31
+ /**
32
+ * set the wave amplitude
33
+ * @param {number} amplitude - displacement strength in UV space
34
+ */
35
+ setAmplitude(amplitude: number): void;
36
+ /**
37
+ * set the wave frequency
38
+ * @param {number} frequency - number of waves
39
+ */
40
+ setFrequency(frequency: number): void;
41
+ }
42
+ import ShaderEffect from "../shadereffect.js";
43
+ //# sourceMappingURL=wave.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wave.d.ts","sourceRoot":"","sources":["../../../../src/video/webgl/effects/wave.js"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AACH;IACC;;;;;;OAMG;IACH,sBANW,OAAO,sBAAsB,EAAE,OAAO,YAE9C;QAAyB,SAAS;QACT,SAAS;QACT,KAAK;KAChC,EAqBA;IAED;;;OAGG;IACH,cAFW,MAAM,QAIhB;IAED;;;OAGG;IACH,wBAFW,MAAM,QAIhB;IAED;;;OAGG;IACH,wBAFW,MAAM,QAIhB;CACD;yBAnEwB,oBAAoB"}
@@ -1 +1 @@
1
- {"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../../../../src/video/webgl/utils/program.js"],"names":[],"mappings":"AAeA;;;GAGG;AACH,0FA4CC"}
1
+ {"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../../../../src/video/webgl/utils/program.js"],"names":[],"mappings":"AAeA;;;GAGG;AACH,0FA2CC"}