@codexo/exojs 0.7.11 → 0.7.12

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 (478) hide show
  1. package/CHANGELOG.md +108 -0
  2. package/dist/esm/animation/Tween.d.ts +60 -1
  3. package/dist/esm/animation/Tween.js +60 -1
  4. package/dist/esm/animation/Tween.js.map +1 -1
  5. package/dist/esm/animation/TweenManager.d.ts +10 -0
  6. package/dist/esm/animation/TweenManager.js +10 -0
  7. package/dist/esm/animation/TweenManager.js.map +1 -1
  8. package/dist/esm/animation/types.d.ts +15 -0
  9. package/dist/esm/animation/types.js +6 -0
  10. package/dist/esm/animation/types.js.map +1 -1
  11. package/dist/esm/audio/AbstractMedia.d.ts +11 -0
  12. package/dist/esm/audio/AbstractMedia.js +10 -0
  13. package/dist/esm/audio/AbstractMedia.js.map +1 -1
  14. package/dist/esm/audio/AudioAnalyser.d.ts +21 -0
  15. package/dist/esm/audio/AudioAnalyser.js +16 -0
  16. package/dist/esm/audio/AudioAnalyser.js.map +1 -1
  17. package/dist/esm/audio/AudioBus.d.ts +37 -0
  18. package/dist/esm/audio/AudioBus.js +36 -0
  19. package/dist/esm/audio/AudioBus.js.map +1 -1
  20. package/dist/esm/audio/AudioFilter.d.ts +7 -0
  21. package/dist/esm/audio/AudioFilter.js +6 -0
  22. package/dist/esm/audio/AudioFilter.js.map +1 -1
  23. package/dist/esm/audio/AudioListener.d.ts +19 -0
  24. package/dist/esm/audio/AudioListener.js +11 -0
  25. package/dist/esm/audio/AudioListener.js.map +1 -1
  26. package/dist/esm/audio/AudioManager.d.ts +37 -0
  27. package/dist/esm/audio/AudioManager.js +37 -0
  28. package/dist/esm/audio/AudioManager.js.map +1 -1
  29. package/dist/esm/audio/BeatDetector.d.ts +21 -0
  30. package/dist/esm/audio/BeatDetector.js +21 -0
  31. package/dist/esm/audio/BeatDetector.js.map +1 -1
  32. package/dist/esm/audio/Media.d.ts +11 -0
  33. package/dist/esm/audio/Music.d.ts +12 -0
  34. package/dist/esm/audio/Music.js +12 -0
  35. package/dist/esm/audio/Music.js.map +1 -1
  36. package/dist/esm/audio/Sound.d.ts +25 -0
  37. package/dist/esm/audio/Sound.js +18 -0
  38. package/dist/esm/audio/Sound.js.map +1 -1
  39. package/dist/esm/audio/audio-context.d.ts +48 -0
  40. package/dist/esm/audio/audio-context.js +48 -5
  41. package/dist/esm/audio/audio-context.js.map +1 -1
  42. package/dist/esm/audio/filters/ChorusFilter.d.ts +5 -0
  43. package/dist/esm/audio/filters/ChorusFilter.js +4 -0
  44. package/dist/esm/audio/filters/ChorusFilter.js.map +1 -1
  45. package/dist/esm/audio/filters/CompressorFilter.d.ts +12 -0
  46. package/dist/esm/audio/filters/CompressorFilter.js +11 -0
  47. package/dist/esm/audio/filters/CompressorFilter.js.map +1 -1
  48. package/dist/esm/audio/filters/DelayFilter.d.ts +11 -0
  49. package/dist/esm/audio/filters/DelayFilter.js +10 -0
  50. package/dist/esm/audio/filters/DelayFilter.js.map +1 -1
  51. package/dist/esm/audio/filters/DuckingFilter.d.ts +13 -0
  52. package/dist/esm/audio/filters/DuckingFilter.js +12 -0
  53. package/dist/esm/audio/filters/DuckingFilter.js.map +1 -1
  54. package/dist/esm/audio/filters/EqualizerFilter.d.ts +20 -0
  55. package/dist/esm/audio/filters/EqualizerFilter.js +40 -0
  56. package/dist/esm/audio/filters/EqualizerFilter.js.map +1 -1
  57. package/dist/esm/audio/filters/GranularFilter.d.ts +6 -0
  58. package/dist/esm/audio/filters/GranularFilter.js +6 -0
  59. package/dist/esm/audio/filters/GranularFilter.js.map +1 -1
  60. package/dist/esm/audio/filters/HighpassFilter.d.ts +10 -0
  61. package/dist/esm/audio/filters/HighpassFilter.js +9 -0
  62. package/dist/esm/audio/filters/HighpassFilter.js.map +1 -1
  63. package/dist/esm/audio/filters/LowpassFilter.d.ts +10 -0
  64. package/dist/esm/audio/filters/LowpassFilter.js +9 -0
  65. package/dist/esm/audio/filters/LowpassFilter.js.map +1 -1
  66. package/dist/esm/audio/filters/PitchShiftFilter.d.ts +2 -0
  67. package/dist/esm/audio/filters/PitchShiftFilter.js +2 -0
  68. package/dist/esm/audio/filters/PitchShiftFilter.js.map +1 -1
  69. package/dist/esm/audio/filters/ReverbFilter.d.ts +12 -0
  70. package/dist/esm/audio/filters/ReverbFilter.js +11 -0
  71. package/dist/esm/audio/filters/ReverbFilter.js.map +1 -1
  72. package/dist/esm/audio/filters/VocoderFilter.d.ts +11 -0
  73. package/dist/esm/audio/filters/VocoderFilter.js +11 -0
  74. package/dist/esm/audio/filters/VocoderFilter.js.map +1 -1
  75. package/dist/esm/audio/filters/WorkletFilter.d.ts +6 -1
  76. package/dist/esm/audio/filters/WorkletFilter.js +6 -1
  77. package/dist/esm/audio/filters/WorkletFilter.js.map +1 -1
  78. package/dist/esm/core/Application.d.ts +63 -0
  79. package/dist/esm/core/Application.js +61 -0
  80. package/dist/esm/core/Application.js.map +1 -1
  81. package/dist/esm/core/Bounds.d.ts +23 -0
  82. package/dist/esm/core/Bounds.js +23 -0
  83. package/dist/esm/core/Bounds.js.map +1 -1
  84. package/dist/esm/core/Clock.d.ts +21 -0
  85. package/dist/esm/core/Clock.js +21 -0
  86. package/dist/esm/core/Clock.js.map +1 -1
  87. package/dist/esm/core/Color.d.ts +35 -0
  88. package/dist/esm/core/Color.js +35 -0
  89. package/dist/esm/core/Color.js.map +1 -1
  90. package/dist/esm/core/Scene.d.ts +46 -0
  91. package/dist/esm/core/Scene.js +27 -0
  92. package/dist/esm/core/Scene.js.map +1 -1
  93. package/dist/esm/core/SceneManager.d.ts +62 -0
  94. package/dist/esm/core/SceneManager.js +49 -0
  95. package/dist/esm/core/SceneManager.js.map +1 -1
  96. package/dist/esm/core/SceneNode.d.ts +31 -0
  97. package/dist/esm/core/SceneNode.js +31 -0
  98. package/dist/esm/core/SceneNode.js.map +1 -1
  99. package/dist/esm/core/Signal.d.ts +44 -0
  100. package/dist/esm/core/Signal.js +39 -0
  101. package/dist/esm/core/Signal.js.map +1 -1
  102. package/dist/esm/core/Time.d.ts +21 -0
  103. package/dist/esm/core/Time.js +21 -0
  104. package/dist/esm/core/Time.js.map +1 -1
  105. package/dist/esm/core/Timer.d.ts +7 -0
  106. package/dist/esm/core/Timer.js +7 -0
  107. package/dist/esm/core/Timer.js.map +1 -1
  108. package/dist/esm/core/capabilities.d.ts +12 -0
  109. package/dist/esm/core/capabilities.js +12 -0
  110. package/dist/esm/core/capabilities.js.map +1 -1
  111. package/dist/esm/core/types.d.ts +37 -0
  112. package/dist/esm/core/utils.d.ts +48 -0
  113. package/dist/esm/core/utils.js +48 -0
  114. package/dist/esm/core/utils.js.map +1 -1
  115. package/dist/esm/debug/BoundingBoxesLayer.d.ts +8 -0
  116. package/dist/esm/debug/BoundingBoxesLayer.js +8 -0
  117. package/dist/esm/debug/BoundingBoxesLayer.js.map +1 -1
  118. package/dist/esm/debug/DebugLayer.d.ts +16 -3
  119. package/dist/esm/debug/DebugLayer.js +11 -3
  120. package/dist/esm/debug/DebugLayer.js.map +1 -1
  121. package/dist/esm/debug/DebugOverlay.d.ts +11 -0
  122. package/dist/esm/debug/DebugOverlay.js +6 -0
  123. package/dist/esm/debug/DebugOverlay.js.map +1 -1
  124. package/dist/esm/debug/HitTestLayer.d.ts +9 -0
  125. package/dist/esm/debug/HitTestLayer.js +9 -0
  126. package/dist/esm/debug/HitTestLayer.js.map +1 -1
  127. package/dist/esm/debug/PerformanceLayer.d.ts +17 -1
  128. package/dist/esm/debug/PerformanceLayer.js +18 -0
  129. package/dist/esm/debug/PerformanceLayer.js.map +1 -1
  130. package/dist/esm/debug/PointerStackLayer.d.ts +8 -0
  131. package/dist/esm/debug/PointerStackLayer.js +10 -2
  132. package/dist/esm/debug/PointerStackLayer.js.map +1 -1
  133. package/dist/esm/index.js +2 -2
  134. package/dist/esm/input/ArcadeStickGamepadMapping.d.ts +7 -0
  135. package/dist/esm/input/ArcadeStickGamepadMapping.js +7 -0
  136. package/dist/esm/input/ArcadeStickGamepadMapping.js.map +1 -1
  137. package/dist/esm/input/GameCubeGamepadMapping.d.ts +9 -0
  138. package/dist/esm/input/GameCubeGamepadMapping.js +9 -0
  139. package/dist/esm/input/GameCubeGamepadMapping.js.map +1 -1
  140. package/dist/esm/input/Gamepad.d.ts +48 -0
  141. package/dist/esm/input/Gamepad.js +43 -0
  142. package/dist/esm/input/Gamepad.js.map +1 -1
  143. package/dist/esm/input/GamepadChannels.d.ts +8 -0
  144. package/dist/esm/input/GamepadChannels.js +8 -0
  145. package/dist/esm/input/GamepadChannels.js.map +1 -1
  146. package/dist/esm/input/GamepadControl.d.ts +18 -0
  147. package/dist/esm/input/GamepadControl.js +13 -0
  148. package/dist/esm/input/GamepadControl.js.map +1 -1
  149. package/dist/esm/input/GamepadDefinitions.d.ts +64 -1
  150. package/dist/esm/input/GamepadDefinitions.js +40 -1
  151. package/dist/esm/input/GamepadDefinitions.js.map +1 -1
  152. package/dist/esm/input/GamepadMapping.d.ts +32 -2
  153. package/dist/esm/input/GamepadMapping.js +24 -0
  154. package/dist/esm/input/GamepadMapping.js.map +1 -1
  155. package/dist/esm/input/GamepadPromptLayouts.d.ts +32 -1
  156. package/dist/esm/input/GamepadPromptLayouts.js +25 -1
  157. package/dist/esm/input/GamepadPromptLayouts.js.map +1 -1
  158. package/dist/esm/input/GenericDualAnalogGamepadMapping.d.ts +10 -0
  159. package/dist/esm/input/GenericDualAnalogGamepadMapping.js +10 -0
  160. package/dist/esm/input/GenericDualAnalogGamepadMapping.js.map +1 -1
  161. package/dist/esm/input/GestureRecognizer.d.ts +11 -2
  162. package/dist/esm/input/GestureRecognizer.js +11 -2
  163. package/dist/esm/input/GestureRecognizer.js.map +1 -1
  164. package/dist/esm/input/Input.d.ts +24 -0
  165. package/dist/esm/input/Input.js +22 -0
  166. package/dist/esm/input/Input.js.map +1 -1
  167. package/dist/esm/input/InputManager.d.ts +33 -0
  168. package/dist/esm/input/InputManager.js +33 -0
  169. package/dist/esm/input/InputManager.js.map +1 -1
  170. package/dist/esm/input/InteractionEvent.d.ts +13 -0
  171. package/dist/esm/input/InteractionEvent.js +8 -0
  172. package/dist/esm/input/InteractionEvent.js.map +1 -1
  173. package/dist/esm/input/InteractionManager.d.ts +33 -4
  174. package/dist/esm/input/InteractionManager.js +33 -4
  175. package/dist/esm/input/InteractionManager.js.map +1 -1
  176. package/dist/esm/input/JoyConLeftGamepadMapping.d.ts +9 -0
  177. package/dist/esm/input/JoyConLeftGamepadMapping.js +9 -0
  178. package/dist/esm/input/JoyConLeftGamepadMapping.js.map +1 -1
  179. package/dist/esm/input/JoyConRightGamepadMapping.d.ts +9 -0
  180. package/dist/esm/input/JoyConRightGamepadMapping.js +9 -0
  181. package/dist/esm/input/JoyConRightGamepadMapping.js.map +1 -1
  182. package/dist/esm/input/PlayStationGamepadMapping.d.ts +8 -0
  183. package/dist/esm/input/PlayStationGamepadMapping.js +8 -0
  184. package/dist/esm/input/PlayStationGamepadMapping.js.map +1 -1
  185. package/dist/esm/input/Pointer.d.ts +22 -0
  186. package/dist/esm/input/Pointer.js +22 -0
  187. package/dist/esm/input/Pointer.js.map +1 -1
  188. package/dist/esm/input/SteamControllerGamepadMapping.d.ts +8 -0
  189. package/dist/esm/input/SteamControllerGamepadMapping.js +8 -0
  190. package/dist/esm/input/SteamControllerGamepadMapping.js.map +1 -1
  191. package/dist/esm/input/SwitchProGamepadMapping.d.ts +9 -0
  192. package/dist/esm/input/SwitchProGamepadMapping.js +9 -0
  193. package/dist/esm/input/SwitchProGamepadMapping.js.map +1 -1
  194. package/dist/esm/input/XboxGamepadMapping.d.ts +8 -0
  195. package/dist/esm/input/XboxGamepadMapping.js +8 -0
  196. package/dist/esm/input/XboxGamepadMapping.js.map +1 -1
  197. package/dist/esm/input/types.d.ts +20 -0
  198. package/dist/esm/input/types.js +20 -0
  199. package/dist/esm/input/types.js.map +1 -1
  200. package/dist/esm/math/AbstractVector.d.ts +83 -0
  201. package/dist/esm/math/AbstractVector.js +83 -0
  202. package/dist/esm/math/AbstractVector.js.map +1 -1
  203. package/dist/esm/math/Circle.d.ts +32 -0
  204. package/dist/esm/math/Circle.js +34 -2
  205. package/dist/esm/math/Circle.js.map +1 -1
  206. package/dist/esm/math/CircleLike.d.ts +1 -0
  207. package/dist/esm/math/Collision.d.ts +39 -0
  208. package/dist/esm/math/Collision.js +5 -0
  209. package/dist/esm/math/Collision.js.map +1 -1
  210. package/dist/esm/math/Ellipse.d.ts +11 -0
  211. package/dist/esm/math/Ellipse.js +18 -2
  212. package/dist/esm/math/Ellipse.js.map +1 -1
  213. package/dist/esm/math/EllipseLike.d.ts +3 -0
  214. package/dist/esm/math/Flags.d.ts +31 -0
  215. package/dist/esm/math/Flags.js +31 -0
  216. package/dist/esm/math/Flags.js.map +1 -1
  217. package/dist/esm/math/Interval.d.ts +15 -0
  218. package/dist/esm/math/Interval.js +15 -0
  219. package/dist/esm/math/Interval.js.map +1 -1
  220. package/dist/esm/math/Line.d.ts +17 -1
  221. package/dist/esm/math/Line.js +17 -1
  222. package/dist/esm/math/Line.js.map +1 -1
  223. package/dist/esm/math/LineLike.d.ts +1 -0
  224. package/dist/esm/math/Matrix.d.ts +44 -3
  225. package/dist/esm/math/Matrix.js +44 -3
  226. package/dist/esm/math/Matrix.js.map +1 -1
  227. package/dist/esm/math/ObservableSize.d.ts +7 -0
  228. package/dist/esm/math/ObservableSize.js +7 -0
  229. package/dist/esm/math/ObservableSize.js.map +1 -1
  230. package/dist/esm/math/ObservableVector.d.ts +9 -0
  231. package/dist/esm/math/ObservableVector.js +9 -0
  232. package/dist/esm/math/ObservableVector.js.map +1 -1
  233. package/dist/esm/math/PointLike.d.ts +1 -0
  234. package/dist/esm/math/PolarVector.d.ts +15 -0
  235. package/dist/esm/math/PolarVector.js +16 -1
  236. package/dist/esm/math/PolarVector.js.map +1 -1
  237. package/dist/esm/math/Polygon.d.ts +20 -0
  238. package/dist/esm/math/Polygon.js +20 -0
  239. package/dist/esm/math/Polygon.js.map +1 -1
  240. package/dist/esm/math/PolygonLike.d.ts +4 -0
  241. package/dist/esm/math/Quadtree.d.ts +40 -3
  242. package/dist/esm/math/Quadtree.js +39 -3
  243. package/dist/esm/math/Quadtree.js.map +1 -1
  244. package/dist/esm/math/Random.d.ts +25 -0
  245. package/dist/esm/math/Random.js +25 -0
  246. package/dist/esm/math/Random.js.map +1 -1
  247. package/dist/esm/math/Rectangle.d.ts +15 -0
  248. package/dist/esm/math/Rectangle.js +17 -2
  249. package/dist/esm/math/Rectangle.js.map +1 -1
  250. package/dist/esm/math/RectangleLike.d.ts +1 -0
  251. package/dist/esm/math/Segment.d.ts +7 -0
  252. package/dist/esm/math/Segment.js +7 -0
  253. package/dist/esm/math/Segment.js.map +1 -1
  254. package/dist/esm/math/ShapeLike.d.ts +6 -0
  255. package/dist/esm/math/Size.d.ts +9 -0
  256. package/dist/esm/math/Size.js +9 -0
  257. package/dist/esm/math/Size.js.map +1 -1
  258. package/dist/esm/math/Vector.d.ts +16 -0
  259. package/dist/esm/math/Vector.js +16 -0
  260. package/dist/esm/math/Vector.js.map +1 -1
  261. package/dist/esm/math/collision-detection.d.ts +47 -1
  262. package/dist/esm/math/collision-detection.js +228 -17
  263. package/dist/esm/math/collision-detection.js.map +1 -1
  264. package/dist/esm/math/collision-primitives.d.ts +23 -0
  265. package/dist/esm/math/collision-primitives.js +23 -0
  266. package/dist/esm/math/collision-primitives.js.map +1 -1
  267. package/dist/esm/math/geometry.d.ts +42 -0
  268. package/dist/esm/math/geometry.js +37 -0
  269. package/dist/esm/math/geometry.js.map +1 -1
  270. package/dist/esm/math/utils.d.ts +41 -0
  271. package/dist/esm/math/utils.js +41 -0
  272. package/dist/esm/math/utils.js.map +1 -1
  273. package/dist/esm/particles/Particle.d.ts +37 -0
  274. package/dist/esm/particles/Particle.js +37 -0
  275. package/dist/esm/particles/Particle.js.map +1 -1
  276. package/dist/esm/particles/ParticleProperties.d.ts +15 -0
  277. package/dist/esm/particles/ParticleSystem.d.ts +69 -0
  278. package/dist/esm/particles/ParticleSystem.js +69 -0
  279. package/dist/esm/particles/ParticleSystem.js.map +1 -1
  280. package/dist/esm/particles/affectors/ColorAffector.d.ts +13 -0
  281. package/dist/esm/particles/affectors/ColorAffector.js +13 -0
  282. package/dist/esm/particles/affectors/ColorAffector.js.map +1 -1
  283. package/dist/esm/particles/affectors/ForceAffector.d.ts +11 -0
  284. package/dist/esm/particles/affectors/ForceAffector.js +11 -0
  285. package/dist/esm/particles/affectors/ForceAffector.js.map +1 -1
  286. package/dist/esm/particles/affectors/ParticleAffector.d.ts +13 -0
  287. package/dist/esm/particles/affectors/ScaleAffector.d.ts +10 -0
  288. package/dist/esm/particles/affectors/ScaleAffector.js +10 -0
  289. package/dist/esm/particles/affectors/ScaleAffector.js.map +1 -1
  290. package/dist/esm/particles/affectors/TorqueAffector.d.ts +11 -0
  291. package/dist/esm/particles/affectors/TorqueAffector.js +11 -0
  292. package/dist/esm/particles/affectors/TorqueAffector.js.map +1 -1
  293. package/dist/esm/particles/emitters/ParticleEmitter.d.ts +13 -0
  294. package/dist/esm/particles/emitters/ParticleOptions.d.ts +16 -0
  295. package/dist/esm/particles/emitters/ParticleOptions.js +16 -0
  296. package/dist/esm/particles/emitters/ParticleOptions.js.map +1 -1
  297. package/dist/esm/particles/emitters/UniversalEmitter.d.ts +23 -0
  298. package/dist/esm/particles/emitters/UniversalEmitter.js +23 -0
  299. package/dist/esm/particles/emitters/UniversalEmitter.js.map +1 -1
  300. package/dist/esm/rendering/CallbackRenderPass.d.ts +12 -0
  301. package/dist/esm/rendering/CallbackRenderPass.js +12 -0
  302. package/dist/esm/rendering/CallbackRenderPass.js.map +1 -1
  303. package/dist/esm/rendering/Container.d.ts +43 -0
  304. package/dist/esm/rendering/Container.js +43 -0
  305. package/dist/esm/rendering/Container.js.map +1 -1
  306. package/dist/esm/rendering/Drawable.d.ts +22 -0
  307. package/dist/esm/rendering/Drawable.js +22 -0
  308. package/dist/esm/rendering/Drawable.js.map +1 -1
  309. package/dist/esm/rendering/RenderBackend.d.ts +13 -0
  310. package/dist/esm/rendering/RenderBackendType.d.ts +4 -0
  311. package/dist/esm/rendering/RenderBackendType.js +4 -0
  312. package/dist/esm/rendering/RenderBackendType.js.map +1 -1
  313. package/dist/esm/rendering/RenderNode.d.ts +18 -0
  314. package/dist/esm/rendering/RenderNode.js +18 -0
  315. package/dist/esm/rendering/RenderNode.js.map +1 -1
  316. package/dist/esm/rendering/RenderPass.d.ts +8 -0
  317. package/dist/esm/rendering/RenderStats.d.ts +19 -0
  318. package/dist/esm/rendering/RenderStats.js +7 -0
  319. package/dist/esm/rendering/RenderStats.js.map +1 -1
  320. package/dist/esm/rendering/RenderTarget.d.ts +17 -0
  321. package/dist/esm/rendering/RenderTarget.js +17 -0
  322. package/dist/esm/rendering/RenderTarget.js.map +1 -1
  323. package/dist/esm/rendering/RenderTargetPass.d.ts +11 -0
  324. package/dist/esm/rendering/RenderTargetPass.js +7 -0
  325. package/dist/esm/rendering/RenderTargetPass.js.map +1 -1
  326. package/dist/esm/rendering/Renderer.d.ts +15 -0
  327. package/dist/esm/rendering/RendererRegistry.d.ts +7 -0
  328. package/dist/esm/rendering/RendererRegistry.js +7 -0
  329. package/dist/esm/rendering/RendererRegistry.js.map +1 -1
  330. package/dist/esm/rendering/View.d.ts +67 -2
  331. package/dist/esm/rendering/View.js +57 -0
  332. package/dist/esm/rendering/View.js.map +1 -1
  333. package/dist/esm/rendering/filters/BlurFilter.d.ts +9 -0
  334. package/dist/esm/rendering/filters/BlurFilter.js +8 -0
  335. package/dist/esm/rendering/filters/BlurFilter.js.map +1 -1
  336. package/dist/esm/rendering/filters/ColorFilter.d.ts +7 -0
  337. package/dist/esm/rendering/filters/ColorFilter.js +7 -0
  338. package/dist/esm/rendering/filters/ColorFilter.js.map +1 -1
  339. package/dist/esm/rendering/filters/Filter.d.ts +23 -0
  340. package/dist/esm/rendering/filters/Filter.js +20 -0
  341. package/dist/esm/rendering/filters/Filter.js.map +1 -1
  342. package/dist/esm/rendering/filters/WebGl2ShaderFilter.d.ts +5 -0
  343. package/dist/esm/rendering/filters/WebGl2ShaderFilter.js +5 -0
  344. package/dist/esm/rendering/filters/WebGl2ShaderFilter.js.map +1 -1
  345. package/dist/esm/rendering/filters/WebGpuShaderFilter.d.ts +5 -0
  346. package/dist/esm/rendering/filters/WebGpuShaderFilter.js +5 -0
  347. package/dist/esm/rendering/filters/WebGpuShaderFilter.js.map +1 -1
  348. package/dist/esm/rendering/mesh/Mesh.d.ts +2 -0
  349. package/dist/esm/rendering/mesh/Mesh.js +2 -0
  350. package/dist/esm/rendering/mesh/Mesh.js.map +1 -1
  351. package/dist/esm/rendering/primitives/Graphics.d.ts +34 -0
  352. package/dist/esm/rendering/primitives/Graphics.js +34 -0
  353. package/dist/esm/rendering/primitives/Graphics.js.map +1 -1
  354. package/dist/esm/rendering/shader/Shader.d.ts +36 -0
  355. package/dist/esm/rendering/shader/Shader.js +26 -0
  356. package/dist/esm/rendering/shader/Shader.js.map +1 -1
  357. package/dist/esm/rendering/shader/ShaderAttribute.d.ts +13 -0
  358. package/dist/esm/rendering/shader/ShaderAttribute.js +13 -0
  359. package/dist/esm/rendering/shader/ShaderAttribute.js.map +1 -1
  360. package/dist/esm/rendering/shader/ShaderUniform.d.ts +27 -0
  361. package/dist/esm/rendering/shader/ShaderUniform.js +28 -1
  362. package/dist/esm/rendering/shader/ShaderUniform.js.map +1 -1
  363. package/dist/esm/rendering/sprite/AnimatedSprite.d.ts +38 -0
  364. package/dist/esm/rendering/sprite/AnimatedSprite.js +36 -0
  365. package/dist/esm/rendering/sprite/AnimatedSprite.js.map +1 -1
  366. package/dist/esm/rendering/sprite/Sprite.d.ts +56 -0
  367. package/dist/esm/rendering/sprite/Sprite.js +56 -0
  368. package/dist/esm/rendering/sprite/Sprite.js.map +1 -1
  369. package/dist/esm/rendering/sprite/Spritesheet.d.ts +25 -0
  370. package/dist/esm/rendering/sprite/Spritesheet.js +20 -0
  371. package/dist/esm/rendering/sprite/Spritesheet.js.map +1 -1
  372. package/dist/esm/rendering/text/Text.d.ts +2 -0
  373. package/dist/esm/rendering/text/Text.js +2 -0
  374. package/dist/esm/rendering/text/Text.js.map +1 -1
  375. package/dist/esm/rendering/text/TextStyle.d.ts +29 -0
  376. package/dist/esm/rendering/text/TextStyle.js +24 -0
  377. package/dist/esm/rendering/text/TextStyle.js.map +1 -1
  378. package/dist/esm/rendering/text/types.d.ts +1 -0
  379. package/dist/esm/rendering/texture/RenderTexture.d.ts +16 -0
  380. package/dist/esm/rendering/texture/RenderTexture.js +16 -0
  381. package/dist/esm/rendering/texture/RenderTexture.js.map +1 -1
  382. package/dist/esm/rendering/texture/Sampler.d.ts +23 -0
  383. package/dist/esm/rendering/texture/Sampler.js +13 -0
  384. package/dist/esm/rendering/texture/Sampler.js.map +1 -1
  385. package/dist/esm/rendering/texture/Texture.d.ts +30 -0
  386. package/dist/esm/rendering/texture/Texture.js +30 -0
  387. package/dist/esm/rendering/texture/Texture.js.map +1 -1
  388. package/dist/esm/rendering/types.d.ts +29 -0
  389. package/dist/esm/rendering/types.js +29 -0
  390. package/dist/esm/rendering/types.js.map +1 -1
  391. package/dist/esm/rendering/utils.d.ts +20 -0
  392. package/dist/esm/rendering/utils.js +10 -0
  393. package/dist/esm/rendering/utils.js.map +1 -1
  394. package/dist/esm/rendering/video/Video.d.ts +35 -1
  395. package/dist/esm/rendering/video/Video.js +36 -2
  396. package/dist/esm/rendering/video/Video.js.map +1 -1
  397. package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.d.ts +7 -0
  398. package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js +7 -0
  399. package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js.map +1 -1
  400. package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts +13 -0
  401. package/dist/esm/rendering/webgl2/WebGl2Backend.js +13 -0
  402. package/dist/esm/rendering/webgl2/WebGl2Backend.js.map +1 -1
  403. package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.d.ts +8 -0
  404. package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.js +8 -0
  405. package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.js.map +1 -1
  406. package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts +35 -0
  407. package/dist/esm/rendering/webgpu/WebGpuBackend.js +135 -5
  408. package/dist/esm/rendering/webgpu/WebGpuBackend.js.map +1 -1
  409. package/dist/esm/resources/AbstractAssetFactory.d.ts +20 -0
  410. package/dist/esm/resources/AbstractAssetFactory.js +20 -0
  411. package/dist/esm/resources/AbstractAssetFactory.js.map +1 -1
  412. package/dist/esm/resources/AssetFactory.d.ts +26 -0
  413. package/dist/esm/resources/AssetManifest.d.ts +45 -0
  414. package/dist/esm/resources/AssetManifest.js +25 -0
  415. package/dist/esm/resources/AssetManifest.js.map +1 -1
  416. package/dist/esm/resources/CacheFirstStrategy.d.ts +12 -0
  417. package/dist/esm/resources/CacheFirstStrategy.js +12 -0
  418. package/dist/esm/resources/CacheFirstStrategy.js.map +1 -1
  419. package/dist/esm/resources/CacheStore.d.ts +23 -0
  420. package/dist/esm/resources/CacheStrategy.d.ts +20 -0
  421. package/dist/esm/resources/Database.d.ts +45 -0
  422. package/dist/esm/resources/FactoryRegistry.d.ts +28 -0
  423. package/dist/esm/resources/FactoryRegistry.js +24 -0
  424. package/dist/esm/resources/FactoryRegistry.js.map +1 -1
  425. package/dist/esm/resources/IndexedDbDatabase.d.ts +22 -1
  426. package/dist/esm/resources/IndexedDbDatabase.js +21 -0
  427. package/dist/esm/resources/IndexedDbDatabase.js.map +1 -1
  428. package/dist/esm/resources/IndexedDbStore.d.ts +20 -0
  429. package/dist/esm/resources/IndexedDbStore.js +12 -0
  430. package/dist/esm/resources/IndexedDbStore.js.map +1 -1
  431. package/dist/esm/resources/Loader.d.ts +167 -0
  432. package/dist/esm/resources/Loader.js +110 -0
  433. package/dist/esm/resources/Loader.js.map +1 -1
  434. package/dist/esm/resources/NetworkOnlyStrategy.d.ts +8 -0
  435. package/dist/esm/resources/NetworkOnlyStrategy.js +8 -0
  436. package/dist/esm/resources/NetworkOnlyStrategy.js.map +1 -1
  437. package/dist/esm/resources/factories/BinaryFactory.d.ts +13 -0
  438. package/dist/esm/resources/factories/BinaryFactory.js +13 -0
  439. package/dist/esm/resources/factories/BinaryFactory.js.map +1 -1
  440. package/dist/esm/resources/factories/FontFactory.d.ts +37 -0
  441. package/dist/esm/resources/factories/FontFactory.js +26 -0
  442. package/dist/esm/resources/factories/FontFactory.js.map +1 -1
  443. package/dist/esm/resources/factories/ImageFactory.d.ts +24 -0
  444. package/dist/esm/resources/factories/ImageFactory.js +19 -0
  445. package/dist/esm/resources/factories/ImageFactory.js.map +1 -1
  446. package/dist/esm/resources/factories/JsonFactory.d.ts +13 -0
  447. package/dist/esm/resources/factories/JsonFactory.js +13 -0
  448. package/dist/esm/resources/factories/JsonFactory.js.map +1 -1
  449. package/dist/esm/resources/factories/MusicFactory.d.ts +36 -0
  450. package/dist/esm/resources/factories/MusicFactory.js +44 -4
  451. package/dist/esm/resources/factories/MusicFactory.js.map +1 -1
  452. package/dist/esm/resources/factories/SoundFactory.d.ts +29 -0
  453. package/dist/esm/resources/factories/SoundFactory.js +18 -0
  454. package/dist/esm/resources/factories/SoundFactory.js.map +1 -1
  455. package/dist/esm/resources/factories/SvgFactory.d.ts +19 -0
  456. package/dist/esm/resources/factories/SvgFactory.js +19 -0
  457. package/dist/esm/resources/factories/SvgFactory.js.map +1 -1
  458. package/dist/esm/resources/factories/TextFactory.d.ts +11 -0
  459. package/dist/esm/resources/factories/TextFactory.js +11 -0
  460. package/dist/esm/resources/factories/TextFactory.js.map +1 -1
  461. package/dist/esm/resources/factories/TextureFactory.d.ts +25 -0
  462. package/dist/esm/resources/factories/TextureFactory.js +20 -0
  463. package/dist/esm/resources/factories/TextureFactory.js.map +1 -1
  464. package/dist/esm/resources/factories/VideoFactory.d.ts +37 -0
  465. package/dist/esm/resources/factories/VideoFactory.js +48 -5
  466. package/dist/esm/resources/factories/VideoFactory.js.map +1 -1
  467. package/dist/esm/resources/factories/VttFactory.d.ts +18 -0
  468. package/dist/esm/resources/factories/VttFactory.js +24 -0
  469. package/dist/esm/resources/factories/VttFactory.js.map +1 -1
  470. package/dist/esm/resources/factories/WasmFactory.d.ts +16 -0
  471. package/dist/esm/resources/factories/WasmFactory.js +16 -0
  472. package/dist/esm/resources/factories/WasmFactory.js.map +1 -1
  473. package/dist/esm/resources/utils.d.ts +10 -0
  474. package/dist/esm/resources/utils.js +10 -0
  475. package/dist/esm/resources/utils.js.map +1 -1
  476. package/dist/exo.esm.js +3392 -59
  477. package/dist/exo.esm.js.map +1 -1
  478. package/package.json +7 -8
