@codexo/exojs 0.8.0 → 0.8.2

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 (486) hide show
  1. package/CHANGELOG.md +318 -208
  2. package/README.md +19 -19
  3. package/dist/esm/animation/Easing.js +13 -21
  4. package/dist/esm/animation/Easing.js.map +1 -1
  5. package/dist/esm/animation/Tween.d.ts +3 -3
  6. package/dist/esm/animation/Tween.js +7 -5
  7. package/dist/esm/animation/Tween.js.map +1 -1
  8. package/dist/esm/animation/TweenManager.js +1 -1
  9. package/dist/esm/animation/TweenManager.js.map +1 -1
  10. package/dist/esm/animation/types.js.map +1 -1
  11. package/dist/esm/audio/AbstractMedia.d.ts +1 -1
  12. package/dist/esm/audio/AbstractMedia.js +1 -1
  13. package/dist/esm/audio/AbstractMedia.js.map +1 -1
  14. package/dist/esm/audio/AudioAnalyser.d.ts +1 -1
  15. package/dist/esm/audio/AudioAnalyser.js +2 -2
  16. package/dist/esm/audio/AudioAnalyser.js.map +1 -1
  17. package/dist/esm/audio/AudioBus.d.ts +1 -1
  18. package/dist/esm/audio/AudioBus.js.map +1 -1
  19. package/dist/esm/audio/AudioFilter.js +3 -1
  20. package/dist/esm/audio/AudioFilter.js.map +1 -1
  21. package/dist/esm/audio/AudioListener.d.ts +1 -1
  22. package/dist/esm/audio/AudioListener.js +5 -3
  23. package/dist/esm/audio/AudioListener.js.map +1 -1
  24. package/dist/esm/audio/AudioManager.js.map +1 -1
  25. package/dist/esm/audio/BeatDetector.d.ts +4 -4
  26. package/dist/esm/audio/BeatDetector.js +68 -44
  27. package/dist/esm/audio/BeatDetector.js.map +1 -1
  28. package/dist/esm/audio/Envelope.d.ts +1 -1
  29. package/dist/esm/audio/Envelope.js +2 -2
  30. package/dist/esm/audio/Envelope.js.map +1 -1
  31. package/dist/esm/audio/Music.d.ts +1 -1
  32. package/dist/esm/audio/Music.js +1 -1
  33. package/dist/esm/audio/Music.js.map +1 -1
  34. package/dist/esm/audio/OscillatorSound.d.ts +2 -2
  35. package/dist/esm/audio/OscillatorSound.js.map +1 -1
  36. package/dist/esm/audio/Sound.d.ts +40 -2
  37. package/dist/esm/audio/Sound.js +69 -9
  38. package/dist/esm/audio/Sound.js.map +1 -1
  39. package/dist/esm/audio/audio-context.js +1 -1
  40. package/dist/esm/audio/audio-context.js.map +1 -1
  41. package/dist/esm/audio/crossFade.js +1 -1
  42. package/dist/esm/audio/crossFade.js.map +1 -1
  43. package/dist/esm/audio/dsp/mel.d.ts +2 -2
  44. package/dist/esm/audio/dsp/tempogram.d.ts +2 -2
  45. package/dist/esm/audio/filters/ChorusFilter.js +12 -4
  46. package/dist/esm/audio/filters/ChorusFilter.js.map +1 -1
  47. package/dist/esm/audio/filters/CompressorFilter.d.ts +9 -0
  48. package/dist/esm/audio/filters/CompressorFilter.js +11 -0
  49. package/dist/esm/audio/filters/CompressorFilter.js.map +1 -1
  50. package/dist/esm/audio/filters/DelayFilter.js.map +1 -1
  51. package/dist/esm/audio/filters/DuckingFilter.d.ts +1 -1
  52. package/dist/esm/audio/filters/DuckingFilter.js +13 -5
  53. package/dist/esm/audio/filters/DuckingFilter.js.map +1 -1
  54. package/dist/esm/audio/filters/EqualizerFilter.js.map +1 -1
  55. package/dist/esm/audio/filters/GranularFilter.js +30 -14
  56. package/dist/esm/audio/filters/GranularFilter.js.map +1 -1
  57. package/dist/esm/audio/filters/HighpassFilter.js.map +1 -1
  58. package/dist/esm/audio/filters/LowpassFilter.js.map +1 -1
  59. package/dist/esm/audio/filters/PitchShiftFilter.js +14 -10
  60. package/dist/esm/audio/filters/PitchShiftFilter.js.map +1 -1
  61. package/dist/esm/audio/filters/ReverbFilter.js.map +1 -1
  62. package/dist/esm/audio/filters/VocoderFilter.d.ts +2 -2
  63. package/dist/esm/audio/filters/VocoderFilter.js +20 -12
  64. package/dist/esm/audio/filters/VocoderFilter.js.map +1 -1
  65. package/dist/esm/audio/filters/WorkletFilter.js +5 -6
  66. package/dist/esm/audio/filters/WorkletFilter.js.map +1 -1
  67. package/dist/esm/audio/filters/index.d.ts +7 -7
  68. package/dist/esm/audio/index.d.ts +9 -9
  69. package/dist/esm/audio/worklet/registerWorklet.js +7 -3
  70. package/dist/esm/audio/worklet/registerWorklet.js.map +1 -1
  71. package/dist/esm/core/Application.d.ts +13 -13
  72. package/dist/esm/core/Application.js +24 -16
  73. package/dist/esm/core/Application.js.map +1 -1
  74. package/dist/esm/core/Bounds.d.ts +1 -1
  75. package/dist/esm/core/Bounds.js +1 -3
  76. package/dist/esm/core/Bounds.js.map +1 -1
  77. package/dist/esm/core/Clock.js +1 -1
  78. package/dist/esm/core/Clock.js.map +1 -1
  79. package/dist/esm/core/Color.js +2 -5
  80. package/dist/esm/core/Color.js.map +1 -1
  81. package/dist/esm/core/Scene.d.ts +10 -10
  82. package/dist/esm/core/Scene.js +1 -1
  83. package/dist/esm/core/Scene.js.map +1 -1
  84. package/dist/esm/core/SceneManager.d.ts +4 -4
  85. package/dist/esm/core/SceneManager.js +39 -33
  86. package/dist/esm/core/SceneManager.js.map +1 -1
  87. package/dist/esm/core/SceneNode.d.ts +8 -8
  88. package/dist/esm/core/SceneNode.js +39 -29
  89. package/dist/esm/core/SceneNode.js.map +1 -1
  90. package/dist/esm/core/Signal.d.ts +3 -3
  91. package/dist/esm/core/Signal.js +3 -3
  92. package/dist/esm/core/Signal.js.map +1 -1
  93. package/dist/esm/core/Time.js +6 -6
  94. package/dist/esm/core/Time.js.map +1 -1
  95. package/dist/esm/core/Timer.d.ts +1 -1
  96. package/dist/esm/core/Timer.js +1 -1
  97. package/dist/esm/core/Timer.js.map +1 -1
  98. package/dist/esm/core/capabilities.js +2 -4
  99. package/dist/esm/core/capabilities.js.map +1 -1
  100. package/dist/esm/core/index.d.ts +2 -2
  101. package/dist/esm/core/utils.d.ts +4 -4
  102. package/dist/esm/core/utils.js +10 -10
  103. package/dist/esm/core/utils.js.map +1 -1
  104. package/dist/esm/debug/BoundingBoxesLayer.d.ts +3 -3
  105. package/dist/esm/debug/BoundingBoxesLayer.js +6 -13
  106. package/dist/esm/debug/BoundingBoxesLayer.js.map +1 -1
  107. package/dist/esm/debug/DebugLayer.d.ts +1 -1
  108. package/dist/esm/debug/DebugLayer.js.map +1 -1
  109. package/dist/esm/debug/DebugOverlay.d.ts +2 -2
  110. package/dist/esm/debug/DebugOverlay.js +2 -2
  111. package/dist/esm/debug/DebugOverlay.js.map +1 -1
  112. package/dist/esm/debug/HitTestLayer.d.ts +3 -3
  113. package/dist/esm/debug/HitTestLayer.js +3 -10
  114. package/dist/esm/debug/HitTestLayer.js.map +1 -1
  115. package/dist/esm/debug/PerformanceLayer.d.ts +2 -2
  116. package/dist/esm/debug/PerformanceLayer.js +6 -6
  117. package/dist/esm/debug/PerformanceLayer.js.map +1 -1
  118. package/dist/esm/debug/PointerStackLayer.d.ts +3 -3
  119. package/dist/esm/debug/PointerStackLayer.js +3 -3
  120. package/dist/esm/debug/PointerStackLayer.js.map +1 -1
  121. package/dist/esm/debug/index.d.ts +3 -3
  122. package/dist/esm/debug/index.js +3 -3
  123. package/dist/esm/index.d.ts +1 -1
  124. package/dist/esm/index.js +99 -98
  125. package/dist/esm/index.js.map +1 -1
  126. package/dist/esm/input/ArcadeStickGamepadMapping.js.map +1 -1
  127. package/dist/esm/input/GameCubeGamepadMapping.d.ts +1 -1
  128. package/dist/esm/input/GameCubeGamepadMapping.js +1 -1
  129. package/dist/esm/input/GameCubeGamepadMapping.js.map +1 -1
  130. package/dist/esm/input/Gamepad.d.ts +7 -7
  131. package/dist/esm/input/Gamepad.js +10 -6
  132. package/dist/esm/input/Gamepad.js.map +1 -1
  133. package/dist/esm/input/GamepadAxis.js +1 -1
  134. package/dist/esm/input/GamepadAxis.js.map +1 -1
  135. package/dist/esm/input/GamepadButton.js +1 -1
  136. package/dist/esm/input/GamepadButton.js.map +1 -1
  137. package/dist/esm/input/GamepadDefinitions.d.ts +4 -4
  138. package/dist/esm/input/GamepadDefinitions.js +12 -14
  139. package/dist/esm/input/GamepadDefinitions.js.map +1 -1
  140. package/dist/esm/input/GamepadMapping.d.ts +5 -5
  141. package/dist/esm/input/GamepadMapping.js.map +1 -1
  142. package/dist/esm/input/GamepadPromptLayouts.d.ts +2 -2
  143. package/dist/esm/input/GamepadPromptLayouts.js +8 -8
  144. package/dist/esm/input/GamepadPromptLayouts.js.map +1 -1
  145. package/dist/esm/input/GenericDualAnalogGamepadMapping.js.map +1 -1
  146. package/dist/esm/input/GestureRecognizer.d.ts +1 -1
  147. package/dist/esm/input/GestureRecognizer.js.map +1 -1
  148. package/dist/esm/input/InputBinding.d.ts +3 -3
  149. package/dist/esm/input/InputBinding.js.map +1 -1
  150. package/dist/esm/input/InputManager.d.ts +9 -9
  151. package/dist/esm/input/InputManager.js +25 -16
  152. package/dist/esm/input/InputManager.js.map +1 -1
  153. package/dist/esm/input/InteractionEvent.d.ts +1 -1
  154. package/dist/esm/input/InteractionEvent.js.map +1 -1
  155. package/dist/esm/input/InteractionManager.d.ts +2 -2
  156. package/dist/esm/input/InteractionManager.js +25 -16
  157. package/dist/esm/input/InteractionManager.js.map +1 -1
  158. package/dist/esm/input/JoyConLeftGamepadMapping.js.map +1 -1
  159. package/dist/esm/input/JoyConRightGamepadMapping.js.map +1 -1
  160. package/dist/esm/input/PlayStationGamepadMapping.d.ts +1 -1
  161. package/dist/esm/input/PlayStationGamepadMapping.js +1 -1
  162. package/dist/esm/input/PlayStationGamepadMapping.js.map +1 -1
  163. package/dist/esm/input/Pointer.d.ts +2 -2
  164. package/dist/esm/input/Pointer.js +6 -6
  165. package/dist/esm/input/Pointer.js.map +1 -1
  166. package/dist/esm/input/SteamControllerGamepadMapping.d.ts +1 -1
  167. package/dist/esm/input/SteamControllerGamepadMapping.js +1 -1
  168. package/dist/esm/input/SteamControllerGamepadMapping.js.map +1 -1
  169. package/dist/esm/input/SteamDeckGamepadMapping.js.map +1 -1
  170. package/dist/esm/input/SwitchProGamepadMapping.d.ts +1 -1
  171. package/dist/esm/input/SwitchProGamepadMapping.js +1 -1
  172. package/dist/esm/input/SwitchProGamepadMapping.js.map +1 -1
  173. package/dist/esm/input/XboxGamepadMapping.d.ts +1 -1
  174. package/dist/esm/input/XboxGamepadMapping.js +1 -1
  175. package/dist/esm/input/XboxGamepadMapping.js.map +1 -1
  176. package/dist/esm/input/index.d.ts +16 -16
  177. package/dist/esm/input/interaction-hooks.js.map +1 -1
  178. package/dist/esm/input/types.js.map +1 -1
  179. package/dist/esm/math/AbstractVector.js +8 -9
  180. package/dist/esm/math/AbstractVector.js.map +1 -1
  181. package/dist/esm/math/Circle.d.ts +5 -5
  182. package/dist/esm/math/Circle.js +33 -21
  183. package/dist/esm/math/Circle.js.map +1 -1
  184. package/dist/esm/math/Collision.d.ts +2 -2
  185. package/dist/esm/math/Collision.js.map +1 -1
  186. package/dist/esm/math/Ellipse.d.ts +5 -5
  187. package/dist/esm/math/Ellipse.js +28 -19
  188. package/dist/esm/math/Ellipse.js.map +1 -1
  189. package/dist/esm/math/Flags.d.ts +4 -4
  190. package/dist/esm/math/Flags.js.map +1 -1
  191. package/dist/esm/math/Interval.js.map +1 -1
  192. package/dist/esm/math/Line.d.ts +5 -5
  193. package/dist/esm/math/Line.js +23 -15
  194. package/dist/esm/math/Line.js.map +1 -1
  195. package/dist/esm/math/Matrix.js +14 -16
  196. package/dist/esm/math/Matrix.js.map +1 -1
  197. package/dist/esm/math/ObservableSize.js.map +1 -1
  198. package/dist/esm/math/ObservableVector.d.ts +1 -1
  199. package/dist/esm/math/ObservableVector.js.map +1 -1
  200. package/dist/esm/math/PolarVector.js.map +1 -1
  201. package/dist/esm/math/Polygon.d.ts +11 -11
  202. package/dist/esm/math/Polygon.js +37 -26
  203. package/dist/esm/math/Polygon.js.map +1 -1
  204. package/dist/esm/math/PolygonLike.d.ts +1 -1
  205. package/dist/esm/math/Quadtree.js +2 -8
  206. package/dist/esm/math/Quadtree.js.map +1 -1
  207. package/dist/esm/math/Random.js +5 -5
  208. package/dist/esm/math/Random.js.map +1 -1
  209. package/dist/esm/math/Rectangle.d.ts +4 -4
  210. package/dist/esm/math/Rectangle.js +59 -41
  211. package/dist/esm/math/Rectangle.js.map +1 -1
  212. package/dist/esm/math/Segment.d.ts +1 -1
  213. package/dist/esm/math/Segment.js +4 -4
  214. package/dist/esm/math/Segment.js.map +1 -1
  215. package/dist/esm/math/ShapeLike.d.ts +1 -1
  216. package/dist/esm/math/Size.js +1 -2
  217. package/dist/esm/math/Size.js.map +1 -1
  218. package/dist/esm/math/Vector.d.ts +4 -4
  219. package/dist/esm/math/Vector.js +19 -13
  220. package/dist/esm/math/Vector.js.map +1 -1
  221. package/dist/esm/math/collision-detection.d.ts +3 -3
  222. package/dist/esm/math/collision-detection.js +49 -49
  223. package/dist/esm/math/collision-detection.js.map +1 -1
  224. package/dist/esm/math/collision-primitives.d.ts +8 -8
  225. package/dist/esm/math/collision-primitives.js +27 -33
  226. package/dist/esm/math/collision-primitives.js.map +1 -1
  227. package/dist/esm/math/geometry.d.ts +3 -3
  228. package/dist/esm/math/geometry.js +55 -48
  229. package/dist/esm/math/geometry.js.map +1 -1
  230. package/dist/esm/math/index.d.ts +16 -16
  231. package/dist/esm/math/swept-collision.d.ts +3 -3
  232. package/dist/esm/math/swept-collision.js +5 -8
  233. package/dist/esm/math/swept-collision.js.map +1 -1
  234. package/dist/esm/math/triangulate.js +34 -24
  235. package/dist/esm/math/triangulate.js.map +1 -1
  236. package/dist/esm/math/utils.d.ts +2 -2
  237. package/dist/esm/math/utils.js +7 -7
  238. package/dist/esm/math/utils.js.map +1 -1
  239. package/dist/esm/particles/ParticleSystem.d.ts +9 -9
  240. package/dist/esm/particles/ParticleSystem.js +29 -29
  241. package/dist/esm/particles/ParticleSystem.js.map +1 -1
  242. package/dist/esm/particles/distributions/BoxArea.js.map +1 -1
  243. package/dist/esm/particles/distributions/CircleArea.js.map +1 -1
  244. package/dist/esm/particles/distributions/ConeDirection.js.map +1 -1
  245. package/dist/esm/particles/distributions/Constant.js.map +1 -1
  246. package/dist/esm/particles/distributions/Curve.d.ts +1 -1
  247. package/dist/esm/particles/distributions/Curve.js.map +1 -1
  248. package/dist/esm/particles/distributions/Gradient.d.ts +1 -1
  249. package/dist/esm/particles/distributions/Gradient.js +1 -1
  250. package/dist/esm/particles/distributions/Gradient.js.map +1 -1
  251. package/dist/esm/particles/distributions/LineSegment.js.map +1 -1
  252. package/dist/esm/particles/distributions/Range.js.map +1 -1
  253. package/dist/esm/particles/distributions/VectorRange.js.map +1 -1
  254. package/dist/esm/particles/distributions/index.d.ts +9 -9
  255. package/dist/esm/particles/gpu/ParticleGpuState.d.ts +3 -3
  256. package/dist/esm/particles/gpu/ParticleGpuState.js +48 -21
  257. package/dist/esm/particles/gpu/ParticleGpuState.js.map +1 -1
  258. package/dist/esm/particles/index.d.ts +1 -1
  259. package/dist/esm/particles/modules/AlphaFadeOverLifetime.d.ts +2 -2
  260. package/dist/esm/particles/modules/AlphaFadeOverLifetime.js.map +1 -1
  261. package/dist/esm/particles/modules/ApplyForce.d.ts +1 -1
  262. package/dist/esm/particles/modules/ApplyForce.js.map +1 -1
  263. package/dist/esm/particles/modules/AttractToPoint.d.ts +1 -1
  264. package/dist/esm/particles/modules/AttractToPoint.js.map +1 -1
  265. package/dist/esm/particles/modules/BurstSpawn.d.ts +4 -4
  266. package/dist/esm/particles/modules/BurstSpawn.js +2 -2
  267. package/dist/esm/particles/modules/BurstSpawn.js.map +1 -1
  268. package/dist/esm/particles/modules/ColorOverLifetime.d.ts +2 -2
  269. package/dist/esm/particles/modules/ColorOverLifetime.js +1 -1
  270. package/dist/esm/particles/modules/ColorOverLifetime.js.map +1 -1
  271. package/dist/esm/particles/modules/ColorOverSpeed.d.ts +2 -2
  272. package/dist/esm/particles/modules/ColorOverSpeed.js +1 -1
  273. package/dist/esm/particles/modules/ColorOverSpeed.js.map +1 -1
  274. package/dist/esm/particles/modules/DeathModule.js.map +1 -1
  275. package/dist/esm/particles/modules/Drag.d.ts +1 -1
  276. package/dist/esm/particles/modules/Drag.js +1 -3
  277. package/dist/esm/particles/modules/Drag.js.map +1 -1
  278. package/dist/esm/particles/modules/OrbitalForce.d.ts +1 -1
  279. package/dist/esm/particles/modules/OrbitalForce.js.map +1 -1
  280. package/dist/esm/particles/modules/RateSpawn.d.ts +3 -3
  281. package/dist/esm/particles/modules/RateSpawn.js +2 -2
  282. package/dist/esm/particles/modules/RateSpawn.js.map +1 -1
  283. package/dist/esm/particles/modules/RepelFromPoint.d.ts +1 -1
  284. package/dist/esm/particles/modules/RepelFromPoint.js.map +1 -1
  285. package/dist/esm/particles/modules/RotateOverLifetime.d.ts +1 -1
  286. package/dist/esm/particles/modules/RotateOverLifetime.js +1 -3
  287. package/dist/esm/particles/modules/RotateOverLifetime.js.map +1 -1
  288. package/dist/esm/particles/modules/ScaleOverLifetime.d.ts +2 -2
  289. package/dist/esm/particles/modules/ScaleOverLifetime.js.map +1 -1
  290. package/dist/esm/particles/modules/SpawnModule.js.map +1 -1
  291. package/dist/esm/particles/modules/SpawnOnDeath.d.ts +1 -1
  292. package/dist/esm/particles/modules/SpawnOnDeath.js.map +1 -1
  293. package/dist/esm/particles/modules/Turbulence.d.ts +1 -1
  294. package/dist/esm/particles/modules/Turbulence.js.map +1 -1
  295. package/dist/esm/particles/modules/UpdateModule.js.map +1 -1
  296. package/dist/esm/particles/modules/VelocityOverLifetime.d.ts +2 -2
  297. package/dist/esm/particles/modules/VelocityOverLifetime.js.map +1 -1
  298. package/dist/esm/particles/modules/WgslContribution.d.ts +3 -3
  299. package/dist/esm/particles/modules/WgslContribution.js.map +1 -1
  300. package/dist/esm/particles/modules/index.d.ts +17 -17
  301. package/dist/esm/rendering/CallbackRenderPass.js.map +1 -1
  302. package/dist/esm/rendering/Container.d.ts +2 -2
  303. package/dist/esm/rendering/Container.js +10 -11
  304. package/dist/esm/rendering/Container.js.map +1 -1
  305. package/dist/esm/rendering/Drawable.js.map +1 -1
  306. package/dist/esm/rendering/RenderBackend.d.ts +6 -6
  307. package/dist/esm/rendering/RenderBackendType.js.map +1 -1
  308. package/dist/esm/rendering/RenderNode.d.ts +10 -10
  309. package/dist/esm/rendering/RenderNode.js +31 -31
  310. package/dist/esm/rendering/RenderNode.js.map +1 -1
  311. package/dist/esm/rendering/RenderStats.js.map +1 -1
  312. package/dist/esm/rendering/RenderTarget.d.ts +2 -2
  313. package/dist/esm/rendering/RenderTarget.js +5 -5
  314. package/dist/esm/rendering/RenderTarget.js.map +1 -1
  315. package/dist/esm/rendering/RenderTargetPass.d.ts +3 -3
  316. package/dist/esm/rendering/RenderTargetPass.js.map +1 -1
  317. package/dist/esm/rendering/Renderer.d.ts +2 -2
  318. package/dist/esm/rendering/RendererRegistry.d.ts +3 -3
  319. package/dist/esm/rendering/RendererRegistry.js +2 -3
  320. package/dist/esm/rendering/RendererRegistry.js.map +1 -1
  321. package/dist/esm/rendering/View.d.ts +3 -3
  322. package/dist/esm/rendering/View.js +17 -20
  323. package/dist/esm/rendering/View.js.map +1 -1
  324. package/dist/esm/rendering/filters/BlurFilter.d.ts +1 -1
  325. package/dist/esm/rendering/filters/BlurFilter.js +4 -9
  326. package/dist/esm/rendering/filters/BlurFilter.js.map +1 -1
  327. package/dist/esm/rendering/filters/ColorFilter.d.ts +1 -1
  328. package/dist/esm/rendering/filters/ColorFilter.js +3 -9
  329. package/dist/esm/rendering/filters/ColorFilter.js.map +1 -1
  330. package/dist/esm/rendering/filters/Filter.d.ts +1 -1
  331. package/dist/esm/rendering/filters/Filter.js.map +1 -1
  332. package/dist/esm/rendering/filters/LutFilter.d.ts +87 -0
  333. package/dist/esm/rendering/filters/LutFilter.js +261 -0
  334. package/dist/esm/rendering/filters/LutFilter.js.map +1 -0
  335. package/dist/esm/rendering/filters/WebGl2ShaderFilter.d.ts +2 -2
  336. package/dist/esm/rendering/filters/WebGl2ShaderFilter.js +7 -14
  337. package/dist/esm/rendering/filters/WebGl2ShaderFilter.js.map +1 -1
  338. package/dist/esm/rendering/filters/WebGpuShaderFilter.d.ts +1 -1
  339. package/dist/esm/rendering/filters/WebGpuShaderFilter.js +11 -10
  340. package/dist/esm/rendering/filters/WebGpuShaderFilter.js.map +1 -1
  341. package/dist/esm/rendering/index.d.ts +28 -27
  342. package/dist/esm/rendering/mesh/Mesh.d.ts +49 -1
  343. package/dist/esm/rendering/mesh/Mesh.js +3 -1
  344. package/dist/esm/rendering/mesh/Mesh.js.map +1 -1
  345. package/dist/esm/rendering/primitives/Graphics.d.ts +3 -3
  346. package/dist/esm/rendering/primitives/Graphics.js +12 -12
  347. package/dist/esm/rendering/primitives/Graphics.js.map +1 -1
  348. package/dist/esm/rendering/shader/Shader.js.map +1 -1
  349. package/dist/esm/rendering/shader/ShaderAttribute.js.map +1 -1
  350. package/dist/esm/rendering/shader/ShaderUniform.js.map +1 -1
  351. package/dist/esm/rendering/shader/upgradeFragmentShaderToGl300.js +6 -8
  352. package/dist/esm/rendering/shader/upgradeFragmentShaderToGl300.js.map +1 -1
  353. package/dist/esm/rendering/sprite/AnimatedSprite.d.ts +3 -3
  354. package/dist/esm/rendering/sprite/AnimatedSprite.js.map +1 -1
  355. package/dist/esm/rendering/sprite/Sprite.d.ts +4 -4
  356. package/dist/esm/rendering/sprite/Sprite.js +51 -35
  357. package/dist/esm/rendering/sprite/Sprite.js.map +1 -1
  358. package/dist/esm/rendering/sprite/Spritesheet.d.ts +5 -9
  359. package/dist/esm/rendering/sprite/Spritesheet.js +1 -1
  360. package/dist/esm/rendering/sprite/Spritesheet.js.map +1 -1
  361. package/dist/esm/rendering/text/DynamicGlyphAtlas.js +3 -9
  362. package/dist/esm/rendering/text/DynamicGlyphAtlas.js.map +1 -1
  363. package/dist/esm/rendering/text/Text.js +9 -9
  364. package/dist/esm/rendering/text/Text.js.map +1 -1
  365. package/dist/esm/rendering/text/TextLayout.d.ts +2 -2
  366. package/dist/esm/rendering/text/TextLayout.js.map +1 -1
  367. package/dist/esm/rendering/text/TextStyle.js.map +1 -1
  368. package/dist/esm/rendering/text/atlas-singleton.js.map +1 -1
  369. package/dist/esm/rendering/texture/RenderTexture.d.ts +1 -1
  370. package/dist/esm/rendering/texture/RenderTexture.js +4 -1
  371. package/dist/esm/rendering/texture/RenderTexture.js.map +1 -1
  372. package/dist/esm/rendering/texture/Sampler.js.map +1 -1
  373. package/dist/esm/rendering/texture/Texture.d.ts +2 -2
  374. package/dist/esm/rendering/texture/Texture.js +8 -5
  375. package/dist/esm/rendering/texture/Texture.js.map +1 -1
  376. package/dist/esm/rendering/types.js.map +1 -1
  377. package/dist/esm/rendering/utils.js.map +1 -1
  378. package/dist/esm/rendering/video/Video.d.ts +3 -3
  379. package/dist/esm/rendering/video/Video.js +7 -6
  380. package/dist/esm/rendering/video/Video.js.map +1 -1
  381. package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.d.ts +6 -6
  382. package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js +7 -10
  383. package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js.map +1 -1
  384. package/dist/esm/rendering/webgl2/AbstractWebGl2Renderer.d.ts +1 -1
  385. package/dist/esm/rendering/webgl2/AbstractWebGl2Renderer.js +1 -2
  386. package/dist/esm/rendering/webgl2/AbstractWebGl2Renderer.js.map +1 -1
  387. package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts +11 -11
  388. package/dist/esm/rendering/webgl2/WebGl2Backend.js +19 -21
  389. package/dist/esm/rendering/webgl2/WebGl2Backend.js.map +1 -1
  390. package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.d.ts +2 -2
  391. package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.js +6 -8
  392. package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.js.map +1 -1
  393. package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.d.ts +7 -4
  394. package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.js +110 -43
  395. package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.js.map +1 -1
  396. package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.d.ts +1 -1
  397. package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.js +10 -18
  398. package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.js.map +1 -1
  399. package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.d.ts +1 -1
  400. package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.js.map +1 -1
  401. package/dist/esm/rendering/webgl2/WebGl2ShaderBlock.js.map +1 -1
  402. package/dist/esm/rendering/webgl2/WebGl2ShaderMappings.js.map +1 -1
  403. package/dist/esm/rendering/webgl2/WebGl2ShaderProgram.js +54 -22
  404. package/dist/esm/rendering/webgl2/WebGl2ShaderProgram.js.map +1 -1
  405. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.d.ts +1 -1
  406. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js +11 -14
  407. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js.map +1 -1
  408. package/dist/esm/rendering/webgl2/WebGl2VertexArrayObject.d.ts +1 -1
  409. package/dist/esm/rendering/webgl2/WebGl2VertexArrayObject.js.map +1 -1
  410. package/dist/esm/rendering/webgpu/AbstractWebGpuRenderer.d.ts +1 -1
  411. package/dist/esm/rendering/webgpu/AbstractWebGpuRenderer.js +1 -2
  412. package/dist/esm/rendering/webgpu/AbstractWebGpuRenderer.js.map +1 -1
  413. package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts +7 -7
  414. package/dist/esm/rendering/webgpu/WebGpuBackend.js +44 -30
  415. package/dist/esm/rendering/webgpu/WebGpuBackend.js.map +1 -1
  416. package/dist/esm/rendering/webgpu/WebGpuBlendState.js.map +1 -1
  417. package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.d.ts +2 -2
  418. package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.js +1 -3
  419. package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.js.map +1 -1
  420. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.d.ts +2 -2
  421. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js +25 -23
  422. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js.map +1 -1
  423. package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.d.ts +1 -1
  424. package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.js +100 -56
  425. package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.js.map +1 -1
  426. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts +2 -2
  427. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js +45 -45
  428. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js.map +1 -1
  429. package/dist/esm/rendering/webgpu/compute/WebGpuComputePipeline.d.ts +1 -1
  430. package/dist/esm/rendering/webgpu/compute/index.d.ts +2 -2
  431. package/dist/esm/resources/AbstractAssetFactory.d.ts +1 -1
  432. package/dist/esm/resources/AbstractAssetFactory.js.map +1 -1
  433. package/dist/esm/resources/AssetManifest.d.ts +1 -1
  434. package/dist/esm/resources/AssetManifest.js +2 -2
  435. package/dist/esm/resources/AssetManifest.js.map +1 -1
  436. package/dist/esm/resources/CacheFirstStrategy.d.ts +2 -2
  437. package/dist/esm/resources/CacheFirstStrategy.js.map +1 -1
  438. package/dist/esm/resources/CacheStrategy.d.ts +1 -1
  439. package/dist/esm/resources/FactoryRegistry.d.ts +1 -1
  440. package/dist/esm/resources/FactoryRegistry.js +2 -3
  441. package/dist/esm/resources/FactoryRegistry.js.map +1 -1
  442. package/dist/esm/resources/IndexedDbDatabase.d.ts +1 -1
  443. package/dist/esm/resources/IndexedDbDatabase.js +11 -14
  444. package/dist/esm/resources/IndexedDbDatabase.js.map +1 -1
  445. package/dist/esm/resources/IndexedDbStore.d.ts +1 -1
  446. package/dist/esm/resources/IndexedDbStore.js +2 -7
  447. package/dist/esm/resources/IndexedDbStore.js.map +1 -1
  448. package/dist/esm/resources/Loader.d.ts +9 -9
  449. package/dist/esm/resources/Loader.js +48 -35
  450. package/dist/esm/resources/Loader.js.map +1 -1
  451. package/dist/esm/resources/NetworkOnlyStrategy.d.ts +2 -2
  452. package/dist/esm/resources/NetworkOnlyStrategy.js.map +1 -1
  453. package/dist/esm/resources/factories/BinaryFactory.js.map +1 -1
  454. package/dist/esm/resources/factories/FontFactory.js +1 -1
  455. package/dist/esm/resources/factories/FontFactory.js.map +1 -1
  456. package/dist/esm/resources/factories/ImageFactory.js +4 -4
  457. package/dist/esm/resources/factories/ImageFactory.js.map +1 -1
  458. package/dist/esm/resources/factories/JsonFactory.d.ts +1 -1
  459. package/dist/esm/resources/factories/JsonFactory.js +1 -1
  460. package/dist/esm/resources/factories/JsonFactory.js.map +1 -1
  461. package/dist/esm/resources/factories/MusicFactory.d.ts +1 -1
  462. package/dist/esm/resources/factories/MusicFactory.js +4 -4
  463. package/dist/esm/resources/factories/MusicFactory.js.map +1 -1
  464. package/dist/esm/resources/factories/SoundFactory.d.ts +1 -1
  465. package/dist/esm/resources/factories/SoundFactory.js +3 -3
  466. package/dist/esm/resources/factories/SoundFactory.js.map +1 -1
  467. package/dist/esm/resources/factories/SvgFactory.js +3 -3
  468. package/dist/esm/resources/factories/SvgFactory.js.map +1 -1
  469. package/dist/esm/resources/factories/TextFactory.js +1 -1
  470. package/dist/esm/resources/factories/TextFactory.js.map +1 -1
  471. package/dist/esm/resources/factories/TextureFactory.d.ts +1 -1
  472. package/dist/esm/resources/factories/TextureFactory.js +3 -3
  473. package/dist/esm/resources/factories/TextureFactory.js.map +1 -1
  474. package/dist/esm/resources/factories/VideoFactory.d.ts +2 -2
  475. package/dist/esm/resources/factories/VideoFactory.js +5 -5
  476. package/dist/esm/resources/factories/VideoFactory.js.map +1 -1
  477. package/dist/esm/resources/factories/VttFactory.d.ts +2 -2
  478. package/dist/esm/resources/factories/VttFactory.js +6 -6
  479. package/dist/esm/resources/factories/VttFactory.js.map +1 -1
  480. package/dist/esm/resources/factories/WasmFactory.js.map +1 -1
  481. package/dist/esm/resources/index.d.ts +11 -11
  482. package/dist/esm/resources/utils.js +30 -25
  483. package/dist/esm/resources/utils.js.map +1 -1
  484. package/dist/exo.esm.js +25798 -25144
  485. package/dist/exo.esm.js.map +1 -1
  486. package/package.json +15 -4
