@codexo/exojs 0.9.0 → 0.11.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 (242) hide show
  1. package/CHANGELOG.md +127 -0
  2. package/README.md +14 -14
  3. package/dist/esm/core/Application.d.ts +25 -6
  4. package/dist/esm/core/Application.js +42 -8
  5. package/dist/esm/core/Application.js.map +1 -1
  6. package/dist/esm/core/Perf.d.ts +23 -0
  7. package/dist/esm/core/Perf.js +49 -0
  8. package/dist/esm/core/Perf.js.map +1 -0
  9. package/dist/esm/core/Scene.d.ts +8 -8
  10. package/dist/esm/core/Scene.js +7 -7
  11. package/dist/esm/core/Scene.js.map +1 -1
  12. package/dist/esm/core/SceneManager.js +2 -2
  13. package/dist/esm/core/SceneManager.js.map +1 -1
  14. package/dist/esm/core/SceneNode.d.ts +0 -3
  15. package/dist/esm/core/SceneNode.js +0 -9
  16. package/dist/esm/core/SceneNode.js.map +1 -1
  17. package/dist/esm/core/capabilities.d.ts +2 -0
  18. package/dist/esm/core/capabilities.js +15 -0
  19. package/dist/esm/core/capabilities.js.map +1 -1
  20. package/dist/esm/core/dev.d.ts +21 -0
  21. package/dist/esm/core/dev.js +18 -0
  22. package/dist/esm/core/dev.js.map +1 -0
  23. package/dist/esm/core/index.d.ts +1 -0
  24. package/dist/esm/core/types.d.ts +1 -1
  25. package/dist/esm/core/utils.d.ts +12 -0
  26. package/dist/esm/core/utils.js +18 -1
  27. package/dist/esm/core/utils.js.map +1 -1
  28. package/dist/esm/index.js +14 -3
  29. package/dist/esm/index.js.map +1 -1
  30. package/dist/esm/particles/ParticleSystem.d.ts +8 -5
  31. package/dist/esm/particles/ParticleSystem.js +9 -5
  32. package/dist/esm/particles/ParticleSystem.js.map +1 -1
  33. package/dist/esm/particles/distributions/{Gradient.d.ts → ColorGradient.d.ts} +5 -5
  34. package/dist/esm/particles/distributions/{Gradient.js → ColorGradient.js} +5 -5
  35. package/dist/esm/particles/distributions/ColorGradient.js.map +1 -0
  36. package/dist/esm/particles/distributions/Distribution.d.ts +2 -2
  37. package/dist/esm/particles/distributions/index.d.ts +2 -2
  38. package/dist/esm/particles/gpu/ParticleGpuState.js +1 -1
  39. package/dist/esm/particles/modules/AlphaFadeOverLifetime.d.ts +2 -2
  40. package/dist/esm/particles/modules/AlphaFadeOverLifetime.js +5 -1
  41. package/dist/esm/particles/modules/AlphaFadeOverLifetime.js.map +1 -1
  42. package/dist/esm/particles/modules/ColorOverLifetime.d.ts +3 -3
  43. package/dist/esm/particles/modules/ColorOverLifetime.js.map +1 -1
  44. package/dist/esm/particles/modules/ColorOverSpeed.d.ts +3 -3
  45. package/dist/esm/particles/modules/ColorOverSpeed.js.map +1 -1
  46. package/dist/esm/particles/modules/UpdateModule.d.ts +2 -2
  47. package/dist/esm/particles/modules/UpdateModule.js +1 -1
  48. package/dist/esm/particles/modules/WgslContribution.d.ts +2 -2
  49. package/dist/esm/rendering/Camera.d.ts +33 -0
  50. package/dist/esm/rendering/Camera.js +38 -0
  51. package/dist/esm/rendering/Camera.js.map +1 -0
  52. package/dist/esm/rendering/Container.d.ts +5 -24
  53. package/dist/esm/rendering/Container.js +8 -71
  54. package/dist/esm/rendering/Container.js.map +1 -1
  55. package/dist/esm/rendering/Drawable.d.ts +8 -10
  56. package/dist/esm/rendering/Drawable.js +12 -20
  57. package/dist/esm/rendering/Drawable.js.map +1 -1
  58. package/dist/esm/rendering/RenderBackend.d.ts +18 -0
  59. package/dist/esm/rendering/RenderNode.d.ts +81 -8
  60. package/dist/esm/rendering/RenderNode.js +121 -144
  61. package/dist/esm/rendering/RenderNode.js.map +1 -1
  62. package/dist/esm/rendering/RenderTarget.d.ts +13 -0
  63. package/dist/esm/rendering/RenderTarget.js +13 -0
  64. package/dist/esm/rendering/RenderTarget.js.map +1 -1
  65. package/dist/esm/rendering/RenderTargetPass.js +17 -0
  66. package/dist/esm/rendering/RenderTargetPass.js.map +1 -1
  67. package/dist/esm/rendering/RenderingContext.d.ts +87 -0
  68. package/dist/esm/rendering/RenderingContext.js +157 -0
  69. package/dist/esm/rendering/RenderingContext.js.map +1 -0
  70. package/dist/esm/rendering/TransformBuffer.d.ts +82 -0
  71. package/dist/esm/rendering/TransformBuffer.js +180 -0
  72. package/dist/esm/rendering/TransformBuffer.js.map +1 -0
  73. package/dist/esm/rendering/filters/WebGpuShaderFilter.js +5 -12
  74. package/dist/esm/rendering/filters/WebGpuShaderFilter.js.map +1 -1
  75. package/dist/esm/rendering/geometry/Geometry.d.ts +40 -0
  76. package/dist/esm/rendering/geometry/Geometry.js +228 -0
  77. package/dist/esm/rendering/geometry/Geometry.js.map +1 -0
  78. package/dist/esm/rendering/geometry/GeometryAttribute.d.ts +32 -0
  79. package/dist/esm/rendering/geometry/QuadGeometry.d.ts +5 -0
  80. package/dist/esm/rendering/gradient/Gradient.d.ts +67 -0
  81. package/dist/esm/rendering/gradient/Gradient.js +160 -0
  82. package/dist/esm/rendering/gradient/Gradient.js.map +1 -0
  83. package/dist/esm/rendering/gradient/LinearGradient.d.ts +18 -0
  84. package/dist/esm/rendering/gradient/LinearGradient.js +49 -0
  85. package/dist/esm/rendering/gradient/LinearGradient.js.map +1 -0
  86. package/dist/esm/rendering/gradient/RadialGradient.d.ts +18 -0
  87. package/dist/esm/rendering/gradient/RadialGradient.js +44 -0
  88. package/dist/esm/rendering/gradient/RadialGradient.js.map +1 -0
  89. package/dist/esm/rendering/index.d.ts +16 -2
  90. package/dist/esm/rendering/material/Material.d.ts +114 -0
  91. package/dist/esm/rendering/material/Material.js +111 -0
  92. package/dist/esm/rendering/material/Material.js.map +1 -0
  93. package/dist/esm/rendering/material/MaterialKey.d.ts +18 -0
  94. package/dist/esm/rendering/material/MaterialKey.js +82 -0
  95. package/dist/esm/rendering/material/MaterialKey.js.map +1 -0
  96. package/dist/esm/rendering/material/MeshMaterial.d.ts +16 -0
  97. package/dist/esm/rendering/material/MeshMaterial.js +21 -0
  98. package/dist/esm/rendering/material/MeshMaterial.js.map +1 -0
  99. package/dist/esm/rendering/{mesh/MeshShader.d.ts → material/ShaderSource.d.ts} +29 -62
  100. package/dist/esm/rendering/{mesh/MeshShader.js → material/ShaderSource.js} +35 -62
  101. package/dist/esm/rendering/material/ShaderSource.js.map +1 -0
  102. package/dist/esm/rendering/material/SpriteMaterial.d.ts +15 -0
  103. package/dist/esm/rendering/material/SpriteMaterial.js +20 -0
  104. package/dist/esm/rendering/material/SpriteMaterial.js.map +1 -0
  105. package/dist/esm/rendering/mesh/Mesh.d.ts +29 -12
  106. package/dist/esm/rendering/mesh/Mesh.js +122 -3
  107. package/dist/esm/rendering/mesh/Mesh.js.map +1 -1
  108. package/dist/esm/rendering/pass/RenderPassCoordinator.d.ts +63 -0
  109. package/dist/esm/rendering/pass/RenderPassDescriptor.d.ts +48 -0
  110. package/dist/esm/rendering/pass/RenderPassDescriptor.js +16 -0
  111. package/dist/esm/rendering/pass/RenderPassDescriptor.js.map +1 -0
  112. package/dist/esm/rendering/plan/RenderCommand.d.ts +86 -0
  113. package/dist/esm/rendering/plan/RenderCommand.js +127 -0
  114. package/dist/esm/rendering/plan/RenderCommand.js.map +1 -0
  115. package/dist/esm/rendering/plan/RenderEffectExecutor.d.ts +10 -0
  116. package/dist/esm/rendering/plan/RenderEffectExecutor.js +159 -0
  117. package/dist/esm/rendering/plan/RenderEffectExecutor.js.map +1 -0
  118. package/dist/esm/rendering/plan/RenderInstruction.d.ts +51 -0
  119. package/dist/esm/rendering/plan/RenderInstruction.js +45 -0
  120. package/dist/esm/rendering/plan/RenderInstruction.js.map +1 -0
  121. package/dist/esm/rendering/plan/RenderPlan.d.ts +23 -0
  122. package/dist/esm/rendering/plan/RenderPlan.js +12 -0
  123. package/dist/esm/rendering/plan/RenderPlan.js.map +1 -0
  124. package/dist/esm/rendering/plan/RenderPlanBuilder.d.ts +31 -0
  125. package/dist/esm/rendering/plan/RenderPlanBuilder.js +242 -0
  126. package/dist/esm/rendering/plan/RenderPlanBuilder.js.map +1 -0
  127. package/dist/esm/rendering/plan/RenderPlanOptimizer.d.ts +10 -0
  128. package/dist/esm/rendering/plan/RenderPlanOptimizer.js +180 -0
  129. package/dist/esm/rendering/plan/RenderPlanOptimizer.js.map +1 -0
  130. package/dist/esm/rendering/plan/RenderPlanPlayer.d.ts +13 -0
  131. package/dist/esm/rendering/plan/RenderPlanPlayer.js +107 -0
  132. package/dist/esm/rendering/plan/RenderPlanPlayer.js.map +1 -0
  133. package/dist/esm/rendering/plan/RenderScope.d.ts +70 -0
  134. package/dist/esm/rendering/plan/RenderScope.js +16 -0
  135. package/dist/esm/rendering/plan/RenderScope.js.map +1 -0
  136. package/dist/esm/rendering/plan/playRenderTree.d.ts +4 -0
  137. package/dist/esm/rendering/plan/playRenderTree.js +19 -0
  138. package/dist/esm/rendering/plan/playRenderTree.js.map +1 -0
  139. package/dist/esm/rendering/primitives/Graphics.d.ts +70 -5
  140. package/dist/esm/rendering/primitives/Graphics.js +172 -14
  141. package/dist/esm/rendering/primitives/Graphics.js.map +1 -1
  142. package/dist/esm/rendering/sprite/Sprite.d.ts +22 -1
  143. package/dist/esm/rendering/sprite/Sprite.js +33 -2
  144. package/dist/esm/rendering/sprite/Sprite.js.map +1 -1
  145. package/dist/esm/rendering/sprite/spriteMaterialSources.d.ts +41 -0
  146. package/dist/esm/rendering/sprite/spriteMaterialSources.js +149 -0
  147. package/dist/esm/rendering/sprite/spriteMaterialSources.js.map +1 -0
  148. package/dist/esm/rendering/text/BitmapText.d.ts +2 -0
  149. package/dist/esm/rendering/text/BitmapText.js +8 -1
  150. package/dist/esm/rendering/text/BitmapText.js.map +1 -1
  151. package/dist/esm/rendering/text/BmFont.js +3 -0
  152. package/dist/esm/rendering/text/BmFont.js.map +1 -1
  153. package/dist/esm/rendering/text/GlyphSdf.d.ts +14 -0
  154. package/dist/esm/rendering/text/GlyphSdf.js +41 -11
  155. package/dist/esm/rendering/text/GlyphSdf.js.map +1 -1
  156. package/dist/esm/rendering/text/TextStyle.d.ts +6 -1
  157. package/dist/esm/rendering/text/TextStyle.js +1 -1
  158. package/dist/esm/rendering/text/TextStyle.js.map +1 -1
  159. package/dist/esm/rendering/texture/DataTexture.d.ts +5 -0
  160. package/dist/esm/rendering/texture/DataTexture.js +7 -0
  161. package/dist/esm/rendering/texture/DataTexture.js.map +1 -1
  162. package/dist/esm/rendering/texture/RenderTexture.js.map +1 -1
  163. package/dist/esm/rendering/video/Video.d.ts +3 -7
  164. package/dist/esm/rendering/video/Video.js +3 -8
  165. package/dist/esm/rendering/video/Video.js.map +1 -1
  166. package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts +62 -0
  167. package/dist/esm/rendering/webgl2/WebGl2Backend.js +352 -21
  168. package/dist/esm/rendering/webgl2/WebGl2Backend.js.map +1 -1
  169. package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.d.ts +22 -2
  170. package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.js +404 -112
  171. package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.js.map +1 -1
  172. package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.d.ts +8 -0
  173. package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.js +8 -0
  174. package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.js.map +1 -1
  175. package/dist/esm/rendering/webgl2/WebGl2PassCoordinator.d.ts +57 -0
  176. package/dist/esm/rendering/webgl2/WebGl2PassCoordinator.js +79 -0
  177. package/dist/esm/rendering/webgl2/WebGl2PassCoordinator.js.map +1 -0
  178. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.d.ts +14 -0
  179. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js +257 -78
  180. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js.map +1 -1
  181. package/dist/esm/rendering/webgl2/WebGl2StencilClipper.d.ts +34 -0
  182. package/dist/esm/rendering/webgl2/WebGl2StencilClipper.js +169 -0
  183. package/dist/esm/rendering/webgl2/WebGl2StencilClipper.js.map +1 -0
  184. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.d.ts +7 -0
  185. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js +11 -0
  186. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js.map +1 -1
  187. package/dist/esm/rendering/webgl2/glsl/mesh.frag.js +1 -1
  188. package/dist/esm/rendering/webgl2/glsl/mesh.vert.js +1 -1
  189. package/dist/esm/rendering/webgl2/glsl/sprite.vert.js +1 -1
  190. package/dist/esm/rendering/webgl2/glsl/stencil-clip.frag.js +4 -0
  191. package/dist/esm/rendering/webgl2/glsl/stencil-clip.frag.js.map +1 -0
  192. package/dist/esm/rendering/webgl2/glsl/stencil-clip.vert.js +4 -0
  193. package/dist/esm/rendering/webgl2/glsl/stencil-clip.vert.js.map +1 -0
  194. package/dist/esm/rendering/webgl2/glsl/text-color.frag.js +1 -1
  195. package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts +63 -0
  196. package/dist/esm/rendering/webgpu/WebGpuBackend.js +180 -19
  197. package/dist/esm/rendering/webgpu/WebGpuBackend.js.map +1 -1
  198. package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.js +22 -17
  199. package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.js.map +1 -1
  200. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.d.ts +24 -0
  201. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js +524 -98
  202. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js.map +1 -1
  203. package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.d.ts +7 -0
  204. package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.js +24 -22
  205. package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.js.map +1 -1
  206. package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.d.ts +141 -0
  207. package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.js +270 -0
  208. package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.js.map +1 -0
  209. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts +25 -1
  210. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js +430 -76
  211. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js.map +1 -1
  212. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.d.ts +57 -0
  213. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.js +257 -0
  214. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.js.map +1 -0
  215. package/dist/esm/rendering/webgpu/WebGpuStencilState.d.ts +14 -0
  216. package/dist/esm/rendering/webgpu/WebGpuStencilState.js +36 -0
  217. package/dist/esm/rendering/webgpu/WebGpuStencilState.js.map +1 -0
  218. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.d.ts +7 -0
  219. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js +30 -19
  220. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js.map +1 -1
  221. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.d.ts +48 -0
  222. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js +103 -0
  223. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js.map +1 -0
  224. package/dist/esm/resources/JsonStore.d.ts +18 -0
  225. package/dist/esm/resources/JsonStore.js +62 -0
  226. package/dist/esm/resources/JsonStore.js.map +1 -0
  227. package/dist/esm/resources/Loader.js +1 -1
  228. package/dist/esm/resources/Loader.js.map +1 -1
  229. package/dist/esm/resources/factories/ImageFactory.d.ts +14 -8
  230. package/dist/esm/resources/factories/ImageFactory.js +13 -6
  231. package/dist/esm/resources/factories/ImageFactory.js.map +1 -1
  232. package/dist/esm/resources/factories/TextureFactory.d.ts +4 -4
  233. package/dist/esm/resources/factories/TextureFactory.js +8 -4
  234. package/dist/esm/resources/factories/TextureFactory.js.map +1 -1
  235. package/dist/esm/resources/index.d.ts +1 -0
  236. package/dist/exo.esm.js +6326 -2350
  237. package/dist/exo.esm.js.map +1 -1
  238. package/package.json +34 -24
  239. package/dist/esm/particles/distributions/Gradient.js.map +0 -1
  240. package/dist/esm/rendering/mesh/MeshShader.js.map +0 -1
  241. package/dist/esm/vendor/webgl-debug.js +0 -1160
  242. package/dist/esm/vendor/webgl-debug.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -4,6 +4,133 @@ All notable changes to ExoJS are documented in this file.
