@codexo/exojs 0.4.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 (468) hide show
  1. package/CHANGELOG.md +163 -0
  2. package/README.md +141 -0
  3. package/dist/esm/audio/AbstractMedia.d.ts +45 -0
  4. package/dist/esm/audio/AbstractMedia.js +103 -0
  5. package/dist/esm/audio/AbstractMedia.js.map +1 -0
  6. package/dist/esm/audio/AudioAnalyser.d.ts +30 -0
  7. package/dist/esm/audio/AudioAnalyser.js +92 -0
  8. package/dist/esm/audio/AudioAnalyser.js.map +1 -0
  9. package/dist/esm/audio/Media.d.ts +25 -0
  10. package/dist/esm/audio/Music.d.ts +20 -0
  11. package/dist/esm/audio/Music.js +119 -0
  12. package/dist/esm/audio/Music.js.map +1 -0
  13. package/dist/esm/audio/Sound.d.ts +56 -0
  14. package/dist/esm/audio/Sound.js +394 -0
  15. package/dist/esm/audio/Sound.js.map +1 -0
  16. package/dist/esm/audio/audio-context.d.ts +11 -0
  17. package/dist/esm/audio/audio-context.js +115 -0
  18. package/dist/esm/audio/audio-context.js.map +1 -0
  19. package/dist/esm/audio/index.d.ts +6 -0
  20. package/dist/esm/core/Application.d.ts +76 -0
  21. package/dist/esm/core/Application.js +206 -0
  22. package/dist/esm/core/Application.js.map +1 -0
  23. package/dist/esm/core/Bounds.d.ts +19 -0
  24. package/dist/esm/core/Bounds.js +59 -0
  25. package/dist/esm/core/Bounds.js.map +1 -0
  26. package/dist/esm/core/Clock.d.ts +18 -0
  27. package/dist/esm/core/Clock.js +68 -0
  28. package/dist/esm/core/Clock.js.map +1 -0
  29. package/dist/esm/core/Color.d.ts +176 -0
  30. package/dist/esm/core/Color.js +265 -0
  31. package/dist/esm/core/Color.js.map +1 -0
  32. package/dist/esm/core/Quadtree.d.ts +20 -0
  33. package/dist/esm/core/Quadtree.js +86 -0
  34. package/dist/esm/core/Quadtree.js.map +1 -0
  35. package/dist/esm/core/Scene.d.ts +83 -0
  36. package/dist/esm/core/Scene.js +81 -0
  37. package/dist/esm/core/Scene.js.map +1 -0
  38. package/dist/esm/core/SceneManager.d.ts +66 -0
  39. package/dist/esm/core/SceneManager.js +396 -0
  40. package/dist/esm/core/SceneManager.js.map +1 -0
  41. package/dist/esm/core/SceneNode.d.ts +58 -0
  42. package/dist/esm/core/SceneNode.js +174 -0
  43. package/dist/esm/core/SceneNode.js.map +1 -0
  44. package/dist/esm/core/Signal.d.ts +18 -0
  45. package/dist/esm/core/Signal.js +63 -0
  46. package/dist/esm/core/Signal.js.map +1 -0
  47. package/dist/esm/core/Time.d.ts +38 -0
  48. package/dist/esm/core/Time.js +107 -0
  49. package/dist/esm/core/Time.js.map +1 -0
  50. package/dist/esm/core/Timer.d.ts +12 -0
  51. package/dist/esm/core/Timer.js +34 -0
  52. package/dist/esm/core/Timer.js.map +1 -0
  53. package/dist/esm/core/index.d.ts +13 -0
  54. package/dist/esm/core/types.d.ts +29 -0
  55. package/dist/esm/core/utils.d.ts +22 -0
  56. package/dist/esm/core/utils.js +136 -0
  57. package/dist/esm/core/utils.js.map +1 -0
  58. package/dist/esm/index.d.ts +8 -0
  59. package/dist/esm/index.js +135 -0
  60. package/dist/esm/index.js.map +1 -0
  61. package/dist/esm/input/ArcadeStickGamepadMapping.d.ts +5 -0
  62. package/dist/esm/input/ArcadeStickGamepadMapping.js +29 -0
  63. package/dist/esm/input/ArcadeStickGamepadMapping.js.map +1 -0
  64. package/dist/esm/input/GameCubeGamepadMapping.d.ts +5 -0
  65. package/dist/esm/input/GameCubeGamepadMapping.js +9 -0
  66. package/dist/esm/input/GameCubeGamepadMapping.js.map +1 -0
  67. package/dist/esm/input/Gamepad.d.ts +45 -0
  68. package/dist/esm/input/Gamepad.js +154 -0
  69. package/dist/esm/input/Gamepad.js.map +1 -0
  70. package/dist/esm/input/GamepadChannels.d.ts +39 -0
  71. package/dist/esm/input/GamepadChannels.js +45 -0
  72. package/dist/esm/input/GamepadChannels.js.map +1 -0
  73. package/dist/esm/input/GamepadControl.d.ts +15 -0
  74. package/dist/esm/input/GamepadControl.js +29 -0
  75. package/dist/esm/input/GamepadControl.js.map +1 -0
  76. package/dist/esm/input/GamepadDefinitions.d.ts +31 -0
  77. package/dist/esm/input/GamepadDefinitions.js +175 -0
  78. package/dist/esm/input/GamepadDefinitions.js.map +1 -0
  79. package/dist/esm/input/GamepadMapping.d.ts +23 -0
  80. package/dist/esm/input/GamepadMapping.js +32 -0
  81. package/dist/esm/input/GamepadMapping.js.map +1 -0
  82. package/dist/esm/input/GamepadPromptLayouts.d.ts +9 -0
  83. package/dist/esm/input/GamepadPromptLayouts.js +140 -0
  84. package/dist/esm/input/GamepadPromptLayouts.js.map +1 -0
  85. package/dist/esm/input/GenericDualAnalogGamepadMapping.d.ts +5 -0
  86. package/dist/esm/input/GenericDualAnalogGamepadMapping.js +53 -0
  87. package/dist/esm/input/GenericDualAnalogGamepadMapping.js.map +1 -0
  88. package/dist/esm/input/Input.d.ts +28 -0
  89. package/dist/esm/input/Input.js +68 -0
  90. package/dist/esm/input/Input.js.map +1 -0
  91. package/dist/esm/input/InputManager.d.ts +76 -0
  92. package/dist/esm/input/InputManager.js +346 -0
  93. package/dist/esm/input/InputManager.js.map +1 -0
  94. package/dist/esm/input/JoyConLeftGamepadMapping.d.ts +5 -0
  95. package/dist/esm/input/JoyConLeftGamepadMapping.js +9 -0
  96. package/dist/esm/input/JoyConLeftGamepadMapping.js.map +1 -0
  97. package/dist/esm/input/JoyConRightGamepadMapping.d.ts +5 -0
  98. package/dist/esm/input/JoyConRightGamepadMapping.js +9 -0
  99. package/dist/esm/input/JoyConRightGamepadMapping.js.map +1 -0
  100. package/dist/esm/input/PlayStationGamepadMapping.d.ts +5 -0
  101. package/dist/esm/input/PlayStationGamepadMapping.js +9 -0
  102. package/dist/esm/input/PlayStationGamepadMapping.js.map +1 -0
  103. package/dist/esm/input/Pointer.d.ts +52 -0
  104. package/dist/esm/input/Pointer.js +127 -0
  105. package/dist/esm/input/Pointer.js.map +1 -0
  106. package/dist/esm/input/SteamControllerGamepadMapping.d.ts +5 -0
  107. package/dist/esm/input/SteamControllerGamepadMapping.js +9 -0
  108. package/dist/esm/input/SteamControllerGamepadMapping.js.map +1 -0
  109. package/dist/esm/input/SwitchProGamepadMapping.d.ts +5 -0
  110. package/dist/esm/input/SwitchProGamepadMapping.js +9 -0
  111. package/dist/esm/input/SwitchProGamepadMapping.js.map +1 -0
  112. package/dist/esm/input/XboxGamepadMapping.d.ts +5 -0
  113. package/dist/esm/input/XboxGamepadMapping.js +9 -0
  114. package/dist/esm/input/XboxGamepadMapping.js.map +1 -0
  115. package/dist/esm/input/index.d.ts +19 -0
  116. package/dist/esm/input/types.d.ts +111 -0
  117. package/dist/esm/input/types.js +117 -0
  118. package/dist/esm/input/types.js.map +1 -0
  119. package/dist/esm/math/AbstractVector.d.ts +33 -0
  120. package/dist/esm/math/AbstractVector.js +106 -0
  121. package/dist/esm/math/AbstractVector.js.map +1 -0
  122. package/dist/esm/math/Circle.d.ts +41 -0
  123. package/dist/esm/math/Circle.js +137 -0
  124. package/dist/esm/math/Circle.js.map +1 -0
  125. package/dist/esm/math/CircleLike.d.ts +5 -0
  126. package/dist/esm/math/Collision.d.ts +28 -0
  127. package/dist/esm/math/Collision.js +13 -0
  128. package/dist/esm/math/Collision.js.map +1 -0
  129. package/dist/esm/math/Ellipse.d.ts +37 -0
  130. package/dist/esm/math/Ellipse.js +112 -0
  131. package/dist/esm/math/Ellipse.js.map +1 -0
  132. package/dist/esm/math/EllipseLike.d.ts +6 -0
  133. package/dist/esm/math/Flags.d.ts +12 -0
  134. package/dist/esm/math/Flags.js +41 -0
  135. package/dist/esm/math/Flags.js.map +1 -0
  136. package/dist/esm/math/Interval.d.ts +16 -0
  137. package/dist/esm/math/Interval.js +45 -0
  138. package/dist/esm/math/Interval.js.map +1 -0
  139. package/dist/esm/math/Line.d.ts +36 -0
  140. package/dist/esm/math/Line.js +114 -0
  141. package/dist/esm/math/Line.js.map +1 -0
  142. package/dist/esm/math/LineLike.d.ts +6 -0
  143. package/dist/esm/math/Matrix.d.ts +32 -0
  144. package/dist/esm/math/Matrix.js +134 -0
  145. package/dist/esm/math/Matrix.js.map +1 -0
  146. package/dist/esm/math/ObservableSize.d.ts +16 -0
  147. package/dist/esm/math/ObservableSize.js +56 -0
  148. package/dist/esm/math/ObservableSize.js.map +1 -0
  149. package/dist/esm/math/ObservableVector.d.ts +21 -0
  150. package/dist/esm/math/ObservableVector.js +74 -0
  151. package/dist/esm/math/ObservableVector.js.map +1 -0
  152. package/dist/esm/math/PointLike.d.ts +4 -0
  153. package/dist/esm/math/PolarVector.d.ts +8 -0
  154. package/dist/esm/math/PolarVector.js +19 -0
  155. package/dist/esm/math/PolarVector.js.map +1 -0
  156. package/dist/esm/math/Polygon.d.ts +38 -0
  157. package/dist/esm/math/Polygon.js +163 -0
  158. package/dist/esm/math/Polygon.js.map +1 -0
  159. package/dist/esm/math/PolygonLike.d.ts +6 -0
  160. package/dist/esm/math/Random.d.ts +15 -0
  161. package/dist/esm/math/Random.js +72 -0
  162. package/dist/esm/math/Random.js.map +1 -0
  163. package/dist/esm/math/Rectangle.d.ts +48 -0
  164. package/dist/esm/math/Rectangle.js +208 -0
  165. package/dist/esm/math/Rectangle.js.map +1 -0
  166. package/dist/esm/math/RectangleLike.d.ts +6 -0
  167. package/dist/esm/math/Segment.d.ts +25 -0
  168. package/dist/esm/math/Segment.js +79 -0
  169. package/dist/esm/math/Segment.js.map +1 -0
  170. package/dist/esm/math/ShapeLike.d.ts +4 -0
  171. package/dist/esm/math/Size.d.ts +24 -0
  172. package/dist/esm/math/Size.js +71 -0
  173. package/dist/esm/math/Size.js.map +1 -0
  174. package/dist/esm/math/Transformable.d.ts +47 -0
  175. package/dist/esm/math/Transformable.js +140 -0
  176. package/dist/esm/math/Transformable.js.map +1 -0
  177. package/dist/esm/math/Vector.d.ts +28 -0
  178. package/dist/esm/math/Vector.js +80 -0
  179. package/dist/esm/math/Vector.js.map +1 -0
  180. package/dist/esm/math/collision-detection.d.ts +41 -0
  181. package/dist/esm/math/collision-detection.js +394 -0
  182. package/dist/esm/math/collision-detection.js.map +1 -0
  183. package/dist/esm/math/collision-primitives.d.ts +39 -0
  184. package/dist/esm/math/collision-primitives.js +164 -0
  185. package/dist/esm/math/collision-primitives.js.map +1 -0
  186. package/dist/esm/math/geometry.d.ts +8 -0
  187. package/dist/esm/math/geometry.js +195 -0
  188. package/dist/esm/math/geometry.js.map +1 -0
  189. package/dist/esm/math/index.d.ts +27 -0
  190. package/dist/esm/math/utils.d.ts +21 -0
  191. package/dist/esm/math/utils.js +60 -0
  192. package/dist/esm/math/utils.js.map +1 -0
  193. package/dist/esm/particles/Particle.d.ts +40 -0
  194. package/dist/esm/particles/Particle.js +106 -0
  195. package/dist/esm/particles/Particle.js.map +1 -0
  196. package/dist/esm/particles/ParticleProperties.d.ts +14 -0
  197. package/dist/esm/particles/ParticleSystem.d.ts +43 -0
  198. package/dist/esm/particles/ParticleSystem.js +186 -0
  199. package/dist/esm/particles/ParticleSystem.js.map +1 -0
  200. package/dist/esm/particles/affectors/ColorAffector.d.ts +17 -0
  201. package/dist/esm/particles/affectors/ColorAffector.js +42 -0
  202. package/dist/esm/particles/affectors/ColorAffector.js.map +1 -0
  203. package/dist/esm/particles/affectors/ForceAffector.d.ts +13 -0
  204. package/dist/esm/particles/affectors/ForceAffector.js +28 -0
  205. package/dist/esm/particles/affectors/ForceAffector.js.map +1 -0
  206. package/dist/esm/particles/affectors/ParticleAffector.d.ts +6 -0
  207. package/dist/esm/particles/affectors/ScaleAffector.d.ts +13 -0
  208. package/dist/esm/particles/affectors/ScaleAffector.js +28 -0
  209. package/dist/esm/particles/affectors/ScaleAffector.js.map +1 -0
  210. package/dist/esm/particles/affectors/TorqueAffector.d.ts +12 -0
  211. package/dist/esm/particles/affectors/TorqueAffector.js +26 -0
  212. package/dist/esm/particles/affectors/TorqueAffector.js.map +1 -0
  213. package/dist/esm/particles/emitters/ParticleEmitter.d.ts +6 -0
  214. package/dist/esm/particles/emitters/ParticleOptions.d.ts +46 -0
  215. package/dist/esm/particles/emitters/ParticleOptions.js +104 -0
  216. package/dist/esm/particles/emitters/ParticleOptions.js.map +1 -0
  217. package/dist/esm/particles/emitters/UniversalEmitter.d.ts +17 -0
  218. package/dist/esm/particles/emitters/UniversalEmitter.js +45 -0
  219. package/dist/esm/particles/emitters/UniversalEmitter.js.map +1 -0
  220. package/dist/esm/particles/index.d.ts +11 -0
  221. package/dist/esm/physics/RapierPhysicsWorld.d.ts +136 -0
  222. package/dist/esm/physics/RapierPhysicsWorld.js +475 -0
  223. package/dist/esm/physics/RapierPhysicsWorld.js.map +1 -0
  224. package/dist/esm/physics/index.d.ts +1 -0
  225. package/dist/esm/rendering/CallbackRenderPass.d.ts +7 -0
  226. package/dist/esm/rendering/CallbackRenderPass.js +12 -0
  227. package/dist/esm/rendering/CallbackRenderPass.js.map +1 -0
  228. package/dist/esm/rendering/Container.d.ts +36 -0
  229. package/dist/esm/rendering/Container.js +197 -0
  230. package/dist/esm/rendering/Container.js.map +1 -0
  231. package/dist/esm/rendering/Drawable.d.ts +16 -0
  232. package/dist/esm/rendering/Drawable.js +54 -0
  233. package/dist/esm/rendering/Drawable.js.map +1 -0
  234. package/dist/esm/rendering/RenderBackendType.d.ts +4 -0
  235. package/dist/esm/rendering/RenderBackendType.js +8 -0
  236. package/dist/esm/rendering/RenderBackendType.js.map +1 -0
  237. package/dist/esm/rendering/RenderNode.d.ts +51 -0
  238. package/dist/esm/rendering/RenderNode.js +235 -0
  239. package/dist/esm/rendering/RenderNode.js.map +1 -0
  240. package/dist/esm/rendering/RenderPass.d.ts +4 -0
  241. package/dist/esm/rendering/RenderStats.d.ts +12 -0
  242. package/dist/esm/rendering/RenderStats.js +24 -0
  243. package/dist/esm/rendering/RenderStats.js.map +1 -0
  244. package/dist/esm/rendering/RenderTarget.d.ts +34 -0
  245. package/dist/esm/rendering/RenderTarget.js +109 -0
  246. package/dist/esm/rendering/RenderTarget.js.map +1 -0
  247. package/dist/esm/rendering/RenderTargetPass.d.ts +18 -0
  248. package/dist/esm/rendering/RenderTargetPass.js +31 -0
  249. package/dist/esm/rendering/RenderTargetPass.js.map +1 -0
  250. package/dist/esm/rendering/Renderer.d.ts +15 -0
  251. package/dist/esm/rendering/RendererRegistry.d.ts +43 -0
  252. package/dist/esm/rendering/RendererRegistry.js +86 -0
  253. package/dist/esm/rendering/RendererRegistry.js.map +1 -0
  254. package/dist/esm/rendering/SceneRenderRuntime.d.ts +29 -0
  255. package/dist/esm/rendering/View.d.ts +102 -0
  256. package/dist/esm/rendering/View.js +364 -0
  257. package/dist/esm/rendering/View.js.map +1 -0
  258. package/dist/esm/rendering/filters/BlurFilter.d.ts +20 -0
  259. package/dist/esm/rendering/filters/BlurFilter.js +68 -0
  260. package/dist/esm/rendering/filters/BlurFilter.js.map +1 -0
  261. package/dist/esm/rendering/filters/ColorFilter.d.ts +12 -0
  262. package/dist/esm/rendering/filters/ColorFilter.js +42 -0
  263. package/dist/esm/rendering/filters/ColorFilter.js.map +1 -0
  264. package/dist/esm/rendering/filters/Filter.d.ts +5 -0
  265. package/dist/esm/rendering/filters/Filter.js +5 -0
  266. package/dist/esm/rendering/filters/Filter.js.map +1 -0
  267. package/dist/esm/rendering/index.d.ts +52 -0
  268. package/dist/esm/rendering/primitives/CircleGeometry.d.ts +4 -0
  269. package/dist/esm/rendering/primitives/CircleGeometry.js +21 -0
  270. package/dist/esm/rendering/primitives/CircleGeometry.js.map +1 -0
  271. package/dist/esm/rendering/primitives/DrawableShape.d.ts +11 -0
  272. package/dist/esm/rendering/primitives/DrawableShape.js +21 -0
  273. package/dist/esm/rendering/primitives/DrawableShape.js.map +1 -0
  274. package/dist/esm/rendering/primitives/Geometry.d.ts +13 -0
  275. package/dist/esm/rendering/primitives/Geometry.js +16 -0
  276. package/dist/esm/rendering/primitives/Geometry.js.map +1 -0
  277. package/dist/esm/rendering/primitives/Graphics.d.ts +36 -0
  278. package/dist/esm/rendering/primitives/Graphics.js +208 -0
  279. package/dist/esm/rendering/primitives/Graphics.js.map +1 -0
  280. package/dist/esm/rendering/shader/Shader.d.ts +27 -0
  281. package/dist/esm/rendering/shader/Shader.js +63 -0
  282. package/dist/esm/rendering/shader/Shader.js.map +1 -0
  283. package/dist/esm/rendering/shader/ShaderAttribute.d.ts +9 -0
  284. package/dist/esm/rendering/shader/ShaderAttribute.js +21 -0
  285. package/dist/esm/rendering/shader/ShaderAttribute.js.map +1 -0
  286. package/dist/esm/rendering/shader/ShaderUniform.d.ts +16 -0
  287. package/dist/esm/rendering/shader/ShaderUniform.js +38 -0
  288. package/dist/esm/rendering/shader/ShaderUniform.js.map +1 -0
  289. package/dist/esm/rendering/sprite/AnimatedSprite.d.ts +43 -0
  290. package/dist/esm/rendering/sprite/AnimatedSprite.js +177 -0
  291. package/dist/esm/rendering/sprite/AnimatedSprite.js.map +1 -0
  292. package/dist/esm/rendering/sprite/Sprite.d.ts +43 -0
  293. package/dist/esm/rendering/sprite/Sprite.js +169 -0
  294. package/dist/esm/rendering/sprite/Sprite.js.map +1 -0
  295. package/dist/esm/rendering/sprite/Spritesheet.d.ts +34 -0
  296. package/dist/esm/rendering/sprite/Spritesheet.js +88 -0
  297. package/dist/esm/rendering/sprite/Spritesheet.js.map +1 -0
  298. package/dist/esm/rendering/text/Text.d.ts +26 -0
  299. package/dist/esm/rendering/text/Text.js +130 -0
  300. package/dist/esm/rendering/text/Text.js.map +1 -0
  301. package/dist/esm/rendering/text/TextStyle.d.ts +65 -0
  302. package/dist/esm/rendering/text/TextStyle.js +192 -0
  303. package/dist/esm/rendering/text/TextStyle.js.map +1 -0
  304. package/dist/esm/rendering/texture/RenderTexture.d.ts +36 -0
  305. package/dist/esm/rendering/texture/RenderTexture.js +123 -0
  306. package/dist/esm/rendering/texture/RenderTexture.js.map +1 -0
  307. package/dist/esm/rendering/texture/Sampler.d.ts +29 -0
  308. package/dist/esm/rendering/texture/Sampler.js +76 -0
  309. package/dist/esm/rendering/texture/Sampler.js.map +1 -0
  310. package/dist/esm/rendering/texture/Texture.d.ts +52 -0
  311. package/dist/esm/rendering/texture/Texture.js +173 -0
  312. package/dist/esm/rendering/texture/Texture.js.map +1 -0
  313. package/dist/esm/rendering/types.d.ts +68 -0
  314. package/dist/esm/rendering/types.js +79 -0
  315. package/dist/esm/rendering/types.js.map +1 -0
  316. package/dist/esm/rendering/utils.d.ts +9 -0
  317. package/dist/esm/rendering/utils.js +39 -0
  318. package/dist/esm/rendering/utils.js.map +1 -0
  319. package/dist/esm/rendering/video/Video.d.ts +62 -0
  320. package/dist/esm/rendering/video/Video.js +293 -0
  321. package/dist/esm/rendering/video/Video.js.map +1 -0
  322. package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.d.ts +49 -0
  323. package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js +175 -0
  324. package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js.map +1 -0
  325. package/dist/esm/rendering/webgl2/AbstractWebGl2Renderer.d.ts +44 -0
  326. package/dist/esm/rendering/webgl2/AbstractWebGl2Renderer.js +57 -0
  327. package/dist/esm/rendering/webgl2/AbstractWebGl2Renderer.js.map +1 -0
  328. package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.d.ts +11 -0
  329. package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.js +110 -0
  330. package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.js.map +1 -0
  331. package/dist/esm/rendering/webgl2/WebGl2PrimitiveRenderer.d.ts +26 -0
  332. package/dist/esm/rendering/webgl2/WebGl2PrimitiveRenderer.js +217 -0
  333. package/dist/esm/rendering/webgl2/WebGl2PrimitiveRenderer.js.map +1 -0
  334. package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.d.ts +26 -0
  335. package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.js +54 -0
  336. package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.js.map +1 -0
  337. package/dist/esm/rendering/webgl2/WebGl2RenderManager.d.ts +99 -0
  338. package/dist/esm/rendering/webgl2/WebGl2RenderManager.js +600 -0
  339. package/dist/esm/rendering/webgl2/WebGl2RenderManager.js.map +1 -0
  340. package/dist/esm/rendering/webgl2/WebGl2RendererRuntime.d.ts +15 -0
  341. package/dist/esm/rendering/webgl2/WebGl2ShaderBlock.d.ts +17 -0
  342. package/dist/esm/rendering/webgl2/WebGl2ShaderBlock.js +63 -0
  343. package/dist/esm/rendering/webgl2/WebGl2ShaderBlock.js.map +1 -0
  344. package/dist/esm/rendering/webgl2/WebGl2ShaderMappings.d.ts +3 -0
  345. package/dist/esm/rendering/webgl2/WebGl2ShaderMappings.js +59 -0
  346. package/dist/esm/rendering/webgl2/WebGl2ShaderMappings.js.map +1 -0
  347. package/dist/esm/rendering/webgl2/WebGl2ShaderRuntime.d.ts +2 -0
  348. package/dist/esm/rendering/webgl2/WebGl2ShaderRuntime.js +161 -0
  349. package/dist/esm/rendering/webgl2/WebGl2ShaderRuntime.js.map +1 -0
  350. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.d.ts +11 -0
  351. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js +82 -0
  352. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js.map +1 -0
  353. package/dist/esm/rendering/webgl2/WebGl2VertexArrayObject.d.ts +40 -0
  354. package/dist/esm/rendering/webgl2/WebGl2VertexArrayObject.js +69 -0
  355. package/dist/esm/rendering/webgl2/WebGl2VertexArrayObject.js.map +1 -0
  356. package/dist/esm/rendering/webgl2/glsl/particle.frag.js +4 -0
  357. package/dist/esm/rendering/webgl2/glsl/particle.frag.js.map +1 -0
  358. package/dist/esm/rendering/webgl2/glsl/particle.vert.js +4 -0
  359. package/dist/esm/rendering/webgl2/glsl/particle.vert.js.map +1 -0
  360. package/dist/esm/rendering/webgl2/glsl/primitive.frag.js +4 -0
  361. package/dist/esm/rendering/webgl2/glsl/primitive.frag.js.map +1 -0
  362. package/dist/esm/rendering/webgl2/glsl/primitive.vert.js +4 -0
  363. package/dist/esm/rendering/webgl2/glsl/primitive.vert.js.map +1 -0
  364. package/dist/esm/rendering/webgl2/glsl/sprite.frag.js +4 -0
  365. package/dist/esm/rendering/webgl2/glsl/sprite.frag.js.map +1 -0
  366. package/dist/esm/rendering/webgl2/glsl/sprite.vert.js +4 -0
  367. package/dist/esm/rendering/webgl2/glsl/sprite.vert.js.map +1 -0
  368. package/dist/esm/rendering/webgpu/AbstractWebGpuRenderer.d.ts +28 -0
  369. package/dist/esm/rendering/webgpu/AbstractWebGpuRenderer.js +50 -0
  370. package/dist/esm/rendering/webgpu/AbstractWebGpuRenderer.js.map +1 -0
  371. package/dist/esm/rendering/webgpu/WebGpuBlendState.d.ts +6 -0
  372. package/dist/esm/rendering/webgpu/WebGpuBlendState.js +79 -0
  373. package/dist/esm/rendering/webgpu/WebGpuBlendState.js.map +1 -0
  374. package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.d.ts +33 -0
  375. package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.js +443 -0
  376. package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.js.map +1 -0
  377. package/dist/esm/rendering/webgpu/WebGpuPrimitiveRenderer.d.ts +39 -0
  378. package/dist/esm/rendering/webgpu/WebGpuPrimitiveRenderer.js +489 -0
  379. package/dist/esm/rendering/webgpu/WebGpuPrimitiveRenderer.js.map +1 -0
  380. package/dist/esm/rendering/webgpu/WebGpuRenderManager.d.ts +111 -0
  381. package/dist/esm/rendering/webgpu/WebGpuRenderManager.js +777 -0
  382. package/dist/esm/rendering/webgpu/WebGpuRenderManager.js.map +1 -0
  383. package/dist/esm/rendering/webgpu/WebGpuRendererRuntime.d.ts +8 -0
  384. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts +33 -0
  385. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js +528 -0
  386. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js.map +1 -0
  387. package/dist/esm/resources/AbstractAssetFactory.d.ts +10 -0
  388. package/dist/esm/resources/AbstractAssetFactory.js +24 -0
  389. package/dist/esm/resources/AbstractAssetFactory.js.map +1 -0
  390. package/dist/esm/resources/AssetFactory.d.ts +6 -0
  391. package/dist/esm/resources/AssetManifest.d.ts +28 -0
  392. package/dist/esm/resources/AssetManifest.js +66 -0
  393. package/dist/esm/resources/AssetManifest.js.map +1 -0
  394. package/dist/esm/resources/CacheFirstStrategy.d.ts +5 -0
  395. package/dist/esm/resources/CacheFirstStrategy.js +34 -0
  396. package/dist/esm/resources/CacheFirstStrategy.js.map +1 -0
  397. package/dist/esm/resources/CacheStore.d.ts +7 -0
  398. package/dist/esm/resources/CacheStrategy.d.ts +12 -0
  399. package/dist/esm/resources/Database.d.ts +13 -0
  400. package/dist/esm/resources/FactoryRegistry.d.ts +9 -0
  401. package/dist/esm/resources/FactoryRegistry.js +42 -0
  402. package/dist/esm/resources/FactoryRegistry.js.map +1 -0
  403. package/dist/esm/resources/IndexedDbDatabase.d.ts +21 -0
  404. package/dist/esm/resources/IndexedDbDatabase.js +143 -0
  405. package/dist/esm/resources/IndexedDbDatabase.js.map +1 -0
  406. package/dist/esm/resources/IndexedDbStore.d.ts +16 -0
  407. package/dist/esm/resources/IndexedDbStore.js +32 -0
  408. package/dist/esm/resources/IndexedDbStore.js.map +1 -0
  409. package/dist/esm/resources/Loader.d.ts +88 -0
  410. package/dist/esm/resources/Loader.js +601 -0
  411. package/dist/esm/resources/Loader.js.map +1 -0
  412. package/dist/esm/resources/NetworkOnlyStrategy.d.ts +5 -0
  413. package/dist/esm/resources/NetworkOnlyStrategy.js +12 -0
  414. package/dist/esm/resources/NetworkOnlyStrategy.js.map +1 -0
  415. package/dist/esm/resources/factories/BinaryFactory.d.ts +6 -0
  416. package/dist/esm/resources/factories/BinaryFactory.js +14 -0
  417. package/dist/esm/resources/factories/BinaryFactory.js.map +1 -0
  418. package/dist/esm/resources/factories/FontFactory.d.ts +13 -0
  419. package/dist/esm/resources/factories/FontFactory.js +36 -0
  420. package/dist/esm/resources/factories/FontFactory.js.map +1 -0
  421. package/dist/esm/resources/factories/ImageFactory.d.ts +10 -0
  422. package/dist/esm/resources/factories/ImageFactory.js +35 -0
  423. package/dist/esm/resources/factories/ImageFactory.js.map +1 -0
  424. package/dist/esm/resources/factories/JsonFactory.d.ts +6 -0
  425. package/dist/esm/resources/factories/JsonFactory.js +14 -0
  426. package/dist/esm/resources/factories/JsonFactory.js.map +1 -0
  427. package/dist/esm/resources/factories/MusicFactory.d.ts +16 -0
  428. package/dist/esm/resources/factories/MusicFactory.js +37 -0
  429. package/dist/esm/resources/factories/MusicFactory.js.map +1 -0
  430. package/dist/esm/resources/factories/SoundFactory.d.ts +14 -0
  431. package/dist/esm/resources/factories/SoundFactory.js +22 -0
  432. package/dist/esm/resources/factories/SoundFactory.js.map +1 -0
  433. package/dist/esm/resources/factories/SvgFactory.d.ts +6 -0
  434. package/dist/esm/resources/factories/SvgFactory.js +34 -0
  435. package/dist/esm/resources/factories/SvgFactory.js.map +1 -0
  436. package/dist/esm/resources/factories/TextFactory.d.ts +6 -0
  437. package/dist/esm/resources/factories/TextFactory.js +14 -0
  438. package/dist/esm/resources/factories/TextFactory.js.map +1 -0
  439. package/dist/esm/resources/factories/TextureFactory.d.ts +13 -0
  440. package/dist/esm/resources/factories/TextureFactory.js +37 -0
  441. package/dist/esm/resources/factories/TextureFactory.js.map +1 -0
  442. package/dist/esm/resources/factories/VideoFactory.d.ts +18 -0
  443. package/dist/esm/resources/factories/VideoFactory.js +40 -0
  444. package/dist/esm/resources/factories/VideoFactory.js.map +1 -0
  445. package/dist/esm/resources/factories/VttFactory.d.ts +6 -0
  446. package/dist/esm/resources/factories/VttFactory.js +57 -0
  447. package/dist/esm/resources/factories/VttFactory.js.map +1 -0
  448. package/dist/esm/resources/factories/WasmFactory.d.ts +6 -0
  449. package/dist/esm/resources/factories/WasmFactory.js +14 -0
  450. package/dist/esm/resources/factories/WasmFactory.js.map +1 -0
  451. package/dist/esm/resources/index.d.ts +26 -0
  452. package/dist/esm/resources/tokens.d.ts +30 -0
  453. package/dist/esm/resources/tokens.js +33 -0
  454. package/dist/esm/resources/tokens.js.map +1 -0
  455. package/dist/esm/resources/utils.d.ts +1 -0
  456. package/dist/esm/resources/utils.js +129 -0
  457. package/dist/esm/resources/utils.js.map +1 -0
  458. package/dist/esm/vendor/webgl-debug.js +1160 -0
  459. package/dist/esm/vendor/webgl-debug.js.map +1 -0
  460. package/dist/exo.esm.js +17111 -0
  461. package/dist/exo.esm.js.map +1 -0
  462. package/dist/exo.esm.min.js +2 -0
  463. package/dist/exo.esm.min.js.map +1 -0
  464. package/dist/exo.global.js +17328 -0
  465. package/dist/exo.global.js.map +1 -0
  466. package/dist/exo.global.min.js +2 -0
  467. package/dist/exo.global.min.js.map +1 -0
  468. package/package.json +96 -0
