@codexo/exojs 0.8.4 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (470) hide show
  1. package/CHANGELOG.md +99 -0
  2. package/README.md +34 -13
  3. package/dist/esm/animation/Tween.d.ts +20 -3
  4. package/dist/esm/animation/Tween.js +16 -8
  5. package/dist/esm/animation/Tween.js.map +1 -1
  6. package/dist/esm/animation/TweenManager.d.ts +16 -1
  7. package/dist/esm/animation/TweenManager.js +27 -2
  8. package/dist/esm/animation/TweenManager.js.map +1 -1
  9. package/dist/esm/audio/AudioAnalyser.d.ts +2 -0
  10. package/dist/esm/audio/AudioAnalyser.js +24 -9
  11. package/dist/esm/audio/AudioAnalyser.js.map +1 -1
  12. package/dist/esm/audio/AudioBus.d.ts +1 -0
  13. package/dist/esm/audio/AudioBus.js +8 -4
  14. package/dist/esm/audio/AudioBus.js.map +1 -1
  15. package/dist/esm/audio/AudioListener.d.ts +1 -0
  16. package/dist/esm/audio/AudioListener.js +7 -5
  17. package/dist/esm/audio/AudioListener.js.map +1 -1
  18. package/dist/esm/audio/AudioManager.d.ts +8 -2
  19. package/dist/esm/audio/AudioManager.js +14 -1
  20. package/dist/esm/audio/AudioManager.js.map +1 -1
  21. package/dist/esm/audio/BeatDetector.d.ts +2 -0
  22. package/dist/esm/audio/BeatDetector.js +27 -661
  23. package/dist/esm/audio/BeatDetector.js.map +1 -1
  24. package/dist/esm/audio/Music.d.ts +1 -0
  25. package/dist/esm/audio/Music.js +7 -3
  26. package/dist/esm/audio/Music.js.map +1 -1
  27. package/dist/esm/audio/OscillatorSound.d.ts +1 -0
  28. package/dist/esm/audio/OscillatorSound.js +7 -3
  29. package/dist/esm/audio/OscillatorSound.js.map +1 -1
  30. package/dist/esm/audio/Sound.d.ts +1 -0
  31. package/dist/esm/audio/Sound.js +7 -3
  32. package/dist/esm/audio/Sound.js.map +1 -1
  33. package/dist/esm/audio/audio-context.d.ts +2 -2
  34. package/dist/esm/audio/audio-context.js +4 -4
  35. package/dist/esm/audio/audio-context.js.map +1 -1
  36. package/dist/esm/audio/filters/ChorusFilter.d.ts +1 -0
  37. package/dist/esm/audio/filters/ChorusFilter.js +7 -3
  38. package/dist/esm/audio/filters/ChorusFilter.js.map +1 -1
  39. package/dist/esm/audio/filters/CompressorFilter.d.ts +1 -0
  40. package/dist/esm/audio/filters/CompressorFilter.js +7 -3
  41. package/dist/esm/audio/filters/CompressorFilter.js.map +1 -1
  42. package/dist/esm/audio/filters/DelayFilter.d.ts +1 -0
  43. package/dist/esm/audio/filters/DelayFilter.js +7 -3
  44. package/dist/esm/audio/filters/DelayFilter.js.map +1 -1
  45. package/dist/esm/audio/filters/EqualizerFilter.d.ts +1 -0
  46. package/dist/esm/audio/filters/EqualizerFilter.js +7 -3
  47. package/dist/esm/audio/filters/EqualizerFilter.js.map +1 -1
  48. package/dist/esm/audio/filters/GranularFilter.js +1 -86
  49. package/dist/esm/audio/filters/GranularFilter.js.map +1 -1
  50. package/dist/esm/audio/filters/HighpassFilter.d.ts +1 -0
  51. package/dist/esm/audio/filters/HighpassFilter.js +7 -3
  52. package/dist/esm/audio/filters/HighpassFilter.js.map +1 -1
  53. package/dist/esm/audio/filters/LowpassFilter.d.ts +1 -0
  54. package/dist/esm/audio/filters/LowpassFilter.js +7 -3
  55. package/dist/esm/audio/filters/LowpassFilter.js.map +1 -1
  56. package/dist/esm/audio/filters/PitchShiftFilter.js +1 -71
  57. package/dist/esm/audio/filters/PitchShiftFilter.js.map +1 -1
  58. package/dist/esm/audio/filters/ReverbFilter.d.ts +1 -0
  59. package/dist/esm/audio/filters/ReverbFilter.js +7 -3
  60. package/dist/esm/audio/filters/ReverbFilter.js.map +1 -1
  61. package/dist/esm/audio/filters/VocoderFilter.js +1 -89
  62. package/dist/esm/audio/filters/VocoderFilter.js.map +1 -1
  63. package/dist/esm/audio/filters/WorkletFilter.d.ts +2 -0
  64. package/dist/esm/audio/filters/WorkletFilter.js +10 -5
  65. package/dist/esm/audio/filters/WorkletFilter.js.map +1 -1
  66. package/dist/esm/audio/index.d.ts +15 -10
  67. package/dist/esm/audio/worklet/registerWorklet.d.ts +1 -1
  68. package/dist/esm/audio/worklet/registerWorklet.js +2 -2
  69. package/dist/esm/audio/worklet/registerWorklet.js.map +1 -1
  70. package/dist/esm/audio/worklets/beat-detector.worklet.d.ts +1 -0
  71. package/dist/esm/audio/worklets/beat-detector.worklet.js +647 -0
  72. package/dist/esm/audio/worklets/beat-detector.worklet.js.map +1 -0
  73. package/dist/esm/audio/worklets/granular.worklet.d.ts +1 -0
  74. package/dist/esm/audio/worklets/granular.worklet.js +89 -0
  75. package/dist/esm/audio/worklets/granular.worklet.js.map +1 -0
  76. package/dist/esm/audio/worklets/pitch-shift.worklet.d.ts +1 -0
  77. package/dist/esm/audio/worklets/pitch-shift.worklet.js +74 -0
  78. package/dist/esm/audio/worklets/pitch-shift.worklet.js.map +1 -0
  79. package/dist/esm/audio/worklets/vocoder.worklet.d.ts +1 -0
  80. package/dist/esm/audio/worklets/vocoder.worklet.js +92 -0
  81. package/dist/esm/audio/worklets/vocoder.worklet.js.map +1 -0
  82. package/dist/esm/core/Application.d.ts +86 -29
  83. package/dist/esm/core/Application.js +157 -47
  84. package/dist/esm/core/Application.js.map +1 -1
  85. package/dist/esm/core/Color.d.ts +0 -8
  86. package/dist/esm/core/Color.js +0 -24
  87. package/dist/esm/core/Color.js.map +1 -1
  88. package/dist/esm/core/Perf.d.ts +23 -0
  89. package/dist/esm/core/Perf.js +49 -0
  90. package/dist/esm/core/Perf.js.map +1 -0
  91. package/dist/esm/core/Scene.d.ts +40 -80
  92. package/dist/esm/core/Scene.js +63 -43
  93. package/dist/esm/core/Scene.js.map +1 -1
  94. package/dist/esm/core/SceneManager.d.ts +11 -25
  95. package/dist/esm/core/SceneManager.js +37 -100
  96. package/dist/esm/core/SceneManager.js.map +1 -1
  97. package/dist/esm/core/SceneNode.d.ts +28 -17
  98. package/dist/esm/core/SceneNode.js +66 -42
  99. package/dist/esm/core/SceneNode.js.map +1 -1
  100. package/dist/esm/core/Signal.d.ts +24 -28
  101. package/dist/esm/core/Signal.js +64 -50
  102. package/dist/esm/core/Signal.js.map +1 -1
  103. package/dist/esm/core/Timer.d.ts +1 -0
  104. package/dist/esm/core/Timer.js +3 -0
  105. package/dist/esm/core/Timer.js.map +1 -1
  106. package/dist/esm/core/capabilities.d.ts +2 -0
  107. package/dist/esm/core/capabilities.js +15 -0
  108. package/dist/esm/core/capabilities.js.map +1 -1
  109. package/dist/esm/core/index.d.ts +1 -0
  110. package/dist/esm/core/types.d.ts +1 -1
  111. package/dist/esm/core/utils.d.ts +12 -0
  112. package/dist/esm/core/utils.js +18 -1
  113. package/dist/esm/core/utils.js.map +1 -1
  114. package/dist/esm/debug/BoundingBoxesLayer.js +1 -1
  115. package/dist/esm/debug/BoundingBoxesLayer.js.map +1 -1
  116. package/dist/esm/debug/HitTestLayer.js +1 -1
  117. package/dist/esm/debug/HitTestLayer.js.map +1 -1
  118. package/dist/esm/debug/PerformanceLayer.js +1 -2
  119. package/dist/esm/debug/PerformanceLayer.js.map +1 -1
  120. package/dist/esm/debug/PointerStackLayer.js +1 -2
  121. package/dist/esm/debug/PointerStackLayer.js.map +1 -1
  122. package/dist/esm/debug/RenderPassInspectorLayer.js +1 -2
  123. package/dist/esm/debug/RenderPassInspectorLayer.js.map +1 -1
  124. package/dist/esm/index.js +37 -10
  125. package/dist/esm/index.js.map +1 -1
  126. package/dist/esm/input/InputManager.d.ts +1 -0
  127. package/dist/esm/input/InputManager.js +30 -3
  128. package/dist/esm/input/InputManager.js.map +1 -1
  129. package/dist/esm/input/InteractionManager.d.ts +5 -2
  130. package/dist/esm/input/InteractionManager.js +29 -18
  131. package/dist/esm/input/InteractionManager.js.map +1 -1
  132. package/dist/esm/input/Pointer.js +3 -2
  133. package/dist/esm/input/Pointer.js.map +1 -1
  134. package/dist/esm/input/internal/interactionManagerRegistry.d.ts +9 -0
  135. package/dist/esm/input/internal/interactionManagerRegistry.js +10 -0
  136. package/dist/esm/input/internal/interactionManagerRegistry.js.map +1 -0
  137. package/dist/esm/math/AbstractVector.d.ts +1 -7
  138. package/dist/esm/math/AbstractVector.js +6 -20
  139. package/dist/esm/math/AbstractVector.js.map +1 -1
  140. package/dist/esm/math/Circle.js +0 -2
  141. package/dist/esm/math/Circle.js.map +1 -1
  142. package/dist/esm/math/Collision.d.ts +9 -3
  143. package/dist/esm/math/Ellipse.d.ts +2 -5
  144. package/dist/esm/math/Ellipse.js +10 -7
  145. package/dist/esm/math/Ellipse.js.map +1 -1
  146. package/dist/esm/math/ObservableVector.d.ts +1 -1
  147. package/dist/esm/math/ObservableVector.js +3 -3
  148. package/dist/esm/math/ObservableVector.js.map +1 -1
  149. package/dist/esm/math/Polygon.d.ts +0 -2
  150. package/dist/esm/math/Polygon.js +1 -9
  151. package/dist/esm/math/Polygon.js.map +1 -1
  152. package/dist/esm/math/Rectangle.js +0 -2
  153. package/dist/esm/math/Rectangle.js.map +1 -1
  154. package/dist/esm/math/collision-detection.d.ts +19 -4
  155. package/dist/esm/math/collision-detection.js +61 -4
  156. package/dist/esm/math/collision-detection.js.map +1 -1
  157. package/dist/esm/math/swept-collision.d.ts +16 -12
  158. package/dist/esm/math/swept-collision.js +109 -19
  159. package/dist/esm/math/swept-collision.js.map +1 -1
  160. package/dist/esm/particles/ParticleSystem.d.ts +8 -5
  161. package/dist/esm/particles/ParticleSystem.js +10 -6
  162. package/dist/esm/particles/ParticleSystem.js.map +1 -1
  163. package/dist/esm/particles/distributions/{Gradient.d.ts → ColorGradient.d.ts} +5 -5
  164. package/dist/esm/particles/distributions/{Gradient.js → ColorGradient.js} +5 -5
  165. package/dist/esm/particles/distributions/ColorGradient.js.map +1 -0
  166. package/dist/esm/particles/distributions/Distribution.d.ts +2 -2
  167. package/dist/esm/particles/distributions/index.d.ts +2 -2
  168. package/dist/esm/particles/gpu/ParticleGpuState.js +1 -1
  169. package/dist/esm/particles/index.d.ts +1 -0
  170. package/dist/esm/particles/modules/ColorOverLifetime.d.ts +3 -3
  171. package/dist/esm/particles/modules/ColorOverLifetime.js.map +1 -1
  172. package/dist/esm/particles/modules/ColorOverSpeed.d.ts +3 -3
  173. package/dist/esm/particles/modules/ColorOverSpeed.js.map +1 -1
  174. package/dist/esm/particles/modules/UpdateModule.d.ts +2 -2
  175. package/dist/esm/particles/modules/UpdateModule.js +1 -1
  176. package/dist/esm/particles/modules/WgslContribution.d.ts +2 -2
  177. package/dist/esm/rendering/CallbackRenderPass.d.ts +1 -0
  178. package/dist/esm/rendering/CallbackRenderPass.js +1 -0
  179. package/dist/esm/rendering/CallbackRenderPass.js.map +1 -1
  180. package/dist/esm/rendering/Camera.d.ts +33 -0
  181. package/dist/esm/rendering/Camera.js +38 -0
  182. package/dist/esm/rendering/Camera.js.map +1 -0
  183. package/dist/esm/rendering/Container.d.ts +7 -25
  184. package/dist/esm/rendering/Container.js +25 -87
  185. package/dist/esm/rendering/Container.js.map +1 -1
  186. package/dist/esm/rendering/Drawable.d.ts +8 -10
  187. package/dist/esm/rendering/Drawable.js +12 -20
  188. package/dist/esm/rendering/Drawable.js.map +1 -1
  189. package/dist/esm/rendering/RenderBackend.d.ts +19 -0
  190. package/dist/esm/rendering/RenderNode.d.ts +82 -11
  191. package/dist/esm/rendering/RenderNode.js +133 -163
  192. package/dist/esm/rendering/RenderNode.js.map +1 -1
  193. package/dist/esm/rendering/RenderPass.d.ts +1 -0
  194. package/dist/esm/rendering/RenderStats.d.ts +9 -0
  195. package/dist/esm/rendering/RenderStats.js +2 -0
  196. package/dist/esm/rendering/RenderStats.js.map +1 -1
  197. package/dist/esm/rendering/RenderTarget.d.ts +13 -0
  198. package/dist/esm/rendering/RenderTarget.js +13 -0
  199. package/dist/esm/rendering/RenderTarget.js.map +1 -1
  200. package/dist/esm/rendering/RenderTargetPass.js +17 -0
  201. package/dist/esm/rendering/RenderTargetPass.js.map +1 -1
  202. package/dist/esm/rendering/RendererRegistry.d.ts +1 -0
  203. package/dist/esm/rendering/RendererRegistry.js +1 -0
  204. package/dist/esm/rendering/RendererRegistry.js.map +1 -1
  205. package/dist/esm/rendering/RenderingContext.d.ts +87 -0
  206. package/dist/esm/rendering/RenderingContext.js +157 -0
  207. package/dist/esm/rendering/RenderingContext.js.map +1 -0
  208. package/dist/esm/rendering/TransformBuffer.d.ts +38 -0
  209. package/dist/esm/rendering/TransformBuffer.js +116 -0
  210. package/dist/esm/rendering/TransformBuffer.js.map +1 -0
  211. package/dist/esm/rendering/View.d.ts +23 -0
  212. package/dist/esm/rendering/View.js +42 -0
  213. package/dist/esm/rendering/View.js.map +1 -1
  214. package/dist/esm/rendering/filters/WebGpuShaderFilter.js +5 -12
  215. package/dist/esm/rendering/filters/WebGpuShaderFilter.js.map +1 -1
  216. package/dist/esm/rendering/geometry/Geometry.d.ts +40 -0
  217. package/dist/esm/rendering/geometry/Geometry.js +228 -0
  218. package/dist/esm/rendering/geometry/Geometry.js.map +1 -0
  219. package/dist/esm/rendering/geometry/GeometryAttribute.d.ts +32 -0
  220. package/dist/esm/rendering/geometry/QuadGeometry.d.ts +5 -0
  221. package/dist/esm/rendering/gradient/Gradient.d.ts +34 -0
  222. package/dist/esm/rendering/gradient/Gradient.js +114 -0
  223. package/dist/esm/rendering/gradient/Gradient.js.map +1 -0
  224. package/dist/esm/rendering/gradient/LinearGradient.d.ts +10 -0
  225. package/dist/esm/rendering/gradient/LinearGradient.js +26 -0
  226. package/dist/esm/rendering/gradient/LinearGradient.js.map +1 -0
  227. package/dist/esm/rendering/gradient/RadialGradient.d.ts +10 -0
  228. package/dist/esm/rendering/gradient/RadialGradient.js +25 -0
  229. package/dist/esm/rendering/gradient/RadialGradient.js.map +1 -0
  230. package/dist/esm/rendering/index.d.ts +103 -59
  231. package/dist/esm/rendering/material/Material.d.ts +114 -0
  232. package/dist/esm/rendering/material/Material.js +111 -0
  233. package/dist/esm/rendering/material/Material.js.map +1 -0
  234. package/dist/esm/rendering/material/MaterialKey.d.ts +18 -0
  235. package/dist/esm/rendering/material/MaterialKey.js +82 -0
  236. package/dist/esm/rendering/material/MaterialKey.js.map +1 -0
  237. package/dist/esm/rendering/material/MeshMaterial.d.ts +16 -0
  238. package/dist/esm/rendering/material/MeshMaterial.js +21 -0
  239. package/dist/esm/rendering/material/MeshMaterial.js.map +1 -0
  240. package/dist/esm/rendering/{mesh/MeshShader.d.ts → material/ShaderSource.d.ts} +30 -62
  241. package/dist/esm/rendering/{mesh/MeshShader.js → material/ShaderSource.js} +36 -62
  242. package/dist/esm/rendering/material/ShaderSource.js.map +1 -0
  243. package/dist/esm/rendering/material/SpriteMaterial.d.ts +15 -0
  244. package/dist/esm/rendering/material/SpriteMaterial.js +20 -0
  245. package/dist/esm/rendering/material/SpriteMaterial.js.map +1 -0
  246. package/dist/esm/rendering/mesh/Mesh.d.ts +29 -12
  247. package/dist/esm/rendering/mesh/Mesh.js +123 -4
  248. package/dist/esm/rendering/mesh/Mesh.js.map +1 -1
  249. package/dist/esm/rendering/pass/RenderPassCoordinator.d.ts +63 -0
  250. package/dist/esm/rendering/pass/RenderPassDescriptor.d.ts +48 -0
  251. package/dist/esm/rendering/pass/RenderPassDescriptor.js +16 -0
  252. package/dist/esm/rendering/pass/RenderPassDescriptor.js.map +1 -0
  253. package/dist/esm/rendering/plan/RenderCommand.d.ts +67 -0
  254. package/dist/esm/rendering/plan/RenderCommand.js +94 -0
  255. package/dist/esm/rendering/plan/RenderCommand.js.map +1 -0
  256. package/dist/esm/rendering/plan/RenderEffectExecutor.d.ts +10 -0
  257. package/dist/esm/rendering/plan/RenderEffectExecutor.js +159 -0
  258. package/dist/esm/rendering/plan/RenderEffectExecutor.js.map +1 -0
  259. package/dist/esm/rendering/plan/RenderPlan.d.ts +23 -0
  260. package/dist/esm/rendering/plan/RenderPlan.js +12 -0
  261. package/dist/esm/rendering/plan/RenderPlan.js.map +1 -0
  262. package/dist/esm/rendering/plan/RenderPlanBuilder.d.ts +31 -0
  263. package/dist/esm/rendering/plan/RenderPlanBuilder.js +242 -0
  264. package/dist/esm/rendering/plan/RenderPlanBuilder.js.map +1 -0
  265. package/dist/esm/rendering/plan/RenderPlanOptimizer.d.ts +10 -0
  266. package/dist/esm/rendering/plan/RenderPlanOptimizer.js +180 -0
  267. package/dist/esm/rendering/plan/RenderPlanOptimizer.js.map +1 -0
  268. package/dist/esm/rendering/plan/RenderPlanPlayer.d.ts +9 -0
  269. package/dist/esm/rendering/plan/RenderPlanPlayer.js +56 -0
  270. package/dist/esm/rendering/plan/RenderPlanPlayer.js.map +1 -0
  271. package/dist/esm/rendering/plan/RenderScope.d.ts +70 -0
  272. package/dist/esm/rendering/plan/RenderScope.js +16 -0
  273. package/dist/esm/rendering/plan/RenderScope.js.map +1 -0
  274. package/dist/esm/rendering/plan/playRenderTree.d.ts +4 -0
  275. package/dist/esm/rendering/plan/playRenderTree.js +19 -0
  276. package/dist/esm/rendering/plan/playRenderTree.js.map +1 -0
  277. package/dist/esm/rendering/shader/Shader.d.ts +1 -0
  278. package/dist/esm/rendering/shader/Shader.js +1 -0
  279. package/dist/esm/rendering/shader/Shader.js.map +1 -1
  280. package/dist/esm/rendering/shader/ShaderUniform.d.ts +1 -0
  281. package/dist/esm/rendering/shader/ShaderUniform.js +1 -0
  282. package/dist/esm/rendering/shader/ShaderUniform.js.map +1 -1
  283. package/dist/esm/rendering/sprite/Sprite.d.ts +25 -3
  284. package/dist/esm/rendering/sprite/Sprite.js +48 -15
  285. package/dist/esm/rendering/sprite/Sprite.js.map +1 -1
  286. package/dist/esm/rendering/sprite/spriteMaterialSources.d.ts +36 -0
  287. package/dist/esm/rendering/sprite/spriteMaterialSources.js +128 -0
  288. package/dist/esm/rendering/sprite/spriteMaterialSources.js.map +1 -0
  289. package/dist/esm/rendering/text/AbstractText.d.ts +36 -0
  290. package/dist/esm/rendering/text/AbstractText.js +49 -0
  291. package/dist/esm/rendering/text/AbstractText.js.map +1 -0
  292. package/dist/esm/rendering/text/BitmapText.d.ts +97 -0
  293. package/dist/esm/rendering/text/BitmapText.js +220 -0
  294. package/dist/esm/rendering/text/BitmapText.js.map +1 -0
  295. package/dist/esm/rendering/text/BmFont.d.ts +50 -0
  296. package/dist/esm/rendering/text/BmFont.js +24 -0
  297. package/dist/esm/rendering/text/BmFont.js.map +1 -0
  298. package/dist/esm/rendering/text/GlyphAtlas.d.ts +104 -0
  299. package/dist/esm/rendering/text/GlyphAtlas.js +347 -0
  300. package/dist/esm/rendering/text/GlyphAtlas.js.map +1 -0
  301. package/dist/esm/rendering/text/GlyphAtlasPool.d.ts +40 -0
  302. package/dist/esm/rendering/text/GlyphAtlasPool.js +67 -0
  303. package/dist/esm/rendering/text/GlyphAtlasPool.js.map +1 -0
  304. package/dist/esm/rendering/text/GlyphSdf.d.ts +92 -0
  305. package/dist/esm/rendering/text/GlyphSdf.js +220 -0
  306. package/dist/esm/rendering/text/GlyphSdf.js.map +1 -0
  307. package/dist/esm/rendering/text/HTMLText.d.ts +107 -0
  308. package/dist/esm/rendering/text/HTMLText.js +284 -0
  309. package/dist/esm/rendering/text/HTMLText.js.map +1 -0
  310. package/dist/esm/rendering/text/LayoutOptions.d.ts +30 -0
  311. package/dist/esm/rendering/text/Text.d.ts +89 -20
  312. package/dist/esm/rendering/text/Text.js +176 -101
  313. package/dist/esm/rendering/text/Text.js.map +1 -1
  314. package/dist/esm/rendering/text/TextLayout.d.ts +20 -8
  315. package/dist/esm/rendering/text/TextLayout.js +234 -25
  316. package/dist/esm/rendering/text/TextLayout.js.map +1 -1
  317. package/dist/esm/rendering/text/TextStyle.d.ts +154 -87
  318. package/dist/esm/rendering/text/TextStyle.js +257 -203
  319. package/dist/esm/rendering/text/TextStyle.js.map +1 -1
  320. package/dist/esm/rendering/text/types.d.ts +73 -13
  321. package/dist/esm/rendering/texture/DataTexture.d.ts +5 -0
  322. package/dist/esm/rendering/texture/DataTexture.js +7 -0
  323. package/dist/esm/rendering/texture/DataTexture.js.map +1 -1
  324. package/dist/esm/rendering/texture/Texture.d.ts +1 -0
  325. package/dist/esm/rendering/texture/Texture.js +1 -0
  326. package/dist/esm/rendering/texture/Texture.js.map +1 -1
  327. package/dist/esm/rendering/types.d.ts +3 -1
  328. package/dist/esm/rendering/types.js +2 -0
  329. package/dist/esm/rendering/types.js.map +1 -1
  330. package/dist/esm/rendering/video/Video.d.ts +5 -8
  331. package/dist/esm/rendering/video/Video.js +12 -13
  332. package/dist/esm/rendering/video/Video.js.map +1 -1
  333. package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts +40 -0
  334. package/dist/esm/rendering/webgl2/WebGl2Backend.js +344 -27
  335. package/dist/esm/rendering/webgl2/WebGl2Backend.js.map +1 -1
  336. package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.d.ts +22 -2
  337. package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.js +404 -112
  338. package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.js.map +1 -1
  339. package/dist/esm/rendering/webgl2/WebGl2PassCoordinator.d.ts +57 -0
  340. package/dist/esm/rendering/webgl2/WebGl2PassCoordinator.js +79 -0
  341. package/dist/esm/rendering/webgl2/WebGl2PassCoordinator.js.map +1 -0
  342. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.d.ts +12 -0
  343. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js +214 -58
  344. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js.map +1 -1
  345. package/dist/esm/rendering/webgl2/WebGl2StencilClipper.d.ts +34 -0
  346. package/dist/esm/rendering/webgl2/WebGl2StencilClipper.js +169 -0
  347. package/dist/esm/rendering/webgl2/WebGl2StencilClipper.js.map +1 -0
  348. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.d.ts +56 -0
  349. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js +486 -0
  350. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js.map +1 -0
  351. package/dist/esm/rendering/webgl2/glsl/mesh.frag.js +1 -1
  352. package/dist/esm/rendering/webgl2/glsl/mesh.vert.js +1 -1
  353. package/dist/esm/rendering/webgl2/glsl/stencil-clip.frag.js +4 -0
  354. package/dist/esm/rendering/webgl2/glsl/stencil-clip.frag.js.map +1 -0
  355. package/dist/esm/rendering/webgl2/glsl/stencil-clip.vert.js +4 -0
  356. package/dist/esm/rendering/webgl2/glsl/stencil-clip.vert.js.map +1 -0
  357. package/dist/esm/rendering/webgl2/glsl/text-color.frag.js +4 -0
  358. package/dist/esm/rendering/webgl2/glsl/text-color.frag.js.map +1 -0
  359. package/dist/esm/rendering/webgl2/glsl/text-msdf.frag.js +4 -0
  360. package/dist/esm/rendering/webgl2/glsl/text-msdf.frag.js.map +1 -0
  361. package/dist/esm/rendering/webgl2/glsl/text-sdf.frag.js +4 -0
  362. package/dist/esm/rendering/webgl2/glsl/text-sdf.frag.js.map +1 -0
  363. package/dist/esm/rendering/webgl2/glsl/text.vert.js +4 -0
  364. package/dist/esm/rendering/webgl2/glsl/text.vert.js.map +1 -0
  365. package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts +50 -0
  366. package/dist/esm/rendering/webgpu/WebGpuBackend.js +151 -27
  367. package/dist/esm/rendering/webgpu/WebGpuBackend.js.map +1 -1
  368. package/dist/esm/rendering/webgpu/WebGpuBlendState.js +26 -0
  369. package/dist/esm/rendering/webgpu/WebGpuBlendState.js.map +1 -1
  370. package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.js +22 -17
  371. package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.js.map +1 -1
  372. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.d.ts +26 -2
  373. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js +511 -89
  374. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js.map +1 -1
  375. package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.js +13 -17
  376. package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.js.map +1 -1
  377. package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.d.ts +141 -0
  378. package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.js +270 -0
  379. package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.js.map +1 -0
  380. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts +16 -0
  381. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js +344 -27
  382. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js.map +1 -1
  383. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.d.ts +57 -0
  384. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.js +257 -0
  385. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.js.map +1 -0
  386. package/dist/esm/rendering/webgpu/WebGpuStencilState.d.ts +14 -0
  387. package/dist/esm/rendering/webgpu/WebGpuStencilState.js +36 -0
  388. package/dist/esm/rendering/webgpu/WebGpuStencilState.js.map +1 -0
  389. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.d.ts +70 -0
  390. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js +775 -0
  391. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js.map +1 -0
  392. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.d.ts +16 -0
  393. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js +57 -0
  394. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js.map +1 -0
  395. package/dist/esm/rendering/webgpu/compute/WebGpuComputePipeline.js +96 -0
  396. package/dist/esm/rendering/webgpu/compute/WebGpuComputePipeline.js.map +1 -0
  397. package/dist/esm/rendering/webgpu/compute/WebGpuStorageBuffer.js +68 -0
  398. package/dist/esm/rendering/webgpu/compute/WebGpuStorageBuffer.js.map +1 -0
  399. package/dist/esm/resources/Asset.d.ts +23 -0
  400. package/dist/esm/resources/Asset.js +23 -0
  401. package/dist/esm/resources/Asset.js.map +1 -0
  402. package/dist/esm/resources/AssetDefinitions.d.ts +137 -0
  403. package/dist/esm/resources/Assets.d.ts +35 -0
  404. package/dist/esm/resources/Assets.js +32 -0
  405. package/dist/esm/resources/Assets.js.map +1 -0
  406. package/dist/esm/resources/IndexedDbDatabase.js +17 -1
  407. package/dist/esm/resources/IndexedDbDatabase.js.map +1 -1
  408. package/dist/esm/resources/IndexedDbStore.js +17 -1
  409. package/dist/esm/resources/IndexedDbStore.js.map +1 -1
  410. package/dist/esm/resources/JsonStore.d.ts +18 -0
  411. package/dist/esm/resources/JsonStore.js +62 -0
  412. package/dist/esm/resources/JsonStore.js.map +1 -0
  413. package/dist/esm/resources/Loader.d.ts +244 -18
  414. package/dist/esm/resources/Loader.js +456 -50
  415. package/dist/esm/resources/Loader.js.map +1 -1
  416. package/dist/esm/resources/LoadingQueue.d.ts +28 -0
  417. package/dist/esm/resources/LoadingQueue.js +59 -0
  418. package/dist/esm/resources/LoadingQueue.js.map +1 -0
  419. package/dist/esm/resources/factories/BmFontFactory.d.ts +25 -0
  420. package/dist/esm/resources/factories/BmFontFactory.js +96 -0
  421. package/dist/esm/resources/factories/BmFontFactory.js.map +1 -0
  422. package/dist/esm/resources/factories/CsvFactory.d.ts +35 -0
  423. package/dist/esm/resources/factories/CsvFactory.js +87 -0
  424. package/dist/esm/resources/factories/CsvFactory.js.map +1 -0
  425. package/dist/esm/resources/factories/ImageFactory.d.ts +14 -8
  426. package/dist/esm/resources/factories/ImageFactory.js +13 -6
  427. package/dist/esm/resources/factories/ImageFactory.js.map +1 -1
  428. package/dist/esm/resources/factories/MusicFactory.d.ts +8 -2
  429. package/dist/esm/resources/factories/MusicFactory.js +25 -14
  430. package/dist/esm/resources/factories/MusicFactory.js.map +1 -1
  431. package/dist/esm/resources/factories/SoundFactory.d.ts +2 -2
  432. package/dist/esm/resources/factories/SoundFactory.js.map +1 -1
  433. package/dist/esm/resources/factories/SubtitleFactory.d.ts +28 -0
  434. package/dist/esm/resources/factories/SubtitleFactory.js +203 -0
  435. package/dist/esm/resources/factories/SubtitleFactory.js.map +1 -0
  436. package/dist/esm/resources/factories/SvgFactory.d.ts +18 -1
  437. package/dist/esm/resources/factories/SvgFactory.js +21 -2
  438. package/dist/esm/resources/factories/SvgFactory.js.map +1 -1
  439. package/dist/esm/resources/factories/TextureFactory.d.ts +4 -4
  440. package/dist/esm/resources/factories/TextureFactory.js +8 -4
  441. package/dist/esm/resources/factories/TextureFactory.js.map +1 -1
  442. package/dist/esm/resources/factories/VideoFactory.d.ts +8 -2
  443. package/dist/esm/resources/factories/VideoFactory.js +27 -20
  444. package/dist/esm/resources/factories/VideoFactory.js.map +1 -1
  445. package/dist/esm/resources/factories/XmlFactory.d.ts +24 -0
  446. package/dist/esm/resources/factories/XmlFactory.js +37 -0
  447. package/dist/esm/resources/factories/XmlFactory.js.map +1 -0
  448. package/dist/esm/resources/index.d.ts +9 -1
  449. package/dist/esm/resources/tokens.d.ts +49 -3
  450. package/dist/esm/resources/tokens.js +50 -4
  451. package/dist/esm/resources/tokens.js.map +1 -1
  452. package/dist/exo.esm.js +15382 -8078
  453. package/dist/exo.esm.js.map +1 -1
  454. package/package.json +34 -16
  455. package/dist/esm/input/interaction-hooks.d.ts +0 -34
  456. package/dist/esm/input/interaction-hooks.js +0 -35
  457. package/dist/esm/input/interaction-hooks.js.map +0 -1
  458. package/dist/esm/particles/distributions/Gradient.js.map +0 -1
  459. package/dist/esm/rendering/mesh/MeshShader.js.map +0 -1
  460. package/dist/esm/rendering/text/DynamicGlyphAtlas.d.ts +0 -33
  461. package/dist/esm/rendering/text/DynamicGlyphAtlas.js +0 -134
  462. package/dist/esm/rendering/text/DynamicGlyphAtlas.js.map +0 -1
  463. package/dist/esm/rendering/text/atlas-singleton.d.ts +0 -7
  464. package/dist/esm/rendering/text/atlas-singleton.js +0 -17
  465. package/dist/esm/rendering/text/atlas-singleton.js.map +0 -1
  466. package/dist/esm/resources/factories/VttFactory.d.ts +0 -24
  467. package/dist/esm/resources/factories/VttFactory.js +0 -158
  468. package/dist/esm/resources/factories/VttFactory.js.map +0 -1
  469. package/dist/esm/vendor/webgl-debug.js +0 -1160
  470. package/dist/esm/vendor/webgl-debug.js.map +0 -1