4
4
 
5
5
  The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and the project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
+ ## [Unreleased]
8
+
9
+ Release notes are curated at release time, not per pull request. When a version
10
+ is cut, this section is renamed to `## [x.y.z] - YYYY-MM-DD` and filled from the
11
+ merged pull requests and commits since the previous tag (each with its commit /
12
+ PR link); `pnpm release:notes` then renders that section into the published
13
+ GitHub release with a `PREVIOUS_TAG...CURRENT_TAG` compare link.
14
+
15
+ ## [0.11.0] - 2026-06-04
16
+
17
+ ### Added
18
+
19
+ - **WebGPU geometry stencil completion.** WebGPU now supports geometric stencil
20
+ clipping across custom-material pipelines (Sprite, Mesh, Graphics), reaching
21
+ pixel parity with WebGL2 for all default and custom material paths. (#41, #43)
22
+
23
+ - **Graphics gradient fills.** `Graphics` primitives now accept `LinearGradient`
24
+ and `RadialGradient` fills via `fillGradient` and `strokeGradient` style
25
+ properties. `Gradient` was promoted to a `Color`-like value object with
26
+ `lerp()` and `toArray()` methods. A `graphics-gradient` example demonstrates
27
+ cross-backend gradient rendering with pixel-validated test coverage.
28
+ (#52, #53, #55, #56, #57)
29
+
30
+ - **`BitmapText` diagnostics and demo.** Added `BitmapText` rendering with BMFont
31
+ diagnostics utilities and a `bitmap-text-basic` example demonstrating bitmap
32
+ font rendering, character set inspection, and layout options. (#66)
33
+
34
+ - **`assert()` dev diagnostics.** Added a lightweight assertion utility
35
+ (`assert(condition, message)`) for development-time invariant checking.
36
+ Assertions are stripped in production builds. (#67)
37
+
38
+ - **TypeScript-first examples migration.** All 117 example files converted from
39
+ JavaScript to TypeScript across the full examples tree: application-scenes,
40
+ sprites-textures, input, text-fonts, scene-graph, tweens-animation, filters,
41
+ debug-layer, audio-basics, audio-fx, beat-detection, particles, performance,
42
+ geometry-graphics, render-targets, custom-renderers, and showcase. The
43
+ playground example pilot added type-safe example loading.
44
+ (#68, #69, #70, #71, #72, #73, #74, #75, #76, #77, #78, #79)
45
+
46
+ - **`@assets` import-map module.** Examples can now reference bundled assets via
47
+ `@assets/...` import paths, with the `Loader` supporting absolute-path
48
+ resolution for this scheme. (#65)
49
+
50
+ - **Multi-browser + dark-mode smoke support.** The example smoke test runner now
51
+ supports dark color-scheme canvases and resolves a WebGPU feature-flag conflict
52
+ during multi-browser runs.
53
+
54
+ ### Performance
55
+
56
+ - **Render pipeline hot-path profiling.** Instrumented the render-plan path to
57
+ identify and eliminate bottlenecks in render command processing and group
58
+ compaction. (#80)
59
+
60
+ - **Batched transform storage writes.** `TransformBuffer` uploads are now batched
61
+ by render group, reducing per-node `device.writeBuffer` calls and improving
62
+ render-plan playback throughput. WebGPU transform storage is pre-reserved
63
+ before playback to eliminate mid-frame reallocation. (#44, #45, #46, #48, #50)
64
+
65
+ ### Fixed
66
+
67
+ - **GLSL reserved word.** Fixed a WebGL2 text shader that used `text` as a
68
+ variable name (a reserved word in GLSL ES 3.00), resolving compilation failures
69
+ on strict drivers. (#60)
70
+
71
+ - **SDF text baseline alignment.** Corrected SDF tile height computation to use
72
+ font-level metrics, fixing vertical misalignment in multi-font and mixed-size
73
+ text layouts. (#62, #63)
74
+
75
+ - **WebGPU mesh tint normalisation.** Mesh tint values on the WebGPU path are now
76
+ normalised to the 0-1 range before upload, matching WebGL2 behaviour. (#54)
77
+
78
+ - **WebGPU Uint16 index-buffer alignment.** `Uint16` index-buffer writes are now
79
+ aligned to 4-byte boundaries on WebGPU, preventing alignment violations on
80
+ hardware that enforces `COPY_DST` buffer offset restrictions.
81
+
82
+ - **Loader `@assets/` absolute-path resolution.** The `Loader` now correctly
83
+ resolves absolute paths when using the `@assets/` import-map scheme, fixing
84
+ failed asset loads in playground and bundled example deployments. (#65)
85
+
86
+ - **Example runtime health.** Repaired broken examples across the catalog
87
+ including text layout rendering, playground navigation stability, style option
88
+ migration, and smoke test failures. (#58, #59, #61, #64)
89
+
90
+ ## [0.10.0] - 2026-05-31
91
+
92
+ ### Breaking — RenderingContext and Scene.draw migration
93
+
94
+ - `Scene.draw()` now receives `RenderingContext` instead of `RenderBackend`.
95
+ - Use `context.render(node)` instead of `node.render(backend)` for the high-level path.
96
+ - Use `context.backend` for advanced raw backend calls (`clear`, `setRenderTarget`, `setView`, etc.).
97
+ - `app.rendering` is the canonical high-level rendering accessor (replaces the former `app.renderer` name).
98
+ - `Application.renderTo()` remains available as a convenience wrapper.
99
+ - `RenderNode.render(backend)` remains available as an advanced/raw path, marked `@advanced`.
100
+
101
+ ### Breaking — Rendering order semantics
102
+
103
+ - Removed `Container.sortableChildren`.
104
+ - `SceneNode.zIndex` is now always applied locally among siblings during render-plan playback.
105
+ - Sorting is now non-destructive to `Container.children`; render ordering no longer mutates the child array.
106
+ - Removed `SceneNode.childOrder` / `SceneNode.setChildOrder()` from the public scene-node surface.
107
+
108
+ ### Breaking — Gradient and storage cleanup
109
+
110
+ - Removed `GradientDrawable` (`src/rendering/primitives/Gradient.ts`).
111
+ - Added texture-first gradients: `Gradient`, `LinearGradient`, and `RadialGradient` with `toTexture(width, height, options?)`.
112
+ - Removed `SaveStore`; replaced with `JsonStore`.
113
+ - `JsonStore` API rename: `save()` -> `set()`, `load()` -> `get()`.
114
+ - Renamed particles `Gradient` to `ColorGradient` and `GradientKey` to `ColorGradientKey` to avoid root export collisions.
115
+
116
+ ### Migration notes
117
+
118
+ - Remove `container.sortableChildren = true` from user code.
119
+ - `Scene.draw(backend)` → `Scene.draw(context)`: the draw method now receives `RenderingContext` instead of `RenderBackend`.
120
+ - `node.render(backend)` → `context.render(node)` (recommended high-level path).
121
+ - `backend.clear()` → `context.backend.clear()` (raw accessor is still available).
122
+ - `RenderNode.render(backend)` remains as the advanced raw path when needed.
123
+ - For custom drawables, use `Drawable` + `RendererRegistry` so rendering remains on the backend dispatch path (`backend.draw(drawable)`).
124
+ - Replace `GradientDrawable` with `new Sprite(new LinearGradient(...).toTexture(w, h))` (or `RadialGradient`).
125
+ - Replace `SaveStore` imports/usages with `JsonStore` and update calls to `set()/get()`.
126
+ - Replace particles `Gradient` imports with `ColorGradient`.
127
+
128
+ ### Internal — render pass consolidation and WebGPU geometry stencil parity
129
+
130
+ - Centralized render-pass ownership inside the backends behind an internal `RenderPassCoordinator`: the WebGPU renderers, mask compositor, and shader filter now record into a single coordinator-owned `GPURenderPassEncoder` per flush instead of each opening and submitting its own. Submit/pass counts are unchanged and there is no public API change.
131
+ - The clear-vs-load decision (including `RenderTexture` content preservation across multiple passes in a frame) is now owned by the coordinator.
132
+ - WebGPU now supports geometric stencil clipping (`RenderNode.clip` with a `Geometry` `clipShape`) at pixel parity with WebGL2 for default-material `Sprite` and default-material `Mesh`/`Graphics` content (including composition with scissor rects and nested clips); it previously failed clearly. Clipping `Text`, `ParticleSystem`, custom-material `Sprite`, or custom-material `Mesh` content with a `Geometry` clipShape on WebGPU still throws a clear error at collection time (use a `Rectangle` clipShape for the scissor path, or the WebGL2 backend); `Rectangle`/bounds clips are unaffected.
133
+
7
134
  ## [0.9.0] - 2026-05-24
8
135
 
9
136
  ### Migration guide
package/README.md CHANGED
@@ -37,7 +37,7 @@ CommonJS `require()` usage is not part of the supported contract for this pre-1.
37
37
  ## Quickstart
38
38
 
39
39
  ```ts
40
- import { Application, Scene, Graphics, Color, type RenderBackend } from '@codexo/exojs';
40
+ import { Application, Scene, Graphics, Color, type RenderingContext } from '@codexo/exojs';
41
41
 
42
42
  class HelloScene extends Scene {
43
43
  private readonly box = new Graphics();
@@ -56,8 +56,8 @@ class HelloScene extends Scene {
56
56
  this.box.rotation += delta.seconds * 45;
57
57
  }
58
58
 
59
- public override draw(backend: RenderBackend): void {
60
- this.root.render(backend);
59
+ public override draw(context: RenderingContext): void {
60
+ context.render(this.root);
61
61
  }
62
62
  }
63
63
 
@@ -111,28 +111,28 @@ ExoJS `v0.9.0` includes pre-1.0 API consolidation changes. See the migration gui
111
111
  ## Development
112
112
 
113
113
  ```bash
114
- npm run bootstrap
115
- npm run typecheck
116
- npm run lint
117
- npm test
118
- npm run build
119
- npm run verify:package
114
+ pnpm bootstrap
115
+ pnpm typecheck
116
+ pnpm lint
117
+ pnpm test
118
+ pnpm build
119
+ pnpm verify:package
120
120
  ```
121
121
 
122
122
  Internal imports use the `@/*` path alias (mapped to `src/*`) — the same convention used by Vite, Next.js, and other modern TypeScript setups. Building the library requires TypeScript 6.
123
123
 
124
124
  ### Workspace Commands
125
125
 
126
- This repository uses npm workspaces (`site/` is a workspace package).
126
+ This repository uses pnpm workspaces (`site/` is a workspace package).
127
127
  Use root-level commands as the source of truth:
128
128
 
129
129
  ```bash
130
- npm run bootstrap
131
- npm run site:build
132
- npm run site:build:api
130
+ pnpm bootstrap
131
+ pnpm site:build
132
+ pnpm site:build:api
133
133
  ```
134
134
 
135
- Avoid running `npm install`/`npm ci` inside `site/` directly to prevent lockfile drift.
135
+ Avoid running `pnpm install` inside `site/` directly to prevent lockfile drift.
136
136
 
137
137
  ## Links
138
138
 
@@ -5,6 +5,9 @@ import type { GamepadSlotStrategy } from '@/input/InputManager';
5
5
  import { InputManager } from '@/input/InputManager';
6
6
  import { InteractionManager } from '@/input/InteractionManager';
7
7
  import type { RenderBackend } from '@/rendering/RenderBackend';
8
+ import { RenderingContext, type RenderToOptions } from '@/rendering/RenderingContext';
9
+ import { type RenderNode } from '@/rendering/RenderNode';
10
+ import type { RenderTexture } from '@/rendering/texture/RenderTexture';
8
11
  import { Texture } from '@/rendering/texture/Texture';
9
12
  import { Loader, type LoaderOptions } from '@/resources/Loader';
10
13
  import { Capabilities } from './capabilities';
@@ -65,11 +68,6 @@ export interface WebGpuBackendConfig {
65
68
  export interface AutoBackendConfig {
66
69
  type: 'auto';
67
70
  }
68
- /**
69
- * Discriminated union of backend selection options. `'auto'` picks WebGPU
70
- * when available, falling back to WebGL2 if adapter acquisition fails;
71
- * the explicit values pin the choice and skip the fallback path.
72
- */
73
71
  export type BackendConfig = AutoBackendConfig | WebGl2BackendConfig | WebGpuBackendConfig;
74
72
  /**
75
73
  * Top-level engine instance. Owns the canvas, render backend, scene-stack
@@ -119,6 +117,7 @@ export declare class Application {
119
117
  private _frameRequest;
120
118
  private _backendType;
121
119
  private _backend;
120
+ private _rendering;
122
121
  private _capabilities;
123
122
  private _documentVisible;
124
123
  private _cursor;
@@ -129,7 +128,21 @@ export declare class Application {
129
128
  get activeTime(): Time;
130
129
  get frameTime(): Time;
131
130
  get frameCount(): number;
131
+ /**
132
+ * Low-level render backend. Prefer the high-level
133
+ * {@link Application.rendering} render context for normal rendering.
134
+ * Direct backend access is an escape hatch for custom render passes
135
+ * and advanced GPU work.
136
+ * @advanced
137
+ */
132
138
  get backend(): RenderBackend;
139
+ /**
140
+ * High-level rendering context. Routes scene drawing through the
141
+ * RenderPlan pipeline (build → optimize → play) and provides off-screen
142
+ * capture via {@link RenderingContext.renderTo}. Exposes the raw
143
+ * {@link RenderBackend} for advanced / custom-renderer use.
144
+ */
145
+ get rendering(): RenderingContext;
133
146
  /**
134
147
  * Resolved capabilities for the host browser. Available after
135
148
  * {@link Application.start} resolves; reading before that throws.
@@ -160,7 +173,7 @@ export declare class Application {
160
173
  * advancement, optional view runtime update, then `scene.update(delta)` for
161
174
  * each participating scene in stack order.
162
175
  *
163
- * **Render phase** — `scene.draw(backend)` for each participating scene in
176
+ * **Render phase** — `scene.draw(context)` for each participating scene in
164
177
  * stack order, followed by the transition overlay when active.
165
178
  *
166
179
  * **Frame dispatch / flush** — `onFrame` signal, backend GPU flush,
@@ -192,6 +205,12 @@ export declare class Application {
192
205
  * scratch canvas and used as the cursor image.
193
206
  */
194
207
  setCursor(cursor: string | Texture | HTMLImageElement | HTMLCanvasElement): this;
208
+ /**
209
+ * Renders `node` into an off-screen {@link RenderTexture} and returns it.
210
+ *
211
+ * Convenience wrapper that delegates to {@link RenderingContext.renderTo}.
212
+ */
213
+ renderTo(node: RenderNode, options: RenderToOptions): RenderTexture;
195
214
  /**
196
215
  * Tear down every owned subsystem (loader, interaction, input, tweens,
197
216
  * backend, scene manager, all clocks, all signals) and release event
@@ -2,15 +2,24 @@ import { TweenManager } from '../animation/TweenManager.js';
2
2
  import { getAudioManager } from '../audio/AudioManager.js';
3
3
  import { InputManager } from '../input/InputManager.js';
4
4
  import { InteractionManager } from '../input/InteractionManager.js';
5
+ import { RenderingContext } from '../rendering/RenderingContext.js';
6
+ import { Color } from './Color.js';
7
+ import './SceneNode.js';
8
+ import { Signal } from './Signal.js';
9
+ import '../math/Rectangle.js';
10
+ import '../rendering/plan/RenderCommand.js';
11
+ import '../rendering/plan/RenderScope.js';
12
+ import '../rendering/texture/RenderTexture.js';
5
13
  import { Texture } from '../rendering/texture/Texture.js';
14
+ import '../rendering/pass/RenderPassDescriptor.js';
15
+ import '../rendering/types.js';
16
+ import '../rendering/View.js';
6
17
  import { WebGl2Backend } from '../rendering/webgl2/WebGl2Backend.js';
7
18
  import { WebGpuBackend } from '../rendering/webgpu/WebGpuBackend.js';
8
19
  import { Loader } from '../resources/Loader.js';
9
20
  import { Capabilities } from './capabilities.js';
10
21
  import { Clock } from './Clock.js';
11
- import { Color } from './Color.js';
12
22
  import { SceneManager } from './SceneManager.js';
13
- import { Signal } from './Signal.js';
14
23
  import { Time } from './Time.js';
15
24
  import { canvasSourceToDataUrl } from './utils.js';
16
25
 
@@ -101,6 +110,7 @@ class Application {
101
110
  _frameRequest = 0;
102
111
  _backendType;
103
112
  _backend;
113
+ _rendering;
104
114
  _capabilities = null;
105
115
  _documentVisible = true;
106
116
  _cursor = 'default';
@@ -158,6 +168,7 @@ class Application {
158
168
  this.loader = new Loader(this.options.loader);
159
169
  this._backendType = this.resolveInitialBackendType();
160
170
  this._backend = this.createBackend(this._backendType);
171
+ this._rendering = new RenderingContext(this._backend);
161
172
  this.input = new InputManager(this);
162
173
  this.interaction = new InteractionManager(this);
163
174
  this.scene = new SceneManager(this);
@@ -189,9 +200,25 @@ class Application {
189
200
  get frameCount() {
190
201
  return this._frameCount;
191
202
  }
203
+ /**
204
+ * Low-level render backend. Prefer the high-level
205
+ * {@link Application.rendering} render context for normal rendering.
206
+ * Direct backend access is an escape hatch for custom render passes
207
+ * and advanced GPU work.
208
+ * @advanced
209
+ */
192
210
  get backend() {
193
211
  return this._backend;
194
212
  }
213
+ /**
214
+ * High-level rendering context. Routes scene drawing through the
215
+ * RenderPlan pipeline (build → optimize → play) and provides off-screen
216
+ * capture via {@link RenderingContext.renderTo}. Exposes the raw
217
+ * {@link RenderBackend} for advanced / custom-renderer use.
218
+ */
219
+ get rendering() {
220
+ return this._rendering;
221
+ }
195
222
  /**
196
223
  * Resolved capabilities for the host browser. Available after
197
224
  * {@link Application.start} resolves; reading before that throws.
@@ -258,7 +285,7 @@ class Application {
258
285
  * advancement, optional view runtime update, then `scene.update(delta)` for
259
286
  * each participating scene in stack order.
260
287
  *
261
- * **Render phase** — `scene.draw(backend)` for each participating scene in
288
+ * **Render phase** — `scene.draw(context)` for each participating scene in
262
289
  * stack order, followed by the transition overlay when active.
263
290
  *
264
291
  * **Frame dispatch / flush** — `onFrame` signal, backend GPU flush,
@@ -287,10 +314,7 @@ class Application {
287
314
  this.interaction.update();
288
315
  getAudioManager().update();
289
316
  this.tweens.update(frameDelta.seconds);
290
- const runtimeView = this.backend.view;
291
- if (runtimeView && typeof runtimeView.update === 'function') {
292
- runtimeView.update(frameDelta.milliseconds);
293
- }
317
+ this._rendering.update(frameDelta.milliseconds);
294
318
  this.scene.update(frameDelta);
295
319
  this.onFrame.dispatch(frameDelta);
296
320
  this.backend.flush();
@@ -333,6 +357,7 @@ class Application {
333
357
  pixelRatio: this._pixelRatio,
334
358
  };
335
359
  this.backend.resize(width, height);
360
+ this._rendering.resize(width, height);
336
361
  this.onResize.dispatch(width, height, this);
337
362
  return this;
338
363
  }
@@ -347,10 +372,18 @@ class Application {
347
372
  if (source === null) {
348
373
  throw new Error('Provided Texture has no source.');
349
374
  }
350
- this._cursor = typeof source === 'string' ? source : `url(${canvasSourceToDataUrl(source)})`;
375
+ this._cursor = typeof source === 'string' ? source : `url(${canvasSourceToDataUrl(source)}), auto`;
351
376
  this.canvas.style.cursor = this._cursor;
352
377
  return this;
353
378
  }
379
+ /**
380
+ * Renders `node` into an off-screen {@link RenderTexture} and returns it.
381
+ *
382
+ * Convenience wrapper that delegates to {@link RenderingContext.renderTo}.
383
+ */
384
+ renderTo(node, options) {
385
+ return this._rendering.renderTo(node, options);
386
+ }
354
387
  /**
355
388
  * Tear down every owned subsystem (loader, interaction, input, tweens,
356
389
  * backend, scene manager, all clocks, all signals) and release event
@@ -425,6 +458,7 @@ class Application {
425
458
  this._backend.destroy();
426
459
  this._backendType = 'webgl2';
427
460
  this._backend = this.createBackend(this._backendType);
461
+ this._rendering = new RenderingContext(this._backend);
428
462
  await this._backend.initialize();
429
463
  }
430
464
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Application.js","sources":["../../../../src/core/Application.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;;;;;;IAqBY;AAAZ,CAAA,UAAY,iBAAiB,EAAA;AAC3B,IAAA,iBAAA,CAAA,iBAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW;AACX,IAAA,iBAAA,CAAA,iBAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW;AACX,IAAA,iBAAA,CAAA,iBAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW;AACX,IAAA,iBAAA,CAAA,iBAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW;AACb,CAAC,EALW,iBAAiB,KAAjB,iBAAiB,GAAA,EAAA,CAAA,CAAA;AAmE7B,MAAM,UAAU,GAAG,GAAG;AAEtB,MAAM,mBAAmB,GAAG,MAAyB,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;AACrF,MAAM,oBAAoB,GAAsB,EAAE,IAAI,EAAE,MAAM,EAAE;AAChE,MAAM,qBAAqB,GAAG;AAC5B,IAAA,KAAK,EAAE,GAAG;AACV,IAAA,MAAM,EAAE,GAAG;AACX,IAAA,UAAU,EAAE,CAAC;IACb,QAAQ,EAAE,EAAE;CACJ;AACV,MAAM,yBAAyB,GAAgB;AAC7C,IAAA,MAAM,EAAE,KAAK;AACb,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,KAAK,EAAE,SAAS;CACjB;AACD,MAAM,wBAAwB,GAA0C;AACtE,IAAA,KAAK,EAAE,KAAK;IACZ,uBAAuB,EAAE,IAAI;IAC7B,yBAAyB,EAAE,IAAI;AAC/B,IAAA,eAAe,EAAE;AACf,QAAA,KAAK,EAAE,KAAK;AACZ,QAAA,SAAS,EAAE,KAAK;AAChB,QAAA,kBAAkB,EAAE,KAAK;AACzB,QAAA,qBAAqB,EAAE,KAAK;AAC5B,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,KAAK,EAAE,KAAK;AACb,KAAA;CACF;AACD,MAAM,oBAAoB,GAAsC;AAC9D,IAAA,kBAAkB,EAAE,EAAE;AACtB,IAAA,mBAAmB,EAAE,QAAQ;AAC7B,IAAA,wBAAwB,EAAE,EAAE;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;;;AAsBG;MACU,WAAW,CAAA;AACN,IAAA,OAAO;AACP,IAAA,MAAM;AACN,IAAA,MAAM;AACN,IAAA,KAAK;AACL,IAAA,WAAW;AACX,IAAA,KAAK;AACL,IAAA,MAAM,GAAiB,IAAI,YAAY,EAAE;AACzC,IAAA,QAAQ,GAAG,IAAI,MAAM,EAAiC;AACtD,IAAA,OAAO,GAAG,IAAI,MAAM,EAAU;AAC9B,IAAA,mBAAmB,GAAG,IAAI,MAAM,EAAsB;AACtD,IAAA,kBAAkB,GAAG,IAAI,MAAM,EAAsB;AACrD,IAAA,aAAa,GAAG,IAAI,MAAM,EAAE;AAC5B,IAAA,iBAAiB,GAAG,IAAI,MAAM,EAAE;IACzC,aAAa,GAAG,KAAK;AAEX,IAAA,cAAc;AACd,IAAA,aAAa,GAAU,IAAI,KAAK,EAAE;AAClC,IAAA,YAAY,GAAU,IAAI,KAAK,EAAE;AACjC,IAAA,WAAW,GAAU,IAAI,KAAK,EAAE;AAEzC,IAAA,OAAO,GAAsB,iBAAiB,CAAC,OAAO;AACtD,IAAA,WAAW,GAAW,qBAAqB,CAAC,UAAU;IACtD,WAAW,GAAG,CAAC;IACf,aAAa,GAAG,CAAC;AACjB,IAAA,YAAY;AACZ,IAAA,QAAQ;IACR,aAAa,GAAwB,IAAI;IACzC,gBAAgB,GAAG,IAAI;IACvB,OAAO,GAAG,SAAS;IACV,wBAAwB,GAAG,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC;AAEvF,IAAA,WAAA,CAAmB,cAAkC,EAAE,EAAA;AACrD,QAAA,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,IAAI,EAAE;AAC9C,QAAA,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,IAAI,EAAE;AAC9C,QAAA,MAAM,gBAAgB,GAAG,WAAW,CAAC,SAAS,IAAI,EAAE;AACpD,QAAA,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QAC5C,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,IAAI,mBAAmB,EAAE;QAE7D,MAAM,YAAY,GAAG,aAAa,CAAC,KAAK,IAAI,qBAAqB,CAAC,KAAK;QACvE,MAAM,aAAa,GAAG,aAAa,CAAC,MAAM,IAAI,qBAAqB,CAAC,MAAM;QAC1E,IAAI,CAAC,WAAW,GAAG,aAAa,CAAC,UAAU,IAAI,qBAAqB,CAAC,UAAU;AAC/E,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;AACpB,QAAA,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,aAAa,CAAC;AAElD,QAAA,IAAI,aAAa,CAAC,QAAQ,KAAK,SAAS,EAAE;YACxC,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,aAAa,CAAC,QAAQ;QAC/C;aAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE;YAChD,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,qBAAqB,CAAC,QAAQ;QACvD;AAEA,QAAA,IAAI,aAAa,CAAC,cAAc,KAAK,SAAS,EAAE;YAC9C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,GAAG,aAAa,CAAC,cAAc;QACjE;QAEA,IAAI,CAAC,OAAO,GAAG;AACb,YAAA,UAAU,EAAE,WAAW,CAAC,UAAU,IAAI,KAAK,CAAC,cAAc;AAC1D,YAAA,OAAO,EAAE,WAAW,CAAC,OAAO,IAAI,oBAAoB;AACpD,YAAA,MAAM,EAAE;gBACN,OAAO,EAAE,IAAI,CAAC,MAAM;AACpB,gBAAA,KAAK,EAAE,YAAY;AACnB,gBAAA,MAAM,EAAE,aAAa;gBACrB,UAAU,EAAE,IAAI,CAAC,WAAW;AAC5B,gBAAA,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;gBAC9B,cAAc,EAAE,aAAa,CAAC,cAAc;AAC7C,aAAA;AACD,YAAA,MAAM,EAAE;AACN,gBAAA,QAAQ,EAAE,aAAa,CAAC,QAAQ,IAAI,EAAE;gBACtC,YAAY,EAAE,aAAa,CAAC,YAAY,IAAI,EAAE,GAAG,yBAAyB,EAAE;gBAC5E,KAAK,EAAE,aAAa,CAAC,KAAK;gBAC1B,aAAa,EAAE,aAAa,CAAC,aAAa;gBAC1C,WAAW,EAAE,aAAa,CAAC,WAAW;AACvC,aAAA;AACD,YAAA,SAAS,EAAE;AACT,gBAAA,KAAK,EAAE,gBAAgB,CAAC,KAAK,IAAI,wBAAwB,CAAC,KAAK;AAC/D,gBAAA,eAAe,EAAE,gBAAgB,CAAC,eAAe,IAAI,wBAAwB,CAAC,eAAe;AAC7F,gBAAA,uBAAuB,EAAE,gBAAgB,CAAC,uBAAuB,IAAI,wBAAwB,CAAC,uBAAuB;AACrH,gBAAA,yBAAyB,EAAE,gBAAgB,CAAC,yBAAyB,IAAI,wBAAwB,CAAC,yBAAyB;AAC5H,aAAA;AACD,YAAA,KAAK,EAAE;gBACL,kBAAkB,EAAE,YAAY,CAAC,kBAAkB,IAAI,CAAC,GAAG,oBAAoB,CAAC,kBAAkB,CAAC;AACnG,gBAAA,mBAAmB,EAAE,YAAY,CAAC,mBAAmB,IAAI,oBAAoB,CAAC,mBAAmB;AACjG,gBAAA,wBAAwB,EAAE,YAAY,CAAC,wBAAwB,IAAI,oBAAoB,CAAC,wBAAwB;AACjH,aAAA;SACF;AAED,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;AAC7C,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,yBAAyB,EAAE;QACpD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC;QACrD,IAAI,CAAC,KAAK,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC;QAC/C,IAAI,CAAC,KAAK,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC;QACnC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;AAE5C,QAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;AAE1B,QAAA,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;YACnC,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,eAAe,KAAK,SAAS;YAC9D,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,IAAI,CAAC,wBAAwB,CAAC;QAC9E;QAEA,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,GAAG,CAAC,OAAO,IAAG;AAC3C,YAAA,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC5C,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,IAAG;AACpC,YAAA,eAAe,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC;AAC7C,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,IAAW,MAAM,GAAA;QACf,OAAO,IAAI,CAAC,OAAO;IACrB;AAEA,IAAA,IAAW,WAAW,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW;IACvC;AAEA,IAAA,IAAW,UAAU,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,WAAW;IACtC;AAEA,IAAA,IAAW,SAAS,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW;IACrC;AAEA,IAAA,IAAW,UAAU,GAAA;QACnB,OAAO,IAAI,CAAC,WAAW;IACzB;AAEA,IAAA,IAAW,OAAO,GAAA;QAChB,OAAO,IAAI,CAAC,QAAQ;IACtB;AAEA;;;;AAIG;AACH,IAAA,IAAW,YAAY,GAAA;AACrB,QAAA,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,EAAE;AAC/B,YAAA,MAAM,IAAI,KAAK,CAAC,uHAAuH,CAAC;QAC1I;QAEA,OAAO,IAAI,CAAC,aAAa;IAC3B;AAEA,IAAA,IAAW,aAAa,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa;IACjC;AAEA,IAAA,IAAW,eAAe,GAAA;QACxB,OAAO,IAAI,CAAC,gBAAgB;IAC9B;AAEA,IAAA,IAAW,MAAM,GAAA;QACf,OAAO,IAAI,CAAC,OAAO;IACrB;IAEA,IAAW,MAAM,CAAC,MAAc,EAAA;AAC9B,QAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;IACxB;AAEA,IAAA,IAAW,KAAK,GAAA;QACd,OAAO,eAAe,EAAE;IAC1B;AAEA;;;;;AAKG;IACI,MAAM,KAAK,CAAC,KAAY,EAAA;QAC7B,IAAI,IAAI,CAAC,OAAO,KAAK,iBAAiB,CAAC,OAAO,EAAE;AAC9C,YAAA,IAAI,CAAC,OAAO,GAAG,iBAAiB,CAAC,OAAO;;;AAIxC,YAAA,MAAM,mBAAmB,GAAG,YAAY,CAAC,KAAK;AAE9C,YAAA,IAAI;AACF,gBAAA,MAAM,IAAI,CAAC,iBAAiB,EAAE;AAC9B,gBAAA,IAAI,CAAC,aAAa,GAAG,MAAM,mBAAmB;gBAC9C,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAChC,IAAI,CAAC,aAAa,GAAG,qBAAqB,CAAC,IAAI,CAAC,cAAc,CAAC;AAC/D,gBAAA,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;AAC1B,gBAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE;AACzB,gBAAA,IAAI,CAAC,OAAO,GAAG,iBAAiB,CAAC,OAAO;YAC1C;YAAE,OAAO,KAAK,EAAE;AACd,gBAAA,IAAI,CAAC,OAAO,GAAG,iBAAiB,CAAC,OAAO;AACxC,gBAAA,MAAM,KAAK;YACb;QACF;AAEA,QAAA,OAAO,IAAI;IACb;AAEA;;;;;;;;;;;;;;;;;;;;;;;AAuBG;IACI,MAAM,GAAA;QACX,IAAI,IAAI,CAAC,OAAO,KAAK,iBAAiB,CAAC,OAAO,EAAE;YAC9C,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;AAChD,gBAAA,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;gBAC1B,IAAI,CAAC,aAAa,GAAG,qBAAqB,CAAC,IAAI,CAAC,cAAc,CAAC;AAE/D,gBAAA,OAAO,IAAI;YACb;YAEA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,YAAY;YAC5D,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC;YACvD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC;AAChD,YAAA,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;AAEpC,YAAA,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;YACzB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,GAAG,UAAU;AAE/C,YAAA,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AACnB,YAAA,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;AACzB,YAAA,eAAe,EAAE,CAAC,MAAM,EAAE;YAC1B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC;AACtC,YAAA,MAAM,WAAW,GACf,IAAI,CAAC,OAGN,CAAC,IAAI;YAEN,IAAI,WAAW,IAAI,OAAO,WAAW,CAAC,MAAM,KAAK,UAAU,EAAE;AAC3D,gBAAA,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC;YAC7C;AAEA,YAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC;AAC7B,YAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;AACjC,YAAA,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;AACpB,YAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,UAAU;YAC/D,IAAI,CAAC,aAAa,GAAG,qBAAqB,CAAC,IAAI,CAAC,cAAc,CAAC;AAC/D,YAAA,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;YAC1B,IAAI,CAAC,WAAW,EAAE;QACpB;AAEA,QAAA,OAAO,IAAI;IACb;AAEA;;;;AAIG;IACI,IAAI,GAAA;QACT,IAAI,IAAI,CAAC,OAAO,KAAK,iBAAiB,CAAC,OAAO,EAAE;AAC9C,YAAA,IAAI,CAAC,OAAO,GAAG,iBAAiB,CAAC,OAAO;AACxC,YAAA,oBAAoB,CAAC,IAAI,CAAC,aAAa,CAAC;AACxC,YAAA,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,KAAI;AACtD,gBAAA,OAAO,CAAC,KAAK,CAAC,uDAAuD,EAAE,KAAK,CAAC;AAC/E,YAAA,CAAC,CAAC;AACF,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;AACxB,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;AACvB,YAAA,IAAI,CAAC,OAAO,GAAG,iBAAiB,CAAC,OAAO;QAC1C;AAEA,QAAA,OAAO,IAAI;IACb;AAEA;;;;AAIG;IACI,MAAM,CAAC,KAAa,EAAE,MAAc,EAAA;AACzC,QAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC;AACpC,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG;YACpB,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC;YAC9B,KAAK;YACL,MAAM;YACN,UAAU,EAAE,IAAI,CAAC,WAAW;SAC7B;QAED,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC;QAClC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC;AAE3C,QAAA,OAAO,IAAI;IACb;AAEA;;;;;AAKG;AACI,IAAA,SAAS,CAAC,MAA+D,EAAA;AAC9E,QAAA,MAAM,MAAM,GAAG,MAAM,YAAY,OAAO,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM;AAEjE,QAAA,IAAI,MAAM,KAAK,IAAI,EAAE;AACnB,YAAA,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC;QACpD;QAEA,IAAI,CAAC,OAAO,GAAG,OAAO,MAAM,KAAK,QAAQ,GAAG,MAAM,GAAG,CAAA,IAAA,EAAO,qBAAqB,CAAC,MAAM,CAAC,GAAG;QAC5F,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO;AAEvC,QAAA,OAAO,IAAI;IACb;AAEA;;;;AAIG;IACI,OAAO,GAAA;AACZ,QAAA,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;YACnC,QAAQ,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,IAAI,CAAC,wBAAwB,CAAC;QACjF;QAEA,IAAI,CAAC,IAAI,EAAE;AACX,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;AACrB,QAAA,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;AAC1B,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;AACpB,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;AACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;AACvB,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;AACpB,QAAA,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE;AAC5B,QAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;AAC3B,QAAA,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;AAC1B,QAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;AACvB,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;AACtB,QAAA,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE;AAClC,QAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE;AACjC,QAAA,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE;AAC5B,QAAA,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE;IAClC;IAEQ,2BAA2B,GAAA;AACjC,QAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,eAAe,KAAK,SAAS;AAEtD,QAAA,IAAI,OAAO,KAAK,IAAI,CAAC,gBAAgB,EAAE;AACrC,YAAA,IAAI,CAAC,gBAAgB,GAAG,OAAO;AAC/B,YAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC;QAC3C;IACF;IAEQ,yBAAyB,GAAA;QAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI;AAE9C,QAAA,IAAI,WAAW,KAAK,QAAQ,EAAE;AAC5B,YAAA,OAAO,QAAQ;QACjB;AAEA,QAAA,IAAI,WAAW,KAAK,QAAQ,EAAE;AAC5B,YAAA,OAAO,QAAQ;QACjB;AAEA,QAAA,OAAO,IAAI,CAAC,YAAY,EAAE,GAAG,QAAQ,GAAG,QAAQ;IAClD;AAEQ,IAAA,aAAa,CAAC,WAAgC,EAAA;AACpD,QAAA,IAAI,WAAW,KAAK,QAAQ,EAAE;AAC5B,YAAA,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC;AAEvC,YAAA,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,MAAK;AAC5B,gBAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;AAC/B,YAAA,CAAC,CAAC;AACF,YAAA,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAK;AAChC,gBAAA,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE;AACnC,YAAA,CAAC,CAAC;AAEF,YAAA,OAAO,OAAO;QAChB;AAEA,QAAA,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC;AAEvC,QAAA,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,MAAK;AAC7B,YAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;AAC/B,QAAA,CAAC,CAAC;AACF,QAAA,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAK;AACjC,YAAA,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE;AACnC,QAAA,CAAC,CAAC;AAEF,QAAA,OAAO,OAAO;IAChB;AAEQ,IAAA,MAAM,iBAAiB,GAAA;AAC7B,QAAA,IAAI;AACF,YAAA,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE;QAClC;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,YAAY,KAAK,QAAQ,EAAE;AAC3E,gBAAA,MAAM,KAAK;YACb;AAEA,YAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;AACvB,YAAA,IAAI,CAAC,YAAY,GAAG,QAAQ;YAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC;AACrD,YAAA,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE;QAClC;IACF;IAEQ,YAAY,GAAA;QAClB,MAAM,YAAY,GAAG,SAA8C;AAEnE,QAAA,OAAO,CAAC,CAAC,YAAY,CAAC,GAAG;IAC3B;IAEQ,gBAAgB,CAAC,KAAa,EAAE,MAAc,EAAA;AACpD,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC;AACxD,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;AAE1D,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,WAAW;AAC/B,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,YAAY;QACjC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,CAAA,EAAG,KAAK,CAAA,EAAA,CAAI;QACtC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAA,EAAG,MAAM,CAAA,EAAA,CAAI;IAC1C;AACD;;;;"}
1
+ {"version":3,"file":"Application.js","sources":["../../../../src/core/Application.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Emit a named `PerformanceMark` at the current instant.
3
+ * No-op when the User Timing API is unavailable.
4
+ */
5
+ export declare const perfMark: (name: string) => void;
6
+ /**
7
+ * Record a `PerformanceMeasure` between two marks.
8
+ *
9
+ * - When `endMark` is omitted the measurement runs from `startMark` to *now*.
10
+ * - Returns the created `PerformanceMeasure`, or `undefined` if the API is
11
+ * unavailable or either mark was never emitted.
12
+ */
13
+ export declare const perfMeasure: (name: string, startMark: string, endMark?: string) => PerformanceMeasure | undefined;
14
+ /**
15
+ * Remove all marks with the given name, or all marks when `name` is omitted.
16
+ * No-op when the User Timing API is unavailable.
17
+ */
18
+ export declare const perfClearMarks: (name?: string) => void;
19
+ /**
20
+ * Remove all measures with the given name, or all measures when `name` is omitted.
21
+ * No-op when the User Timing API is unavailable.
22
+ */
23
+ export declare const perfClearMeasures: (name?: string) => void;
@@ -0,0 +1,49 @@
1
+ // Thin wrappers around the User Timing API (performance.mark /
2
+ // performance.measure). All calls are guarded against environments where
3
+ // `performance` or individual User Timing methods are unavailable (e.g.
4
+ // some jsdom configurations, older browsers), so they are always safe to call.
5
+ const hasPerf = typeof performance !== 'undefined';
6
+ /**
7
+ * Emit a named `PerformanceMark` at the current instant.
8
+ * No-op when the User Timing API is unavailable.
9
+ */
10
+ const perfMark = (name) => {
11
+ if (hasPerf && typeof performance.mark === 'function')
12
+ performance.mark(name);
13
+ };
14
+ /**
15
+ * Record a `PerformanceMeasure` between two marks.
16
+ *
17
+ * - When `endMark` is omitted the measurement runs from `startMark` to *now*.
18
+ * - Returns the created `PerformanceMeasure`, or `undefined` if the API is
19
+ * unavailable or either mark was never emitted.
20
+ */
21
+ const perfMeasure = (name, startMark, endMark) => {
22
+ if (!hasPerf || typeof performance.measure !== 'function')
23
+ return undefined;
24
+ try {
25
+ return performance.measure(name, startMark, endMark);
26
+ }
27
+ catch {
28
+ return undefined;
29
+ }
30
+ };
31
+ /**
32
+ * Remove all marks with the given name, or all marks when `name` is omitted.
33
+ * No-op when the User Timing API is unavailable.
34
+ */
35
+ const perfClearMarks = (name) => {
36
+ if (hasPerf && typeof performance.clearMarks === 'function')
37
+ performance.clearMarks(name);
38
+ };
39
+ /**
40
+ * Remove all measures with the given name, or all measures when `name` is omitted.
41
+ * No-op when the User Timing API is unavailable.
42
+ */
43
+ const perfClearMeasures = (name) => {
44
+ if (hasPerf && typeof performance.clearMeasures === 'function')
45
+ performance.clearMeasures(name);
46
+ };
47
+
48
+ export { perfClearMarks, perfClearMeasures, perfMark, perfMeasure };
49
+ //# sourceMappingURL=Perf.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Perf.js","sources":["../../../../src/core/Perf.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AAEA,MAAM,OAAO,GAAG,OAAO,WAAW,KAAK,WAAW;AAElD;;;AAGG;AACI,MAAM,QAAQ,GAAG,CAAC,IAAY,KAAU;AAC7C,IAAA,IAAI,OAAO,IAAI,OAAO,WAAW,CAAC,IAAI,KAAK,UAAU;AAAE,QAAA,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;AAC/E;AAEA;;;;;;AAMG;AACI,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,SAAiB,EAAE,OAAgB,KAAoC;IAC/G,IAAI,CAAC,OAAO,IAAI,OAAO,WAAW,CAAC,OAAO,KAAK,UAAU;AAAE,QAAA,OAAO,SAAS;AAC3E,IAAA,IAAI;QACF,OAAO,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC;IACtD;AAAE,IAAA,MAAM;AACN,QAAA,OAAO,SAAS;IAClB;AACF;AAEA;;;AAGG;AACI,MAAM,cAAc,GAAG,CAAC,IAAa,KAAU;AACpD,IAAA,IAAI,OAAO,IAAI,OAAO,WAAW,CAAC,UAAU,KAAK,UAAU;AAAE,QAAA,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC;AAC3F;AAEA;;;AAGG;AACI,MAAM,iBAAiB,GAAG,CAAC,IAAa,KAAU;AACvD,IAAA,IAAI,OAAO,IAAI,OAAO,WAAW,CAAC,aAAa,KAAK,UAAU;AAAE,QAAA,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC;AACjG;;;;"}
@@ -1,7 +1,7 @@
1
1
  import type { Tween } from '@/animation/Tween';
2
2
  import type { InputBinding, InputBindingOptions, InputChannel } from '@/input/InputBinding';
3
3
  import { Container } from '@/rendering/Container';
4
- import type { RenderBackend } from '@/rendering/RenderBackend';
4
+ import type { RenderingContext } from '@/rendering/RenderingContext';
5
5
  import type { RenderNode } from '@/rendering/RenderNode';
6
6
  import type { Loader } from '@/resources/Loader';
7
7
  import type { Application } from './Application';
@@ -52,7 +52,7 @@ export interface SceneParticipationPolicy {
52
52
  * class GameScene extends Scene {
53
53
  * override init(loader: Loader): void { ... }
54
54
  * override update(delta: Time): void { ... }
55
- * override draw(backend: RenderBackend): void { ... }
55
+ * override draw(context: RenderingContext): void { ... }
56
56
  * }
57
57
  *
58
58
  * app.start(new GameScene());
@@ -61,7 +61,7 @@ export interface SceneParticipationPolicy {
61
61
  *
62
62
  * app.start(new class extends Scene {
63
63
  * override update(delta) { ... }
64
- * override draw(backend) { ... }
64
+ * override draw(context) { ... }
65
65
  * });
66
66
  * @stable
67
67
  */
@@ -78,7 +78,7 @@ export declare class Scene {
78
78
  *
79
79
  * `Scene.root` is an **ownership and traversal anchor**, not an
80
80
  * automatic render-authoritative root. The framework never calls
81
- * `root.render(backend)` for you. `Scene.draw(backend)` is the
81
+ * `root.render(backend)` for you. `Scene.draw(context)` is the
82
82
  * explicit orchestration point — see {@link Scene.draw}.
83
83
  *
84
84
  * The root exists eagerly so `addChild` / `removeChild` can proxy
@@ -135,14 +135,14 @@ export declare class Scene {
135
135
  * automatically traverse {@link Scene.root}. Auto-rendering the
136
136
  * full hierarchy would conflict with ExoJS's "explicit instead of
137
137
  * implicit" identity. Users decide which subtree(s) render each
138
- * frame — `this.root.render(backend)` is one common pattern, but
139
- * selective rendering (e.g. `world.render(backend)` while skipping
140
- * `ui` for a given frame) is equally valid and intentionally
138
+ * frame — `context.render(this.root)` is the recommended high-level
139
+ * path, but selective rendering (e.g. `context.render(world)` while
140
+ * skipping `ui` for a given frame) is equally valid and intentionally
141
141
  * supported.
142
142
  *
143
143
  * @see Scene.root for why root is structural, not render-authoritative.
144
144
  */
145
- draw(_backend: RenderBackend): void;
145
+ draw(_context: RenderingContext): void;
146
146
  /**
147
147
  * Async asset teardown hook. Called when the scene is finally popped
148
148
  * off the stack. Use the loader to release assets that are scene-private
@@ -68,7 +68,7 @@ class SceneTweens {
68
68
  * class GameScene extends Scene {
69
69
  * override init(loader: Loader): void { ... }
70
70
  * override update(delta: Time): void { ... }
71
- * override draw(backend: RenderBackend): void { ... }
71
+ * override draw(context: RenderingContext): void { ... }
72
72
  * }
73
73
  *
74
74
  * app.start(new GameScene());
@@ -77,7 +77,7 @@ class SceneTweens {
77
77
  *
78
78
  * app.start(new class extends Scene {
79
79
  * override update(delta) { ... }
80
- * override draw(backend) { ... }
80
+ * override draw(context) { ... }
81
81
  * });
82
82
  * @stable
83
83
  */
@@ -98,7 +98,7 @@ class Scene {
98
98
  *
99
99
  * `Scene.root` is an **ownership and traversal anchor**, not an
100
100
  * automatic render-authoritative root. The framework never calls
101
- * `root.render(backend)` for you. `Scene.draw(backend)` is the
101
+ * `root.render(backend)` for you. `Scene.draw(context)` is the
102
102
  * explicit orchestration point — see {@link Scene.draw}.
103
103
  *
104
104
  * The root exists eagerly so `addChild` / `removeChild` can proxy
@@ -194,14 +194,14 @@ class Scene {
194
194
  * automatically traverse {@link Scene.root}. Auto-rendering the
195
195
  * full hierarchy would conflict with ExoJS's "explicit instead of
196
196
  * implicit" identity. Users decide which subtree(s) render each
197
- * frame — `this.root.render(backend)` is one common pattern, but
198
- * selective rendering (e.g. `world.render(backend)` while skipping
199
- * `ui` for a given frame) is equally valid and intentionally
197
+ * frame — `context.render(this.root)` is the recommended high-level
198
+ * path, but selective rendering (e.g. `context.render(world)` while
199
+ * skipping `ui` for a given frame) is equally valid and intentionally
200
200
  * supported.
201
201
  *
202
202
  * @see Scene.root for why root is structural, not render-authoritative.
203
203
  */
204
- draw(_backend) {
204
+ draw(_context) {
205
205
  // override in subclass
206
206
  }
207
207
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Scene.js","sources":["../../../../src/core/Scene.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Scene.js","sources":["../../../../src/core/Scene.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}