@@ -0,0 +1,261 @@
1
+ import { RenderBackendType } from '../RenderBackendType.js';
2
+ import { Texture } from '../texture/Texture.js';
3
+ import { WrapModes, ScaleModes } from '../types.js';
4
+ import { Filter } from './Filter.js';
5
+ import { WebGl2ShaderFilter } from './WebGl2ShaderFilter.js';
6
+ import { WebGpuShaderFilter } from './WebGpuShaderFilter.js';
7
+
8
+ const glsl1dFragment = `#version 300 es
9
+ precision mediump float;
10
+ uniform sampler2D uTexture;
11
+ uniform sampler2D uLut;
12
+ in vec2 vUv;
13
+ out vec4 fragColor;
14
+ void main() {
15
+ vec4 src = texture(uTexture, vUv);
16
+ vec3 graded = texture(uLut, vec2(src.r, 0.5)).rgb;
17
+ fragColor = vec4(graded, src.a);
18
+ }
19
+ `;
20
+ const glsl3dFragment = `#version 300 es
21
+ precision mediump float;
22
+ uniform sampler2D uTexture;
23
+ uniform sampler2D uLut;
24
+ uniform float uLutSize;
25
+ in vec2 vUv;
26
+ out vec4 fragColor;
27
+
28
+ vec3 sampleLut3d(vec3 c) {
29
+ float n = uLutSize;
30
+ float scaled = clamp(c.b, 0.0, 1.0) * (n - 1.0);
31
+ float bLow = floor(scaled);
32
+ float bHigh = min(bLow + 1.0, n - 1.0);
33
+ float bFrac = scaled - bLow;
34
+ float invN2 = 1.0 / (n * n);
35
+ float invN = 1.0 / n;
36
+ float halfPx = 0.5 / (n * n);
37
+ float halfRow = 0.5 / n;
38
+ float rOff = clamp(c.r, 0.0, 1.0) * (n - 1.0) * invN2;
39
+ float gOff = clamp(c.g, 0.0, 1.0) * (n - 1.0) * invN + halfRow;
40
+ float uLow = bLow * invN + rOff + halfPx;
41
+ float uHigh = bHigh * invN + rOff + halfPx;
42
+ vec3 lo = texture(uLut, vec2(uLow, gOff)).rgb;
43
+ vec3 hi = texture(uLut, vec2(uHigh, gOff)).rgb;
44
+ return mix(lo, hi, bFrac);
45
+ }
46
+
47
+ void main() {
48
+ vec4 src = texture(uTexture, vUv);
49
+ fragColor = vec4(sampleLut3d(src.rgb), src.a);
50
+ }
51
+ `;
52
+ const wgsl1dFragment = `
53
+ @group(0) @binding(1) var uTexture: texture_2d<f32>;
54
+ @group(0) @binding(2) var uSampler: sampler;
55
+ @group(1) @binding(1) var uLut: texture_2d<f32>;
56
+
57
+ @fragment
58
+ fn fragMain(@location(0) vUv: vec2<f32>) -> @location(0) vec4<f32> {
59
+ let src = textureSample(uTexture, uSampler, vUv);
60
+ let graded = textureSample(uLut, uSampler, vec2<f32>(src.r, 0.5)).rgb;
61
+ return vec4<f32>(graded, src.a);
62
+ }
63
+ `;
64
+ const wgsl3dFragment = `
65
+ struct Uniforms {
66
+ uLutSize: f32,
67
+ };
68
+
69
+ @group(0) @binding(1) var uTexture: texture_2d<f32>;
70
+ @group(0) @binding(2) var uSampler: sampler;
71
+ @group(1) @binding(0) var<uniform> uniforms: Uniforms;
72
+ @group(1) @binding(1) var uLut: texture_2d<f32>;
73
+
74
+ fn sampleLut3d(c: vec3<f32>) -> vec3<f32> {
75
+ let n = uniforms.uLutSize;
76
+ let scaled = clamp(c.b, 0.0, 1.0) * (n - 1.0);
77
+ let bLow = floor(scaled);
78
+ let bHigh = min(bLow + 1.0, n - 1.0);
79
+ let bFrac = scaled - bLow;
80
+ let invN2 = 1.0 / (n * n);
81
+ let invN = 1.0 / n;
82
+ let halfPx = 0.5 / (n * n);
83
+ let halfRow = 0.5 / n;
84
+ let rOff = clamp(c.r, 0.0, 1.0) * (n - 1.0) * invN2;
85
+ let gOff = clamp(c.g, 0.0, 1.0) * (n - 1.0) * invN + halfRow;
86
+ let uLow = bLow * invN + rOff + halfPx;
87
+ let uHigh = bHigh * invN + rOff + halfPx;
88
+ let lo = textureSample(uLut, uSampler, vec2<f32>(uLow, gOff)).rgb;
89
+ let hi = textureSample(uLut, uSampler, vec2<f32>(uHigh, gOff)).rgb;
90
+ return mix(lo, hi, bFrac);
91
+ }
92
+
93
+ @fragment
94
+ fn fragMain(@location(0) vUv: vec2<f32>) -> @location(0) vec4<f32> {
95
+ let src = textureSample(uTexture, uSampler, vUv);
96
+ return vec4<f32>(sampleLut3d(src.rgb), src.a);
97
+ }
98
+ `;
99
+ /**
100
+ * A {@link Filter} that maps every pixel of the input through a Look-Up Table texture.
101
+ *
102
+ * Two storage modes:
103
+ * - **1D LUT** (`N×1`, default `N=256`): indexed by the source's red channel only. Used for palette cycling, indexed-colour effects, and luminance-based recoloring.
104
+ * - **3D LUT** (`N²×N` unwrapped cube): indexed by the full source RGB with trilinear interpolation between slices. Used for cinematic colour grading, tone mapping, film stock emulation, accessibility filters (color-blindness simulation), and similar standard colour-pipeline tasks. `N=17` matches DaVinci/OBS export defaults.
105
+ *
106
+ * ## Quick start
107
+ *
108
+ * ```ts
109
+ * // Color-graded look from a 17³ LUT exported by your DCC/grading tool:
110
+ * const lut = LutFilter.fromImage(myLutImage); // 289×17 PNG
111
+ * const filter = new LutFilter({ mode: '3d', size: 17 }).setLut(lut);
112
+ * sprite.filters = [filter];
113
+ *
114
+ * // Palette cycling — rotate a 1D palette every frame:
115
+ * const palette = LutFilter.identityLut1D();
116
+ * const filter = new LutFilter({ mode: '1d' }).setLut(palette);
117
+ * // Replace `palette.source` per frame with a shifted copy.
118
+ * ```
119
+ *
120
+ * Internally creates a {@link WebGl2ShaderFilter} or {@link WebGpuShaderFilter} on first
121
+ * apply, depending on the active backend.
122
+ */
123
+ class LutFilter extends Filter {
124
+ /**
125
+ * Build a 1D identity LUT (`N×1` texture with smooth grayscale gradient).
126
+ *
127
+ * Useful as a starting point: applying this LUT is a no-op, mutate
128
+ * `texture.source` to derive cycling palettes, posterization, sepia,
129
+ * grayscale, etc.
130
+ */
131
+ static identityLut1D(size = 256) {
132
+ const canvas = document.createElement('canvas');
133
+ canvas.width = size;
134
+ canvas.height = 1;
135
+ const ctx = canvas.getContext('2d');
136
+ if (ctx === null) {
137
+ throw new Error('LutFilter.identityLut1D: 2D canvas context unavailable.');
138
+ }
139
+ const image = ctx.createImageData(size, 1);
140
+ for (let i = 0; i < size; i++) {
141
+ const v = Math.round((i / (size - 1)) * 255);
142
+ const offset = i * 4;
143
+ image.data[offset] = v;
144
+ image.data[offset + 1] = v;
145
+ image.data[offset + 2] = v;
146
+ image.data[offset + 3] = 255;
147
+ }
148
+ ctx.putImageData(image, 0, 0);
149
+ return new Texture(canvas, { scaleMode: ScaleModes.Linear, wrapMode: WrapModes.ClampToEdge, generateMipMap: false });
150
+ }
151
+ /**
152
+ * Build a 3D identity LUT (`N²×N` unwrapped cube texture).
153
+ *
154
+ * Applying this LUT is a no-op for any RGB input. Use as a starting point
155
+ * for procedural grading or as a fallback when a real LUT image hasn't
156
+ * loaded yet.
157
+ */
158
+ static identityLut3D(size = 17) {
159
+ const width = size * size;
160
+ const canvas = document.createElement('canvas');
161
+ canvas.width = width;
162
+ canvas.height = size;
163
+ const ctx = canvas.getContext('2d');
164
+ if (ctx === null) {
165
+ throw new Error('LutFilter.identityLut3D: 2D canvas context unavailable.');
166
+ }
167
+ const image = ctx.createImageData(width, size);
168
+ const max = size - 1;
169
+ for (let bIndex = 0; bIndex < size; bIndex++) {
170
+ const b = Math.round((bIndex / max) * 255);
171
+ for (let g = 0; g < size; g++) {
172
+ const gVal = Math.round((g / max) * 255);
173
+ for (let r = 0; r < size; r++) {
174
+ const rVal = Math.round((r / max) * 255);
175
+ const x = bIndex * size + r;
176
+ const y = g;
177
+ const offset = (y * width + x) * 4;
178
+ image.data[offset] = rVal;
179
+ image.data[offset + 1] = gVal;
180
+ image.data[offset + 2] = b;
181
+ image.data[offset + 3] = 255;
182
+ }
183
+ }
184
+ }
185
+ ctx.putImageData(image, 0, 0);
186
+ return new Texture(canvas, { scaleMode: ScaleModes.Linear, wrapMode: WrapModes.ClampToEdge, generateMipMap: false });
187
+ }
188
+ /**
189
+ * Wrap an image element as a LUT texture with the right sampler defaults
190
+ * (linear filtering, clamp-to-edge, no mipmaps).
191
+ *
192
+ * Accepts the standard LUT image conventions exported by Photoshop,
193
+ * DaVinci Resolve, OBS, and similar tools — typically a `289×17` or
194
+ * `1024×32` strip for 3D LUTs, or a `256×1` strip for 1D.
195
+ */
196
+ static fromImage(image) {
197
+ return new Texture(image, { scaleMode: ScaleModes.Linear, wrapMode: WrapModes.ClampToEdge, generateMipMap: false });
198
+ }
199
+ _mode;
200
+ _size;
201
+ _lut;
202
+ _backendFilter = null;
203
+ constructor(options = {}) {
204
+ super();
205
+ this._mode = options.mode ?? '3d';
206
+ this._size = Math.max(2, Math.floor(options.size ?? 17));
207
+ this._lut = this._mode === '1d' ? LutFilter.identityLut1D() : LutFilter.identityLut3D(this._size);
208
+ }
209
+ /** The LUT mode this filter was constructed with. */
210
+ get mode() {
211
+ return this._mode;
212
+ }
213
+ /** The cube edge size (3D only). For 1D this returns the constructor-time size hint. */
214
+ get size() {
215
+ return this._size;
216
+ }
217
+ /** The current LUT texture. */
218
+ get lut() {
219
+ return this._lut;
220
+ }
221
+ /** Replace the LUT texture. Returns `this` for chaining. */
222
+ setLut(lut) {
223
+ this._lut = lut;
224
+ if (this._backendFilter !== null) {
225
+ this._backendFilter.uniforms.uLut = lut;
226
+ }
227
+ return this;
228
+ }
229
+ apply(backend, input, output) {
230
+ if (this._backendFilter === null) {
231
+ this._backendFilter = this._createBackendFilter(backend);
232
+ }
233
+ this._backendFilter.apply(backend, input, output);
234
+ }
235
+ destroy() {
236
+ if (this._backendFilter !== null) {
237
+ this._backendFilter.destroy();
238
+ this._backendFilter = null;
239
+ }
240
+ }
241
+ _createBackendFilter(backend) {
242
+ const is3d = this._mode === '3d';
243
+ const uniforms = { uLut: this._lut };
244
+ if (is3d) {
245
+ uniforms.uLutSize = this._size;
246
+ }
247
+ if (backend.backendType === RenderBackendType.WebGpu) {
248
+ return new WebGpuShaderFilter({
249
+ fragmentSource: is3d ? wgsl3dFragment : wgsl1dFragment,
250
+ uniforms,
251
+ });
252
+ }
253
+ return new WebGl2ShaderFilter({
254
+ fragmentSource: is3d ? glsl3dFragment : glsl1dFragment,
255
+ uniforms,
256
+ });
257
+ }
258
+ }
259
+
260
+ export { LutFilter };
261
+ //# sourceMappingURL=LutFilter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LutFilter.js","sources":["../../../../../src/rendering/filters/LutFilter.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { Texture } from '@/rendering/texture/Texture';
2
- import type { RenderTexture } from '@/rendering/texture/RenderTexture';
3
1
  import type { RenderBackend } from '@/rendering/RenderBackend';
