melonjs 19.9.1 → 20.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 (274) hide show
  1. package/README.md +25 -14
  2. package/build/application/application.d.ts +70 -16
  3. package/build/application/application.d.ts.map +1 -1
  4. package/build/application/defaultApplicationSettings.d.ts +2 -2
  5. package/build/application/settings.d.ts +150 -53
  6. package/build/application/settings.d.ts.map +1 -1
  7. package/build/camera/camera2d.d.ts +1 -1
  8. package/build/camera/camera2d.d.ts.map +1 -1
  9. package/build/camera/camera3d.d.ts +13 -11
  10. package/build/camera/camera3d.d.ts.map +1 -1
  11. package/build/const.d.ts +55 -26
  12. package/build/const.d.ts.map +1 -1
  13. package/build/geometries/box3d.d.ts +156 -0
  14. package/build/geometries/box3d.d.ts.map +1 -0
  15. package/build/index.d.ts +33 -23
  16. package/build/index.d.ts.map +1 -1
  17. package/build/index.js +21839 -8025
  18. package/build/index.js.map +4 -4
  19. package/build/lang/deprecated.d.ts +4 -4
  20. package/build/lang/deprecated.d.ts.map +1 -1
  21. package/build/level/gltf/GLTFModel.d.ts +4 -0
  22. package/build/level/gltf/GLTFModel.d.ts.map +1 -1
  23. package/build/level/gltf/GLTFScene.d.ts +42 -6
  24. package/build/level/gltf/GLTFScene.d.ts.map +1 -1
  25. package/build/level/gltf/srgb.d.ts +20 -0
  26. package/build/level/gltf/srgb.d.ts.map +1 -0
  27. package/build/level/level.d.ts +21 -2
  28. package/build/level/level.d.ts.map +1 -1
  29. package/build/lighting/light3d.d.ts +61 -13
  30. package/build/lighting/light3d.d.ts.map +1 -1
  31. package/build/loader/loader.d.ts +49 -21
  32. package/build/loader/loader.d.ts.map +1 -1
  33. package/build/loader/parsers/gltf.d.ts.map +1 -1
  34. package/build/loader/parsers/mtl.d.ts +18 -0
  35. package/build/loader/parsers/mtl.d.ts.map +1 -1
  36. package/build/loader/parsers/obj.d.ts +49 -0
  37. package/build/loader/parsers/obj.d.ts.map +1 -1
  38. package/build/loader/parsers/pbr.d.ts +63 -0
  39. package/build/loader/parsers/pbr.d.ts.map +1 -0
  40. package/build/loader/parsers/shader.d.ts +32 -24
  41. package/build/loader/parsers/shader.d.ts.map +1 -1
  42. package/build/physics/adapter.d.ts +12 -1
  43. package/build/physics/adapter.d.ts.map +1 -1
  44. package/build/physics/broadphase/octree.d.ts +35 -0
  45. package/build/physics/broadphase/octree.d.ts.map +1 -1
  46. package/build/physics/builtin/body.d.ts +123 -6
  47. package/build/physics/builtin/body.d.ts.map +1 -1
  48. package/build/physics/builtin/builtin-adapter.d.ts.map +1 -1
  49. package/build/physics/builtin/detector.d.ts +12 -0
  50. package/build/physics/builtin/detector.d.ts.map +1 -1
  51. package/build/physics/builtin/raycast.d.ts.map +1 -1
  52. package/build/physics/builtin/sat3d.d.ts +59 -0
  53. package/build/physics/builtin/sat3d.d.ts.map +1 -0
  54. package/build/physics/response.d.ts +32 -0
  55. package/build/physics/response.d.ts.map +1 -1
  56. package/build/physics/world.d.ts +1 -0
  57. package/build/physics/world.d.ts.map +1 -1
  58. package/build/renderable/container.d.ts +1 -0
  59. package/build/renderable/container.d.ts.map +1 -1
  60. package/build/renderable/groundshadow.d.ts +92 -0
  61. package/build/renderable/groundshadow.d.ts.map +1 -0
  62. package/build/renderable/instanced_mesh.d.ts +286 -0
  63. package/build/renderable/instanced_mesh.d.ts.map +1 -0
  64. package/build/renderable/mesh.d.ts +242 -23
  65. package/build/renderable/mesh.d.ts.map +1 -1
  66. package/build/renderable/renderable.d.ts +6 -4
  67. package/build/renderable/renderable.d.ts.map +1 -1
  68. package/build/renderable/sprite3d.d.ts +17 -6
  69. package/build/renderable/sprite3d.d.ts.map +1 -1
  70. package/build/renderable/text/text.d.ts.map +1 -1
  71. package/build/system/device.d.ts +11 -40
  72. package/build/system/device.d.ts.map +1 -1
  73. package/build/system/platform.d.ts +0 -16
  74. package/build/system/platform.d.ts.map +1 -1
  75. package/build/utils/utils.d.ts +2 -0
  76. package/build/utils/utils.d.ts.map +1 -1
  77. package/build/video/canvas/canvas_renderer.d.ts +22 -16
  78. package/build/video/canvas/canvas_renderer.d.ts.map +1 -1
  79. package/build/video/{webgl/effects → effects}/blur.d.ts +2 -2
  80. package/build/video/effects/blur.d.ts.map +1 -0
  81. package/build/video/{webgl/effects → effects}/chromaticAberration.d.ts +2 -2
  82. package/build/video/effects/chromaticAberration.d.ts.map +1 -0
  83. package/build/video/{webgl/effects → effects}/colorMatrix.d.ts +3 -3
  84. package/build/video/effects/colorMatrix.d.ts.map +1 -0
  85. package/build/video/{webgl/effects → effects}/desaturate.d.ts +1 -1
  86. package/build/video/effects/desaturate.d.ts.map +1 -0
  87. package/build/video/{webgl/effects → effects}/dissolve.d.ts +2 -2
  88. package/build/video/effects/dissolve.d.ts.map +1 -0
  89. package/build/video/{webgl/effects → effects}/dropShadow.d.ts +2 -2
  90. package/build/video/effects/dropShadow.d.ts.map +1 -0
  91. package/build/video/{webgl/effects → effects}/flash.d.ts +2 -2
  92. package/build/video/effects/flash.d.ts.map +1 -0
  93. package/build/video/{webgl/effects → effects}/glow.d.ts +2 -2
  94. package/build/video/effects/glow.d.ts.map +1 -0
  95. package/build/video/effects/glsl_realization.d.ts +18 -0
  96. package/build/video/effects/glsl_realization.d.ts.map +1 -0
  97. package/build/video/{webgl/effects → effects}/hologram.d.ts +2 -2
  98. package/build/video/effects/hologram.d.ts.map +1 -0
  99. package/build/video/{webgl/effects → effects}/invert.d.ts +1 -1
  100. package/build/video/effects/invert.d.ts.map +1 -0
  101. package/build/video/{webgl/effects → effects}/outline.d.ts +2 -2
  102. package/build/video/effects/outline.d.ts.map +1 -0
  103. package/build/video/{webgl/effects → effects}/pixelate.d.ts +2 -2
  104. package/build/video/effects/pixelate.d.ts.map +1 -0
  105. package/build/video/{webgl/effects → effects}/radialGradient.d.ts +3 -4
  106. package/build/video/effects/radialGradient.d.ts.map +1 -0
  107. package/build/video/{webgl/effects → effects}/scanline.d.ts +2 -2
  108. package/build/video/effects/scanline.d.ts.map +1 -0
  109. package/build/video/{webgl/effects → effects}/sepia.d.ts +1 -1
  110. package/build/video/effects/sepia.d.ts.map +1 -0
  111. package/build/video/{webgl → effects}/shadereffect.d.ts +133 -25
  112. package/build/video/effects/shadereffect.d.ts.map +1 -0
  113. package/build/video/{webgl/effects → effects}/shine.d.ts +2 -2
  114. package/build/video/effects/shine.d.ts.map +1 -0
  115. package/build/video/{webgl/effects → effects}/tintPulse.d.ts +2 -2
  116. package/build/video/effects/tintPulse.d.ts.map +1 -0
  117. package/build/video/{webgl/effects → effects}/vignette.d.ts +2 -2
  118. package/build/video/effects/vignette.d.ts.map +1 -0
  119. package/build/video/{webgl/effects → effects}/wave.d.ts +2 -2
  120. package/build/video/effects/wave.d.ts.map +1 -0
  121. package/build/video/effects/wgsl/layout.d.ts +28 -0
  122. package/build/video/effects/wgsl/layout.d.ts.map +1 -0
  123. package/build/video/effects/wgsl/parse.d.ts +9 -0
  124. package/build/video/effects/wgsl/parse.d.ts.map +1 -0
  125. package/build/video/effects/wgsl/scaffold.d.ts +43 -0
  126. package/build/video/effects/wgsl/scaffold.d.ts.map +1 -0
  127. package/build/video/effects/wgsl_realization.d.ts +83 -0
  128. package/build/video/effects/wgsl_realization.d.ts.map +1 -0
  129. package/build/video/gpu/batcher.d.ts +71 -0
  130. package/build/video/gpu/batcher.d.ts.map +1 -0
  131. package/build/video/gpu/instancerecord.d.ts +164 -0
  132. package/build/video/gpu/instancerecord.d.ts.map +1 -0
  133. package/build/video/gpu/meshchunk.d.ts +49 -0
  134. package/build/video/gpu/meshchunk.d.ts.map +1 -0
  135. package/build/video/gpu/meshvertex.d.ts +54 -0
  136. package/build/video/gpu/meshvertex.d.ts.map +1 -0
  137. package/build/video/gpu/primitives.d.ts +60 -0
  138. package/build/video/gpu/primitives.d.ts.map +1 -0
  139. package/build/video/gpu/quadcorners.d.ts +11 -0
  140. package/build/video/gpu/quadcorners.d.ts.map +1 -0
  141. package/build/video/gpu/textureslots.d.ts +122 -0
  142. package/build/video/gpu/textureslots.d.ts.map +1 -0
  143. package/build/video/gpu/texturestore.d.ts +139 -0
  144. package/build/video/gpu/texturestore.d.ts.map +1 -0
  145. package/build/video/gpu/topology.d.ts +43 -0
  146. package/build/video/gpu/topology.d.ts.map +1 -0
  147. package/build/video/gpu/vertexformat.d.ts +72 -0
  148. package/build/video/gpu/vertexformat.d.ts.map +1 -0
  149. package/build/video/gradient.d.ts +14 -5
  150. package/build/video/gradient.d.ts.map +1 -1
  151. package/build/video/renderer.d.ts +153 -8
  152. package/build/video/renderer.d.ts.map +1 -1
  153. package/build/video/rendertarget/canvasrendertarget.d.ts +7 -6
  154. package/build/video/rendertarget/canvasrendertarget.d.ts.map +1 -1
  155. package/build/video/rendertarget/render_target_pool.d.ts +2 -2
  156. package/build/video/rendertarget/render_target_pool.d.ts.map +1 -1
  157. package/build/video/rendertarget/webglrendertarget.d.ts +38 -2
  158. package/build/video/rendertarget/webglrendertarget.d.ts.map +1 -1
  159. package/build/video/rendertarget/webgpurendertarget.d.ts +83 -0
  160. package/build/video/rendertarget/webgpurendertarget.d.ts.map +1 -0
  161. package/build/video/texture/atlas.d.ts.map +1 -1
  162. package/build/video/texture/cache.d.ts +20 -2
  163. package/build/video/texture/cache.d.ts.map +1 -1
  164. package/build/video/texture/noise_texture2d.d.ts +2 -2
  165. package/build/video/utils/autodetect.d.ts.map +1 -1
  166. package/build/video/video.d.ts +1 -55
  167. package/build/video/video.d.ts.map +1 -1
  168. package/build/video/webgl/batchers/batcher.d.ts +132 -35
  169. package/build/video/webgl/batchers/batcher.d.ts.map +1 -1
  170. package/build/video/webgl/batchers/lit_mesh_batcher.d.ts +14 -0
  171. package/build/video/webgl/batchers/lit_mesh_batcher.d.ts.map +1 -1
  172. package/build/video/webgl/batchers/lit_quad_batcher.d.ts +63 -36
  173. package/build/video/webgl/batchers/lit_quad_batcher.d.ts.map +1 -1
  174. package/build/video/webgl/batchers/material_batcher.d.ts +29 -20
  175. package/build/video/webgl/batchers/material_batcher.d.ts.map +1 -1
  176. package/build/video/webgl/batchers/mesh_batcher.d.ts +308 -14
  177. package/build/video/webgl/batchers/mesh_batcher.d.ts.map +1 -1
  178. package/build/video/webgl/batchers/primitive_batcher.d.ts +2 -2
  179. package/build/video/webgl/batchers/primitive_batcher.d.ts.map +1 -1
  180. package/build/video/webgl/batchers/quad_batcher.d.ts +0 -2
  181. package/build/video/webgl/batchers/quad_batcher.d.ts.map +1 -1
  182. package/build/video/webgl/buffer/index.d.ts +1 -1
  183. package/build/video/webgl/buffer/instance_buffer.d.ts +54 -0
  184. package/build/video/webgl/buffer/instance_buffer.d.ts.map +1 -0
  185. package/build/video/webgl/buffer/retained_geometry.d.ts +83 -0
  186. package/build/video/webgl/buffer/retained_geometry.d.ts.map +1 -0
  187. package/build/video/webgl/buffer/uniformblock.d.ts +81 -0
  188. package/build/video/webgl/buffer/uniformblock.d.ts.map +1 -0
  189. package/build/video/webgl/buffer/vertexstate.d.ts +101 -0
  190. package/build/video/webgl/buffer/vertexstate.d.ts.map +1 -0
  191. package/build/video/webgl/glshader.d.ts +101 -8
  192. package/build/video/webgl/glshader.d.ts.map +1 -1
  193. package/build/video/webgl/lighting/constants.d.ts +20 -8
  194. package/build/video/webgl/lighting/constants.d.ts.map +1 -1
  195. package/build/video/webgl/lighting/pack.d.ts +1 -1
  196. package/build/video/webgl/lighting/pack3d.d.ts +27 -11
  197. package/build/video/webgl/lighting/pack3d.d.ts.map +1 -1
  198. package/build/video/webgl/lighting/std140.d.ts +110 -0
  199. package/build/video/webgl/lighting/std140.d.ts.map +1 -0
  200. package/build/video/webgl/shaders/multitexture-lit.d.ts +7 -3
  201. package/build/video/webgl/shaders/multitexture-lit.d.ts.map +1 -1
  202. package/build/video/webgl/texture/store.d.ts +52 -0
  203. package/build/video/webgl/texture/store.d.ts.map +1 -0
  204. package/build/video/webgl/utils/maxtextures.d.ts +37 -0
  205. package/build/video/webgl/utils/maxtextures.d.ts.map +1 -0
  206. package/build/video/webgl/utils/samplercache.d.ts +69 -0
  207. package/build/video/webgl/utils/samplercache.d.ts.map +1 -0
  208. package/build/video/webgl/utils/string.d.ts +16 -0
  209. package/build/video/webgl/utils/string.d.ts.map +1 -1
  210. package/build/video/webgl/utils/topology.d.ts +24 -0
  211. package/build/video/webgl/utils/topology.d.ts.map +1 -0
  212. package/build/video/webgl/utils/vertexformat.d.ts +27 -0
  213. package/build/video/webgl/utils/vertexformat.d.ts.map +1 -0
  214. package/build/video/webgl/webgl_renderer.d.ts +148 -30
  215. package/build/video/webgl/webgl_renderer.d.ts.map +1 -1
  216. package/build/video/webgpu/batchers/lit_mesh_batcher.d.ts +40 -0
  217. package/build/video/webgpu/batchers/lit_mesh_batcher.d.ts.map +1 -0
  218. package/build/video/webgpu/batchers/lit_quad_batcher.d.ts +82 -0
  219. package/build/video/webgpu/batchers/lit_quad_batcher.d.ts.map +1 -0
  220. package/build/video/webgpu/batchers/mesh_batcher.d.ts +301 -0
  221. package/build/video/webgpu/batchers/mesh_batcher.d.ts.map +1 -0
  222. package/build/video/webgpu/batchers/primitive_batcher.d.ts +39 -0
  223. package/build/video/webgpu/batchers/primitive_batcher.d.ts.map +1 -0
  224. package/build/video/webgpu/batchers/quad_batcher.d.ts +143 -0
  225. package/build/video/webgpu/batchers/quad_batcher.d.ts.map +1 -0
  226. package/build/video/webgpu/batchers/webgpu_batcher.d.ts +70 -0
  227. package/build/video/webgpu/batchers/webgpu_batcher.d.ts.map +1 -0
  228. package/build/video/webgpu/buffer/arena.d.ts +64 -0
  229. package/build/video/webgpu/buffer/arena.d.ts.map +1 -0
  230. package/build/video/webgpu/buffer/instance_buffer.d.ts +65 -0
  231. package/build/video/webgpu/buffer/instance_buffer.d.ts.map +1 -0
  232. package/build/video/webgpu/buffer/retained_geometry.d.ts +55 -0
  233. package/build/video/webgpu/buffer/retained_geometry.d.ts.map +1 -0
  234. package/build/video/webgpu/buffer/uniformring.d.ts +68 -0
  235. package/build/video/webgpu/buffer/uniformring.d.ts.map +1 -0
  236. package/build/video/webgpu/effect_binding.d.ts +17 -0
  237. package/build/video/webgpu/effect_binding.d.ts.map +1 -0
  238. package/build/video/webgpu/pipeline/bindgroups.d.ts +36 -0
  239. package/build/video/webgpu/pipeline/bindgroups.d.ts.map +1 -0
  240. package/build/video/webgpu/pipeline/cache.d.ts +173 -0
  241. package/build/video/webgpu/pipeline/cache.d.ts.map +1 -0
  242. package/build/video/webgpu/renderers/tmxlayer/orthogonal.d.ts +90 -0
  243. package/build/video/webgpu/renderers/tmxlayer/orthogonal.d.ts.map +1 -0
  244. package/build/video/webgpu/shaders/mesh-instanced.d.ts +60 -0
  245. package/build/video/webgpu/shaders/mesh-instanced.d.ts.map +1 -0
  246. package/build/video/webgpu/texture/compressed.d.ts +33 -0
  247. package/build/video/webgpu/texture/compressed.d.ts.map +1 -0
  248. package/build/video/webgpu/texture/frametexture.d.ts +65 -0
  249. package/build/video/webgpu/texture/frametexture.d.ts.map +1 -0
  250. package/build/video/webgpu/texture/store.d.ts +149 -0
  251. package/build/video/webgpu/texture/store.d.ts.map +1 -0
  252. package/build/video/webgpu/webgpu_renderer.d.ts +536 -0
  253. package/build/video/webgpu/webgpu_renderer.d.ts.map +1 -0
  254. package/package.json +2 -2
  255. package/build/video/webgl/effects/blur.d.ts.map +0 -1
  256. package/build/video/webgl/effects/chromaticAberration.d.ts.map +0 -1
  257. package/build/video/webgl/effects/colorMatrix.d.ts.map +0 -1
  258. package/build/video/webgl/effects/desaturate.d.ts.map +0 -1
  259. package/build/video/webgl/effects/dissolve.d.ts.map +0 -1
  260. package/build/video/webgl/effects/dropShadow.d.ts.map +0 -1
  261. package/build/video/webgl/effects/flash.d.ts.map +0 -1
  262. package/build/video/webgl/effects/glow.d.ts.map +0 -1
  263. package/build/video/webgl/effects/hologram.d.ts.map +0 -1
  264. package/build/video/webgl/effects/invert.d.ts.map +0 -1
  265. package/build/video/webgl/effects/outline.d.ts.map +0 -1
  266. package/build/video/webgl/effects/pixelate.d.ts.map +0 -1
  267. package/build/video/webgl/effects/radialGradient.d.ts.map +0 -1
  268. package/build/video/webgl/effects/scanline.d.ts.map +0 -1
  269. package/build/video/webgl/effects/sepia.d.ts.map +0 -1
  270. package/build/video/webgl/effects/shine.d.ts.map +0 -1
  271. package/build/video/webgl/effects/tintPulse.d.ts.map +0 -1
  272. package/build/video/webgl/effects/vignette.d.ts.map +0 -1
  273. package/build/video/webgl/effects/wave.d.ts.map +0 -1
  274. package/build/video/webgl/shadereffect.d.ts.map +0 -1