@@ -14,20 +14,20 @@ const compareT = (a, b) => a.t - b.t;
14
14
  * that write into a `Uint32Array` instance buffer.
15
15
  *
16
16
  * @example
17
- * const fire = new Gradient([
17
+ * const fire = new ColorGradient([
18
18
  * { t: 0, color: new Color(1, 1, 1, 1) }, // white
19
19
  * { t: 0.3, color: new Color(1, 0.7, 0.1, 1) }, // orange
20
20
  * { t: 0.7, color: new Color(0.4, 0.1, 0, 0.6) },
21
21
  * { t: 1, color: new Color(0, 0, 0, 0) }, // transparent black
22
22
  * ]);
23
23
  */
24
- class Gradient {
24
+ class ColorGradient {
25
25
  _keys;
26
26
  _scratch = new Color();
27
27
  _lastSegment = 0;
28
28
  constructor(keys) {
29
29
  if (keys.length === 0) {
30
- throw new Error('Gradient requires at least one keyframe.');
30
+ throw new Error('ColorGradient requires at least one keyframe.');
31
31
  }
32
32
  this._keys = [...keys].map(k => ({ t: k.t, color: k.color.clone() })).sort(compareT);
33
33
  }
@@ -68,5 +68,5 @@ class Gradient {
68
68
  }
69
69
  }
70
70
 
71
- export { Gradient };
72
- //# sourceMappingURL=Gradient.js.map
71
+ export { ColorGradient };
72
+ //# sourceMappingURL=ColorGradient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColorGradient.js","sources":["../../../../../src/particles/distributions/ColorGradient.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -16,7 +16,7 @@
16
16
  * @example
17
17
  * const lifetime = new Range(0.5, 1.5); // seconds, uniform
18
18
  * const velocity = new VectorRange(-50, 50, -200, -100);
19
- * const tint = new Gradient([
19
+ * const tint = new ColorGradient([
20
20
  * { t: 0, color: Color.white },
21
21
  * { t: 0.7, color: Color.yellow },
22
22
  * { t: 1, color: Color.transparent },
@@ -34,7 +34,7 @@ export interface Distribution<T> {
34
34
  /**
35
35
  * Lifetime-parameterised function that produces a deterministic `T` for a
36
36
  * given lifetime ratio `t` in `[0, 1]`. Used by per-frame update modules
37
- * that interpolate over particle lifetime — `ColorOverLifetime` (Gradient),
37
+ * that interpolate over particle lifetime — `ColorOverLifetime` (ColorGradient),
38
38
  * `ScaleOverLifetime` (Curve), etc.
39
39
  *
40
40
  * Mutable-target rule: same as {@link Distribution} — pass your own scratch
@@ -1,12 +1,12 @@
1
1
  export { BoxArea } from './BoxArea';
2
2
  export { CircleArea } from './CircleArea';
3
+ export type { ColorGradientKey } from './ColorGradient';
4
+ export { ColorGradient } from './ColorGradient';
3
5
  export { ConeDirection } from './ConeDirection';
4
6
  export { Constant } from './Constant';
5
7
  export type { CurveKey } from './Curve';
6
8
  export { Curve } from './Curve';
7
9
  export type { Distribution, LifetimeFunction } from './Distribution';
8
- export type { GradientKey } from './Gradient';
9
- export { Gradient } from './Gradient';
10
10
  export { LineSegment } from './LineSegment';
11
11
  export { Range } from './Range';
12
12
  export { VectorRange } from './VectorRange';
@@ -14,7 +14,7 @@ import { wgslUniformByteSize } from '../modules/WgslContribution.js';
14
14
  * - **One uniform buffer** for frame UVs — `array<vec4<f32>, N>` where N
15
15
  * is the system's frame count (or 1 when no atlas is declared). Each
16
16
  * vec4 is `(uvMinX, uvMinY, uvMaxX, uvMaxY)` already flipY-adjusted.
17
- * - **N 1D textures** for modules that use lookup tables (Curve / Gradient).
17
+ * - **N 1D textures** for modules that use lookup tables (Curve / ColorGradient).
18
18
  * - **Composite compute pipeline** built once at construction by
19
19
  * concatenating the integration step + every registered module body +
20
20
  * the pack-instances step into a single shader.
@@ -1,3 +1,4 @@
1
1
  export * from './distributions';
2
+ export * from './gpu/ParticleGpuState';
2
3
  export * from './modules';
3
4
  export * from './ParticleSystem';
@@ -1,4 +1,4 @@
1
- import type { Gradient } from '@/particles/distributions/Gradient';
1
+ import type { ColorGradient } from '@/particles/distributions/ColorGradient';
2
2
  import type { ParticleSystem } from '@/particles/ParticleSystem';
3
3
  import { UpdateModule } from './UpdateModule';
4
4
  import type { WgslContribution } from './WgslContribution';
@@ -12,8 +12,8 @@ import type { WgslContribution } from './WgslContribution';
12
12
  * and sampled with linear filtering on the GPU.
13
13
  */
14
14
  export declare class ColorOverLifetime extends UpdateModule {
15
- gradient: Gradient;
16
- constructor(gradient: Gradient);
15
+ gradient: ColorGradient;
16
+ constructor(gradient: ColorGradient);
17
17
  apply(system: ParticleSystem, _dt: number): void;
18
18
  wgsl(): WgslContribution;
19
19
  uploadTextures(device: GPUDevice, textures: ReadonlyMap<string, GPUTexture>): void;
@@ -1 +1 @@
1
- {"version":3,"file":"ColorOverLifetime.js","sources":["../../../../../src/particles/modules/ColorOverLifetime.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAAA;AASA,MAAM,UAAU,GAAG,GAAG;AAEtB;;;;;;;;AAQG;AACG,MAAO,iBAAkB,SAAQ,YAAY,CAAA;AAC1C,IAAA,QAAQ;AAEf,IAAA,WAAA,CAAmB,QAAkB,EAAA;AACnC,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;IAC1B;IAEgB,KAAK,CAAC,MAAsB,EAAE,GAAW,EAAA;QACvD,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,MAAM;AACtD,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ;AAE9B,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;YAClC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;YAElC,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;QACrC;IACF;IAEgB,IAAI,GAAA;QAClB,OAAO;AACL,YAAA,GAAG,EAAE,mBAAmB;YACxB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;AACtD,YAAA,IAAI,EAAE;;;;;;;;AAQC,YAAA,CAAA;SACR;IACH;IAEgB,cAAc,CAAC,MAAiB,EAAE,QAAyC,EAAA;QACzF,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC;AAExC,QAAA,IAAI,OAAO,KAAK,SAAS,EAAE;YACzB;QACF;QAEA,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,UAAU,GAAG,CAAC,CAAC;AAC3C,QAAA,MAAM,OAAO,GAAG,IAAI,KAAK,EAAE;AAE3B,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE;YACnC,MAAM,CAAC,GAAG,CAAC,IAAI,UAAU,GAAG,CAAC,CAAC;YAE9B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC;AAElC,YAAA,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;YAEf,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,GAAG;YAC7B,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,GAAG;YAC7B,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,GAAG;AAC7B,YAAA,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG;QAC7C;AAEA,QAAA,MAAM,CAAC,KAAK,CAAC,YAAY,CACvB,EAAE,OAAO,EAAE,EACX,IAAI,CAAC,MAAM,EACX,EAAE,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,UAAU,GAAG,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,EAC3D,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,EAAE,kBAAkB,EAAE,CAAC,EAAE,CACxD;IACH;AACD;;;;"}
1
+ {"version":3,"file":"ColorOverLifetime.js","sources":["../../../../../src/particles/modules/ColorOverLifetime.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAAA;AASA,MAAM,UAAU,GAAG,GAAG;AAEtB;;;;;;;;AAQG;AACG,MAAO,iBAAkB,SAAQ,YAAY,CAAA;AAC1C,IAAA,QAAQ;AAEf,IAAA,WAAA,CAAmB,QAAuB,EAAA;AACxC,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;IAC1B;IAEgB,KAAK,CAAC,MAAsB,EAAE,GAAW,EAAA;QACvD,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,MAAM;AACtD,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ;AAE9B,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;YAClC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;YAElC,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;QACrC;IACF;IAEgB,IAAI,GAAA;QAClB,OAAO;AACL,YAAA,GAAG,EAAE,mBAAmB;YACxB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;AACtD,YAAA,IAAI,EAAE;;;;;;;;AAQC,YAAA,CAAA;SACR;IACH;IAEgB,cAAc,CAAC,MAAiB,EAAE,QAAyC,EAAA;QACzF,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC;AAExC,QAAA,IAAI,OAAO,KAAK,SAAS,EAAE;YACzB;QACF;QAEA,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,UAAU,GAAG,CAAC,CAAC;AAC3C,QAAA,MAAM,OAAO,GAAG,IAAI,KAAK,EAAE;AAE3B,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE;YACnC,MAAM,CAAC,GAAG,CAAC,IAAI,UAAU,GAAG,CAAC,CAAC;YAE9B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC;AAElC,YAAA,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;YAEf,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,GAAG;YAC7B,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,GAAG;YAC7B,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,GAAG;AAC7B,YAAA,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG;QAC7C;AAEA,QAAA,MAAM,CAAC,KAAK,CAAC,YAAY,CACvB,EAAE,OAAO,EAAE,EACX,IAAI,CAAC,MAAM,EACX,EAAE,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,UAAU,GAAG,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,EAC3D,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,EAAE,kBAAkB,EAAE,CAAC,EAAE,CACxD;IACH;AACD;;;;"}
@@ -1,4 +1,4 @@
1
- import type { Gradient } from '@/particles/distributions/Gradient';
1
+ import type { ColorGradient } from '@/particles/distributions/ColorGradient';
2
2
  import type { ParticleSystem } from '@/particles/ParticleSystem';
3
3
  import { UpdateModule } from './UpdateModule';
4
4
  import type { WgslContribution } from './WgslContribution';
@@ -16,10 +16,10 @@ import type { WgslContribution } from './WgslContribution';
16
16
  * keep alpha controlled by lifetime.
17
17
  */
18
18
  export declare class ColorOverSpeed extends UpdateModule {
19
- gradient: Gradient;
19
+ gradient: ColorGradient;
20
20
  minSpeed: number;
21
21
  maxSpeed: number;
22
- constructor(gradient: Gradient, minSpeed: number, maxSpeed: number);
22
+ constructor(gradient: ColorGradient, minSpeed: number, maxSpeed: number);
23
23
  apply(system: ParticleSystem, _dt: number): void;
24
24
  wgsl(): WgslContribution;
25
25
  writeUniforms(view: DataView, offset: number): void;
@@ -1 +1 @@
1
- {"version":3,"file":"ColorOverSpeed.js","sources":["../../../../../src/particles/modules/ColorOverSpeed.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAAA;AASA,MAAM,UAAU,GAAG,GAAG;AAEtB;;;;;;;;;;;;AAYG;AACG,MAAO,cAAe,SAAQ,YAAY,CAAA;AACvC,IAAA,QAAQ;AACR,IAAA,QAAQ;AACR,IAAA,QAAQ;AAEf,IAAA,WAAA,CAAmB,QAAkB,EAAE,QAAgB,EAAE,QAAgB,EAAA;AACvE,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;AACxB,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;AACxB,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;IAC1B;IAEgB,KAAK,CAAC,MAAsB,EAAE,GAAW,EAAA;QACvD,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,MAAM;AAC/C,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ;AAC9B,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ;AACzB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;AAE1D,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;YAClC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAC9D,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,GAAG,IAAI,IAAI,CAAC,CAAC;YAExD,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;QACrC;IACF;IAEgB,IAAI,GAAA;QAClB,OAAO;AACL,YAAA,GAAG,EAAE,gBAAgB;AACrB,YAAA,QAAQ,EAAE;AACR,gBAAA,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE;AACjC,gBAAA,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE;AACjC,aAAA;YACD,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;AACtD,YAAA,IAAI,EAAE;;;;;;;;;AASC,YAAA,CAAA;SACR;IACH;IAEgB,aAAa,CAAC,IAAc,EAAE,MAAc,EAAA;AAC1D,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;AAE1D,QAAA,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC;AAChD,QAAA,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC;IAC7C;IAEgB,cAAc,CAAC,MAAiB,EAAE,QAAyC,EAAA;QACzF,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC;AAExC,QAAA,IAAI,OAAO,KAAK,SAAS,EAAE;YACzB;QACF;QAEA,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,UAAU,GAAG,CAAC,CAAC;AAC3C,QAAA,MAAM,OAAO,GAAG,IAAI,KAAK,EAAE;AAE3B,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE;YACnC,MAAM,CAAC,GAAG,CAAC,IAAI,UAAU,GAAG,CAAC,CAAC;YAE9B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC;AAElC,YAAA,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;YAEf,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,GAAG;YAC7B,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,GAAG;YAC7B,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,GAAG;AAC7B,YAAA,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG;QAC7C;AAEA,QAAA,MAAM,CAAC,KAAK,CAAC,YAAY,CACvB,EAAE,OAAO,EAAE,EACX,IAAI,CAAC,MAAM,EACX,EAAE,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,UAAU,GAAG,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,EAC3D,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,EAAE,kBAAkB,EAAE,CAAC,EAAE,CACxD;IACH;AACD;;;;"}
1
+ {"version":3,"file":"ColorOverSpeed.js","sources":["../../../../../src/particles/modules/ColorOverSpeed.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@ import type { WgslContribution } from './WgslContribution';
10
10
  * WebGPU backends), additionally implement {@link wgsl} and
11
11
  * {@link writeUniforms}. Modules that declare a {@link WgslContribution}
12
12
  * may also opt to declare a 1D texture binding via the `textures` field
13
- * (used by `Curve` / `Gradient`-driven modules) — in which case
13
+ * (used by `Curve` / `ColorGradient`-driven modules) — in which case
14
14
  * {@link uploadTextures} runs once at compile time to upload the data.
15
15
  *
16
16
  * Implementation pattern (CPU-only module):
@@ -82,7 +82,7 @@ export declare abstract class UpdateModule {
82
82
  */
83
83
  writeUniforms?(view: DataView, byteOffset: number, dt: number): void;
84
84
  /**
85
- * Upload texture data (Curve/Gradient lookup tables) to the GPU at
85
+ * Upload texture data (Curve/ColorGradient lookup tables) to the GPU at
86
86
  * compile time. Receives the GPUDevice and a map of texture bindings
87
87
  * keyed by the `name` in {@link WgslContribution.textures}. Called once
88
88
  * after pipeline creation.
@@ -8,7 +8,7 @@
8
8
  * WebGPU backends), additionally implement {@link wgsl} and
9
9
  * {@link writeUniforms}. Modules that declare a {@link WgslContribution}
10
10
  * may also opt to declare a 1D texture binding via the `textures` field
11
- * (used by `Curve` / `Gradient`-driven modules) — in which case
11
+ * (used by `Curve` / `ColorGradient`-driven modules) — in which case
12
12
  * {@link uploadTextures} runs once at compile time to upload the data.
13
13
  *
14
14
  * Implementation pattern (CPU-only module):
@@ -17,11 +17,11 @@ export interface WgslUniformField {
17
17
  name: string;
18
18
  type: WgslPrimitive;
19
19
  }
20
- /** A 1D texture binding (used by Curve / Gradient lookups). */
20
+ /** A 1D texture binding (used by Curve / ColorGradient lookups). */
21
21
  export interface WgslTextureBinding {
22
22
  /** Field name within the module — referenced in WGSL as `u_${moduleKey}_${name}`. */
23
23
  name: string;
24
- /** WGSL texture format. `r32float` for Curve, `rgba8unorm` for Gradient. */
24
+ /** WGSL texture format. `r32float` for Curve, `rgba8unorm` for ColorGradient. */
25
25
  format: 'r32float' | 'rgba8unorm';
26
26
  }
27
27
  /**
@@ -11,6 +11,7 @@ import type { RenderPass } from './RenderPass';
11
11
  * backend.draw(myDrawable);
12
12
  * });
13
13
  * ```
14
+ * @advanced
14
15
  */
15
16
  export declare class CallbackRenderPass implements RenderPass {
16
17
  private readonly _callback;
@@ -9,6 +9,7 @@
9
9
  * backend.draw(myDrawable);
10
10
  * });
11
11
  * ```
12
+ * @advanced
12
13
  */
13
14
  class CallbackRenderPass {
14
15
  _callback;
@@ -1 +1 @@
1
- {"version":3,"file":"CallbackRenderPass.js","sources":["../../../../src/rendering/CallbackRenderPass.ts"],"sourcesContent":[null],"names":[],"mappings":"AAGA;;;;;;;;;;;AAWG;MACU,kBAAkB,CAAA;AACZ,IAAA,SAAS;AAE1B,IAAA,WAAA,CAAmB,QAA0C,EAAA;AAC3D,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ;IAC3B;AAEO,IAAA,OAAO,CAAC,OAAsB,EAAA;AACnC,QAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;IACzB;AACD;;;;"}
1
+ {"version":3,"file":"CallbackRenderPass.js","sources":["../../../../src/rendering/CallbackRenderPass.ts"],"sourcesContent":[null],"names":[],"mappings":"AAGA;;;;;;;;;;;;AAYG;MACU,kBAAkB,CAAA;AACZ,IAAA,SAAS;AAE1B,IAAA,WAAA,CAAmB,QAA0C,EAAA;AAC3D,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ;IAC3B;AAEO,IAAA,OAAO,CAAC,OAAsB,EAAA;AACnC,QAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;IACzB;AACD;;;;"}
@@ -0,0 +1,33 @@
1
+ import type { Rectangle } from '@/math/Rectangle';
2
+ import { View } from '@/rendering/View';
3
+ export interface CameraOptions {
4
+ center?: {
5
+ x: number;
6
+ y: number;
7
+ };
8
+ size?: {
9
+ width: number;
10
+ height: number;
11
+ };
12
+ viewport?: Rectangle;
13
+ rotation?: number;
14
+ zoom?: number;
15
+ }
16
+ /**
17
+ * User-facing camera abstraction. Extends {@link View} with ergonomic
18
+ * construction defaults. Use as the default camera owned by
19
+ * {@link RenderingContext} or pass custom instances to
20
+ * `context.render(node, { view: myCamera })`.
21
+ *
22
+ * ```ts
23
+ * const cam = new Camera({ center: { x: 50, y: 50 }, size: { width: 800, height: 600 } });
24
+ * ```
25
+ *
26
+ * Defaults: center `(0, 0)`, size `{ width: 0, height: 0 }`, full viewport
27
+ * `(0, 0, 1, 1)`, rotation `0`, zoom `1`.
28
+ *
29
+ * @stable
30
+ */
31
+ export declare class Camera extends View {
32
+ constructor(options?: CameraOptions);
33
+ }
@@ -0,0 +1,38 @@
1
+ import { View } from './View.js';
2
+
3
+ /**
4
+ * User-facing camera abstraction. Extends {@link View} with ergonomic
5
+ * construction defaults. Use as the default camera owned by
6
+ * {@link RenderingContext} or pass custom instances to
7
+ * `context.render(node, { view: myCamera })`.
8
+ *
9
+ * ```ts
10
+ * const cam = new Camera({ center: { x: 50, y: 50 }, size: { width: 800, height: 600 } });
11
+ * ```
12
+ *
13
+ * Defaults: center `(0, 0)`, size `{ width: 0, height: 0 }`, full viewport
14
+ * `(0, 0, 1, 1)`, rotation `0`, zoom `1`.
15
+ *
16
+ * @stable
17
+ */
18
+ class Camera extends View {
19
+ constructor(options = {}) {
20
+ const centerX = options.center?.x ?? 0;
21
+ const centerY = options.center?.y ?? 0;
22
+ const width = options.size?.width ?? 0;
23
+ const height = options.size?.height ?? 0;
24
+ super(centerX, centerY, width, height);
25
+ if (options.viewport) {
26
+ this.viewport = options.viewport;
27
+ }
28
+ if (options.rotation && options.rotation !== 0) {
29
+ this.rotation = options.rotation;
30
+ }
31
+ if (options.zoom !== undefined && options.zoom !== 1) {
32
+ this.setZoom(options.zoom);
33
+ }
34
+ }
35
+ }
36
+
37
+ export { Camera };
38
+ //# sourceMappingURL=Camera.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Camera.js","sources":["../../../../src/rendering/Camera.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAWA;;;;;;;;;;;;;;AAcG;AACG,MAAO,MAAO,SAAQ,IAAI,CAAA;AAC9B,IAAA,WAAA,CAAmB,UAAyB,EAAE,EAAA;QAC5C,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC;QACtC,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC;QACtC,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC;QACtC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC;QAExC,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC;AAEtC,QAAA,IAAI,OAAO,CAAC,QAAQ,EAAE;AACpB,YAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ;QAClC;QAEA,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,KAAK,CAAC,EAAE;AAC9C,YAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ;QAClC;AAEA,QAAA,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE;AACpD,YAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;QAC5B;IACF;AACD;;;;"}
@@ -1,13 +1,12 @@
1
- import type { RenderBackend } from './RenderBackend';
1
+ import type { RenderPlanBuilder } from './plan/RenderPlanBuilder';
2
2
  import { RenderNode } from './RenderNode';
3
3
  /**
4
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.
5
+ * subtree in document order with local `zIndex` ordering resolved inside
6
+ * the internal render plan at playback time.
8
7
  *
9
8
  * Bounds aggregate the local bounds + every visible child's bounds, so
10
- * `container.bounds` always reflects the smallest axis-aligned rectangle
9
+ * `container.getBounds()` always returns the smallest axis-aligned rectangle
11
10
  * containing the subtree. Width/height accessors derive from the bounds
12
11
  * (× `scale`) and writing to them rescales `scale` to fit.
13
12
  *
@@ -17,21 +16,11 @@ import { RenderNode } from './RenderNode';
17
16
  *
18
17
  * Subclassed by {@link Sprite}, {@link Mesh}, {@link Graphics}, {@link Text},
19
18
  * etc. — the base `Container` is a non-drawing grouping node.
19
+ * @stable
20
20
  */
21
21
  export declare class Container extends RenderNode {
22
22
  private readonly _children;
23
- private _sortableChildren;
24
- private _sortDirty;
25
- private _nextChildOrder;
26
23
  get children(): 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
- */
33
- get sortableChildren(): boolean;
34
- set sortableChildren(sortableChildren: boolean);
35
24
  get width(): number;
36
25
  set width(value: number);
37
26
  get height(): number;
@@ -63,17 +52,10 @@ export declare class Container extends RenderNode {
63
52
  * the entire child list. Throws if the range is invalid.
64
53
  */
65
54
  removeChildren(begin?: number, end?: number): this;
66
- render(backend: RenderBackend): this;
55
+ /** @internal */
56
+ protected _collectContent(builder: RenderPlanBuilder): void;
67
57
  contains(x: number, y: number): boolean;
68
58
  protected _invalidateChildrenTransform(): void;
69
59
  updateBounds(): this;
70
60
  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
- */
76
- markSortDirty(): this;
77
- sortChildren(): this;
78
- private _sortChildrenIfNeeded;
79
61
  }
@@ -1,15 +1,14 @@
1
1
  import { removeArrayItems } from '../core/utils.js';
2
- import { _getCurrentInteractionManager } from '../input/interaction-hooks.js';
2
+ import { getActiveInteractionManager } from '../input/internal/interactionManagerRegistry.js';
3
3
  import { RenderNode } from './RenderNode.js';
4
4
 
5
5
  /**
6
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.
7
+ * subtree in document order with local `zIndex` ordering resolved inside
8
+ * the internal render plan at playback time.
10
9
  *
11
10
  * Bounds aggregate the local bounds + every visible child's bounds, so
12
- * `container.bounds` always reflects the smallest axis-aligned rectangle
11
+ * `container.getBounds()` always returns the smallest axis-aligned rectangle
13
12
  * containing the subtree. Width/height accessors derive from the bounds
14
13
  * (× `scale`) and writing to them rescales `scale` to fit.
15
14
  *
@@ -19,41 +18,24 @@ import { RenderNode } from './RenderNode.js';
19
18
  *
20
19
  * Subclassed by {@link Sprite}, {@link Mesh}, {@link Graphics}, {@link Text},
21
20
  * etc. — the base `Container` is a non-drawing grouping node.
21
+ * @stable
22
22
  */
23
23
  class Container extends RenderNode {
24
24
  _children = [];
25
- _sortableChildren = false;
26
- _sortDirty = false;
27
- _nextChildOrder = 0;
28
25
  get children() {
29
26
  return this._children;
30
27
  }
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
- */
37
- get sortableChildren() {
38
- return this._sortableChildren;
39
- }
40
- set sortableChildren(sortableChildren) {
41
- if (this._sortableChildren !== sortableChildren) {
42
- this._sortableChildren = sortableChildren;
43
- this._sortDirty = sortableChildren;
44
- }
45
- }
46
28
  get width() {
47
- return Math.abs(this.scale.x) * this.bounds.width;
29
+ return Math.abs(this.scale.x) * this.getBounds().width;
48
30
  }
49
31
  set width(value) {
50
- this.scale.x = value / this.bounds.width;
32
+ this.scale.x = value / this.getBounds().width;
51
33
  }
52
34
  get height() {
53
- return Math.abs(this.scale.y) * this.bounds.height;
35
+ return Math.abs(this.scale.y) * this.getBounds().height;
54
36
  }
55
37
  set height(value) {
56
- this.scale.y = value / this.bounds.height;
38
+ this.scale.y = value / this.getBounds().height;
57
39
  }
58
40
  get left() {
59
41
  return this.x - this.width * this.origin.x;
@@ -89,17 +71,15 @@ class Container extends RenderNode {
89
71
  if (child === this) {
90
72
  return this;
91
73
  }
92
- if (child.parentNode) {
93
- child.parentNode.removeChild(child);
74
+ if (child.parent) {
75
+ child.parent.removeChild(child);
94
76
  }
95
- child.parentNode = this;
96
- child.setChildOrder(this._nextChildOrder++);
77
+ child.parent = this;
97
78
  this._children.splice(index, 0, child);
98
- this.markSortDirty();
99
79
  this.invalidateCache();
100
80
  child._invalidateSubtreeTransform();
101
81
  this._invalidateBoundsCascade();
102
- _getCurrentInteractionManager()?._notifyNodeAdded(child);
82
+ getActiveInteractionManager()?._notifyNodeAdded(child);
103
83
  return this;
104
84
  }
105
85
  swapChildren(firstChild, secondChild) {
@@ -108,7 +88,6 @@ class Container extends RenderNode {
108
88
  const secondIndex = this.getChildIndex(secondChild);
109
89
  this._children[firstIndex] = secondChild;
110
90
  this._children[secondIndex] = firstChild;
111
- this.markSortDirty();
112
91
  this.invalidateCache();
113
92
  }
114
93
  return this;
@@ -126,7 +105,6 @@ class Container extends RenderNode {
126
105
  }
127
106
  removeArrayItems(this._children, this.getChildIndex(child), 1);
128
107
  this._children.splice(index, 0, child);
129
- this.markSortDirty();
130
108
  this.invalidateCache();
131
109
  return this;
132
110
  }
@@ -147,14 +125,13 @@ class Container extends RenderNode {
147
125
  removeChildAt(index) {
148
126
  const child = this._children[index];
149
127
  removeArrayItems(this._children, index, 1);
150
- if (child?.parentNode === this) {
128
+ if (child?.parent === this) {
151
129
  // Cascade bounds up BEFORE clearing parent so the walk reaches this node.
152
130
  this._invalidateBoundsCascade();
153
- child.parentNode = null;
131
+ child.parent = null;
154
132
  child._invalidateSubtreeTransform();
155
- _getCurrentInteractionManager()?._notifyNodeRemoved(child);
133
+ getActiveInteractionManager()?._notifyNodeRemoved(child);
156
134
  }
157
- this.markSortDirty();
158
135
  this.invalidateCache();
159
136
  return this;
160
137
  }
@@ -173,32 +150,24 @@ class Container extends RenderNode {
173
150
  }
174
151
  for (let i = begin; i < end; i++) {
175
152
  const child = this._children[i];
176
- if (child?.parentNode === this) {
177
- child.parentNode = null;
153
+ if (child?.parent === this) {
154
+ child.parent = null;
178
155
  child._invalidateSubtreeTransform();
179
- _getCurrentInteractionManager()?._notifyNodeRemoved(child);
156
+ getActiveInteractionManager()?._notifyNodeRemoved(child);
180
157
  }
181
158
  }
182
159
  removeArrayItems(this._children, begin, range);
183
- this.markSortDirty();
184
160
  this.invalidateCache();
185
161
  return this;
186
162
  }
187
- render(backend) {
188
- if (!this.visible || this._children.length === 0) {
189
- return this;
163
+ /** @internal */
164
+ _collectContent(builder) {
165
+ if (this._children.length === 0) {
166
+ return;
190
167
  }
191
- if (!this.inView(backend.view)) {
192
- backend.stats.culledNodes++;
193
- return this;
168
+ for (let index = 0; index < this._children.length; index++) {
169
+ this._children[index]._collect(builder, index);
194
170
  }
195
- this.renderVisualContent(backend, () => {
196
- this._sortChildrenIfNeeded();
197
- for (const child of this._children) {
198
- child.render(backend);
199
- }
200
- });
201
- return this;
202
171
  }
203
172
  contains(x, y) {
204
173
  return this._children.some(child => child.contains(x, y));
@@ -221,37 +190,6 @@ class Container extends RenderNode {
221
190
  this.removeChildren();
222
191
  super.destroy();
223
192
  }
224
- /**
225
- * Flag the child list as needing a re-sort before next render. Called
226
- * automatically by `addChild*`, `removeChild*`, `swapChildren`, and
227
- * `setChildIndex`; expose for callers that mutate `zIndex` directly.
228
- */
229
- markSortDirty() {
230
- if (this._sortableChildren) {
231
- this._sortDirty = true;
232
- }
233
- return this;
234
- }
235
- sortChildren() {
236
- if (!this._sortableChildren || !this._sortDirty || this._children.length <= 1) {
237
- this._sortDirty = false;
238
- return this;
239
- }
240
- this._children.sort((left, right) => {
241
- if (left.zIndex === right.zIndex) {
242
- return left.childOrder - right.childOrder;
243
- }
244
- return left.zIndex - right.zIndex;
245
- });
246
- this._sortDirty = false;
247
- this.invalidateCache();
248
- return this;
249
- }
250
- _sortChildrenIfNeeded() {
251
- if (this._sortableChildren && this._sortDirty) {
252
- this.sortChildren();
253
- }
254
- }
255
193
  }
256
194
 
257
195
  export { Container };
@@ -1 +1 @@
1
- {"version":3,"file":"Container.js","sources":["../../../../src/rendering/Container.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAMA;;;;;;;;;;;;;;;;;AAiBG;AACG,MAAO,SAAU,SAAQ,UAAU,CAAA;IACtB,SAAS,GAAiB,EAAE;IACrC,iBAAiB,GAAG,KAAK;IACzB,UAAU,GAAG,KAAK;IAClB,eAAe,GAAG,CAAC;AAE3B,IAAA,IAAW,QAAQ,GAAA;QACjB,OAAO,IAAI,CAAC,SAAS;IACvB;AAEA;;;;;AAKG;AACH,IAAA,IAAW,gBAAgB,GAAA;QACzB,OAAO,IAAI,CAAC,iBAAiB;IAC/B;IAEA,IAAW,gBAAgB,CAAC,gBAAyB,EAAA;AACnD,QAAA,IAAI,IAAI,CAAC,iBAAiB,KAAK,gBAAgB,EAAE;AAC/C,YAAA,IAAI,CAAC,iBAAiB,GAAG,gBAAgB;AACzC,YAAA,IAAI,CAAC,UAAU,GAAG,gBAAgB;QACpC;IACF;AAEA,IAAA,IAAW,KAAK,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK;IACnD;IAEA,IAAW,KAAK,CAAC,KAAa,EAAA;AAC5B,QAAA,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK;IAC1C;AAEA,IAAA,IAAW,MAAM,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM;IACpD;IAEA,IAAW,MAAM,CAAC,KAAa,EAAA;AAC7B,QAAA,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM;IAC3C;AAEA,IAAA,IAAW,IAAI,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5C;AAEA,IAAA,IAAW,GAAG,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7C;AAEA,IAAA,IAAW,KAAK,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5C;AAEA,IAAA,IAAW,MAAM,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7C;AAEA;;;AAGG;IACI,QAAQ,CAAC,GAAG,QAAsB,EAAA;AACvC,QAAA,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE;YAC5B,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;QAC/C;AAEA,QAAA,OAAO,IAAI;IACb;AAEA;;;;AAIG;IACI,UAAU,CAAC,KAAiB,EAAE,KAAa,EAAA;AAChD,QAAA,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;AAC9C,YAAA,MAAM,IAAI,KAAK,CAAC,CAAA,UAAA,EAAa,KAAK,CAAA,kBAAA,EAAqB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAA,CAAE,CAAC;QACjF;AAEA,QAAA,IAAI,KAAK,KAAK,IAAI,EAAE;AAClB,YAAA,OAAO,IAAI;QACb;AAEA,QAAA,IAAI,KAAK,CAAC,UAAU,EAAE;AACpB,YAAA,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC;QACrC;AAEA,QAAA,KAAK,CAAC,UAAU,GAAG,IAAI;QACvB,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;QAE3C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC;QACtC,IAAI,CAAC,aAAa,EAAE;QACpB,IAAI,CAAC,eAAe,EAAE;QAEtB,KAAK,CAAC,2BAA2B,EAAE;QACnC,IAAI,CAAC,wBAAwB,EAAE;AAE/B,QAAA,6BAA6B,EAAE,EAAE,gBAAgB,CAAC,KAAK,CAAC;AAExD,QAAA,OAAO,IAAI;IACb;IAEO,YAAY,CAAC,UAAsB,EAAE,WAAuB,EAAA;AACjE,QAAA,IAAI,UAAU,KAAK,WAAW,EAAE;YAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;YACjD,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;AAEnD,YAAA,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,WAAW;AACxC,YAAA,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,UAAU;YACxC,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,eAAe,EAAE;QACxB;AAEA,QAAA,OAAO,IAAI;IACb;AAEO,IAAA,aAAa,CAAC,KAAiB,EAAA;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC;AAE3C,QAAA,IAAI,KAAK,KAAK,EAAE,EAAE;AAChB,YAAA,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC;QAC9D;AAEA,QAAA,OAAO,KAAK;IACd;IAEO,aAAa,CAAC,KAAiB,EAAE,KAAa,EAAA;AACnD,QAAA,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;AAC/C,YAAA,MAAM,IAAI,KAAK,CAAC,CAAA,UAAA,EAAa,KAAK,CAAA,kBAAA,EAAqB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAA,CAAE,CAAC;QACjF;AAEA,QAAA,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAE9D,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC;QACtC,IAAI,CAAC,aAAa,EAAE;QACpB,IAAI,CAAC,eAAe,EAAE;AAEtB,QAAA,OAAO,IAAI;IACb;AAEO,IAAA,UAAU,CAAC,KAAa,EAAA;AAC7B,QAAA,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;AAC/C,YAAA,MAAM,IAAI,KAAK,CAAC,sBAAsB,KAAK,CAAA,iBAAA,CAAmB,CAAC;QACjE;AAEA,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC9B;;AAGO,IAAA,WAAW,CAAC,KAAiB,EAAA;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC;AAE3C,QAAA,IAAI,KAAK,KAAK,EAAE,EAAE;AAChB,YAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;QAC3B;AAEA,QAAA,OAAO,IAAI;IACb;AAEO,IAAA,aAAa,CAAC,KAAa,EAAA;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QAEnC,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;AAE1C,QAAA,IAAI,KAAK,EAAE,UAAU,KAAK,IAAI,EAAE;;YAE9B,IAAI,CAAC,wBAAwB,EAAE;AAC/B,YAAA,KAAK,CAAC,UAAU,GAAG,IAAI;YACvB,KAAK,CAAC,2BAA2B,EAAE;AACnC,YAAA,6BAA6B,EAAE,EAAE,kBAAkB,CAAC,KAAK,CAAC;QAC5D;QAEA,IAAI,CAAC,aAAa,EAAE;QACpB,IAAI,CAAC,eAAe,EAAE;AAEtB,QAAA,OAAO,IAAI;IACb;AAEA;;;AAGG;IACI,cAAc,CAAC,KAAK,GAAG,CAAC,EAAE,MAAc,IAAI,CAAC,SAAS,CAAC,MAAM,EAAA;AAClE,QAAA,MAAM,KAAK,GAAG,GAAG,GAAG,KAAK;QAEzB,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,GAAG,EAAE;AAC5B,YAAA,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC;QAC7D;;AAGA,QAAA,IAAI,KAAK,GAAG,CAAC,EAAE;YACb,IAAI,CAAC,wBAAwB,EAAE;QACjC;AAEA,QAAA,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;YAChC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;AAE/B,YAAA,IAAI,KAAK,EAAE,UAAU,KAAK,IAAI,EAAE;AAC9B,gBAAA,KAAK,CAAC,UAAU,GAAG,IAAI;gBACvB,KAAK,CAAC,2BAA2B,EAAE;AACnC,gBAAA,6BAA6B,EAAE,EAAE,kBAAkB,CAAC,KAAK,CAAC;YAC5D;QACF;QAEA,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC;QAC9C,IAAI,CAAC,aAAa,EAAE;QACpB,IAAI,CAAC,eAAe,EAAE;AAEtB,QAAA,OAAO,IAAI;IACb;AAEgB,IAAA,MAAM,CAAC,OAAsB,EAAA;AAC3C,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;AAChD,YAAA,OAAO,IAAI;QACb;QAEA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AAC9B,YAAA,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE;AAE3B,YAAA,OAAO,IAAI;QACb;AAEA,QAAA,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAK;YACrC,IAAI,CAAC,qBAAqB,EAAE;AAE5B,YAAA,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE;AAClC,gBAAA,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC;YACvB;AACF,QAAA,CAAC,CAAC;AAEF,QAAA,OAAO,IAAI;IACb;IAEgB,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAA;AAC3C,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3D;IAEmB,4BAA4B,GAAA;AAC7C,QAAA,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE;YAClC,KAAK,CAAC,2BAA2B,EAAE;QACrC;IACF;IAEgB,YAAY,GAAA;AAC1B,QAAA,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAE9E,QAAA,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE;AAClC,YAAA,IAAI,KAAK,CAAC,OAAO,EAAE;gBACjB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YACzC;QACF;AAEA,QAAA,OAAO,IAAI;IACb;IAEgB,OAAO,GAAA;QACrB,IAAI,CAAC,cAAc,EAAE;QAErB,KAAK,CAAC,OAAO,EAAE;IACjB;AAEA;;;;AAIG;IACI,aAAa,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAC1B,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI;QACxB;AAEA,QAAA,OAAO,IAAI;IACb;IAEO,YAAY,GAAA;AACjB,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE;AAC7E,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK;AAEvB,YAAA,OAAO,IAAI;QACb;QAEA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,KAAI;YAClC,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE;AAChC,gBAAA,OAAO,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU;YAC3C;AAEA,YAAA,OAAO,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;AACnC,QAAA,CAAC,CAAC;AACF,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK;QACvB,IAAI,CAAC,eAAe,EAAE;AAEtB,QAAA,OAAO,IAAI;IACb;IAEQ,qBAAqB,GAAA;QAC3B,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,UAAU,EAAE;YAC7C,IAAI,CAAC,YAAY,EAAE;QACrB;IACF;AACD;;;;"}
1
+ {"version":3,"file":"Container.js","sources":["../../../../src/rendering/Container.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,12 +1,11 @@
1
1
  import { Color } from '@/core/Color';
2
2
  import { BlendModes } from '@/rendering/types';
3
- import type { RenderBackend } from './RenderBackend';
3
+ import type { RenderPlanBuilder } from './plan/RenderPlanBuilder';
4
4
  import { RenderNode } from './RenderNode';
5
5
  /**
6
6
  * Base class for every renderable scene object.
7
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}.
8
+ * Extends {@link RenderNode} with a per-object tint colour and blend mode.
10
9
  * Concrete drawable types (sprites, meshes, text, etc.) extend this class
11
10
  * and are paired with a matching {@link Renderer} via {@link RendererRegistry}.
12
11
  */
@@ -27,12 +26,11 @@ export declare class Drawable extends RenderNode {
27
26
  * Invalidates the render cache when the blend mode actually changes.
28
27
  */
29
28
  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
- */
36
- render(backend: RenderBackend): this;
29
+ /** @internal */
30
+ protected _collectContent(builder: RenderPlanBuilder): void;
31
+ /** @internal */
32
+ _isDrawableForRenderPlan(): boolean;
33
+ /** @internal */
34
+ _renderPlanGetBlendMode(): BlendModes;
37
35
  destroy(): void;
38
36
  }