2
+ import type { RenderTexture } from '@/rendering/texture/RenderTexture';
3
+ import { Texture } from '@/rendering/texture/Texture';
4
4
  import { Filter } from './Filter';
5
5
  /**
6
6
  * A scalar number, vector tuple, typed array, or texture. Both
@@ -1,13 +1,13 @@
1
1
  import { Color } from '../../core/Color.js';
2
- import { Shader } from '../shader/Shader.js';
3
2
  import { RenderBackendType } from '../RenderBackendType.js';
4
3
  import { RenderTargetPass } from '../RenderTargetPass.js';
4
+ import { Shader } from '../shader/Shader.js';
5
+ import { upgradeFragmentShaderToGl300 } from '../shader/upgradeFragmentShaderToGl300.js';
6
+ import { Texture } from '../texture/Texture.js';
5
7
  import { RenderingPrimitives, BufferTypes, BufferUsage } from '../types.js';
6
- import { createWebGl2ShaderProgram } from '../webgl2/WebGl2ShaderProgram.js';
7
8
  import { WebGl2RenderBuffer } from '../webgl2/WebGl2RenderBuffer.js';
9
+ import { createWebGl2ShaderProgram } from '../webgl2/WebGl2ShaderProgram.js';
8
10
  import { WebGl2VertexArrayObject } from '../webgl2/WebGl2VertexArrayObject.js';
9
- import { Texture } from '../texture/Texture.js';
10
- import { upgradeFragmentShaderToGl300 } from '../shader/upgradeFragmentShaderToGl300.js';
11
11
  import { Filter } from './Filter.js';
12
12
 
13
13
  /**
@@ -33,12 +33,7 @@ void main() {
33
33
  * 2: top-left (-1, 1, 0, 1)
34
34
  * 3: top-right ( 1, 1, 1, 1)
35
35
  */
