@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.
- package/CHANGELOG.md +127 -0
- package/README.md +14 -14
- package/dist/esm/core/Application.d.ts +25 -6
- package/dist/esm/core/Application.js +42 -8
- package/dist/esm/core/Application.js.map +1 -1
- package/dist/esm/core/Perf.d.ts +23 -0
- package/dist/esm/core/Perf.js +49 -0
- package/dist/esm/core/Perf.js.map +1 -0
- package/dist/esm/core/Scene.d.ts +8 -8
- package/dist/esm/core/Scene.js +7 -7
- package/dist/esm/core/Scene.js.map +1 -1
- package/dist/esm/core/SceneManager.js +2 -2
- package/dist/esm/core/SceneManager.js.map +1 -1
- package/dist/esm/core/SceneNode.d.ts +0 -3
- package/dist/esm/core/SceneNode.js +0 -9
- package/dist/esm/core/SceneNode.js.map +1 -1
- package/dist/esm/core/capabilities.d.ts +2 -0
- package/dist/esm/core/capabilities.js +15 -0
- package/dist/esm/core/capabilities.js.map +1 -1
- package/dist/esm/core/dev.d.ts +21 -0
- package/dist/esm/core/dev.js +18 -0
- package/dist/esm/core/dev.js.map +1 -0
- package/dist/esm/core/index.d.ts +1 -0
- package/dist/esm/core/types.d.ts +1 -1
- package/dist/esm/core/utils.d.ts +12 -0
- package/dist/esm/core/utils.js +18 -1
- package/dist/esm/core/utils.js.map +1 -1
- package/dist/esm/index.js +14 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/particles/ParticleSystem.d.ts +8 -5
- package/dist/esm/particles/ParticleSystem.js +9 -5
- package/dist/esm/particles/ParticleSystem.js.map +1 -1
- package/dist/esm/particles/distributions/{Gradient.d.ts → ColorGradient.d.ts} +5 -5
- package/dist/esm/particles/distributions/{Gradient.js → ColorGradient.js} +5 -5
- package/dist/esm/particles/distributions/ColorGradient.js.map +1 -0
- package/dist/esm/particles/distributions/Distribution.d.ts +2 -2
- package/dist/esm/particles/distributions/index.d.ts +2 -2
- package/dist/esm/particles/gpu/ParticleGpuState.js +1 -1
- package/dist/esm/particles/modules/AlphaFadeOverLifetime.d.ts +2 -2
- package/dist/esm/particles/modules/AlphaFadeOverLifetime.js +5 -1
- package/dist/esm/particles/modules/AlphaFadeOverLifetime.js.map +1 -1
- package/dist/esm/particles/modules/ColorOverLifetime.d.ts +3 -3
- package/dist/esm/particles/modules/ColorOverLifetime.js.map +1 -1
- package/dist/esm/particles/modules/ColorOverSpeed.d.ts +3 -3
- package/dist/esm/particles/modules/ColorOverSpeed.js.map +1 -1
- package/dist/esm/particles/modules/UpdateModule.d.ts +2 -2
- package/dist/esm/particles/modules/UpdateModule.js +1 -1
- package/dist/esm/particles/modules/WgslContribution.d.ts +2 -2
- package/dist/esm/rendering/Camera.d.ts +33 -0
- package/dist/esm/rendering/Camera.js +38 -0
- package/dist/esm/rendering/Camera.js.map +1 -0
- package/dist/esm/rendering/Container.d.ts +5 -24
- package/dist/esm/rendering/Container.js +8 -71
- package/dist/esm/rendering/Container.js.map +1 -1
- package/dist/esm/rendering/Drawable.d.ts +8 -10
- package/dist/esm/rendering/Drawable.js +12 -20
- package/dist/esm/rendering/Drawable.js.map +1 -1
- package/dist/esm/rendering/RenderBackend.d.ts +18 -0
- package/dist/esm/rendering/RenderNode.d.ts +81 -8
- package/dist/esm/rendering/RenderNode.js +121 -144
- package/dist/esm/rendering/RenderNode.js.map +1 -1
- package/dist/esm/rendering/RenderTarget.d.ts +13 -0
- package/dist/esm/rendering/RenderTarget.js +13 -0
- package/dist/esm/rendering/RenderTarget.js.map +1 -1
- package/dist/esm/rendering/RenderTargetPass.js +17 -0
- package/dist/esm/rendering/RenderTargetPass.js.map +1 -1
- package/dist/esm/rendering/RenderingContext.d.ts +87 -0
- package/dist/esm/rendering/RenderingContext.js +157 -0
- package/dist/esm/rendering/RenderingContext.js.map +1 -0
- package/dist/esm/rendering/TransformBuffer.d.ts +82 -0
- package/dist/esm/rendering/TransformBuffer.js +180 -0
- package/dist/esm/rendering/TransformBuffer.js.map +1 -0
- package/dist/esm/rendering/filters/WebGpuShaderFilter.js +5 -12
- package/dist/esm/rendering/filters/WebGpuShaderFilter.js.map +1 -1
- package/dist/esm/rendering/geometry/Geometry.d.ts +40 -0
- package/dist/esm/rendering/geometry/Geometry.js +228 -0
- package/dist/esm/rendering/geometry/Geometry.js.map +1 -0
- package/dist/esm/rendering/geometry/GeometryAttribute.d.ts +32 -0
- package/dist/esm/rendering/geometry/QuadGeometry.d.ts +5 -0
- package/dist/esm/rendering/gradient/Gradient.d.ts +67 -0
- package/dist/esm/rendering/gradient/Gradient.js +160 -0
- package/dist/esm/rendering/gradient/Gradient.js.map +1 -0
- package/dist/esm/rendering/gradient/LinearGradient.d.ts +18 -0
- package/dist/esm/rendering/gradient/LinearGradient.js +49 -0
- package/dist/esm/rendering/gradient/LinearGradient.js.map +1 -0
- package/dist/esm/rendering/gradient/RadialGradient.d.ts +18 -0
- package/dist/esm/rendering/gradient/RadialGradient.js +44 -0
- package/dist/esm/rendering/gradient/RadialGradient.js.map +1 -0
- package/dist/esm/rendering/index.d.ts +16 -2
- package/dist/esm/rendering/material/Material.d.ts +114 -0
- package/dist/esm/rendering/material/Material.js +111 -0
- package/dist/esm/rendering/material/Material.js.map +1 -0
- package/dist/esm/rendering/material/MaterialKey.d.ts +18 -0
- package/dist/esm/rendering/material/MaterialKey.js +82 -0
- package/dist/esm/rendering/material/MaterialKey.js.map +1 -0
- package/dist/esm/rendering/material/MeshMaterial.d.ts +16 -0
- package/dist/esm/rendering/material/MeshMaterial.js +21 -0
- package/dist/esm/rendering/material/MeshMaterial.js.map +1 -0
- package/dist/esm/rendering/{mesh/MeshShader.d.ts → material/ShaderSource.d.ts} +29 -62
- package/dist/esm/rendering/{mesh/MeshShader.js → material/ShaderSource.js} +35 -62
- package/dist/esm/rendering/material/ShaderSource.js.map +1 -0
- package/dist/esm/rendering/material/SpriteMaterial.d.ts +15 -0
- package/dist/esm/rendering/material/SpriteMaterial.js +20 -0
- package/dist/esm/rendering/material/SpriteMaterial.js.map +1 -0
- package/dist/esm/rendering/mesh/Mesh.d.ts +29 -12
- package/dist/esm/rendering/mesh/Mesh.js +122 -3
- package/dist/esm/rendering/mesh/Mesh.js.map +1 -1
- package/dist/esm/rendering/pass/RenderPassCoordinator.d.ts +63 -0
- package/dist/esm/rendering/pass/RenderPassDescriptor.d.ts +48 -0
- package/dist/esm/rendering/pass/RenderPassDescriptor.js +16 -0
- package/dist/esm/rendering/pass/RenderPassDescriptor.js.map +1 -0
- package/dist/esm/rendering/plan/RenderCommand.d.ts +86 -0
- package/dist/esm/rendering/plan/RenderCommand.js +127 -0
- package/dist/esm/rendering/plan/RenderCommand.js.map +1 -0
- package/dist/esm/rendering/plan/RenderEffectExecutor.d.ts +10 -0
- package/dist/esm/rendering/plan/RenderEffectExecutor.js +159 -0
- package/dist/esm/rendering/plan/RenderEffectExecutor.js.map +1 -0
- package/dist/esm/rendering/plan/RenderInstruction.d.ts +51 -0
- package/dist/esm/rendering/plan/RenderInstruction.js +45 -0
- package/dist/esm/rendering/plan/RenderInstruction.js.map +1 -0
- package/dist/esm/rendering/plan/RenderPlan.d.ts +23 -0
- package/dist/esm/rendering/plan/RenderPlan.js +12 -0
- package/dist/esm/rendering/plan/RenderPlan.js.map +1 -0
- package/dist/esm/rendering/plan/RenderPlanBuilder.d.ts +31 -0
- package/dist/esm/rendering/plan/RenderPlanBuilder.js +242 -0
- package/dist/esm/rendering/plan/RenderPlanBuilder.js.map +1 -0
- package/dist/esm/rendering/plan/RenderPlanOptimizer.d.ts +10 -0
- package/dist/esm/rendering/plan/RenderPlanOptimizer.js +180 -0
- package/dist/esm/rendering/plan/RenderPlanOptimizer.js.map +1 -0
- package/dist/esm/rendering/plan/RenderPlanPlayer.d.ts +13 -0
- package/dist/esm/rendering/plan/RenderPlanPlayer.js +107 -0
- package/dist/esm/rendering/plan/RenderPlanPlayer.js.map +1 -0
- package/dist/esm/rendering/plan/RenderScope.d.ts +70 -0
- package/dist/esm/rendering/plan/RenderScope.js +16 -0
- package/dist/esm/rendering/plan/RenderScope.js.map +1 -0
- package/dist/esm/rendering/plan/playRenderTree.d.ts +4 -0
- package/dist/esm/rendering/plan/playRenderTree.js +19 -0
- package/dist/esm/rendering/plan/playRenderTree.js.map +1 -0
- package/dist/esm/rendering/primitives/Graphics.d.ts +70 -5
- package/dist/esm/rendering/primitives/Graphics.js +172 -14
- package/dist/esm/rendering/primitives/Graphics.js.map +1 -1
- package/dist/esm/rendering/sprite/Sprite.d.ts +22 -1
- package/dist/esm/rendering/sprite/Sprite.js +33 -2
- package/dist/esm/rendering/sprite/Sprite.js.map +1 -1
- package/dist/esm/rendering/sprite/spriteMaterialSources.d.ts +41 -0
- package/dist/esm/rendering/sprite/spriteMaterialSources.js +149 -0
- package/dist/esm/rendering/sprite/spriteMaterialSources.js.map +1 -0
- package/dist/esm/rendering/text/BitmapText.d.ts +2 -0
- package/dist/esm/rendering/text/BitmapText.js +8 -1
- package/dist/esm/rendering/text/BitmapText.js.map +1 -1
- package/dist/esm/rendering/text/BmFont.js +3 -0
- package/dist/esm/rendering/text/BmFont.js.map +1 -1
- package/dist/esm/rendering/text/GlyphSdf.d.ts +14 -0
- package/dist/esm/rendering/text/GlyphSdf.js +41 -11
- package/dist/esm/rendering/text/GlyphSdf.js.map +1 -1
- package/dist/esm/rendering/text/TextStyle.d.ts +6 -1
- package/dist/esm/rendering/text/TextStyle.js +1 -1
- package/dist/esm/rendering/text/TextStyle.js.map +1 -1
- package/dist/esm/rendering/texture/DataTexture.d.ts +5 -0
- package/dist/esm/rendering/texture/DataTexture.js +7 -0
- package/dist/esm/rendering/texture/DataTexture.js.map +1 -1
- package/dist/esm/rendering/texture/RenderTexture.js.map +1 -1
- package/dist/esm/rendering/video/Video.d.ts +3 -7
- package/dist/esm/rendering/video/Video.js +3 -8
- package/dist/esm/rendering/video/Video.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts +62 -0
- package/dist/esm/rendering/webgl2/WebGl2Backend.js +352 -21
- package/dist/esm/rendering/webgl2/WebGl2Backend.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.d.ts +22 -2
- package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.js +404 -112
- package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.d.ts +8 -0
- package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.js +8 -0
- package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2PassCoordinator.d.ts +57 -0
- package/dist/esm/rendering/webgl2/WebGl2PassCoordinator.js +79 -0
- package/dist/esm/rendering/webgl2/WebGl2PassCoordinator.js.map +1 -0
- package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.d.ts +14 -0
- package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js +257 -78
- package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2StencilClipper.d.ts +34 -0
- package/dist/esm/rendering/webgl2/WebGl2StencilClipper.js +169 -0
- package/dist/esm/rendering/webgl2/WebGl2StencilClipper.js.map +1 -0
- package/dist/esm/rendering/webgl2/WebGl2TextRenderer.d.ts +7 -0
- package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js +11 -0
- package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/glsl/mesh.frag.js +1 -1
- package/dist/esm/rendering/webgl2/glsl/mesh.vert.js +1 -1
- package/dist/esm/rendering/webgl2/glsl/sprite.vert.js +1 -1
- package/dist/esm/rendering/webgl2/glsl/stencil-clip.frag.js +4 -0
- package/dist/esm/rendering/webgl2/glsl/stencil-clip.frag.js.map +1 -0
- package/dist/esm/rendering/webgl2/glsl/stencil-clip.vert.js +4 -0
- package/dist/esm/rendering/webgl2/glsl/stencil-clip.vert.js.map +1 -0
- package/dist/esm/rendering/webgl2/glsl/text-color.frag.js +1 -1
- package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts +63 -0
- package/dist/esm/rendering/webgpu/WebGpuBackend.js +180 -19
- package/dist/esm/rendering/webgpu/WebGpuBackend.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.js +22 -17
- package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.d.ts +24 -0
- package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js +524 -98
- package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.d.ts +7 -0
- package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.js +24 -22
- package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.d.ts +141 -0
- package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.js +270 -0
- package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.js.map +1 -0
- package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts +25 -1
- package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js +430 -76
- package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuStencilClipper.d.ts +57 -0
- package/dist/esm/rendering/webgpu/WebGpuStencilClipper.js +257 -0
- package/dist/esm/rendering/webgpu/WebGpuStencilClipper.js.map +1 -0
- package/dist/esm/rendering/webgpu/WebGpuStencilState.d.ts +14 -0
- package/dist/esm/rendering/webgpu/WebGpuStencilState.js +36 -0
- package/dist/esm/rendering/webgpu/WebGpuStencilState.js.map +1 -0
- package/dist/esm/rendering/webgpu/WebGpuTextRenderer.d.ts +7 -0
- package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js +30 -19
- package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuTransformStorage.d.ts +48 -0
- package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js +103 -0
- package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js.map +1 -0
- package/dist/esm/resources/JsonStore.d.ts +18 -0
- package/dist/esm/resources/JsonStore.js +62 -0
- package/dist/esm/resources/JsonStore.js.map +1 -0
- package/dist/esm/resources/Loader.js +1 -1
- package/dist/esm/resources/Loader.js.map +1 -1
- package/dist/esm/resources/factories/ImageFactory.d.ts +14 -8
- package/dist/esm/resources/factories/ImageFactory.js +13 -6
- package/dist/esm/resources/factories/ImageFactory.js.map +1 -1
- package/dist/esm/resources/factories/TextureFactory.d.ts +4 -4
- package/dist/esm/resources/factories/TextureFactory.js +8 -4
- package/dist/esm/resources/factories/TextureFactory.js.map +1 -1
- package/dist/esm/resources/index.d.ts +1 -0
- package/dist/exo.esm.js +6326 -2350
- package/dist/exo.esm.js.map +1 -1
- package/package.json +34 -24
- package/dist/esm/particles/distributions/Gradient.js.map +0 -1
- package/dist/esm/rendering/mesh/MeshShader.js.map +0 -1
- package/dist/esm/vendor/webgl-debug.js +0 -1160
- 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
|
|
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(
|
|
60
|
-
this.root
|
|
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
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
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
|
|
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
|
-
|
|
131
|
-
|
|
132
|
-
|
|
130
|
+
pnpm bootstrap
|
|
131
|
+
pnpm site:build
|
|
132
|
+
pnpm site:build:api
|
|
133
133
|
```
|
|
134
134
|
|
|
135
|
-
Avoid running `
|
|
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(
|
|
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(
|
|
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
|
-
|
|
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":"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"}
|
|
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;;;;"}
|
package/dist/esm/core/Scene.d.ts
CHANGED
|
@@ -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 {
|
|
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(
|
|
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(
|
|
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(
|
|
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
|
|
139
|
-
* selective rendering (e.g. `
|
|
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(
|
|
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
|
package/dist/esm/core/Scene.js
CHANGED
|
@@ -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(
|
|
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(
|
|
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(
|
|
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
|
|
198
|
-
* selective rendering (e.g. `
|
|
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(
|
|
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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"}
|