@@ -15,12 +15,9 @@
15
15
  */
16
16
  export default class CanvasRenderer extends Renderer {
17
17
  cache: TextureCache;
18
+ onGameReset: () => void;
18
19
  _lightCache: WeakMap<object, any> | undefined;
19
20
  _frameTexture: any;
20
- /**
21
- * Reset the canvas transform to identity
22
- */
23
- resetTransform(): void;
24
21
  /**
25
22
  * set/change the current projection matrix.
26
23
  * In Canvas mode, this applies the ortho projection as a canvas 2D transform
@@ -101,6 +98,27 @@ export default class CanvasRenderer extends Renderer {
101
98
  * @see CanvasRenderer#createPattern
102
99
  */
103
100
  drawPattern(pattern: CanvasPattern, x: number, y: number, width: number, height: number): void;
101
+ /**
102
+ * Draw a textured triangle mesh.
103
+ * Uses per-triangle affine texture mapping with back-to-front depth
104
+ * sorting (painter's algorithm) and optional backface culling.
105
+ * Note: the painter's algorithm works well for convex shapes but
106
+ * may produce visual artifacts with concave or self-overlapping
107
+ * geometry (e.g. a torus), as Canvas 2D has no hardware depth
108
+ * buffer. Use the WebGL renderer for correct depth ordering on
109
+ * complex meshes.
110
+ *
111
+ * Multi-material meshes (`mesh.vertexColors` present) render here
112
+ * via per-triangle solid fill — each triangle's three vertices
113
+ * share one baked material color, so we read `vertexColors[v0]`
114
+ * and use it as the triangle's fillStyle, multiplied by
115
+ * `currentTint`. The single shared texture (typically the 1×1
116
+ * white-pixel fallback for Kd-only models) is bypassed in that
117
+ * path. Canvas can't do per-material textures; if you need that,
118
+ * use the WebGL renderer.
119
+ * @param {Mesh} mesh - a Mesh renderable or compatible object
120
+ */
121
+ drawMesh(mesh: Mesh): void;
104
122
  _meshColorCanvas: HTMLCanvasElement | OffscreenCanvas | undefined;
105
123
  _meshColorCtx: RenderingContext | OffscreenCanvasRenderingContext2D | null | undefined;
106
124
  _meshSortBuf: Float64Array<ArrayBuffer> | undefined;
@@ -301,18 +319,6 @@ export default class CanvasRenderer extends Renderer {
301
319
  * @param {number} f - the f component to multiply the current matrix by
302
320
  */
303
321
  transform(a: Matrix2d | Matrix3d | number, b: number, c: number, d: number, e: number, f: number): void;
304
- /**
305
- * clip the given region from the original canvas. Once a region is clipped,
306
- * all future drawing will be limited to the clipped region.
307
- * You can however save the current region using the save(),
308
- * and restore it (with the restore() method) any time in the future.
309
- * (<u>this is an experimental feature !</u>)
310
- * @param {number} x
311
- * @param {number} y
312
- * @param {number} width
313
- * @param {number} height
314
- */
315
- clipRect(x: number, y: number, width: number, height: number): void;
316
322
  /**
317
323
  * A mask limits rendering elements to the shape and position of the given mask object.
318
324
  * If the drawing or rendering area is larger than the mask, only the intersecting part of the renderable will be visible.
@@ -1 +1 @@
1
- {"version":3,"file":"canvas_renderer.d.ts","sourceRoot":"","sources":["../../../src/video/canvas/canvas_renderer.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"canvas_renderer.d.ts","sourceRoot":"","sources":["../../../src/video/canvas/canvas_renderer.js"],"names":[],"mappings":"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"}
@@ -15,7 +15,7 @@ export default class BlurEffect extends ShaderEffect {
15
15
  * @param {number} [options.strength=1.0] - blur strength in texels
16
16
  * @param {number[]} [options.textureSize=[256, 256]] - texture dimensions [width, height]
17
17
  */
18
- constructor(renderer: import("../webgl_renderer.js").default, options?: {
18
+ constructor(renderer: any, options?: {
19
19
  strength?: number | undefined;
20
20
  textureSize?: number[] | undefined;
21
21
  });
@@ -32,5 +32,5 @@ export default class BlurEffect extends ShaderEffect {
32
32
  */
33
33
  setTextureSize(width: number, height: number): void;
34
34
  }
35
- import ShaderEffect from "../shadereffect.js";
35
+ import ShaderEffect from "./shadereffect.js";
36
36
  //# sourceMappingURL=blur.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blur.d.ts","sourceRoot":"","sources":["../../../src/video/effects/blur.js"],"names":[],"mappings":"AA4BA;;;;;;;;;GASG;AACH;IACC;;;;;OAKG;IACH,qCAHG;QAAyB,QAAQ;QACN,WAAW;KACxC,EA8BA;IALA,iBAAuC;IAOxC;;;OAGG;IACH,sBAFW,MAAM,QAKhB;IAED;;;;OAIG;IACH,sBAHW,MAAM,UACN,MAAM,QAIhB;CACD;yBA7FwB,mBAAmB"}
@@ -18,7 +18,7 @@ export default class ChromaticAberrationEffect extends ShaderEffect {
18
18
  * @param {number} [options.offset=3.0] - channel offset in texels
19
19
  * @param {number[]} [options.textureSize=[256, 256]] - texture dimensions [width, height]
20
20
  */
21
- constructor(renderer: import("../webgl_renderer.js").default, options?: {
21
+ constructor(renderer: any, options?: {
22
22
  offset?: number | undefined;
23
23
  textureSize?: number[] | undefined;
24
24
  });
@@ -35,5 +35,5 @@ export default class ChromaticAberrationEffect extends ShaderEffect {
35
35
  */
36
36
  setTextureSize(width: number, height: number): void;
37
37
  }
38
- import ShaderEffect from "../shadereffect.js";
38
+ import ShaderEffect from "./shadereffect.js";
39
39
  //# sourceMappingURL=chromaticAberration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chromaticAberration.d.ts","sourceRoot":"","sources":["../../../src/video/effects/chromaticAberration.js"],"names":[],"mappings":"AAqBA;;;;;;;;;;;;GAYG;AACH;IACC;;;;;OAKG;IACH,qCAHG;QAAyB,MAAM;QACJ,WAAW;KACxC,EAuBA;IALA,eAAmC;IAOpC;;;OAGG;IACH,kBAFW,MAAM,QAKhB;IAED;;;;OAIG;IACH,sBAHW,MAAM,UACN,MAAM,QAIhB;CACD;yBAlFwB,mBAAmB"}
@@ -19,7 +19,7 @@ export default class ColorMatrixEffect extends ShaderEffect {
19
19
  * @param {object} [options] - effect options
20
20
  * @param {ColorMatrix} [options.matrix] - an initial color matrix. Defaults to identity.
21
21
  */
22
- constructor(renderer: import("../webgl_renderer.js").default, options?: {
22
+ constructor(renderer: any, options?: {
23
23
  matrix?: ColorMatrix | undefined;
24
24
  });
25
25
  /**
@@ -87,6 +87,6 @@ export default class ColorMatrixEffect extends ShaderEffect {
87
87
  */
88
88
  transform(...args: number[]): this;
89
89
  }
90
- import ShaderEffect from "../shadereffect.js";
91
- import { ColorMatrix } from "../../../math/color_matrix.ts";
90
+ import ShaderEffect from "./shadereffect.js";
91
+ import { ColorMatrix } from "../../math/color_matrix.ts";
92
92
  //# sourceMappingURL=colorMatrix.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"colorMatrix.d.ts","sourceRoot":"","sources":["../../../src/video/effects/colorMatrix.js"],"names":[],"mappings":"AAgBA;;;;;;;;;;;;;;GAcG;AACH;IACC;;;;OAIG;IACH,qCAFG;QAA8B,MAAM;KACtC,EAkBA;IANA;;;OAGG;IACH,qBAAkD;IAInD;;;OAGG;IACH,qBAEC;IAED;;;OAGG;IACH,SAFa,IAAI,CAMhB;IAED;;;;OAIG;IACH,mBAHW,MAAM,GACJ,IAAI,CAMhB;IAED;;;;OAIG;IACH,iBAHW,MAAM,GACJ,IAAI,CAMhB;IAED;;;;OAIG;IACH,iBAHW,MAAM,GACJ,IAAI,CAMhB;IAED;;;;OAIG;IACH,iBAHW,MAAM,GACJ,IAAI,CAMhB;IAED;;;;OAIG;IACH,eAHW,MAAM,GACJ,IAAI,CAMhB;IAED;;;;OAIG;IACH,sBAHW,MAAM,GACJ,IAAI,CAMhB;IAED;;;;OAIG;IACH,iBAHW,WAAW,GACT,IAAI,CAMhB;IAED;;;;;OAKG;IACH,mBAHc,MAAM,EAAA,GACP,IAAI,CAMhB;CACD;yBAjKwB,mBAAmB;4BADhB,4BAA4B"}
@@ -16,7 +16,7 @@ export default class DesaturateEffect extends ColorMatrixEffect {
16
16
  * @param {object} [options] - effect options
17
17
  * @param {number} [options.intensity=1.0] - desaturation intensity (0.0 = full color, 1.0 = grayscale)
18
18
  */
19
- constructor(renderer: import("../webgl_renderer.js").default, options?: {
19
+ constructor(renderer: any, options?: {
20
20
  intensity?: number | undefined;
21
21
  });
22
22
  intensity: number;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"desaturate.d.ts","sourceRoot":"","sources":["../../../src/video/effects/desaturate.js"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AACH;IACC;;;;OAIG;IACH,qCAFG;QAAyB,SAAS;KACpC,EAMA;IAHA,kBACgE;IAIjE;;;OAGG;IACH,oBAFW,MAAM,QAKhB;CACD;8BAnC6B,kBAAkB"}
@@ -21,7 +21,7 @@ export default class DissolveEffect extends ShaderEffect {
21
21
  * @param {number[]} [options.edgeColor=[1.0, 0.5, 0.0]] - color of the dissolve edge
22
22
  * @param {number} [options.edgeWidth=0.1] - width of the colored edge (0.0–1.0)
23
23
  */
24
- constructor(renderer: import("../webgl_renderer.js").default, options?: {
24
+ constructor(renderer: any, options?: {
25
25
  progress?: number | undefined;
26
26
  edgeColor?: number[] | undefined;
27
27
  edgeWidth?: number | undefined;
@@ -38,5 +38,5 @@ export default class DissolveEffect extends ShaderEffect {
38
38
  */
39
39
  setEdgeColor(color: number[]): void;
40
40
  }
41
- import ShaderEffect from "../shadereffect.js";
41
+ import ShaderEffect from "./shadereffect.js";
42
42
  //# sourceMappingURL=dissolve.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dissolve.d.ts","sourceRoot":"","sources":["../../../src/video/effects/dissolve.js"],"names":[],"mappings":"AA8DA;;;;;;;;;;;;;;GAcG;AACH;IACC;;;;;;OAMG;IACH,qCAJG;QAAyB,QAAQ;QACN,SAAS;QACX,SAAS;KACpC,EA0DA;IAPA,iBAAuC;IASxC;;;OAGG;IACH,mBAFW,MAAM,QAKhB;IAED;;;OAGG;IACH,oBAFW,MAAM,EAAE,QAIlB;CACD;yBAhKwB,mBAAmB"}
@@ -23,7 +23,7 @@ export default class DropShadowEffect extends ShaderEffect {
23
23
  * @param {number} [options.opacity=0.5] - shadow opacity (0.0–1.0)
24
24
  * @param {number[]} [options.textureSize=[256, 256]] - texture dimensions [width, height]
25
25
  */
26
- constructor(renderer: import("../webgl_renderer.js").default, options?: {
26
+ constructor(renderer: any, options?: {
27
27
  offsetX?: number | undefined;
28
28
  offsetY?: number | undefined;
29
29
  color?: number[] | undefined;
@@ -43,5 +43,5 @@ export default class DropShadowEffect extends ShaderEffect {
43
43
  */
44
44
  setTextureSize(width: number, height: number): void;
45
45
  }
46
- import ShaderEffect from "../shadereffect.js";
46
+ import ShaderEffect from "./shadereffect.js";
47
47
  //# sourceMappingURL=dropShadow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dropShadow.d.ts","sourceRoot":"","sources":["../../../src/video/effects/dropShadow.js"],"names":[],"mappings":"AAkCA;;;;;;;;;;;;;;GAcG;AACH;IACC;;;;;;;;OAQG;IACH,qCANG;QAAyB,OAAO;QACP,OAAO;QACL,KAAK;QACP,OAAO;QACL,WAAW;KACxC,EA0CA;IAED;;;;OAIG;IACH,aAHW,MAAM,KACN,MAAM,QAIhB;IAED;;;;OAIG;IACH,sBAHW,MAAM,UACN,MAAM,QAIhB;CACD;yBAvHwB,mBAAmB"}
@@ -26,7 +26,7 @@ export default class FlashEffect extends ShaderEffect {
26
26
  * @param {number[]} [options.color=[1.0, 1.0, 1.0]] - flash color as [r, g, b] (0.0–1.0)
27
27
  * @param {number} [options.intensity=0.0] - initial flash intensity (0.0–1.0)
28
28
  */
29
- constructor(renderer: import("../webgl_renderer.js").default, options?: {
29
+ constructor(renderer: any, options?: {
30
30
  color?: number[] | undefined;
31
31
  intensity?: number | undefined;
32
32
  });
@@ -42,5 +42,5 @@ export default class FlashEffect extends ShaderEffect {
42
42
  */
43
43
  setColor(color: number[]): void;
44
44
  }
45
- import ShaderEffect from "../shadereffect.js";
45
+ import ShaderEffect from "./shadereffect.js";
46
46
  //# sourceMappingURL=flash.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flash.d.ts","sourceRoot":"","sources":["../../../src/video/effects/flash.js"],"names":[],"mappings":"AAgBA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH;IACC;;;;;OAKG;IACH,qCAHG;QAA2B,KAAK;QACP,SAAS;KACpC,EAkBA;IAJA,kBAAyC;IAM1C;;;OAGG;IACH,oBAFW,MAAM,QAKhB;IAED;;;OAGG;IACH,gBAFW,MAAM,EAAE,QAIlB;CACD;yBA/EwB,mBAAmB"}
@@ -20,7 +20,7 @@ export default class GlowEffect extends ShaderEffect {
20
20
  * @param {number} [options.intensity=1.0] - glow brightness multiplier
21
21
  * @param {number[]} [options.textureSize=[256, 256]] - texture dimensions [width, height]
22
22
  */
23
- constructor(renderer: import("../webgl_renderer.js").default, options?: {
23
+ constructor(renderer: any, options?: {
24
24
  color?: number[] | undefined;
25
25
  width?: number | undefined;
26
26
  intensity?: number | undefined;
@@ -44,5 +44,5 @@ export default class GlowEffect extends ShaderEffect {
44
44
  */
45
45
  setTextureSize(width: number, height: number): void;
46
46
  }
47
- import ShaderEffect from "../shadereffect.js";
47
+ import ShaderEffect from "./shadereffect.js";
48
48
  //# sourceMappingURL=glow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glow.d.ts","sourceRoot":"","sources":["../../../src/video/effects/glow.js"],"names":[],"mappings":"AAgCA;;;;;;;;;;;;GAYG;AACH;IACC;;;;;;;OAOG;IACH,qCALG;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;yBAtHwB,mBAAmB"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Assemble the complete GLSL program sources for a ShaderEffect fragment
3
+ * body: parse the builtins, build the vertex variant, and wrap the user's
4
+ * `apply()` with the texture-sampling boilerplate.
5
+ * @param {string} fragmentBody - the user body (GLSL, `vec4 apply(vec4, vec2)` convention)
6
+ * @returns {{vertex: string, fragment: string, screenTextures: Array<{name: string, repeat: string}>, noiseUV: boolean}} the assembled sources + builtin usage
7
+ * @ignore
8
+ */
9
+ export function buildGLSLProgram(fragmentBody: string): {
10
+ vertex: string;
11
+ fragment: string;
12
+ screenTextures: Array<{
13
+ name: string;
14
+ repeat: string;
15
+ }>;
16
+ noiseUV: boolean;
17
+ };
18
+ //# sourceMappingURL=glsl_realization.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glsl_realization.d.ts","sourceRoot":"","sources":["../../../src/video/effects/glsl_realization.js"],"names":[],"mappings":"AAiHA;;;;;;;GAOG;AACH,+CAJW,MAAM,GACJ;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,KAAK,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,CAAC,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAC,CA6BvH"}
@@ -18,7 +18,7 @@ export default class HologramEffect extends ShaderEffect {
18
18
  * @param {number[]} [options.color=[0.1, 0.7, 1.0]] - hologram tint color [r, g, b]
19
19
  * @param {number} [options.intensity=0.5] - effect intensity (0.0–1.0)
20
20
  */
21
- constructor(renderer: import("../webgl_renderer.js").default, options?: {
21
+ constructor(renderer: any, options?: {
22
22
  color?: number[] | undefined;
23
23
  intensity?: number | undefined;
24
24
  });
@@ -28,5 +28,5 @@ export default class HologramEffect extends ShaderEffect {
28
28
  */
29
29
  setColor(color: number[]): void;
30
30
  }
31
- import ShaderEffect from "../shadereffect.js";
31
+ import ShaderEffect from "./shadereffect.js";
32
32
  //# sourceMappingURL=hologram.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hologram.d.ts","sourceRoot":"","sources":["../../../src/video/effects/hologram.js"],"names":[],"mappings":"AAwBA;;;;;;;;;;;;GAYG;AACH;IACC;;;;;OAKG;IACH,qCAHG;QAA2B,KAAK;QACP,SAAS;KACpC,EAyBA;IAED;;;OAGG;IACH,gBAFW,MAAM,EAAE,QAIlB;CACD;yBA7EwB,mBAAmB"}
@@ -15,7 +15,7 @@ export default class InvertEffect extends ColorMatrixEffect {
15
15
  * @param {object} [options] - effect options
16
16
  * @param {number} [options.intensity=1.0] - inversion intensity (0.0 = original, 1.0 = fully inverted)
17
17
  */
18
- constructor(renderer: import("../webgl_renderer.js").default, options?: {
18
+ constructor(renderer: any, options?: {
19
19
  intensity?: number | undefined;
20
20
  });
21
21
  intensity: number;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invert.d.ts","sourceRoot":"","sources":["../../../src/video/effects/invert.js"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH;IACC;;;;OAIG;IACH,qCAFG;QAAyB,SAAS;KACpC,EAMA;IAHA,kBACgE;IAIjE;;;OAGG;IACH,oBAFW,MAAM,QAKhB;CACD;8BAlC6B,kBAAkB"}
@@ -23,7 +23,7 @@ export default class OutlineEffect extends ShaderEffect {
23
23
  * @param {number} [options.width=1.0] - outline width in pixels
24
24
  * @param {number[]} [options.textureSize] - texture dimensions [width, height] (defaults to renderer size)
25
25
  */
26
- constructor(renderer: import("../webgl_renderer.js").default, options?: {
26
+ constructor(renderer: any, options?: {
27
27
  color?: number[] | undefined;
28
28
  width?: number | undefined;
29
29
  textureSize?: number[] | undefined;
@@ -45,5 +45,5 @@ export default class OutlineEffect extends ShaderEffect {
45
45
  */
46
46
  setTextureSize(width: number, height: number): void;
47
47
  }
48
- import ShaderEffect from "../shadereffect.js";
48
+ import ShaderEffect from "./shadereffect.js";
49
49
  //# sourceMappingURL=outline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outline.d.ts","sourceRoot":"","sources":["../../../src/video/effects/outline.js"],"names":[],"mappings":"AAkCA;;;;;;;;;;;;;;;;GAgBG;AACH;IACC;;;;;;OAMG;IACH,qCAJG;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;yBA1HwB,mBAAmB"}
@@ -17,7 +17,7 @@ export default class PixelateEffect extends ShaderEffect {
17
17
  * @param {number} [options.size=4.0] - pixel size in texels (higher = more pixelated)
18
18
  * @param {number[]} [options.textureSize=[256, 256]] - texture dimensions [width, height]
19
19
  */
20
- constructor(renderer: import("../webgl_renderer.js").default, options?: {
20
+ constructor(renderer: any, options?: {
21
21
  size?: number | undefined;
22
22
  textureSize?: number[] | undefined;
23
23
  });
@@ -34,5 +34,5 @@ export default class PixelateEffect extends ShaderEffect {
34
34
  */
35
35
  setTextureSize(width: number, height: number): void;
36
36
  }
37
- import ShaderEffect from "../shadereffect.js";
37
+ import ShaderEffect from "./shadereffect.js";
38
38
  //# sourceMappingURL=pixelate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pixelate.d.ts","sourceRoot":"","sources":["../../../src/video/effects/pixelate.js"],"names":[],"mappings":"AAkBA;;;;;;;;;;;GAWG;AACH;IACC;;;;;OAKG;IACH,qCAHG;QAAyB,IAAI;QACF,WAAW;KACxC,EAoBA;IALA,aAA+B;IAOhC;;;OAGG;IACH,cAFW,MAAM,QAKhB;IAED;;;;OAIG;IACH,sBAHW,MAAM,UACN,MAAM,QAIhB;CACD;yBA3EwB,mBAAmB"}
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * additional import for TypeScript
3
- * @import { Color } from "../../../math/color.ts";
3
+ * @import { Color } from "../../math/color.ts";
4
4
  * @import { default as WebGLRenderer } from "../webgl_renderer.js";
5
5
  */
6
6
  /**
@@ -99,7 +99,6 @@ export default class RadialGradientEffect extends ShaderEffect {
99
99
  */
100
100
  setIntensity(intensity: number): void;
101
101
  }
102
- import ShaderEffect from "../shadereffect.js";
103
- import type { Color } from "../../../math/color.ts";
104
- import type { default as WebGLRenderer } from "../webgl_renderer.js";
102
+ import ShaderEffect from "./shadereffect.js";
103
+ import type { Color } from "../../math/color.ts";
105
104
  //# sourceMappingURL=radialGradient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radialGradient.d.ts","sourceRoot":"","sources":["../../../src/video/effects/radialGradient.js"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsEG;AACH;IACC;;;;;OAKG;IACH,+CAHG;QAAwB,KAAK;QACJ,SAAS;KACpC,EA2DA;IAZA,qCAAoC;IAcrC;;;;OAIG;IACH,gBAFW,KAAK,QAOf;IAED;;;;OAIG;IACH,wBAFW,MAAM,QAIhB;CACD;yBAtKwB,mBAAmB;2BAIlB,qBAAqB"}
@@ -22,7 +22,7 @@ export default class ScanlineEffect extends ShaderEffect {
22
22
  * @param {number} [options.curvature=0.0] - barrel distortion strength (0.0 = flat, 0.02 = subtle CRT curve)
23
23
  * @param {number} [options.vignetteStrength=0.0] - edge darkening strength (0.0 = none, 0.3 = subtle)
24
24
  */
25
- constructor(renderer: import("../webgl_renderer.js").default, options?: {
25
+ constructor(renderer: any, options?: {
26
26
  opacity?: number | undefined;
27
27
  curvature?: number | undefined;
28
28
  vignetteStrength?: number | undefined;
@@ -43,5 +43,5 @@ export default class ScanlineEffect extends ShaderEffect {
43
43
  */
44
44
  setVignetteStrength(strength: number): void;
45
45
  }
46
- import ShaderEffect from "../shadereffect.js";
46
+ import ShaderEffect from "./shadereffect.js";
47
47
  //# sourceMappingURL=scanline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scanline.d.ts","sourceRoot":"","sources":["../../../src/video/effects/scanline.js"],"names":[],"mappings":"AA0CA;;;;;;;;;;;;;;;GAeG;AACH;IACC;;;;;;OAMG;IACH,qCAJG;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;yBAnIwB,mBAAmB"}
@@ -14,7 +14,7 @@ export default class SepiaEffect extends ColorMatrixEffect {
14
14
  * @param {object} [options] - effect options
15
15
  * @param {number} [options.intensity=1.0] - sepia intensity (0.0 = original, 1.0 = full sepia)
16
16
  */
17
- constructor(renderer: import("../webgl_renderer.js").default, options?: {
17
+ constructor(renderer: any, options?: {
18
18
  intensity?: number | undefined;
19
19
  });
20
20
  intensity: number;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sepia.d.ts","sourceRoot":"","sources":["../../../src/video/effects/sepia.js"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AACH;IACC;;;;OAIG;IACH,qCAFG;QAAyB,SAAS;KACpC,EAMA;IAHA,kBACgE;IAIjE;;;OAGG;IACH,oBAFW,MAAM,QAKhB;CACD;8BAjC6B,kBAAkB"}
@@ -2,9 +2,90 @@
2
2
  * A simplified shader class for applying custom fragment effects to renderables.
3
3
  * Only requires a fragment `apply()` function — the vertex shader, uniforms, and
4
4
  * texture sampling boilerplate are handled automatically.
5
- * In Canvas mode, the shader is silently disabled (all methods become no-ops).
5
+ *
6
+ * ## Dual-language bodies
7
+ *
8
+ * An effect body is written in the active renderer's shading language:
9
+ * GLSL on the WebGL renderer, WGSL on the WebGPU renderer. Pass a plain
10
+ * string for a GLSL-only effect (the historical form), or one body per
11
+ * language for an effect that runs on both backends:
12
+ *
13
+ * ```js
14
+ * new ShaderEffect(renderer, { glsl: glslBody, wgsl: wgslBody });
15
+ * ```
16
+ *
17
+ * The renderer compiles the body matching its
18
+ * {@link Renderer#shaderLanguage}. When no matching body exists — a
19
+ * GLSL-only effect on the WebGPU renderer, any effect on the Canvas
20
+ * renderer — the effect warns once and stays **disabled**
21
+ * (`enabled === false`, every method a safe no-op): the scene renders
22
+ * without the effect, it never breaks.
23
+ *
24
+ * ## The WGSL convention
25
+ *
26
+ * A WGSL body mirrors the GLSL one — declarations plus an apply function,
27
+ * compiled verbatim inside engine boilerplate:
28
+ *
29
+ * - `fn apply(color : vec4f, uv : vec2f) -> vec4f` — required; receives
30
+ * the sampled, tinted pixel and its UV, returns the modified color.
31
+ * - Uniforms are the members of ONE struct bound as
32
+ * `@group(3) @binding(0) var<uniform> fx : MyUniforms;` — member names
33
+ * are the {@link ShaderEffect#setUniform} names, so a dual-language
34
+ * effect uses the same uniform names in both bodies and one
35
+ * `setUniform` call serves both. Supported member types: `f32`, `i32`,
36
+ * `u32`, `vec2f`, `vec3f`, `vec4f`, `mat3x3f`, `mat4x4f`,
37
+ * `array<vec4f, N>`.
38
+ * - Extra {@link ShaderEffect#setTexture} samplers are texture/sampler
39
+ * pairs at explicit consecutive group-3 bindings (from 1):
40
+ * `@group(3) @binding(1) var uNoise : texture_2d<f32>;`
41
+ * `@group(3) @binding(2) var uNoiseSampler : sampler;`
42
+ * - The source texture is available as `uTexture` with `uSampler`
43
+ * (`textureSample(uTexture, uSampler, uv)` — the WGSL spelling of
44
+ * GLSL's `texture2D(uSampler, uv)`), and the interpolated tint as
45
+ * `vColor`, under the same names as the GLSL side.
46
+ * - The shader builtins keep their names: `screen_uv`, `noise_uv`, and
47
+ * `screen_texture` — sampled through `screen_sampler` (clamped) or
48
+ * `screen_sampler_repeat` (wrapping), replacing the GLSL
49
+ * `: screen_texture(repeat)` annotation.
50
+ * - Porting note: a texture sampled after a non-uniform `return` or
51
+ * inside a varying branch must use
52
+ * `textureSampleLevel(uTexture, uSampler, uv, 0.0)` (a WGSL
53
+ * uniform-control-flow rule; identical output for sprite textures).
54
+ *
55
+ * ## Directional UV arithmetic (`uUVYDir`)
56
+ *
57
+ * The vertical orientation of `apply()`'s UV space depends on the draw
58
+ * path: sampling the sprite directly, `uv.y` grows downward, but the
59
+ * WebGL multi-effect (pooled) path composites through capture FBOs whose
60
+ * rows are bottom-up — there `uv.y` grows upward. A body that offsets its
61
+ * sampling coordinate vertically (a drop shadow, a directional smear)
62
+ * would render mirrored on that path. Declare a `float uUVYDir` uniform
63
+ * (WGSL: `uUVYDir : f32` in the uniform struct) and multiply vertical UV
64
+ * offsets by it: the renderer feeds `+1` where `uv.y` grows downward —
65
+ * including every WebGPU path — and `-1` on the WebGL pooled path, so
66
+ * "down" stays down everywhere. Initialize it to `1.0` with `setUniform`;
67
+ * bodies that don't declare it are unaffected. The built-in
68
+ * {@link DropShadowEffect} is the reference use.
6
69
  * @category Rendering
7
70
  * @example
71
+ * // one effect, both backends: dual-language body
72
+ * mySprite.shader = new ShaderEffect(renderer, {
73
+ * glsl: `
74
+ * uniform float uStrength;
75
+ * vec4 apply(vec4 color, vec2 uv) {
76
+ * return vec4(color.rgb * uStrength, color.a);
77
+ * }
78
+ * `,
79
+ * wgsl: `
80
+ * struct Fx { uStrength : f32, };
81
+ * @group(3) @binding(0) var<uniform> fx : Fx;
82
+ * fn apply(color : vec4f, uv : vec2f) -> vec4f {
83
+ * return vec4f(color.rgb * fx.uStrength, color.a);
84
+ * }
85
+ * `,
86
+ * });
87
+ * mySprite.shader.setUniform("uStrength", 0.5); // sets either backend
88
+ * @example
8
89
  * // create a grayscale effect
9
90
  * mySprite.shader = new ShaderEffect(renderer, `
10
91
  * vec4 apply(vec4 color, vec2 uv) {
@@ -44,13 +125,21 @@
44
125
  */
45
126
  export default class ShaderEffect {
46
127
  /**
47
- * @param {WebGLRenderer|CanvasRenderer} renderer - the current renderer instance
48
- * @param {string} fragmentBody - GLSL code containing a `vec4 apply(vec4 color, vec2 uv)` function
49
- * that receives the sampled pixel color and UV coordinates, and returns the modified color.
50
- * You can declare additional `uniform` variables before the `apply()` function.
51
- * @param {string} [precision=auto detected] - float precision ('lowp', 'mediump' or 'highp')
128
+ * @param {WebGLRenderer|WebGPURenderer|CanvasRenderer} renderer - the current renderer instance
129
+ * @param {string|{glsl?: string, wgsl?: string}} body - the effect body:
130
+ * a GLSL string (containing a `vec4 apply(vec4 color, vec2 uv)` function —
131
+ * unchanged from previous versions), or an object carrying one body per
132
+ * shading language (`glsl` and/or `wgsl`, the WGSL body defining
133
+ * `fn apply(color : vec4f, uv : vec2f) -> vec4f`). The renderer picks the
134
+ * body matching its {@link Renderer#shaderLanguage}; when no matching body
135
+ * exists the effect warns once and stays disabled (`enabled === false`),
136
+ * exactly like the Canvas renderer.
137
+ * @param {string} [precision=auto detected] - float precision ('lowp', 'mediump' or 'highp'), GLSL only
52
138
  */
53
- constructor(renderer: WebGLRenderer | CanvasRenderer, fragmentBody: string, precision?: string);
139
+ constructor(renderer: WebGLRenderer | WebGPURenderer | CanvasRenderer, body: string | {
140
+ glsl?: string;
141
+ wgsl?: string;
142
+ }, precision?: string);
54
143
  /**
55
144
  * whether this effect is active (false in Canvas mode, false after
56
145
  * {@link destroy}, and false while the WebGL context is suspended
@@ -89,14 +178,25 @@ export default class ShaderEffect {
89
178
  */
90
179
  _renderer: any;
91
180
  /**
92
- * the construction "recipe" (fragment body + precision), kept so
181
+ * the construction "recipe" (body + precision), kept VERBATIM so
93
182
  * {@link clone} can compile an independent copy. Stored before the
94
- * Canvas-mode early return so cloning behaves consistently there too.
183
+ * disabled-stub early return so cloning behaves consistently there too.
95
184
  * @ignore
96
185
  */
97
- _fragmentBody: string;
186
+ _fragmentBody: string | {
187
+ glsl?: string;
188
+ wgsl?: string;
189
+ };
98
190
  /** @ignore */
99
191
  _precision: string | undefined;
192
+ /**
193
+ * extra texture samplers bound via {@link setTexture}, keyed by the
194
+ * uniform name → `{ image, repeat, tex }` (`tex` is the uploaded GL
195
+ * texture, created lazily on first draw; unused on WebGPU, where the
196
+ * bind group is built lazily instead)
197
+ * @ignore
198
+ */
199
+ _extraTextures: Map<any, any> | undefined;
100
200
  /**
101
201
  * samplers annotated `: screen_texture` — the renderer checks this to
102
202
  * know when to refresh the shared frame capture before the effect draws
@@ -108,16 +208,11 @@ export default class ShaderEffect {
108
208
  repeat: string;
109
209
  }>;
110
210
  /** @ignore */
111
- _hasNoiseUV: boolean | undefined;
211
+ _hasNoiseUV: any;
112
212
  /** @ignore */
113
213
  _shader: GLShader | undefined;
114
- /**
115
- * extra texture samplers bound via {@link setTexture}, keyed by the
116
- * uniform name → `{ image, repeat, tex }` (`tex` is the uploaded GL
117
- * texture, created lazily on first draw)
118
- * @ignore
119
- */
120
- _extraTextures: Map<any, any> | undefined;
214
+ /** @ignore */
215
+ wgslRealization: WGSLEffectRealization | undefined;
121
216
  /** @private */
122
217
  private _onContextLost;
123
218
  _enabledBeforeSuspend: boolean | undefined;
@@ -153,6 +248,20 @@ export default class ShaderEffect {
153
248
  * flow.setTime(me.timer.getTime() / 1000);
154
249
  */
155
250
  setTime(seconds: number): ShaderEffect;
251
+ /**
252
+ * Feed the UV y-direction of the space `apply()` is about to run in:
253
+ * `+1` where `uv.y` grows downward (direct sprite sampling, and every
254
+ * WebGPU path), `-1` on the WebGL pooled-blit path, whose capture FBOs
255
+ * are bottom-up — there, y-directional UV arithmetic inside a body
256
+ * runs vertically mirrored unless compensated. Directional bodies
257
+ * (DropShadow) declare a `uUVYDir` uniform and multiply their y
258
+ * offsets with it, so "down" means down on every path of every
259
+ * backend. A silent no-op for bodies that don't declare the uniform.
260
+ * @param {number} dir - +1 (uv.y grows downward) or -1 (upward)
261
+ * @ignore
262
+ */
263
+ _setUVYDir(dir: number): void;
264
+ _uvYDir: any;
156
265
  /**
157
266
  * Feed the `noise_uv` builtin's frame rect for the object about to draw:
158
267
  * the source texture dimensions, the destination (object) dimensions, and
@@ -170,14 +279,12 @@ export default class ShaderEffect {
170
279
  _setNoiseUVRect(sourceWidth: number, sourceHeight: number, objectWidth: number, objectHeight: number, u0: number, v0: number): void;
171
280
  /**
172
281
  * Apply the wrap mode a `: screen_texture(<repeat>)` annotation asked for
173
- * onto the live capture handle. Captures are NPOT (canvas-sized), which
174
- * WebGL 1 cannot repeat — warn once and keep the clamp there. The unit is
175
- * force-activated first: the batcher's bind may have been skipped as
176
- * redundant while the GL active unit points elsewhere.
282
+ * onto the live capture handle. The unit is force-activated first: the
283
+ * batcher's bind may have been skipped as redundant while the GL active
284
+ * unit points elsewhere.
177
285
  * @ignore
178
286
  */
179
287
  _applyCaptureWrap(batcher: any, glTex: any, entry: any): void;
180
- _captureWrapWarned: boolean | undefined;
181
288
  /**
182
289
  * Bind an **extra** texture to a named `sampler2D` uniform in this shader, so
183
290
  * a custom effect can read a *second* texture — a noise map, mask, gradient,
@@ -192,7 +299,7 @@ export default class ShaderEffect {
192
299
  * drawable source. No-op in Canvas mode.
193
300
  * @param {string} name - the `sampler2D` uniform name declared in the fragment
194
301
  * @param {Texture2d|HTMLImageElement|HTMLCanvasElement|OffscreenCanvas|ImageBitmap} image - the texture: an engine texture asset, or a raw drawable source
195
- * @param {"repeat"|"repeat-x"|"repeat-y"|"no-repeat"} [repeat="no-repeat"] - wrap mode; use `"repeat"` for a tiled/scrolled texture (power-of-two size under WebGL 1)
302
+ * @param {"repeat"|"repeat-x"|"repeat-y"|"no-repeat"} [repeat="no-repeat"] - wrap mode; use `"repeat"` for a tiled/scrolled texture
196
303
  * @returns {ShaderEffect} this effect for chaining
197
304
  * @example
198
305
  * // "water": distort the sprite by a static noise texture scrolled over time
@@ -269,6 +376,7 @@ export default class ShaderEffect {
269
376
  */
270
377
  destroy(): void;
271
378
  }
272
- import GLShader from "./glshader.js";
379
+ import GLShader from "../webgl/glshader.js";
380
+ import WGSLEffectRealization from "./wgsl_realization.js";
273
381
  import Texture2d from "../texture/texture2d.ts";
274
382
  //# sourceMappingURL=shadereffect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shadereffect.d.ts","sourceRoot":"","sources":["../../../src/video/effects/shadereffect.js"],"names":[],"mappings":"AAWA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4HG;AACH;IAiCC;;;;;;;;;;;OAWG;IACH,sBAXW,aAAa,GAAC,cAAc,GAAC,cAAc,QAC3C,MAAM,GAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAC,cAQrC,MAAM,EAqHhB;IA/JD;;;;;;OAMG;IACH,SAFU,OAAO,CAED;IAEhB;;;;;;;OAOG;IACH,oBAHU,OAAO,CAGC;IAElB;;;;;;;;;;OAUG;IACH,QAHU,OAAO,CAGF;IAed;;;;;;OAMG;IACH,eAAyB;IAEzB;;;;;OAKG;IACH;eA1ByB,MAAM;eAAS,MAAM;MA0BrB;IACzB,cAAc;IACd,+BAA2B;IAoB3B;;;;;;OAMG;IACH,0CAA+B;IAQ9B;;;;;OAKG;IACH,wBAHU,KAAK,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,CAAC,CAGK;IACpD,cAAc;IACd,iBAAkC;IAElC,cAAc;IACd,8BAKC;IAyBD,cAAc;IACd,mDAAkC;IAsBpC,eAAe;IACf,uBAkBC;IAbA,2CAAyC;IAe1C,eAAe;IACf,2BAQC;IAED;;;;OAIG;IACH,iBAHW,MAAM,SACN,MAAM,GAAC,YAAY,QAmB7B;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,iBAbW,MAAM,GACJ,YAAY,CAuCxB;IAED;;;;;;;;;;;OAWG;IACH,gBAHW,MAAM,QAqBhB;IATC,aAAkB;IAWpB;;;;;;;;;;;;;OAaG;IACH,6BARW,MAAM,gBACN,MAAM,eACN,MAAM,gBACN,MAAM,MACN,MAAM,MACN,MAAM,QAoDhB;IAED;;;;;;OAMG;IACH,8DAaC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,iBAnBW,MAAM,SACN,SAAS,GAAC,gBAAgB,GAAC,iBAAiB,GAAC,eAAe,GAAC,WAAW,WACxE,QAAQ,GAAC,UAAU,GAAC,UAAU,GAAC,WAAW,GACxC,YAAY,CA0GxB;IAED;;;;;;;;OAQG;IACH,0BAHW,MAAM,QA2FhB;IA3DI,4CAAkC;IA6DvC;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,SARa,YAAY,CAqDxB;IAKD,cAAc;IACd,aAIC;IAED,cAAc;IACd,qCAIC;IAED,cAAc;IACd,iEAIC;IAED,cAAc;IACd,mCAEC;IAED,cAAc;IACd,kBAEC;IAED,cAAc;IACd,oBAEC;IAED,cAAc;IACd,qBAEC;IAED,cAAc;IACd,uBAEC;IAED;;;;OAIG;IACH,gBAyCC;CACD;qBA34BoB,sBAAsB;kCAET,uBAAuB;sBAHnC,yBAAyB"}