36
- const quadVertices = new Float32Array([
37
- -1, -1, 0, 0,
38
- 1, -1, 1, 0,
39
- -1, 1, 0, 1,
40
- 1, 1, 1, 1,
41
- ]);
36
+ const quadVertices = new Float32Array([-1, -1, 0, 0, 1, -1, 1, 0, -1, 1, 0, 1, 1, 1, 1, 1]);
42
37
  /** Bytes per vertex: 2 floats position + 2 floats UV = 16 bytes */
43
38
  const vertexStride = 16;
44
39
  /**
@@ -95,9 +90,7 @@ class WebGl2ShaderFilter extends Filter {
95
90
  throw new Error('WebGl2ShaderFilter requires fragmentSource for the WebGL2 backend.');
96
91
  }
97
92
  const autoUpgrade = options.autoUpgrade !== false;
98
- this._fragmentSource = autoUpgrade
99
- ? upgradeFragmentShaderToGl300(options.fragmentSource)
100
- : options.fragmentSource;
93
+ this._fragmentSource = autoUpgrade ? upgradeFragmentShaderToGl300(options.fragmentSource) : options.fragmentSource;
101
94
  this._vertexSource = options.vertexSource ?? defaultVertexSource;
102
95
  this.uniforms = { ...(options.uniforms ?? {}) };
103
96
  }
@@ -113,7 +106,7 @@ class WebGl2ShaderFilter extends Filter {
113
106
  const gl2Backend = backend;
114
107
  this._ensureConnected(gl2Backend);
115
108
  const shader = this._shader;
116
- backend.execute(new RenderTargetPass((b) => {
109
+ backend.execute(new RenderTargetPass(b => {
117
110
  const gl2 = b;
118
111
  // Bind shader (calls ShaderProgram.bind → gl.useProgram + sync dirty uniforms)
119
112
  gl2.bindShader(shader);
@@ -1 +1 @@
1
- {"version":3,"file":"WebGl2ShaderFilter.js","sources":["../../../../../src/rendering/filters/WebGl2ShaderFilter.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WebGl2ShaderFilter.js","sources":["../../../../../src/rendering/filters/WebGl2ShaderFilter.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import type { RenderTexture } from '@/rendering/texture/RenderTexture';
2
1
  import type { RenderBackend } from '@/rendering/RenderBackend';
2
+ import type { RenderTexture } from '@/rendering/texture/RenderTexture';
3
3
  import { Filter } from './Filter';
4
4
  import type { ShaderFilterUniformValue } from './WebGl2ShaderFilter';
5
5
  export type { ShaderFilterUniformValue };
@@ -33,20 +33,21 @@ fn main(@location(0) aPosition: vec2<f32>, @location(1) aUv: vec2<f32>) -> VsOut
33
33
  * 2: top-left (-1, 1, 0, 1)
34
34
  * 3: top-right ( 1, 1, 1, 1)
35
35
  */