@@ -1,6 +1,19 @@
1
1
  import type { Time } from '@/core/Time';
2
2
  import type { ParticleSystem } from '@/particles/ParticleSystem';
3
+ /**
4
+ * Contract for all particle spawners attached to a {@link ParticleSystem}.
5
+ * Each emitter is called once per tick via {@link ParticleSystem.update} and
6
+ * is responsible for requesting recycled or new {@link Particle} instances from
7
+ * the system, configuring them, and handing them back via
8
+ * {@link ParticleSystem.emitParticle}. See {@link UniversalEmitter} for the
9
+ * built-in rate-based implementation.
10
+ */
3
11
  export interface ParticleEmitter {
12
+ /**
13
+ * Spawns zero or more particles into `system` for the current `delta`
14
+ * timestep. Called once per frame by {@link ParticleSystem.update}.
15
+ */
4
16
  apply(system: ParticleSystem, delta: Time): this;
17
+ /** Releases any resources owned by this emitter. */
5
18
  destroy(): void;
6
19
  }
@@ -2,6 +2,14 @@ import { Vector } from '@/math/Vector';
2
2
  import { Color } from '@/core/Color';
3
3
  import { Time } from '@/core/Time';
4
4
  import type { ParticleProperties } from '@/particles/ParticleProperties';