@@ -0,0 +1,24 @@
1
+ const createRenderStats = () => ({
2
+ frame: 0,
3
+ submittedNodes: 0,
4
+ culledNodes: 0,
5
+ drawCalls: 0,
6
+ batches: 0,
7
+ renderPasses: 0,
8
+ renderTargetChanges: 0,
9
+ frameTimeMs: 0,
10
+ });
11
+ const resetRenderStats = (stats) => {
12
+ stats.frame++;
13
+ stats.submittedNodes = 0;
14
+ stats.culledNodes = 0;
15
+ stats.drawCalls = 0;
16
+ stats.batches = 0;
17
+ stats.renderPasses = 0;
18
+ stats.renderTargetChanges = 0;
19
+ stats.frameTimeMs = 0;
20
+ return stats;
21
+ };
22
+
23
+ export { createRenderStats, resetRenderStats };
24
+ //# sourceMappingURL=RenderStats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RenderStats.js","sources":["../../../../src/rendering/RenderStats.ts"],"sourcesContent":[null],"names":[],"mappings":"AAWO,MAAM,iBAAiB,GAAG,OAAoB;AACjD,IAAA,KAAK,EAAE,CAAC;AACR,IAAA,cAAc,EAAE,CAAC;AACjB,IAAA,WAAW,EAAE,CAAC;AACd,IAAA,SAAS,EAAE,CAAC;AACZ,IAAA,OAAO,EAAE,CAAC;AACV,IAAA,YAAY,EAAE,CAAC;AACf,IAAA,mBAAmB,EAAE,CAAC;AACtB,IAAA,WAAW,EAAE,CAAC;AACjB,CAAA;AAEM,MAAM,gBAAgB,GAAG,CAAC,KAAkB,KAAiB;IAChE,KAAK,CAAC,KAAK,EAAE;AACb,IAAA,KAAK,CAAC,cAAc,GAAG,CAAC;AACxB,IAAA,KAAK,CAAC,WAAW,GAAG,CAAC;AACrB,IAAA,KAAK,CAAC,SAAS,GAAG,CAAC;AACnB,IAAA,KAAK,CAAC,OAAO,GAAG,CAAC;AACjB,IAAA,KAAK,CAAC,YAAY,GAAG,CAAC;AACtB,IAAA,KAAK,CAAC,mBAAmB,GAAG,CAAC;AAC7B,IAAA,KAAK,CAAC,WAAW,GAAG,CAAC;AAErB,IAAA,OAAO,KAAK;AAChB;;;;"}
@@ -0,0 +1,34 @@
1
+ import { Size } from '@/math/Size';
2
+ import { View } from './View';
3
+ import { Rectangle } from '@/math/Rectangle';
4
+ import { Vector } from '@/math/Vector';
5
+ export declare class RenderTarget {
6
+ private readonly _root;
7
+ private readonly _destroyListeners;
8
+ private _version;
9
+ protected _size: Size;
10
+ protected _viewport: Rectangle;
11
+ protected _defaultView: View;
12
+ protected _view: View;
13
+ constructor(width: number, height: number, root?: boolean);
14
+ get view(): View;
15
+ set view(view: View);
16
+ get size(): Size;
17
+ set size(size: Size);
18
+ get width(): number;
19
+ set width(width: number);
20
+ get height(): number;
21
+ set height(height: number);
22
+ get root(): boolean;
23
+ get version(): number;
24
+ addDestroyListener(listener: () => void): this;
25
+ removeDestroyListener(listener: () => void): this;
26
+ setView(view: View | null): this;
27
+ resize(width: number, height: number): this;
28
+ getViewport(view?: View): Rectangle;
29
+ updateViewport(): this;
30
+ mapPixelToCoords(point: Vector, view?: View): Vector;
31
+ mapCoordsToPixel(point: Vector, view?: View): Vector;
32
+ destroy(): void;
33
+ protected _touch(): void;
34
+ }
@@ -0,0 +1,109 @@
1
+ import { Size } from '../math/Size.js';
2
+ import { View } from './View.js';
3
+ import { Rectangle } from '../math/Rectangle.js';
4
+ import { Vector } from '../math/Vector.js';
5
+
6
+ class RenderTarget {
7
+ _root;
8
+ _destroyListeners = new Set();
9
+ _version = 0;
10
+ _size;
11
+ _viewport = new Rectangle();
12
+ _defaultView;
13
+ _view;
14
+ constructor(width, height, root = false) {
15
+ this._size = new Size(width, height);
16
+ this._root = root;
17
+ this._defaultView = new View(width / 2, height / 2, width, height);
18
+ this._view = this._defaultView;
19
+ }
20
+ get view() {
21
+ return this._view;
22
+ }
23
+ set view(view) {
24
+ this.setView(view);
25
+ }
26
+ get size() {
27
+ return this._size;
28
+ }
29
+ set size(size) {
30
+ this.resize(size.width, size.height);
31
+ }
32
+ get width() {
33
+ return this._size.width;
34
+ }
35
+ set width(width) {
36
+ this.resize(width, this.height);
37
+ }
38
+ get height() {
39
+ return this._size.height;
40
+ }
41
+ set height(height) {
42
+ this.resize(this.width, height);
43
+ }
44
+ get root() {
45
+ return this._root;
46
+ }
47
+ get version() {
48
+ return this._version;
49
+ }
50
+ addDestroyListener(listener) {
51
+ this._destroyListeners.add(listener);
52
+ return this;
53
+ }
54
+ removeDestroyListener(listener) {
55
+ this._destroyListeners.delete(listener);
56
+ return this;
57
+ }
58
+ setView(view) {
59
+ const nextView = view || this._defaultView;
60
+ if (this._view !== nextView) {
61
+ this._view = nextView;
62
+ this._touch();
63
+ }
64
+ return this;
65
+ }
66
+ resize(width, height) {
67
+ if (!this._size.equals({ width, height })) {
68
+ this._size.set(width, height);
69
+ this._touch();
70
+ }
71
+ return this;
72
+ }
73
+ getViewport(view = this._view) {
74
+ const { x, y, width, height } = view.viewport;
75
+ return this._viewport.set(Math.round(x * this.width), Math.round(y * this.height), Math.round(width * this.width), Math.round(height * this.height));
76
+ }
77
+ updateViewport() {
78
+ this._touch();
79
+ return this;
80
+ }
81
+ mapPixelToCoords(point, view = this._view) {
82
+ const viewport = this.getViewport(view);
83
+ const normalized = new Vector(-1 + (2 * (point.x - viewport.left) / viewport.width), 1 - (2 * (point.y - viewport.top) / viewport.height));
84
+ return normalized.transform(view.getInverseTransform());
85
+ }
86
+ mapCoordsToPixel(point, view = this._view) {
87
+ const viewport = this.getViewport(view);
88
+ const normalized = point.clone().transform(view.getTransform());
89
+ return normalized.set((((normalized.x + 1) / 2 * viewport.width) + viewport.left) | 0, (((-normalized.y + 1) / 2 * viewport.height) + viewport.top) | 0);
90
+ }
91
+ destroy() {
92
+ for (const listener of Array.from(this._destroyListeners)) {
93
+ listener();
94
+ }
95
+ this._destroyListeners.clear();
96
+ if (this._view !== this._defaultView) {
97
+ this._view.destroy();
98
+ }
99
+ this._defaultView.destroy();
100
+ this._viewport.destroy();
101
+ this._size.destroy();
102
+ }
103
+ _touch() {
104
+ this._version++;
105
+ }
106
+ }
107
+
108
+ export { RenderTarget };
109
+ //# sourceMappingURL=RenderTarget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RenderTarget.js","sources":["../../../../src/rendering/RenderTarget.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { Color } from '@/core/Color';
2
+ import type { View } from './View';
3
+ import type { RenderTarget } from './RenderTarget';
4
+ import type { RenderPass } from './RenderPass';
5
+ import type { SceneRenderRuntime } from './SceneRenderRuntime';
6
+ export interface RenderTargetPassOptions {
7
+ readonly target?: RenderTarget | null;
8
+ readonly view?: View | null;
9
+ readonly clearColor?: Color;
10
+ }
11
+ export declare class RenderTargetPass implements RenderPass {
12
+ private readonly _callback;
13
+ private readonly _target;
14
+ private readonly _view;
15
+ private readonly _clearColor;
16
+ constructor(callback: (runtime: SceneRenderRuntime) => void, options?: RenderTargetPassOptions);
17
+ execute(runtime: SceneRenderRuntime): void;
18
+ }
@@ -0,0 +1,31 @@
1
+ class RenderTargetPass {
2
+ _callback;
3
+ _target;
4
+ _view;
5
+ _clearColor;
6
+ constructor(callback, options = {}) {
7
+ this._callback = callback;
8
+ this._target = options.target ?? null;
9
+ this._view = options.view ?? null;
10
+ this._clearColor = options.clearColor ?? null;
11
+ }
12
+ execute(runtime) {
13
+ const previousTarget = runtime.renderTarget;
14
+ const previousView = runtime.view;
15
+ runtime.setRenderTarget(this._target);
16
+ runtime.setView(this._view);
17
+ if (this._clearColor !== null) {
18
+ runtime.clear(this._clearColor);
19
+ }
20
+ try {
21
+ this._callback(runtime);
22
+ }
23
+ finally {
24
+ runtime.setRenderTarget(previousTarget);
25
+ runtime.setView(previousView);
26
+ }
27
+ }
28
+ }
29
+
30
+ export { RenderTargetPass };
31
+ //# sourceMappingURL=RenderTargetPass.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RenderTargetPass.js","sources":["../../../../src/rendering/RenderTargetPass.ts"],"sourcesContent":[null],"names":[],"mappings":"MAYa,gBAAgB,CAAA;AAER,IAAA,SAAS;AACT,IAAA,OAAO;AACP,IAAA,KAAK;AACL,IAAA,WAAW;IAE5B,WAAA,CACI,QAA+C,EAC/C,OAAA,GAAmC,EAAE,EAAA;AAErC,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI;QACrC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI;QACjC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,UAAU,IAAI,IAAI;IACjD;AAEO,IAAA,OAAO,CAAC,OAA2B,EAAA;AACtC,QAAA,MAAM,cAAc,GAAG,OAAO,CAAC,YAAY;AAC3C,QAAA,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI;AAEjC,QAAA,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC;AACrC,QAAA,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AAE3B,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE;AAC3B,YAAA,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC;QACnC;AAEA,QAAA,IAAI;AACA,YAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;QAC3B;gBAAU;AACN,YAAA,OAAO,CAAC,eAAe,CAAC,cAAc,CAAC;AACvC,YAAA,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC;QACjC;IACJ;AACH;;;;"}
@@ -0,0 +1,15 @@
1
+ import type { RenderBackendType } from './RenderBackendType';
2
+ import type { Drawable } from './Drawable';
3
+ import type { SceneRenderRuntime } from './SceneRenderRuntime';
4
+ export interface Renderer<Runtime extends SceneRenderRuntime = SceneRenderRuntime, Target extends Drawable = Drawable> {
5
+ readonly backendType: RenderBackendType;
6
+ connect(runtime: Runtime): void;
7
+ disconnect(): void;
8
+ render(drawable: Target): void;
9
+ flush(): void;
10
+ }
11
+ /**
12
+ * Constructor type used as a registry key for drawable-to-renderer mapping.
13
+ * Supports both concrete and abstract drawable classes.
14
+ */
15
+ export type DrawableConstructor<Target extends Drawable = Drawable> = abstract new (...args: Array<never>) => Target;
@@ -0,0 +1,43 @@
1
+ import type { Drawable } from './Drawable';
2
+ import type { SceneRenderRuntime } from './SceneRenderRuntime';
3
+ import type { Renderer, DrawableConstructor } from './Renderer';
4
+ /**
5
+ * Instance-based renderer registry.
6
+ *
7
+ * Maps drawable constructors to renderer instances. Each drawable type
8
+ * has exactly one renderer. The registry manages connect/disconnect
9
+ * lifecycle for all registered renderers.
10
+ *
11
+ * Resolution walks the prototype chain so sprite-backed subclasses such
12
+ * as Text and Video can intentionally reuse the Sprite renderer.
13
+ *
14
+ * Used internally by backend managers. Exposed publicly for advanced
15
+ * custom renderer registration.
16
+ */
17
+ export declare class RendererRegistry<Runtime extends SceneRenderRuntime> {
18
+ private readonly _renderers;
19
+ private _runtime;
20
+ /**
21
+ * Register a renderer for a specific drawable type.
22
+ *
23
+ * If the registry is already connected to a runtime, the renderer
24
+ * is connected immediately. Registration must happen before the
25
+ * first draw call for the given drawable type.
26
+ *
27
+ * @throws Error if a renderer is already registered for this drawable type.
28
+ */
29
+ registerRenderer<Target extends Drawable>(drawableType: DrawableConstructor<Target>, renderer: Renderer<Runtime, Target>): void;
30
+ resolve(drawable: Drawable): Renderer<Runtime, Drawable>;
31
+ /**
32
+ * Connect all registered renderers to the given runtime.
33
+ */
34
+ connect(runtime: Runtime): void;
35
+ /**
36
+ * Disconnect all registered renderers from the current runtime.
37
+ */
38
+ disconnect(): void;
39
+ /**
40
+ * Disconnect all registered renderers and clear the registry.
41
+ */
42
+ destroy(): void;
43
+ }
@@ -0,0 +1,86 @@
1
+ /**
2
+ * Instance-based renderer registry.
3
+ *
4
+ * Maps drawable constructors to renderer instances. Each drawable type
5
+ * has exactly one renderer. The registry manages connect/disconnect
6
+ * lifecycle for all registered renderers.
7
+ *
8
+ * Resolution walks the prototype chain so sprite-backed subclasses such
9
+ * as Text and Video can intentionally reuse the Sprite renderer.
10
+ *
11
+ * Used internally by backend managers. Exposed publicly for advanced
12
+ * custom renderer registration.
13
+ */
14
+ class RendererRegistry {
15
+ _renderers = new Map();
16
+ _runtime = null;
17
+ /**
18
+ * Register a renderer for a specific drawable type.
19
+ *
20
+ * If the registry is already connected to a runtime, the renderer
21
+ * is connected immediately. Registration must happen before the
22
+ * first draw call for the given drawable type.
23
+ *
24
+ * @throws Error if a renderer is already registered for this drawable type.
25
+ */
26
+ registerRenderer(drawableType, renderer) {
27
+ if (this._renderers.has(drawableType)) {
28
+ throw new Error(`A renderer is already registered for ${drawableType.name}.`);
29
+ }
30
+ // Widen TDrawable to Drawable for storage. Safe because the map key
31
+ // guarantees the correct drawable type is always paired at lookup.
32
+ this._renderers.set(drawableType, renderer);
33
+ if (this._runtime !== null) {
34
+ renderer.connect(this._runtime);
35
+ }
36
+ }
37
+ resolve(drawable) {
38
+ let constructor = drawable.constructor;
39
+ let renderer = undefined;
40
+ while (constructor !== null && !renderer) {
41
+ renderer = this._renderers.get(constructor);
42
+ if (!renderer) {
43
+ const prototype = Object.getPrototypeOf(constructor.prototype);
44
+ constructor = prototype?.constructor ?? null;
45
+ }
46
+ }
47
+ if (!renderer) {
48
+ throw new Error(`No renderer registered for ${drawable.constructor.name}. `
49
+ + 'Register one with registry.registerRenderer() before the first draw call.');
50
+ }
51
+ return renderer;
52
+ }
53
+ /**
54
+ * Connect all registered renderers to the given runtime.
55
+ */
56
+ connect(runtime) {
57
+ this._runtime = runtime;
58
+ for (const renderer of this._renderers.values()) {
59
+ renderer.connect(runtime);
60
+ }
61
+ }
62
+ /**
63
+ * Disconnect all registered renderers from the current runtime.
64
+ */
65
+ disconnect() {
66
+ for (const renderer of this._renderers.values()) {
67
+ renderer.disconnect();
68
+ }
69
+ this._runtime = null;
70
+ }
71
+ /**
72
+ * Disconnect all registered renderers and clear the registry.
73
+ */
74
+ destroy() {
75
+ this.disconnect();
76
+ for (const renderer of this._renderers.values()) {
77
+ if ('destroy' in renderer && typeof renderer.destroy === 'function') {
78
+ renderer.destroy();
79
+ }
80
+ }
81
+ this._renderers.clear();
82
+ }
83
+ }
84
+
85
+ export { RendererRegistry };
86
+ //# sourceMappingURL=RendererRegistry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RendererRegistry.js","sources":["../../../../src/rendering/RendererRegistry.ts"],"sourcesContent":[null],"names":[],"mappings":"AAIA;;;;;;;;;;;;AAYG;MACU,gBAAgB,CAAA;AAER,IAAA,UAAU,GAAG,IAAI,GAAG,EAAoD;IACjF,QAAQ,GAAmB,IAAI;AAEvC;;;;;;;;AAQG;IACI,gBAAgB,CACnB,YAAyC,EACzC,QAAmC,EAAA;QAEnC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;YACnC,MAAM,IAAI,KAAK,CAAC,CAAA,qCAAA,EAAwC,YAAY,CAAC,IAAI,CAAA,CAAA,CAAG,CAAC;QACjF;;;QAIA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,EAAE,QAAuC,CAAC;AAE1E,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE;AACvB,YAAA,QAAwC,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;QACpE;IACJ;AAEO,IAAA,OAAO,CAAC,QAAkB,EAAA;AAC7B,QAAA,IAAI,WAAW,GAAG,QAAQ,CAAC,WAAyC;QACpE,IAAI,QAAQ,GAA4C,SAAS;AAEjE,QAAA,OAAO,WAAW,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE;YACtC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC;YAE3C,IAAI,CAAC,QAAQ,EAAE;gBACX,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,SAAS,CAAiD;AAE9G,gBAAA,WAAW,GAAG,SAAS,EAAE,WAAW,IAAI,IAAI;YAChD;QACJ;QAEA,IAAI,CAAC,QAAQ,EAAE;YACX,MAAM,IAAI,KAAK,CACX,CAAA,2BAAA,EAA8B,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAA,EAAA;AACrD,kBAAA,2EAA2E,CAChF;QACL;AAEA,QAAA,OAAO,QAAQ;IACnB;AAEA;;AAEG;AACI,IAAA,OAAO,CAAC,OAAgB,EAAA;AAC3B,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO;QAEvB,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE;AAC7C,YAAA,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC;QAC7B;IACJ;AAEA;;AAEG;IACI,UAAU,GAAA;QACb,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE;YAC7C,QAAQ,CAAC,UAAU,EAAE;QACzB;AAEA,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;IACxB;AAEA;;AAEG;IACI,OAAO,GAAA;QACV,IAAI,CAAC,UAAU,EAAE;QAEjB,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE;YAC7C,IAAI,SAAS,IAAI,QAAQ,IAAI,OAAO,QAAQ,CAAC,OAAO,KAAK,UAAU,EAAE;gBAChE,QAA+D,CAAC,OAAO,EAAE;YAC9E;QACJ;AAEA,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;IAC3B;AACH;;;;"}
@@ -0,0 +1,29 @@
1
+ import type { Color } from '@/core/Color';
2
+ import type { RenderBackendType } from './RenderBackendType';
3
+ import type { RenderTarget } from './RenderTarget';
4
+ import type { View } from './View';
5
+ import type { Drawable } from './Drawable';
6
+ import type { RenderPass } from './RenderPass';
7
+ import type { Rectangle } from '@/math/Rectangle';
8
+ import type { RenderTexture } from './texture/RenderTexture';
9
+ import type { RenderStats } from './RenderStats';
10
+ export interface SceneRenderRuntime {
11
+ readonly backendType: RenderBackendType;
12
+ readonly view: View;
13
+ readonly renderTarget: RenderTarget;
14
+ readonly stats: RenderStats;
15
+ initialize(): Promise<this>;
16
+ resetStats(): this;
17
+ clear(color?: Color): this;
18
+ resize(width: number, height: number): this;
19
+ setView(view: View | null): this;
20
+ setRenderTarget(target: RenderTarget | null): this;
21
+ pushMask(maskBounds: Rectangle): this;
22
+ popMask(): this;
23
+ acquireRenderTexture(width: number, height: number): RenderTexture;
24
+ releaseRenderTexture(texture: RenderTexture): this;
25
+ draw(drawable: Drawable): this;
26
+ execute(pass: RenderPass): this;
27
+ flush(): this;
28
+ destroy(): void;
29
+ }
@@ -0,0 +1,102 @@
1
+ import { ObservableVector } from '@/math/ObservableVector';
2
+ import { Rectangle } from '@/math/Rectangle';
3
+ import { Matrix } from '@/math/Matrix';
4
+ import { ObservableSize } from '@/math/ObservableSize';
5
+ export declare enum ViewFlags {
6
+ None = 0,
7
+ Translation = 1,
8
+ Rotation = 2,
9
+ Scaling = 4,
10
+ Origin = 8,
11
+ Transform = 15,
12
+ TransformInverse = 16,
13
+ BoundingBox = 32,
14
+ TextureCoords = 64,
15
+ VertexTint = 128
16
+ }
17
+ export interface ViewFollowOptions {
18
+ lerp?: number;
19
+ offsetX?: number;
20
+ offsetY?: number;
21
+ }
22
+ export interface ViewShakeOptions {
23
+ frequency?: number;
24
+ decay?: boolean;
25
+ }
26
+ export declare class View {
27
+ private readonly _center;
28
+ private readonly _size;
29
+ private readonly _viewport;
30
+ private readonly _transform;
31
+ private readonly _inverseTransform;
32
+ private readonly _bounds;
33
+ private readonly _flags;
34
+ private _rotation;
35
+ private _sin;
36
+ private _cos;
37
+ private _zoomLevel;
38
+ private _zoomBaseWidth;
39
+ private _zoomBaseHeight;
40
+ private _followTarget;
41
+ private _followLerp;
42
+ private _followOffsetX;
43
+ private _followOffsetY;
44
+ private _boundsConstraint;
45
+ private _shakeIntensity;
46
+ private _shakeDurationMs;
47
+ private _shakeElapsedMs;
48
+ private _shakeFrequency;
49
+ private _shakeDecay;
50
+ private _shakePhase;
51
+ private _shakeOffsetX;
52
+ private _shakeOffsetY;
53
+ private _updateId;
54
+ constructor(centerX: number, centerY: number, width: number, height: number);
55
+ get center(): ObservableVector;
56
+ set center(center: ObservableVector);
57
+ get size(): ObservableSize;
58
+ set size(size: ObservableSize);
59
+ get width(): number;
60
+ set width(width: number);
61
+ get height(): number;
62
+ set height(height: number);
63
+ get rotation(): number;
64
+ set rotation(rotation: number);
65
+ get viewport(): Rectangle;
66
+ set viewport(viewport: Rectangle);
67
+ get updateId(): number;
68
+ get zoomLevel(): number;
69
+ setCenter(x: number, y: number): this;
70
+ resize(width: number, height: number): this;
71
+ setRotation(degrees: number): this;
72
+ move(x: number, y: number): this;
73
+ zoom(factor: number): this;
74
+ setZoom(zoom: number): this;
75
+ zoomIn(amount?: number): this;
76
+ zoomOut(amount?: number): this;
77
+ follow(target: {
78
+ x: number;
79
+ y: number;
80
+ } | null, options?: ViewFollowOptions): this;
81
+ clearFollow(): this;
82
+ setBounds(bounds: Rectangle | null): this;
83
+ clearBounds(): this;
84
+ shake(intensity: number, durationMs: number, options?: ViewShakeOptions): this;
85
+ stopShake(): this;
86
+ update(deltaMilliseconds: number): this;
87
+ rotate(degrees: number): this;
88
+ reset(centerX: number, centerY: number, width: number, height: number): this;
89
+ getTransform(): Matrix;
90
+ updateTransform(): this;
91
+ getInverseTransform(): Matrix;
92
+ getBounds(): Rectangle;
93
+ updateBounds(): this;
94
+ destroy(): void;
95
+ private _setDirty;
96
+ private _setPositionDirty;
97
+ private _setRotationDirty;
98
+ private _setScalingDirty;
99
+ private _updateFollowTarget;
100
+ private _applyBoundsConstraint;
101
+ private _updateShake;
102
+ }