36
- const quadVertexData = new Float32Array([
37
- -1, -1, 0, 0,
38
- 1, -1, 1, 0,
39
- -1, 1, 0, 1,
40
- 1, 1, 1, 1,
41
- ]);
36
+ const quadVertexData = new Float32Array([-1, -1, 0, 0, 1, -1, 1, 0, -1, 1, 0, 1, 1, 1, 1, 1]);
42
37
  /** Bytes per vertex: 2 floats position + 2 floats UV = 16 bytes */
43
38
  const vertexStrideBytes = 16;
44
39
  /** Resolution uniform buffer size: vec2<f32> = 8 bytes, padded to 16 */
45
40
  const resolutionBufferBytes = 16;
46
41
  /** Returns true when the value is a texture (goes into a bind group, not a UBO). */
47
42
  function isTextureValue(value) {
48
- return value instanceof Texture
49
- || (typeof value === 'object' && value !== null && 'width' in value && 'height' in value && !(value instanceof Float32Array) && !(value instanceof Int32Array) && !Array.isArray(value));
43
+ return (value instanceof Texture ||
44
+ (typeof value === 'object' &&
45
+ value !== null &&
46
+ 'width' in value &&
47
+ 'height' in value &&
48
+ !(value instanceof Float32Array) &&
49
+ !(value instanceof Int32Array) &&
50
+ !Array.isArray(value)));
50
51
  }