5
+ /**
6
+ * Spawn-time configuration snapshot passed to {@link ParticleEmitter.apply}
7
+ * implementations. Implements {@link ParticleProperties} so the same affector
8
+ * interface can read default values when needed. All fields have sensible
9
+ * defaults (1 s lifetime, zero position/velocity, unit scale, white tint)
10
+ * and every object-valued field is deep-cloned on construction, making it
11
+ * safe to share one `ParticleOptions` instance across multiple emitters.
12
+ */
5
13
  export declare class ParticleOptions implements ParticleProperties {
6
14
  private readonly _totalLifetime;
7
15
  private readonly _elapsedLifetime;
@@ -12,6 +20,13 @@ export declare class ParticleOptions implements ParticleProperties {
12
20
  private _rotation;
13
21
  private _rotationSpeed;
14
22
  private _textureIndex;
23
+ /**
24
+ * Creates a new options snapshot. Any omitted field falls back to its
25
+ * default value (1 s lifetime, zero position/velocity, unit scale,
26
+ * zero rotation, white tint, texture index 0). All object values are
27
+ * cloned so later mutations to the source objects do not affect this
28
+ * instance.
29
+ */
15
30
  constructor(options?: Partial<ParticleProperties>);
16
31
  get totalLifetime(): Time;
17
32
  set totalLifetime(totalLifetime: Time);
@@ -42,5 +57,6 @@ export declare class ParticleOptions implements ParticleProperties {
42
57
  set textureIndex(textureIndex: number);
43
58
  get tint(): Color;
44
59
  set tint(color: Color);
60
+ /** Destroys all owned value objects. Called by the owning emitter's `destroy()`. */
45
61
  destroy(): void;
46
62
  }
@@ -3,6 +3,14 @@ import { Color } from '../../core/Color.js';
3
3
  import { Time } from '../../core/Time.js';
4
4
  import { trimRotation } from '../../math/utils.js';
5
5
 
6
+ /**
7
+ * Spawn-time configuration snapshot passed to {@link ParticleEmitter.apply}
8
+ * implementations. Implements {@link ParticleProperties} so the same affector
9
+ * interface can read default values when needed. All fields have sensible
10
+ * defaults (1 s lifetime, zero position/velocity, unit scale, white tint)
11
+ * and every object-valued field is deep-cloned on construction, making it
12
+ * safe to share one `ParticleOptions` instance across multiple emitters.
13
+ */
6
14
  class ParticleOptions {
7
15
  _totalLifetime;
8
16
  _elapsedLifetime;
@@ -13,6 +21,13 @@ class ParticleOptions {
13
21
  _rotation;
14
22
  _rotationSpeed;
15
23
  _textureIndex;
24
+ /**
25
+ * Creates a new options snapshot. Any omitted field falls back to its
26
+ * default value (1 s lifetime, zero position/velocity, unit scale,
27
+ * zero rotation, white tint, texture index 0). All object values are
28
+ * cloned so later mutations to the source objects do not affect this
29
+ * instance.
30
+ */
16
31
  constructor(options = {}) {
17
32
  const { totalLifetime, elapsedLifetime, position, velocity, scale, rotation, rotationSpeed, textureIndex, tint, } = options;
18
33
  this._totalLifetime = (totalLifetime ?? Time.oneSecond).clone();
@@ -90,6 +105,7 @@ class ParticleOptions {
90
105
  set tint(color) {
91
106
  this._tint.copy(color);
92
107
  }
108
+ /** Destroys all owned value objects. Called by the owning emitter's `destroy()`. */
93
109
  destroy() {
94
110
  this._totalLifetime.destroy();
95
111
  this._elapsedLifetime.destroy();
@@ -1 +1 @@
1
- {"version":3,"file":"ParticleOptions.js","sources":["../../../../../src/particles/emitters/ParticleOptions.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ParticleOptions.js","sources":["../../../../../src/particles/emitters/ParticleOptions.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;AAMA;;;;;;;AAOG;MACU,eAAe,CAAA;AACP,IAAA,cAAc;AACd,IAAA,gBAAgB;AAChB,IAAA,SAAS;AACT,IAAA,SAAS;AACT,IAAA,MAAM;AACN,IAAA,KAAK;AACd,IAAA,SAAS;AACT,IAAA,cAAc;AACd,IAAA,aAAa;AAErB;;;;;;AAMG;AACH,IAAA,WAAA,CAAmB,UAAuC,EAAE,EAAA;QACxD,MAAM,EACF,aAAa,EACb,eAAe,EACf,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,IAAI,GACP,GAAG,OAAO;AAEX,QAAA,IAAI,CAAC,cAAc,GAAG,CAAC,aAAa,IAAI,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE;AAC/D,QAAA,IAAI,CAAC,gBAAgB,GAAG,CAAC,eAAe,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE;AAC9D,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE;AAClD,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE;AAClD,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC,KAAK,IAAI,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE;AAC3C,QAAA,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE;AAC1C,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,IAAI,CAAC;AAC9B,QAAA,IAAI,CAAC,cAAc,GAAG,aAAa,IAAI,CAAC;AACxC,QAAA,IAAI,CAAC,aAAa,GAAG,YAAY,IAAI,CAAC;IAC1C;AAEA,IAAA,IAAW,aAAa,GAAA;QACpB,OAAO,IAAI,CAAC,cAAc;IAC9B;IAEA,IAAW,aAAa,CAAC,aAAmB,EAAA;AACxC,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC;IAC3C;AAEA,IAAA,IAAW,eAAe,GAAA;QACtB,OAAO,IAAI,CAAC,gBAAgB;IAChC;IAEA,IAAW,eAAe,CAAC,eAAqB,EAAA;AAC5C,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,eAAe,CAAC;IAC/C;AAEA;;;;;;;;;;AAUG;AACH,IAAA,IAAW,QAAQ,GAAA;QACf,OAAO,IAAI,CAAC,SAAS;IACzB;IAEA,IAAW,QAAQ,CAAC,QAAgB,EAAA;AAChC,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;IACjC;AAEA,IAAA,IAAW,QAAQ,GAAA;QACf,OAAO,IAAI,CAAC,SAAS;IACzB;IAEA,IAAW,QAAQ,CAAC,QAAgB,EAAA;AAChC,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;IACjC;AAEA,IAAA,IAAW,KAAK,GAAA;QACZ,OAAO,IAAI,CAAC,MAAM;IACtB;IAEA,IAAW,KAAK,CAAC,KAAa,EAAA;AAC1B,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;IAC3B;AAEA,IAAA,IAAW,QAAQ,GAAA;QACf,OAAO,IAAI,CAAC,SAAS;IACzB;IAEA,IAAW,QAAQ,CAAC,OAAe,EAAA;AAC/B,QAAA,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC;IAC1C;AAEA,IAAA,IAAW,aAAa,GAAA;QACpB,OAAO,IAAI,CAAC,cAAc;IAC9B;IAEA,IAAW,aAAa,CAAC,aAAqB,EAAA;AAC1C,QAAA,IAAI,CAAC,cAAc,GAAG,aAAa;IACvC;AAEA,IAAA,IAAW,YAAY,GAAA;QACnB,OAAO,IAAI,CAAC,aAAa;IAC7B;IAEA,IAAW,YAAY,CAAC,YAAoB,EAAA;AACxC,QAAA,IAAI,CAAC,aAAa,GAAG,YAAY;IACrC;AAEA,IAAA,IAAW,IAAI,GAAA;QACX,OAAO,IAAI,CAAC,KAAK;IACrB;IAEA,IAAW,IAAI,CAAC,KAAY,EAAA;AACxB,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;IAC1B;;IAGO,OAAO,GAAA;AACV,QAAA,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;AAC7B,QAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE;AAC/B,QAAA,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;AACxB,QAAA,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;AACxB,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;AACrB,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;IACxB;AACH;;;;"}
@@ -2,6 +2,17 @@ import type { Time } from '@/core/Time';
2
2
  import { ParticleOptions } from '@/particles/emitters/ParticleOptions';
3
3
  import type { ParticleEmitter } from '@/particles/emitters/ParticleEmitter';
4
4
  import type { ParticleSystem } from '@/particles/ParticleSystem';
5
+ /**
6
+ * Rate-based concrete {@link ParticleEmitter} that spawns a fixed number of
7
+ * particles per second, configured via {@link UniversalEmitter.emissionRate}
8
+ * and {@link UniversalEmitter.particleOptions}. Sub-frame fractions are
9
+ * accumulated in an internal delta so that low emission rates (e.g. 0.5
10
+ * particles/s) remain accurate over time without integer truncation error.
11
+ *
12
+ * @example
13
+ * const emitter = new UniversalEmitter(60, new ParticleOptions({ velocity: new Vector(0, -200) }));
14
+ * particleSystem.addEmitter(emitter);
15
+ */
5
16
  export declare class UniversalEmitter implements ParticleEmitter {
6
17
  private _emissionRate;
7
18
  private _particleOptions;
@@ -11,7 +22,19 @@ export declare class UniversalEmitter implements ParticleEmitter {
11
22
  set emissionRate(particlesPerSecond: number);
12
23
  get particleOptions(): ParticleOptions;
13
24
  set particleOptions(particleOptions: ParticleOptions);
25
+ /**
26
+ * Computes how many whole particles to spawn for the given `time` slice,
27
+ * carrying any fractional remainder into the next call. This accumulator
28
+ * prevents emission-rate drift when `emissionRate * delta` is not an
29
+ * integer (e.g. 30 fps × 0.5 particles/s = 0.5 per frame → every other
30
+ * frame emits one).
31
+ */
14
32
  computeParticleCount(time: Time): number;
33
+ /**
34
+ * Requests the correct number of particles from `system` for this frame,
35
+ * configures each one with {@link particleOptions} via
36
+ * {@link Particle.applyOptions}, and emits them into the live pool.
37
+ */
15
38
  apply(system: ParticleSystem, delta: Time): this;
16
39
  destroy(): void;
17
40
  }
@@ -1,5 +1,16 @@
1
1
  import { ParticleOptions } from './ParticleOptions.js';
2
2
 
3
+ /**
4
+ * Rate-based concrete {@link ParticleEmitter} that spawns a fixed number of
5
+ * particles per second, configured via {@link UniversalEmitter.emissionRate}
6
+ * and {@link UniversalEmitter.particleOptions}. Sub-frame fractions are
7
+ * accumulated in an internal delta so that low emission rates (e.g. 0.5
8
+ * particles/s) remain accurate over time without integer truncation error.
9
+ *
10
+ * @example
11
+ * const emitter = new UniversalEmitter(60, new ParticleOptions({ velocity: new Vector(0, -200) }));
12
+ * particleSystem.addEmitter(emitter);
13
+ */
3
14
  class UniversalEmitter {
4
15
  _emissionRate;
5
16
  _particleOptions;
@@ -20,12 +31,24 @@ class UniversalEmitter {
20
31
  set particleOptions(particleOptions) {
21
32
  this._particleOptions = particleOptions;
22
33
  }
34
+ /**
35
+ * Computes how many whole particles to spawn for the given `time` slice,
36
+ * carrying any fractional remainder into the next call. This accumulator
37
+ * prevents emission-rate drift when `emissionRate * delta` is not an
38
+ * integer (e.g. 30 fps × 0.5 particles/s = 0.5 per frame → every other
39
+ * frame emits one).
40
+ */
23
41
  computeParticleCount(time) {
24
42
  const particleAmount = (this._emissionRate * time.seconds) + this._emissionDelta;
25
43
  const particles = particleAmount | 0;
26
44
  this._emissionDelta = (particleAmount - particles);
27
45
  return particles;
28
46
  }
47
+ /**
48
+ * Requests the correct number of particles from `system` for this frame,
49
+ * configures each one with {@link particleOptions} via
50
+ * {@link Particle.applyOptions}, and emits them into the live pool.
51
+ */
29
52
  apply(system, delta) {
30
53
  const count = this.computeParticleCount(delta);
31
54
  const options = this._particleOptions;
@@ -1 +1 @@
1
- {"version":3,"file":"UniversalEmitter.js","sources":["../../../../../src/particles/emitters/UniversalEmitter.ts"],"sourcesContent":[null],"names":[],"mappings":";;MAKa,gBAAgB,CAAA;AACjB,IAAA,aAAa;AACb,IAAA,gBAAgB;IAChB,cAAc,GAAG,CAAC;IAE1B,WAAA,CAAmB,YAAoB,EAAE,eAAiC,EAAA;AACtE,QAAA,IAAI,CAAC,aAAa,GAAG,YAAY;QACjC,IAAI,CAAC,gBAAgB,GAAG,eAAe,IAAI,IAAI,eAAe,EAAE;IACpE;AAEA,IAAA,IAAW,YAAY,GAAA;QACnB,OAAO,IAAI,CAAC,aAAa;IAC7B;IAEA,IAAW,YAAY,CAAC,kBAA0B,EAAA;AAC9C,QAAA,IAAI,CAAC,aAAa,GAAG,kBAAkB;IAC3C;AAEA,IAAA,IAAW,eAAe,GAAA;QACtB,OAAO,IAAI,CAAC,gBAAgB;IAChC;IAEA,IAAW,eAAe,CAAC,eAAgC,EAAA;AACvD,QAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe;IAC3C;AAEO,IAAA,oBAAoB,CAAC,IAAU,EAAA;AAClC,QAAA,MAAM,cAAc,GAAG,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,cAAc;AAChF,QAAA,MAAM,SAAS,GAAG,cAAc,GAAG,CAAC;QAEpC,IAAI,CAAC,cAAc,IAAI,cAAc,GAAG,SAAS,CAAC;AAElD,QAAA,OAAO,SAAS;IACpB;IAEO,KAAK,CAAC,MAAsB,EAAE,KAAW,EAAA;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC;AAC9C,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB;AAErC,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;AAC5B,YAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,eAAe,EAAE;AAEzC,YAAA,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC;AAC9B,YAAA,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC;QACjC;AAEA,QAAA,OAAO,IAAI;IACf;IAEO,OAAO,GAAA;AACV,QAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE;IACnC;AACH;;;;"}
1
+ {"version":3,"file":"UniversalEmitter.js","sources":["../../../../../src/particles/emitters/UniversalEmitter.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAKA;;;;;;;;;;AAUG;MACU,gBAAgB,CAAA;AACjB,IAAA,aAAa;AACb,IAAA,gBAAgB;IAChB,cAAc,GAAG,CAAC;IAE1B,WAAA,CAAmB,YAAoB,EAAE,eAAiC,EAAA;AACtE,QAAA,IAAI,CAAC,aAAa,GAAG,YAAY;QACjC,IAAI,CAAC,gBAAgB,GAAG,eAAe,IAAI,IAAI,eAAe,EAAE;IACpE;AAEA,IAAA,IAAW,YAAY,GAAA;QACnB,OAAO,IAAI,CAAC,aAAa;IAC7B;IAEA,IAAW,YAAY,CAAC,kBAA0B,EAAA;AAC9C,QAAA,IAAI,CAAC,aAAa,GAAG,kBAAkB;IAC3C;AAEA,IAAA,IAAW,eAAe,GAAA;QACtB,OAAO,IAAI,CAAC,gBAAgB;IAChC;IAEA,IAAW,eAAe,CAAC,eAAgC,EAAA;AACvD,QAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe;IAC3C;AAEA;;;;;;AAMG;AACI,IAAA,oBAAoB,CAAC,IAAU,EAAA;AAClC,QAAA,MAAM,cAAc,GAAG,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,cAAc;AAChF,QAAA,MAAM,SAAS,GAAG,cAAc,GAAG,CAAC;QAEpC,IAAI,CAAC,cAAc,IAAI,cAAc,GAAG,SAAS,CAAC;AAElD,QAAA,OAAO,SAAS;IACpB;AAEA;;;;AAIG;IACI,KAAK,CAAC,MAAsB,EAAE,KAAW,EAAA;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC;AAC9C,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB;AAErC,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;AAC5B,YAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,eAAe,EAAE;AAEzC,YAAA,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC;AAC9B,YAAA,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC;QACjC;AAEA,QAAA,OAAO,IAAI;IACf;IAEO,OAAO,GAAA;AACV,QAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE;IACnC;AACH;;;;"}
@@ -1,5 +1,17 @@
1
1
  import type { RenderBackend } from './RenderBackend';
2
2
  import type { RenderPass } from './RenderPass';
3
+ /**
4
+ * A {@link RenderPass} that delegates its execution to a user-supplied callback.
5
+ * Use this as a lightweight alternative to a full renderer class when custom
6
+ * draw logic needs to participate in the render graph without a dedicated type.
7
+ *
8
+ * @example
9
+ * ```ts
10
+ * new CallbackRenderPass((backend) => {
11
+ * backend.draw(myDrawable);
12
+ * });
13
+ * ```
14
+ */
3
15
  export declare class CallbackRenderPass implements RenderPass {
4
16
  private readonly _callback;
5
17
  constructor(callback: (backend: RenderBackend) => void);
@@ -1,3 +1,15 @@
1
+ /**
2
+ * A {@link RenderPass} that delegates its execution to a user-supplied callback.
3
+ * Use this as a lightweight alternative to a full renderer class when custom
4
+ * draw logic needs to participate in the render graph without a dedicated type.
5
+ *
6
+ * @example
7
+ * ```ts
8
+ * new CallbackRenderPass((backend) => {
9
+ * backend.draw(myDrawable);
10
+ * });
11
+ * ```
12
+ */
1
13
  class CallbackRenderPass {
2
14
  _callback;
3
15
  constructor(callback) {
@@ -1 +1 @@
1
- {"version":3,"file":"CallbackRenderPass.js","sources":["../../../../src/rendering/CallbackRenderPass.ts"],"sourcesContent":[null],"names":[],"mappings":"MAGa,kBAAkB,CAAA;AAEV,IAAA,SAAS;AAE1B,IAAA,WAAA,CAAmB,QAA0C,EAAA;AACzD,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ;IAC7B;AAEO,IAAA,OAAO,CAAC,OAAsB,EAAA;AACjC,QAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;IAC3B;AACH;;;;"}
1
+ {"version":3,"file":"CallbackRenderPass.js","sources":["../../../../src/rendering/CallbackRenderPass.ts"],"sourcesContent":[null],"names":[],"mappings":"AAGA;;;;;;;;;;;AAWG;MACU,kBAAkB,CAAA;AAEV,IAAA,SAAS;AAE1B,IAAA,WAAA,CAAmB,QAA0C,EAAA;AACzD,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ;IAC7B;AAEO,IAAA,OAAO,CAAC,OAAsB,EAAA;AACjC,QAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;IAC3B;AACH;;;;"}
@@ -1,11 +1,35 @@
1
1
  import type { RenderBackend } from './RenderBackend';
2
2
  import { RenderNode } from './RenderNode';
3
+ /**
4
+ * Scene-graph node that owns child {@link RenderNode}s. Renders its
5
+ * subtree in document order, optionally re-sorted each frame by
6
+ * `zIndex` + child-add-order when {@link Container.sortableChildren} is
7
+ * enabled.
8
+ *
9
+ * Bounds aggregate the local bounds + every visible child's bounds, so
10
+ * `container.bounds` always reflects the smallest axis-aligned rectangle
11
+ * containing the subtree. Width/height accessors derive from the bounds
12
+ * (× `scale`) and writing to them rescales `scale` to fit.
13
+ *
14
+ * Adding a child re-parents it: the previous parent is detached
15
+ * automatically. Removing a child cascades bounds invalidation up the
16
+ * ancestor chain so further-up containers also rebuild on next read.
17
+ *
18
+ * Subclassed by {@link Sprite}, {@link Mesh}, {@link Graphics}, {@link Text},
19
+ * etc. — the base `Container` is a non-drawing grouping node.
20
+ */
3
21
  export declare class Container extends RenderNode {
4
22
  private readonly _children;
5
23
  private _sortableChildren;
6
24
  private _sortDirty;
7
25
  private _nextChildOrder;
8
26
  get children(): Array<RenderNode>;
27
+ /**
28
+ * When `true`, children are re-sorted by `zIndex` (ascending; ties
29
+ * broken by add-order) before each render. Disabled by default to
30
+ * avoid the per-frame sort cost; enable on the few containers where
31
+ * z-ordering matters.
32
+ */
9
33
  get sortableChildren(): boolean;
10
34
  set sortableChildren(sortableChildren: boolean);
11
35
  get width(): number;
@@ -16,20 +40,39 @@ export declare class Container extends RenderNode {
16
40
  get top(): number;
17
41
  get right(): number;
18
42
  get bottom(): number;
43
+ /**
44
+ * Append one or more children to the end of the child list. Each child
45
+ * is detached from its previous parent (if any) before being added.
46
+ */
19
47
  addChild(...children: Array<RenderNode>): this;
48
+ /**
49
+ * Insert `child` at `index` in the child list. The child is detached
50
+ * from any previous parent first. Throws if `index` is out of bounds.
51
+ * Self-as-child is a no-op.
52
+ */
20
53
  addChildAt(child: RenderNode, index: number): this;
21
54
  swapChildren(firstChild: RenderNode, secondChild: RenderNode): this;
22
55
  getChildIndex(child: RenderNode): number;
23
56
  setChildIndex(child: RenderNode, index: number): this;
24
57
  getChildAt(index: number): RenderNode;
58
+ /** Remove `child` from this container. No-op if not present. */
25
59
  removeChild(child: RenderNode): this;
26
60
  removeChildAt(index: number): this;
61
+ /**
62
+ * Remove children in the half-open range `[begin, end)`. Defaults to
63
+ * the entire child list. Throws if the range is invalid.
64
+ */
27
65
  removeChildren(begin?: number, end?: number): this;
28
66
  render(backend: RenderBackend): this;
29
67
  contains(x: number, y: number): boolean;
30
68
  protected _invalidateChildrenTransform(): void;
31
69
  updateBounds(): this;
32
70
  destroy(): void;
71
+ /**
72
+ * Flag the child list as needing a re-sort before next render. Called
73
+ * automatically by `addChild*`, `removeChild*`, `swapChildren`, and
74
+ * `setChildIndex`; expose for callers that mutate `zIndex` directly.
75
+ */
33
76
  markSortDirty(): this;
34
77
  sortChildren(): this;
35
78
  private _sortChildrenIfNeeded;
@@ -2,6 +2,24 @@ import { removeArrayItems } from '../core/utils.js';
2
2
  import { RenderNode } from './RenderNode.js';
3
3
  import { _getCurrentInteractionManager } from '../input/interaction-hooks.js';
4
4
 
5
+ /**
6
+ * Scene-graph node that owns child {@link RenderNode}s. Renders its
7
+ * subtree in document order, optionally re-sorted each frame by
8
+ * `zIndex` + child-add-order when {@link Container.sortableChildren} is
9
+ * enabled.
10
+ *
11
+ * Bounds aggregate the local bounds + every visible child's bounds, so
12
+ * `container.bounds` always reflects the smallest axis-aligned rectangle
13
+ * containing the subtree. Width/height accessors derive from the bounds
14
+ * (× `scale`) and writing to them rescales `scale` to fit.
15
+ *
16
+ * Adding a child re-parents it: the previous parent is detached
17
+ * automatically. Removing a child cascades bounds invalidation up the
18
+ * ancestor chain so further-up containers also rebuild on next read.
19
+ *
20
+ * Subclassed by {@link Sprite}, {@link Mesh}, {@link Graphics}, {@link Text},
21
+ * etc. — the base `Container` is a non-drawing grouping node.
22
+ */
5
23
  class Container extends RenderNode {
6
24
  _children = [];
7
25
  _sortableChildren = false;
@@ -10,6 +28,12 @@ class Container extends RenderNode {
10
28
  get children() {
11
29
  return this._children;
12
30
  }
31
+ /**
32
+ * When `true`, children are re-sorted by `zIndex` (ascending; ties
33
+ * broken by add-order) before each render. Disabled by default to
34
+ * avoid the per-frame sort cost; enable on the few containers where
35
+ * z-ordering matters.
36
+ */
13
37
  get sortableChildren() {
14
38
  return this._sortableChildren;
15
39
  }
@@ -43,12 +67,21 @@ class Container extends RenderNode {
43
67
  get bottom() {
44
68
  return (this.y + this.height - this.origin.y);
45
69
  }
70
+ /**
71
+ * Append one or more children to the end of the child list. Each child
72
+ * is detached from its previous parent (if any) before being added.
73
+ */
46
74
  addChild(...children) {
47
75
  for (const child of children) {
48
76
  this.addChildAt(child, this._children.length);
49
77
  }
50
78
  return this;
51
79
  }
80
+ /**
81
+ * Insert `child` at `index` in the child list. The child is detached
82
+ * from any previous parent first. Throws if `index` is out of bounds.
83
+ * Self-as-child is a no-op.
84
+ */
52
85
  addChildAt(child, index) {
53
86
  if (index < 0 || index > this._children.length) {
54
87
  throw new Error(`The index ${index} is out of bounds ${this._children.length}`);
@@ -103,6 +136,7 @@ class Container extends RenderNode {
103
136
  }
104
137
  return this._children[index];
105
138
  }
139
+ /** Remove `child` from this container. No-op if not present. */
106
140
  removeChild(child) {
107
141
  const index = this._children.indexOf(child);
108
142
  if (index !== -1) {
@@ -124,6 +158,10 @@ class Container extends RenderNode {
124
158
  this.invalidateCache();
125
159
  return this;
126
160
  }
161
+ /**
162
+ * Remove children in the half-open range `[begin, end)`. Defaults to
163
+ * the entire child list. Throws if the range is invalid.
164
+ */
127
165
  removeChildren(begin = 0, end = this._children.length) {
128
166
  const range = (end - begin);
129
167
  if (range < 0 || range > end) {
@@ -184,6 +222,11 @@ class Container extends RenderNode {
184
222
  this.removeChildren();
185
223
  super.destroy();
186
224
  }
225
+ /**
226
+ * Flag the child list as needing a re-sort before next render. Called
227
+ * automatically by `addChild*`, `removeChild*`, `swapChildren`, and
228
+ * `setChildIndex`; expose for callers that mutate `zIndex` directly.
229
+ */
187
230
  markSortDirty() {
188
231
  if (this._sortableChildren) {
189
232
  this._sortDirty = true;
@@ -1 +1 @@
1
- {"version":3,"file":"Container.js","sources":["../../../../src/rendering/Container.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Container.js","sources":["../../../../src/rendering/Container.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -2,6 +2,14 @@ import { Color } from '@/core/Color';
2
2
  import { BlendModes } from '@/rendering/types';
3
3
  import type { RenderBackend } from './RenderBackend';
4
4
  import { RenderNode } from './RenderNode';
5
+ /**
6
+ * Base class for every renderable scene object.
7
+ *
8
+ * Extends {@link RenderNode} with a per-object tint colour and blend mode,
9
+ * and implements the default view-frustum culling logic in {@link render}.
10
+ * Concrete drawable types (sprites, meshes, text, etc.) extend this class
11
+ * and are paired with a matching {@link Renderer} via {@link RendererRegistry}.
12
+ */
5
13
  export declare class Drawable extends RenderNode {
6
14
  private _tint;
7
15
  private _blendMode;
@@ -9,8 +17,22 @@ export declare class Drawable extends RenderNode {
9
17
  set tint(tint: Color);
10
18
  get blendMode(): BlendModes;
11
19
  set blendMode(blendMode: BlendModes);
20
+ /**
21
+ * Set the tint colour by copying `color` into the internal {@link Color} instance.
22
+ * Invalidates the render cache so the change is picked up on the next frame.
23
+ */
12
24
  setTint(color: Color): this;
25
+ /**
26
+ * Change the blend mode. No-ops if the value is unchanged.
27
+ * Invalidates the render cache when the blend mode actually changes.
28
+ */
13
29
  setBlendMode(blendMode: BlendModes): this;
30
+ /**
31
+ * Submit this drawable for rendering.
32
+ * Skips invisible nodes and increments the cull counter for nodes that fall
33
+ * outside the current view. Visible, in-view nodes are drawn via the backend
34
+ * using the current blend mode.
35
+ */
14
36
  render(backend: RenderBackend): this;
15
37
  destroy(): void;
16
38
  }
@@ -2,6 +2,14 @@ import { Color } from '../core/Color.js';
2
2
  import { BlendModes } from './types.js';
3
3
  import { RenderNode } from './RenderNode.js';
4
4
 
5
+ /**
6
+ * Base class for every renderable scene object.
7
+ *
8
+ * Extends {@link RenderNode} with a per-object tint colour and blend mode,
9
+ * and implements the default view-frustum culling logic in {@link render}.
10
+ * Concrete drawable types (sprites, meshes, text, etc.) extend this class
11
+ * and are paired with a matching {@link Renderer} via {@link RendererRegistry}.
12
+ */
5
13
  class Drawable extends RenderNode {
6
14
  _tint = Color.white.clone();
7
15
  _blendMode = BlendModes.Normal;
@@ -17,6 +25,10 @@ class Drawable extends RenderNode {
17
25
  set blendMode(blendMode) {
18
26
  this.setBlendMode(blendMode);
19
27
  }
28
+ /**
29
+ * Set the tint colour by copying `color` into the internal {@link Color} instance.
30
+ * Invalidates the render cache so the change is picked up on the next frame.
31
+ */
20
32
  setTint(color) {
21
33
  if (color) {
22
34
  this._tint.copy(color);
@@ -24,6 +36,10 @@ class Drawable extends RenderNode {
24
36
  }
25
37
  return this;
26
38
  }
39
+ /**
40
+ * Change the blend mode. No-ops if the value is unchanged.
41
+ * Invalidates the render cache when the blend mode actually changes.
42
+ */
27
43
  setBlendMode(blendMode) {
28
44
  if (this._blendMode !== blendMode) {
29
45
  this._blendMode = blendMode;
@@ -31,6 +47,12 @@ class Drawable extends RenderNode {
31
47
  }
32
48
  return this;
33
49
  }
50
+ /**
51
+ * Submit this drawable for rendering.
52
+ * Skips invisible nodes and increments the cull counter for nodes that fall
53
+ * outside the current view. Visible, in-view nodes are drawn via the backend
54
+ * using the current blend mode.
55
+ */
34
56
  render(backend) {
35
57
  if (!this.visible) {
36
58
  return this;
@@ -1 +1 @@
1
- {"version":3,"file":"Drawable.js","sources":["../../../../src/rendering/Drawable.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAKM,MAAO,QAAS,SAAQ,UAAU,CAAA;AAE5B,IAAA,KAAK,GAAU,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE;AAClC,IAAA,UAAU,GAAe,UAAU,CAAC,MAAM;AAElD,IAAA,IAAW,IAAI,GAAA;QACX,OAAO,IAAI,CAAC,KAAK;IACrB;IAEA,IAAW,IAAI,CAAC,IAAW,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IACtB;AAEA,IAAA,IAAW,SAAS,GAAA;QAChB,OAAO,IAAI,CAAC,UAAU;IAC1B;IAEA,IAAW,SAAS,CAAC,SAAqB,EAAA;AACtC,QAAA,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;IAChC;AAEO,IAAA,OAAO,CAAC,KAAY,EAAA;QACvB,IAAI,KAAK,EAAE;AACP,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;YACtB,IAAI,CAAC,eAAe,EAAE;QAC1B;AAEA,QAAA,OAAO,IAAI;IACf;AAEO,IAAA,YAAY,CAAC,SAAqB,EAAA;AACrC,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE;AAC/B,YAAA,IAAI,CAAC,UAAU,GAAG,SAAS;YAC3B,IAAI,CAAC,eAAe,EAAE;QAC1B;AAEA,QAAA,OAAO,IAAI;IACf;AAEgB,IAAA,MAAM,CAAC,OAAsB,EAAA;AACzC,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACf,YAAA,OAAO,IAAI;QACf;QAEA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AAC5B,YAAA,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE;AAE3B,YAAA,OAAO,IAAI;QACf;AAEA,QAAA,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAK;AACnC,YAAA,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AACtB,QAAA,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC;AAEnB,QAAA,OAAO,IAAI;IACf;IAEgB,OAAO,GAAA;QACnB,KAAK,CAAC,OAAO,EAAE;AAEf,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;IACxB;AACH;;;;"}
1
+ {"version":3,"file":"Drawable.js","sources":["../../../../src/rendering/Drawable.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAKA;;;;;;;AAOG;AACG,MAAO,QAAS,SAAQ,UAAU,CAAA;AAE5B,IAAA,KAAK,GAAU,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE;AAClC,IAAA,UAAU,GAAe,UAAU,CAAC,MAAM;AAElD,IAAA,IAAW,IAAI,GAAA;QACX,OAAO,IAAI,CAAC,KAAK;IACrB;IAEA,IAAW,IAAI,CAAC,IAAW,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IACtB;AAEA,IAAA,IAAW,SAAS,GAAA;QAChB,OAAO,IAAI,CAAC,UAAU;IAC1B;IAEA,IAAW,SAAS,CAAC,SAAqB,EAAA;AACtC,QAAA,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;IAChC;AAEA;;;AAGG;AACI,IAAA,OAAO,CAAC,KAAY,EAAA;QACvB,IAAI,KAAK,EAAE;AACP,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;YACtB,IAAI,CAAC,eAAe,EAAE;QAC1B;AAEA,QAAA,OAAO,IAAI;IACf;AAEA;;;AAGG;AACI,IAAA,YAAY,CAAC,SAAqB,EAAA;AACrC,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE;AAC/B,YAAA,IAAI,CAAC,UAAU,GAAG,SAAS;YAC3B,IAAI,CAAC,eAAe,EAAE;QAC1B;AAEA,QAAA,OAAO,IAAI;IACf;AAEA;;;;;AAKG;AACa,IAAA,MAAM,CAAC,OAAsB,EAAA;AACzC,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACf,YAAA,OAAO,IAAI;QACf;QAEA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AAC5B,YAAA,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE;AAE3B,YAAA,OAAO,IAAI;QACf;AAEA,QAAA,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAK;AACnC,YAAA,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AACtB,QAAA,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC;AAEnB,QAAA,OAAO,IAAI;IACf;IAEgB,OAAO,GAAA;QACnB,KAAK,CAAC,OAAO,EAAE;AAEf,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;IACxB;AACH;;;;"}
@@ -9,6 +9,19 @@ import type { Texture } from './texture/Texture';
9
9
  import type { RenderTexture } from './texture/RenderTexture';
10
10
  import type { RenderStats } from './RenderStats';
11
11
  import type { BlendModes } from './types';
12
+ /**
13
+ * Common interface implemented by both rendering backends
14
+ * ({@link WebGl2Backend}, {@link WebGpuBackend}). Owns the canvas root
15
+ * render target, exposes the active {@link View}, accepts {@link Drawable}
16
+ * submissions, manages an offscreen render-texture pool, and exposes the
17
+ * scissor-stack and alpha-mask compositing primitives used by
18
+ * {@link RenderNode}'s `mask` machinery.
19
+ *
20
+ * Application code rarely calls this directly — high-level code submits
21
+ * drawables via the scene graph and reads `app.backend.stats` for
22
+ * per-frame counters. Custom render passes (subclasses of
23
+ * {@link RenderPass}) interact with the interface directly.
24
+ */
12
25
  export interface RenderBackend {
13
26
  readonly backendType: RenderBackendType;
14
27
  readonly view: View;
@@ -1,3 +1,7 @@
1
+ /**
2
+ * Identifies the active GPU backend used by the engine.
3
+ * Passed to renderers and shaders so they can select backend-specific code paths.
4
+ */
1
5
  export declare enum RenderBackendType {
2
6
  WebGl2 = 0,
3
7
  WebGpu = 1
@@ -1,3 +1,7 @@
1
+ /**
2
+ * Identifies the active GPU backend used by the engine.
3
+ * Passed to renderers and shaders so they can select backend-specific code paths.
4
+ */
1
5
  var RenderBackendType;
2
6
  (function (RenderBackendType) {
3
7
  RenderBackendType[RenderBackendType["WebGl2"] = 0] = "WebGl2";
@@ -1 +1 @@
1
- {"version":3,"file":"RenderBackendType.js","sources":["../../../../src/rendering/RenderBackendType.ts"],"sourcesContent":[null],"names":[],"mappings":"IAAY;AAAZ,CAAA,UAAY,iBAAiB,EAAA;AACzB,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM;AACN,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM;AACV,CAAC,EAHW,iBAAiB,KAAjB,iBAAiB,GAAA,EAAA,CAAA,CAAA;;;;"}
1
+ {"version":3,"file":"RenderBackendType.js","sources":["../../../../src/rendering/RenderBackendType.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;;;AAGG;IACS;AAAZ,CAAA,UAAY,iBAAiB,EAAA;AACzB,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM;AACN,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM;AACV,CAAC,EAHW,iBAAiB,KAAjB,iBAAiB,GAAA,EAAA,CAAA,CAAA;;;;"}
@@ -44,6 +44,24 @@ interface RenderNodeSpriteLike {
44
44
  * one or two intermediate render textures plus an alpha-composite pass.
45
45
  */
46
46
  export type MaskSource = Rectangle | Texture | RenderTexture | RenderNode | null;
47
+ /**
48
+ * {@link SceneNode} that can produce visual output. Adds the rendering
49
+ * pipeline features on top of the structural transform/bounds carried by
50
+ * SceneNode: `tint`, `alpha`, `blendMode`, post-process `filters`, an
51
+ * optional `mask` (via {@link MaskSource}), bitmap caching
52
+ * (`cacheAsBitmap`), and the interaction surface
53
+ * (`interactive`, `draggable`, all the pointer Signals).
54
+ *
55
+ * `RenderNode.render(backend)` is the per-frame visual entry point each
56
+ * subclass implements. The base provides `renderVisualContent()` — a
57
+ * helper that wraps the subclass's draw work with cache / mask / filter /
58
+ * tint orchestration so subclasses focus on their own geometry.
59
+ *
60
+ * Subclasses of note: {@link Container} (children), {@link Sprite} (textured
61
+ * quad), {@link Mesh} (custom geometry), {@link Graphics} (immediate-mode
62
+ * shapes), {@link Text} (glyph-atlas text), {@link Video} (video texture),
63
+ * {@link ParticleSystem} (particles).
64
+ */
47
65
  export declare abstract class RenderNode extends SceneNode {
48
66
  private static _spriteFactory;
49
67
  private _interactive;
@@ -9,6 +9,24 @@ import { RenderTargetPass } from './RenderTargetPass.js';
9
9
  import { _getCurrentInteractionManager } from '../input/interaction-hooks.js';
10
10
 
11
11
  const isDestroyableFilter = (filter) => ('destroy' in filter && typeof filter.destroy === 'function');
12
+ /**
13
+ * {@link SceneNode} that can produce visual output. Adds the rendering
14
+ * pipeline features on top of the structural transform/bounds carried by
15
+ * SceneNode: `tint`, `alpha`, `blendMode`, post-process `filters`, an
16
+ * optional `mask` (via {@link MaskSource}), bitmap caching
17
+ * (`cacheAsBitmap`), and the interaction surface
18
+ * (`interactive`, `draggable`, all the pointer Signals).
19
+ *
20
+ * `RenderNode.render(backend)` is the per-frame visual entry point each
21
+ * subclass implements. The base provides `renderVisualContent()` — a
22
+ * helper that wraps the subclass's draw work with cache / mask / filter /
23
+ * tint orchestration so subclasses focus on their own geometry.
24
+ *
25
+ * Subclasses of note: {@link Container} (children), {@link Sprite} (textured
26
+ * quad), {@link Mesh} (custom geometry), {@link Graphics} (immediate-mode
27
+ * shapes), {@link Text} (glyph-atlas text), {@link Video} (video texture),
28
+ * {@link ParticleSystem} (particles).
29
+ */
12
30
  class RenderNode extends SceneNode {
13
31
  static _spriteFactory = null;
14
32
  _interactive = false;