51
52
  /**
52
53
  * A high-level {@link Filter} subclass that renders the input texture through
@@ -124,7 +125,7 @@ class WebGpuShaderFilter extends Filter {
124
125
  const gpuBackend = backend;
125
126
  this._ensureConnected(gpuBackend, output);
126
127
  const conn = this._connection;
127
- backend.execute(new RenderTargetPass((b) => {
128
+ backend.execute(new RenderTargetPass(b => {
128
129
  const gpu = b;
129
130
  const device = conn.device;
130
131
  // ---- Update auto-bound resolution uniform ----
@@ -275,7 +276,7 @@ class WebGpuShaderFilter extends Filter {
275
276
  */
276
277
  _buildUserBindGroupLayout(device) {
277
278
  const entries = [];
278
- const hasScalarUniforms = Object.values(this.uniforms).some((v) => !isTextureValue(v));
279
+ const hasScalarUniforms = Object.values(this.uniforms).some(v => !isTextureValue(v));
279
280
  if (hasScalarUniforms) {
280
281
  entries.push({
281
282
  binding: 0,
@@ -1 +1 @@
1
- {"version":3,"file":"WebGpuShaderFilter.js","sources":["../../../../../src/rendering/filters/WebGpuShaderFilter.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WebGpuShaderFilter.js","sources":["../../../../../src/rendering/filters/WebGpuShaderFilter.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,12 +1,30 @@
1
+ export * from './CallbackRenderPass';
2
+ export * from './Container';
3
+ export * from './Drawable';
4
+ export * from './filters/BlurFilter';
5
+ export * from './filters/ColorFilter';
6
+ export * from './filters/Filter';
7
+ export * from './filters/LutFilter';
8
+ export * from './filters/WebGl2ShaderFilter';
9
+ export * from './filters/WebGpuShaderFilter';
1
10
  export * from './mesh/Mesh';
2
11
  export * from './primitives/Graphics';
12
+ export * from './RenderBackend';
13
+ export * from './RenderBackendType';
14
+ export * from './Renderer';
15
+ export * from './RendererRegistry';
16
+ export * from './RenderNode';
17
+ export * from './RenderPass';
18
+ export * from './RenderStats';
19
+ export * from './RenderTarget';
20
+ export * from './RenderTargetPass';
3
21
  export * from './shader/Shader';
4
22
  export * from './shader/ShaderAttribute';
5
23
  export * from './shader/ShaderUniform';
6
24
  export * from './shader/upgradeFragmentShaderToGl300';
25
+ export * from './sprite/AnimatedSprite';
7
26
  export * from './sprite/Sprite';
8
27
  export * from './sprite/Spritesheet';
9
- export * from './sprite/AnimatedSprite';
10
28
  export * from './text/DynamicGlyphAtlas';
11
29
  export * from './text/Text';
12
30
  export * from './text/TextLayout';
@@ -15,42 +33,25 @@ export * from './text/types';
15
33
  export * from './texture/RenderTexture';
16
34
  export * from './texture/Sampler';
17
35
  export * from './texture/Texture';
36
+ export * from './types';
18
37
  export * from './video/Video';
38
+ export * from './View';
19
39
  export * from './webgl2/AbstractWebGl2BatchedRenderer';
20
40
  export * from './webgl2/AbstractWebGl2Renderer';
41
+ export type { WebGl2Backend } from './webgl2/WebGl2Backend';
42
+ export * from './webgl2/WebGl2Backend';
43
+ export * from './webgl2/WebGl2MeshRenderer';
44
+ export * from './webgl2/WebGl2ParticleRenderer';
21
45
  export * from './webgl2/WebGl2RenderBuffer';
22
46
  export * from './webgl2/WebGl2ShaderBlock';
23
47
  export * from './webgl2/WebGl2ShaderMappings';
24
- export * from './webgl2/WebGl2VertexArrayObject';
25
- export * from './webgl2/WebGl2MeshRenderer';
26
- export * from './webgl2/WebGl2ParticleRenderer';
27
- export type { WebGl2Backend } from './webgl2/WebGl2Backend';
28
- export * from './webgl2/WebGl2Backend';
29
48
  export * from './webgl2/WebGl2ShaderProgram';
30
49
  export * from './webgl2/WebGl2SpriteRenderer';
50
+ export * from './webgl2/WebGl2VertexArrayObject';
31
51
  export * from './webgpu/AbstractWebGpuRenderer';
52
+ export type { WebGpuBackend } from './webgpu/WebGpuBackend';
53
+ export * from './webgpu/WebGpuBackend';
32
54
  export * from './webgpu/WebGpuBlendState';
33
55
  export * from './webgpu/WebGpuMeshRenderer';
34
56
  export * from './webgpu/WebGpuParticleRenderer';
35
- export type { WebGpuBackend } from './webgpu/WebGpuBackend';
36
- export * from './webgpu/WebGpuBackend';
37
57
  export * from './webgpu/WebGpuSpriteRenderer';
38
- export * from './types';
39
- export * from './Container';
40
- export * from './Drawable';
41
- export * from './RenderNode';
42
- export * from './RenderBackendType';
43
- export * from './RenderPass';
44
- export * from './RenderStats';
45
- export * from './RenderTarget';
46
- export * from './RenderTargetPass';
47
- export * from './CallbackRenderPass';
48
- export * from './Renderer';
49
- export * from './RendererRegistry';
50
- export * from './RenderBackend';
51
- export * from './View';
52
- export * from './filters/Filter';
53
- export * from './filters/BlurFilter';
54
- export * from './filters/ColorFilter';
55
- export * from './filters/WebGl2ShaderFilter';
56
- export * from './filters/WebGpuShaderFilter';
@@ -1,6 +1,50 @@
1
1
  import { Drawable } from '@/rendering/Drawable';
2
- import type { Texture } from '@/rendering/texture/Texture';
3
2
  import type { RenderTexture } from '@/rendering/texture/RenderTexture';
3
+ import type { Texture } from '@/rendering/texture/Texture';
4
+ /**
5
+ * Uniform value passed to a custom mesh shader. Mirrors the shape used by
6
+ * {@link MeshShaderConfig.uniforms}; scalars and small vectors auto-marshal
7
+ * to the appropriate `Float32Array`/`Int32Array` for the GL uniform call.
8
+ * `Texture`/`RenderTexture` values are bound to texture slots starting at
9
+ * slot 1 (slot 0 is reserved for the mesh's own `texture`).
10
+ */
11
+ export type MeshShaderUniformValue = number | readonly [number, number] | readonly [number, number, number] | readonly [number, number, number, number] | Float32Array | Int32Array | Texture | RenderTexture;
12
+ /**
13
+ * Custom shader pair attached to a {@link Mesh}. When set, the renderer
14
+ * compiles and binds these sources instead of the default mesh shader.
15
+ *
16
+ * The vertex layout is fixed and shared with the default shader, so custom
17
+ * vertex shaders MUST pin the standard attribute locations:
18
+ *
19
+ * ```glsl
20
+ * layout(location = 0) in vec2 a_position;
21
+ * layout(location = 1) in vec2 a_texcoord;
22
+ * layout(location = 2) in vec4 a_color;
23
+ * ```
24
+ *
25
+ * The renderer auto-binds these uniforms when the shader declares them
26
+ * (declared-but-unused is fine; absent is fine too):
27
+ *
28
+ * - `uniform mat3 u_projection` — view's projection.
29
+ * - `uniform mat3 u_translation` — mesh's global transform.
30
+ * - `uniform vec4 u_tint` — the mesh's `tint` as RGBA in 0..1.
31
+ * - `uniform sampler2D u_texture` — bound to texture slot 0.
32
+ *
33
+ * Anything in `uniforms` is set after the auto-binds, in declaration order,
34
+ * with `Texture`/`RenderTexture` entries taking texture slots 1..N. Mutate
35
+ * `uniforms` between frames to drive animated effects (`uTime`, etc.).
36
+ *
37
+ * Currently WebGL2-only. Setting a custom shader on a Mesh rendered through
38
+ * the WebGPU backend throws at draw time.
39
+ */
40
+ export interface MeshShaderConfig {
41
+ /** GLSL ES 3.00 vertex shader source (`#version 300 es`). */
42
+ readonly vertexSource: string;
43
+ /** GLSL ES 3.00 fragment shader source. */
44
+ readonly fragmentSource: string;
45
+ /** Initial uniform values; mutate between frames for animation. */
46
+ uniforms?: Record<string, MeshShaderUniformValue>;
47
+ }
4
48
  /**
5
49
  * Construction-time options for a {@link Mesh}.
6
50
  *
@@ -13,6 +57,8 @@ import type { RenderTexture } from '@/rendering/texture/RenderTexture';
13
57
  * supplied UVs while an untextured mesh paints solid vertex colors only.
14
58
  *
15
59
  * Validation is enforced at construction; any mismatch throws.
60
+ *
61
+ * For custom shaders, see {@link MeshShaderConfig}.
16
62
  */
17
63
  export interface MeshOptions {
18
64
  readonly vertices: Float32Array;
@@ -20,6 +66,7 @@ export interface MeshOptions {
20
66
  readonly uvs?: Float32Array;
21
67
  readonly colors?: Uint32Array;
22
68
  readonly texture?: Texture | RenderTexture | null;
69
+ readonly shader?: MeshShaderConfig;
23
70
  }
24
71
  /**
25
72
  * Arbitrary 2D triangle-mesh primitive.
@@ -54,6 +101,7 @@ export declare class Mesh extends Drawable {
54
101
  readonly indices: Uint16Array | null;
55
102
  readonly uvs: Float32Array | null;
56
103
  readonly colors: Uint32Array | null;
104
+ readonly shader: MeshShaderConfig | null;
57
105
  private _texture;
58
106
  constructor(options: MeshOptions);
59
107
  /** Number of (x, y) vertex pairs in the mesh (i.e. `vertices.length / 2`). */