@codexo/exojs 0.12.0 → 0.14.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 +258 -6
- package/README.md +80 -63
- package/dist/esm/animation/Tween.js +1 -1
- package/dist/esm/animation/Tween.js.map +1 -1
- package/dist/esm/animation/TweenManager.d.ts +9 -5
- package/dist/esm/animation/TweenManager.d.ts.map +1 -1
- package/dist/esm/animation/TweenManager.js +14 -8
- package/dist/esm/animation/TweenManager.js.map +1 -1
- package/dist/esm/animation/index.d.ts +6 -4
- package/dist/esm/animation/index.d.ts.map +1 -1
- package/dist/esm/audio/AudioBus.d.ts +12 -12
- package/dist/esm/audio/AudioBus.js +29 -29
- package/dist/esm/audio/AudioEffect.d.ts +18 -0
- package/dist/esm/audio/AudioEffect.d.ts.map +1 -0
- package/dist/esm/audio/AudioEffect.js +16 -0
- package/dist/esm/audio/AudioEffect.js.map +1 -0
- package/dist/esm/audio/AudioGenerator.d.ts +91 -0
- package/dist/esm/audio/AudioGenerator.d.ts.map +1 -0
- package/dist/esm/audio/AudioGenerator.js +165 -0
- package/dist/esm/audio/AudioGenerator.js.map +1 -0
- package/dist/esm/audio/AudioGeneratorVoice.d.ts +52 -0
- package/dist/esm/audio/AudioGeneratorVoice.d.ts.map +1 -0
- package/dist/esm/audio/AudioGeneratorVoice.js +141 -0
- package/dist/esm/audio/AudioGeneratorVoice.js.map +1 -0
- package/dist/esm/audio/AudioInput.d.ts +39 -0
- package/dist/esm/audio/AudioInput.d.ts.map +1 -0
- package/dist/esm/audio/AudioInput.js +53 -0
- package/dist/esm/audio/AudioInput.js.map +1 -0
- package/dist/esm/audio/AudioManager.d.ts +72 -34
- package/dist/esm/audio/AudioManager.d.ts.map +1 -1
- package/dist/esm/audio/AudioManager.js +97 -51
- package/dist/esm/audio/AudioManager.js.map +1 -1
- package/dist/esm/audio/AudioStream.d.ts +49 -0
- package/dist/esm/audio/AudioStream.d.ts.map +1 -0
- package/dist/esm/audio/AudioStream.js +109 -0
- package/dist/esm/audio/AudioStream.js.map +1 -0
- package/dist/esm/audio/AudioStreamVoice.d.ts +61 -0
- package/dist/esm/audio/AudioStreamVoice.d.ts.map +1 -0
- package/dist/esm/audio/AudioStreamVoice.js +137 -0
- package/dist/esm/audio/AudioStreamVoice.js.map +1 -0
- package/dist/esm/audio/BaseVoice.d.ts +111 -0
- package/dist/esm/audio/BaseVoice.d.ts.map +1 -0
- package/dist/esm/audio/BaseVoice.js +298 -0
- package/dist/esm/audio/BaseVoice.js.map +1 -0
- package/dist/esm/audio/BiquadEffect.d.ts +53 -0
- package/dist/esm/audio/BiquadEffect.d.ts.map +1 -0
- package/dist/esm/audio/BiquadEffect.js +110 -0
- package/dist/esm/audio/BiquadEffect.js.map +1 -0
- package/dist/esm/audio/InputVoice.d.ts +41 -0
- package/dist/esm/audio/InputVoice.d.ts.map +1 -0
- package/dist/esm/audio/InputVoice.js +85 -0
- package/dist/esm/audio/InputVoice.js.map +1 -0
- package/dist/esm/audio/NoopVoice.d.ts +29 -0
- package/dist/esm/audio/NoopVoice.d.ts.map +1 -0
- package/dist/esm/audio/NoopVoice.js +52 -0
- package/dist/esm/audio/NoopVoice.js.map +1 -0
- package/dist/esm/audio/Playable.d.ts +135 -0
- package/dist/esm/audio/Playable.d.ts.map +1 -0
- package/dist/esm/audio/Sound.d.ts +64 -69
- package/dist/esm/audio/Sound.d.ts.map +1 -1
- package/dist/esm/audio/Sound.js +176 -377
- package/dist/esm/audio/Sound.js.map +1 -1
- package/dist/esm/audio/SoundVoice.d.ts +63 -0
- package/dist/esm/audio/SoundVoice.d.ts.map +1 -0
- package/dist/esm/audio/SoundVoice.js +168 -0
- package/dist/esm/audio/SoundVoice.js.map +1 -0
- package/dist/esm/audio/{filters/WorkletFilter.d.ts → WorkletEffect.d.ts} +3 -3
- package/dist/esm/audio/WorkletEffect.d.ts.map +1 -0
- package/dist/esm/audio/{filters/WorkletFilter.js → WorkletEffect.js} +6 -6
- package/dist/esm/audio/WorkletEffect.js.map +1 -0
- package/dist/esm/audio/audio-context.js +1 -1
- package/dist/esm/audio/audio-context.js.map +1 -1
- package/dist/esm/audio/crossFade.d.ts +22 -13
- package/dist/esm/audio/crossFade.d.ts.map +1 -1
- package/dist/esm/audio/crossFade.js +21 -13
- package/dist/esm/audio/crossFade.js.map +1 -1
- package/dist/esm/audio/filters/HighpassFilter.d.ts +2 -2
- package/dist/esm/audio/filters/HighpassFilter.js +2 -2
- package/dist/esm/audio/filters/LowpassFilter.d.ts +2 -2
- package/dist/esm/audio/filters/LowpassFilter.js +2 -2
- package/dist/esm/audio/filters/index.d.ts +0 -10
- package/dist/esm/audio/filters/index.d.ts.map +1 -1
- package/dist/esm/audio/index.d.ts +13 -15
- package/dist/esm/audio/index.d.ts.map +1 -1
- package/dist/esm/core/Application.d.ts +127 -10
- package/dist/esm/core/Application.d.ts.map +1 -1
- package/dist/esm/core/Application.js +226 -25
- package/dist/esm/core/Application.js.map +1 -1
- package/dist/esm/core/BuildInfo.js +2 -2
- package/dist/esm/core/Color.d.ts +6 -4
- package/dist/esm/core/Color.d.ts.map +1 -1
- package/dist/esm/core/Color.js +19 -15
- package/dist/esm/core/Color.js.map +1 -1
- package/dist/esm/core/DisposalScope.d.ts +50 -0
- package/dist/esm/core/DisposalScope.d.ts.map +1 -0
- package/dist/esm/core/DisposalScope.js +86 -0
- package/dist/esm/core/DisposalScope.js.map +1 -0
- package/dist/esm/core/Perf.d.ts +10 -22
- package/dist/esm/core/Perf.d.ts.map +1 -1
- package/dist/esm/core/Perf.js +15 -8
- package/dist/esm/core/Perf.js.map +1 -1
- package/dist/esm/core/Registry.d.ts +64 -0
- package/dist/esm/core/Registry.d.ts.map +1 -0
- package/dist/esm/core/Registry.js +79 -0
- package/dist/esm/core/Registry.js.map +1 -0
- package/dist/esm/core/Scene.d.ts +69 -21
- package/dist/esm/core/Scene.d.ts.map +1 -1
- package/dist/esm/core/Scene.js +109 -16
- package/dist/esm/core/Scene.js.map +1 -1
- package/dist/esm/core/SceneManager.d.ts +22 -60
- package/dist/esm/core/SceneManager.d.ts.map +1 -1
- package/dist/esm/core/SceneManager.js +68 -153
- package/dist/esm/core/SceneManager.js.map +1 -1
- package/dist/esm/core/SceneNode.d.ts +43 -2
- package/dist/esm/core/SceneNode.d.ts.map +1 -1
- package/dist/esm/core/SceneNode.js +101 -12
- package/dist/esm/core/SceneNode.js.map +1 -1
- package/dist/esm/core/Signal.js.map +1 -1
- package/dist/esm/core/Stage.d.ts +42 -0
- package/dist/esm/core/Stage.d.ts.map +1 -0
- package/dist/esm/core/System.d.ts +22 -0
- package/dist/esm/core/System.d.ts.map +1 -0
- package/dist/esm/core/SystemRegistry.d.ts +35 -0
- package/dist/esm/core/SystemRegistry.d.ts.map +1 -0
- package/dist/esm/core/SystemRegistry.js +104 -0
- package/dist/esm/core/SystemRegistry.js.map +1 -0
- package/dist/esm/core/Time.d.ts +15 -0
- package/dist/esm/core/Time.d.ts.map +1 -1
- package/dist/esm/core/Time.js +25 -0
- package/dist/esm/core/Time.js.map +1 -1
- package/dist/esm/core/dev.d.ts +9 -4
- package/dist/esm/core/dev.d.ts.map +1 -1
- package/dist/esm/core/dev.js +5 -0
- package/dist/esm/core/dev.js.map +1 -1
- package/dist/esm/core/index.d.ts +26 -15
- package/dist/esm/core/index.d.ts.map +1 -1
- package/dist/esm/core/letterbox.d.ts +25 -0
- package/dist/esm/core/letterbox.d.ts.map +1 -0
- package/dist/esm/core/letterbox.js +26 -0
- package/dist/esm/core/letterbox.js.map +1 -0
- package/dist/esm/core/serialization/NodeSerializer.d.ts +71 -0
- package/dist/esm/core/serialization/NodeSerializer.d.ts.map +1 -0
- package/dist/esm/core/serialization/Prefab.d.ts +49 -0
- package/dist/esm/core/serialization/Prefab.d.ts.map +1 -0
- package/dist/esm/core/serialization/Prefab.js +61 -0
- package/dist/esm/core/serialization/Prefab.js.map +1 -0
- package/dist/esm/core/serialization/SerializationRegistry.d.ts +95 -0
- package/dist/esm/core/serialization/SerializationRegistry.d.ts.map +1 -0
- package/dist/esm/core/serialization/SerializationRegistry.js +108 -0
- package/dist/esm/core/serialization/SerializationRegistry.js.map +1 -0
- package/dist/esm/core/serialization/commonFields.d.ts +20 -0
- package/dist/esm/core/serialization/commonFields.d.ts.map +1 -0
- package/dist/esm/core/serialization/commonFields.js +149 -0
- package/dist/esm/core/serialization/commonFields.js.map +1 -0
- package/dist/esm/core/serialization/coreSerializers.d.ts +9 -0
- package/dist/esm/core/serialization/coreSerializers.d.ts.map +1 -0
- package/dist/esm/core/serialization/coreSerializers.js +101 -0
- package/dist/esm/core/serialization/coreSerializers.js.map +1 -0
- package/dist/esm/core/serialization/index.d.ts +6 -0
- package/dist/esm/core/serialization/index.d.ts.map +1 -0
- package/dist/esm/core/serialization/read.d.ts +65 -0
- package/dist/esm/core/serialization/read.d.ts.map +1 -0
- package/dist/esm/core/serialization/read.js +48 -0
- package/dist/esm/core/serialization/read.js.map +1 -0
- package/dist/esm/core/serialization/renderingSerializers.d.ts +7 -0
- package/dist/esm/core/serialization/renderingSerializers.d.ts.map +1 -0
- package/dist/esm/core/serialization/renderingSerializers.js +311 -0
- package/dist/esm/core/serialization/renderingSerializers.js.map +1 -0
- package/dist/esm/core/serialization/serialize.d.ts +56 -0
- package/dist/esm/core/serialization/serialize.d.ts.map +1 -0
- package/dist/esm/core/serialization/serialize.js +144 -0
- package/dist/esm/core/serialization/serialize.js.map +1 -0
- package/dist/esm/core/serialization/serializerHelpers.d.ts +46 -0
- package/dist/esm/core/serialization/serializerHelpers.d.ts.map +1 -0
- package/dist/esm/core/serialization/serializerHelpers.js +161 -0
- package/dist/esm/core/serialization/serializerHelpers.js.map +1 -0
- package/dist/esm/core/serialization/types.d.ts +49 -0
- package/dist/esm/core/serialization/types.d.ts.map +1 -0
- package/dist/esm/core/serialization/types.js +9 -0
- package/dist/esm/core/serialization/types.js.map +1 -0
- package/dist/esm/core/serialization/uiSerializers.d.ts +7 -0
- package/dist/esm/core/serialization/uiSerializers.d.ts.map +1 -0
- package/dist/esm/core/serialization/uiSerializers.js +206 -0
- package/dist/esm/core/serialization/uiSerializers.js.map +1 -0
- package/dist/esm/core/types.d.ts +1 -1
- package/dist/esm/core/types.d.ts.map +1 -1
- package/dist/esm/core/utils.d.ts +1 -16
- package/dist/esm/core/utils.d.ts.map +1 -1
- package/dist/esm/core/utils.js +2 -100
- package/dist/esm/core/utils.js.map +1 -1
- package/dist/esm/debug/PerformanceLayer.js +8 -9
- package/dist/esm/debug/PerformanceLayer.js.map +1 -1
- package/dist/esm/debug/PointerStackLayer.d.ts.map +1 -1
- package/dist/esm/debug/PointerStackLayer.js +9 -6
- package/dist/esm/debug/PointerStackLayer.js.map +1 -1
- package/dist/esm/debug/RenderPassInspectorLayer.d.ts.map +1 -1
- package/dist/esm/debug/RenderPassInspectorLayer.js +19 -12
- package/dist/esm/debug/RenderPassInspectorLayer.js.map +1 -1
- package/dist/esm/extensions/Extension.d.ts +78 -11
- package/dist/esm/extensions/Extension.d.ts.map +1 -1
- package/dist/esm/extensions/ExtensionRegistry.d.ts.map +1 -1
- package/dist/esm/extensions/ExtensionRegistry.js.map +1 -1
- package/dist/esm/extensions/materialize.d.ts +9 -1
- package/dist/esm/extensions/materialize.d.ts.map +1 -1
- package/dist/esm/extensions/materialize.js +17 -2
- package/dist/esm/extensions/materialize.js.map +1 -1
- package/dist/esm/extensions/snapshot.d.ts +14 -3
- package/dist/esm/extensions/snapshot.d.ts.map +1 -1
- package/dist/esm/extensions/snapshot.js +51 -14
- package/dist/esm/extensions/snapshot.js.map +1 -1
- package/dist/esm/index.d.ts +2 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +37 -54
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/input/FocusManager.d.ts +59 -0
- package/dist/esm/input/FocusManager.d.ts.map +1 -0
- package/dist/esm/input/FocusManager.js +175 -0
- package/dist/esm/input/FocusManager.js.map +1 -0
- package/dist/esm/input/Gamepad.d.ts.map +1 -1
- package/dist/esm/input/Gamepad.js +8 -4
- package/dist/esm/input/Gamepad.js.map +1 -1
- package/dist/esm/input/GamepadAxis.js +2 -2
- package/dist/esm/input/GamepadDefinitions.d.ts.map +1 -1
- package/dist/esm/input/GamepadDefinitions.js +6 -2
- package/dist/esm/input/GamepadDefinitions.js.map +1 -1
- package/dist/esm/input/GestureRecognizer.d.ts +1 -2
- package/dist/esm/input/GestureRecognizer.d.ts.map +1 -1
- package/dist/esm/input/GestureRecognizer.js +1 -3
- package/dist/esm/input/GestureRecognizer.js.map +1 -1
- package/dist/esm/input/InputBinding.js +3 -3
- package/dist/esm/input/InputBinding.js.map +1 -1
- package/dist/esm/input/InputManager.d.ts +7 -2
- package/dist/esm/input/InputManager.d.ts.map +1 -1
- package/dist/esm/input/InputManager.js +35 -21
- package/dist/esm/input/InputManager.js.map +1 -1
- package/dist/esm/input/InteractionManager.d.ts +67 -2
- package/dist/esm/input/InteractionManager.d.ts.map +1 -1
- package/dist/esm/input/InteractionManager.js +165 -41
- package/dist/esm/input/InteractionManager.js.map +1 -1
- package/dist/esm/input/KeyEvent.d.ts +25 -0
- package/dist/esm/input/KeyEvent.d.ts.map +1 -0
- package/dist/esm/input/KeyEvent.js +32 -0
- package/dist/esm/input/KeyEvent.js.map +1 -0
- package/dist/esm/input/Pointer.d.ts +21 -4
- package/dist/esm/input/Pointer.d.ts.map +1 -1
- package/dist/esm/input/Pointer.js +54 -15
- package/dist/esm/input/Pointer.js.map +1 -1
- package/dist/esm/input/index.d.ts +3 -1
- package/dist/esm/input/index.d.ts.map +1 -1
- package/dist/esm/math/AbstractVector.d.ts.map +1 -1
- package/dist/esm/math/AbstractVector.js +7 -2
- package/dist/esm/math/AbstractVector.js.map +1 -1
- package/dist/esm/math/Circle.d.ts.map +1 -1
- package/dist/esm/math/Circle.js +5 -1
- package/dist/esm/math/Circle.js.map +1 -1
- package/dist/esm/math/Line.d.ts +1 -1
- package/dist/esm/math/Line.d.ts.map +1 -1
- package/dist/esm/math/Line.js +1 -1
- package/dist/esm/math/Line.js.map +1 -1
- package/dist/esm/math/Matrix.d.ts.map +1 -1
- package/dist/esm/math/Matrix.js +6 -1
- package/dist/esm/math/Matrix.js.map +1 -1
- package/dist/esm/math/ObservableVector.d.ts +26 -8
- package/dist/esm/math/ObservableVector.d.ts.map +1 -1
- package/dist/esm/math/ObservableVector.js +24 -16
- package/dist/esm/math/ObservableVector.js.map +1 -1
- package/dist/esm/math/Polygon.d.ts +5 -0
- package/dist/esm/math/Polygon.d.ts.map +1 -1
- package/dist/esm/math/Polygon.js +27 -3
- package/dist/esm/math/Polygon.js.map +1 -1
- package/dist/esm/math/Random.d.ts +9 -9
- package/dist/esm/math/Random.d.ts.map +1 -1
- package/dist/esm/math/Random.js +46 -46
- package/dist/esm/math/Random.js.map +1 -1
- package/dist/esm/math/Rectangle.d.ts +11 -4
- package/dist/esm/math/Rectangle.d.ts.map +1 -1
- package/dist/esm/math/Rectangle.js +12 -6
- package/dist/esm/math/Rectangle.js.map +1 -1
- package/dist/esm/math/Vector.d.ts +1 -1
- package/dist/esm/math/Vector.d.ts.map +1 -1
- package/dist/esm/math/Vector.js +1 -1
- package/dist/esm/math/Vector.js.map +1 -1
- package/dist/esm/math/collision-detection.d.ts +42 -0
- package/dist/esm/math/collision-detection.d.ts.map +1 -1
- package/dist/esm/math/collision-detection.js +54 -4
- package/dist/esm/math/collision-detection.js.map +1 -1
- package/dist/esm/math/collision-primitives.d.ts.map +1 -1
- package/dist/esm/math/collision-primitives.js +4 -0
- package/dist/esm/math/collision-primitives.js.map +1 -1
- package/dist/esm/math/geometry.d.ts +26 -0
- package/dist/esm/math/geometry.d.ts.map +1 -1
- package/dist/esm/math/geometry.js +89 -2
- package/dist/esm/math/geometry.js.map +1 -1
- package/dist/esm/math/index.d.ts +7 -5
- package/dist/esm/math/index.d.ts.map +1 -1
- package/dist/esm/math/swept-collision.d.ts +13 -0
- package/dist/esm/math/swept-collision.d.ts.map +1 -1
- package/dist/esm/math/swept-collision.js +15 -1
- package/dist/esm/math/swept-collision.js.map +1 -1
- package/dist/esm/math/triangulate.d.ts.map +1 -1
- package/dist/esm/math/triangulate.js +9 -1
- package/dist/esm/math/triangulate.js.map +1 -1
- package/dist/esm/math/utils.d.ts +20 -0
- package/dist/esm/math/utils.d.ts.map +1 -1
- package/dist/esm/math/utils.js +18 -15
- package/dist/esm/math/utils.js.map +1 -1
- package/dist/esm/renderer-sdk.d.ts +2 -0
- package/dist/esm/renderer-sdk.d.ts.map +1 -1
- package/dist/esm/{rendering.js → renderer-sdk.js} +1 -1
- package/dist/esm/renderer-sdk.js.map +1 -0
- package/dist/esm/rendering/CallbackRenderPass.js +1 -1
- package/dist/esm/rendering/CallbackRenderPass.js.map +1 -1
- package/dist/esm/rendering/Container.d.ts +3 -0
- package/dist/esm/rendering/Container.d.ts.map +1 -1
- package/dist/esm/rendering/Container.js +28 -5
- package/dist/esm/rendering/Container.js.map +1 -1
- package/dist/esm/rendering/Drawable.d.ts +47 -0
- package/dist/esm/rendering/Drawable.d.ts.map +1 -1
- package/dist/esm/rendering/Drawable.js +88 -0
- package/dist/esm/rendering/Drawable.js.map +1 -1
- package/dist/esm/rendering/GpuResourceAccountant.d.ts +65 -0
- package/dist/esm/rendering/GpuResourceAccountant.d.ts.map +1 -0
- package/dist/esm/rendering/GpuResourceAccountant.js +130 -0
- package/dist/esm/rendering/GpuResourceAccountant.js.map +1 -0
- package/dist/esm/rendering/RenderBackend.d.ts +15 -1
- package/dist/esm/rendering/RenderBackend.d.ts.map +1 -1
- package/dist/esm/rendering/RenderBatch.d.ts +55 -0
- package/dist/esm/rendering/RenderBatch.d.ts.map +1 -0
- package/dist/esm/rendering/RenderBatch.js +107 -0
- package/dist/esm/rendering/RenderBatch.js.map +1 -0
- package/dist/esm/rendering/RenderNode.d.ts +50 -10
- package/dist/esm/rendering/RenderNode.d.ts.map +1 -1
- package/dist/esm/rendering/RenderNode.js +113 -20
- package/dist/esm/rendering/RenderNode.js.map +1 -1
- package/dist/esm/rendering/RenderNodePass.js +2 -2
- package/dist/esm/rendering/RenderNodePass.js.map +1 -1
- package/dist/esm/rendering/RenderStats.d.ts +39 -0
- package/dist/esm/rendering/RenderStats.d.ts.map +1 -1
- package/dist/esm/rendering/RenderStats.js +14 -0
- package/dist/esm/rendering/RenderStats.js.map +1 -1
- package/dist/esm/rendering/RendererRegistry.d.ts.map +1 -1
- package/dist/esm/rendering/RendererRegistry.js +20 -23
- package/dist/esm/rendering/RendererRegistry.js.map +1 -1
- package/dist/esm/rendering/RenderingContext.d.ts +88 -4
- package/dist/esm/rendering/RenderingContext.d.ts.map +1 -1
- package/dist/esm/rendering/RenderingContext.js +107 -5
- package/dist/esm/rendering/RenderingContext.js.map +1 -1
- package/dist/esm/rendering/TransformBuffer.d.ts.map +1 -1
- package/dist/esm/rendering/TransformBuffer.js +2 -0
- package/dist/esm/rendering/TransformBuffer.js.map +1 -1
- package/dist/esm/rendering/View.d.ts +47 -15
- package/dist/esm/rendering/View.d.ts.map +1 -1
- package/dist/esm/rendering/View.js +44 -27
- package/dist/esm/rendering/View.js.map +1 -1
- package/dist/esm/rendering/coreRendererBindings.d.ts.map +1 -1
- package/dist/esm/rendering/coreRendererBindings.js +22 -0
- package/dist/esm/rendering/coreRendererBindings.js.map +1 -1
- package/dist/esm/rendering/filters/WebGpuShaderFilter.d.ts.map +1 -1
- package/dist/esm/rendering/filters/WebGpuShaderFilter.js +3 -1
- package/dist/esm/rendering/filters/WebGpuShaderFilter.js.map +1 -1
- package/dist/esm/rendering/geometry/Geometry.d.ts.map +1 -1
- package/dist/esm/rendering/geometry/Geometry.js +4 -2
- package/dist/esm/rendering/geometry/Geometry.js.map +1 -1
- package/dist/esm/rendering/gradient/Gradient.d.ts.map +1 -1
- package/dist/esm/rendering/gradient/Gradient.js +7 -2
- package/dist/esm/rendering/gradient/Gradient.js.map +1 -1
- package/dist/esm/rendering/material/MaterialKey.d.ts.map +1 -1
- package/dist/esm/rendering/material/MaterialKey.js +2 -0
- package/dist/esm/rendering/material/MaterialKey.js.map +1 -1
- package/dist/esm/rendering/material/ShaderSource.js +6 -0
- package/dist/esm/rendering/material/ShaderSource.js.map +1 -1
- package/dist/esm/rendering/mesh/ImmediateMesh.d.ts +48 -0
- package/dist/esm/rendering/mesh/ImmediateMesh.d.ts.map +1 -0
- package/dist/esm/rendering/mesh/ImmediateMesh.js +85 -0
- package/dist/esm/rendering/mesh/ImmediateMesh.js.map +1 -0
- package/dist/esm/rendering/mesh/Mesh.d.ts +29 -6
- package/dist/esm/rendering/mesh/Mesh.d.ts.map +1 -1
- package/dist/esm/rendering/mesh/Mesh.js +40 -13
- package/dist/esm/rendering/mesh/Mesh.js.map +1 -1
- package/dist/esm/rendering/pixelSnap.d.ts +219 -0
- package/dist/esm/rendering/pixelSnap.d.ts.map +1 -0
- package/dist/esm/rendering/pixelSnap.js +187 -0
- package/dist/esm/rendering/pixelSnap.js.map +1 -0
- package/dist/esm/rendering/plan/RenderCommand.d.ts +31 -9
- package/dist/esm/rendering/plan/RenderCommand.d.ts.map +1 -1
- package/dist/esm/rendering/plan/RenderCommand.js +23 -21
- package/dist/esm/rendering/plan/RenderCommand.js.map +1 -1
- package/dist/esm/rendering/plan/RenderEffectExecutor.d.ts.map +1 -1
- package/dist/esm/rendering/plan/RenderEffectExecutor.js +1 -0
- package/dist/esm/rendering/plan/RenderEffectExecutor.js.map +1 -1
- package/dist/esm/rendering/plan/RenderInstruction.d.ts +7 -37
- package/dist/esm/rendering/plan/RenderInstruction.d.ts.map +1 -1
- package/dist/esm/rendering/plan/RenderPlanBuilder.d.ts +17 -2
- package/dist/esm/rendering/plan/RenderPlanBuilder.d.ts.map +1 -1
- package/dist/esm/rendering/plan/RenderPlanBuilder.js +132 -46
- package/dist/esm/rendering/plan/RenderPlanBuilder.js.map +1 -1
- package/dist/esm/rendering/plan/RenderPlanOptimizer.d.ts.map +1 -1
- package/dist/esm/rendering/plan/RenderPlanOptimizer.js +31 -4
- package/dist/esm/rendering/plan/RenderPlanOptimizer.js.map +1 -1
- package/dist/esm/rendering/plan/RenderPlanPlayer.d.ts.map +1 -1
- package/dist/esm/rendering/plan/RenderPlanPlayer.js +70 -13
- package/dist/esm/rendering/plan/RenderPlanPlayer.js.map +1 -1
- package/dist/esm/rendering/plan/RenderScope.d.ts +16 -10
- package/dist/esm/rendering/plan/RenderScope.d.ts.map +1 -1
- package/dist/esm/rendering/primitives/Graphics.d.ts +6 -0
- package/dist/esm/rendering/primitives/Graphics.d.ts.map +1 -1
- package/dist/esm/rendering/primitives/Graphics.js +17 -1
- package/dist/esm/rendering/primitives/Graphics.js.map +1 -1
- package/dist/esm/rendering/{index.d.ts → public.d.ts} +13 -30
- package/dist/esm/rendering/public.d.ts.map +1 -0
- package/dist/esm/rendering/shader/ShaderAttribute.d.ts.map +1 -1
- package/dist/esm/rendering/shader/ShaderAttribute.js +2 -0
- package/dist/esm/rendering/shader/ShaderAttribute.js.map +1 -1
- package/dist/esm/rendering/sprite/AnimatedSprite.d.ts +11 -0
- package/dist/esm/rendering/sprite/AnimatedSprite.d.ts.map +1 -1
- package/dist/esm/rendering/sprite/AnimatedSprite.js +24 -2
- package/dist/esm/rendering/sprite/AnimatedSprite.js.map +1 -1
- package/dist/esm/rendering/sprite/NineSliceSprite.d.ts +69 -0
- package/dist/esm/rendering/sprite/NineSliceSprite.d.ts.map +1 -0
- package/dist/esm/rendering/sprite/NineSliceSprite.js +206 -0
- package/dist/esm/rendering/sprite/NineSliceSprite.js.map +1 -0
- package/dist/esm/rendering/sprite/RepeatingSprite.d.ts +120 -0
- package/dist/esm/rendering/sprite/RepeatingSprite.d.ts.map +1 -0
- package/dist/esm/rendering/sprite/RepeatingSprite.js +277 -0
- package/dist/esm/rendering/sprite/RepeatingSprite.js.map +1 -0
- package/dist/esm/rendering/sprite/Sprite.d.ts +13 -0
- package/dist/esm/rendering/sprite/Sprite.d.ts.map +1 -1
- package/dist/esm/rendering/sprite/Sprite.js +53 -3
- package/dist/esm/rendering/sprite/Sprite.js.map +1 -1
- package/dist/esm/rendering/sprite/nineSlice.d.ts +53 -0
- package/dist/esm/rendering/sprite/nineSlice.d.ts.map +1 -0
- package/dist/esm/rendering/sprite/nineSlice.js +334 -0
- package/dist/esm/rendering/sprite/nineSlice.js.map +1 -0
- package/dist/esm/rendering/sprite/repeatingSpritePlan.d.ts +57 -0
- package/dist/esm/rendering/sprite/repeatingSpritePlan.d.ts.map +1 -0
- package/dist/esm/rendering/sprite/repeatingSpritePlan.js +156 -0
- package/dist/esm/rendering/sprite/repeatingSpritePlan.js.map +1 -0
- package/dist/esm/rendering/text/BitmapText.d.ts +2 -0
- package/dist/esm/rendering/text/BitmapText.d.ts.map +1 -1
- package/dist/esm/rendering/text/BitmapText.js +4 -0
- package/dist/esm/rendering/text/BitmapText.js.map +1 -1
- package/dist/esm/rendering/text/GlyphAtlas.d.ts.map +1 -1
- package/dist/esm/rendering/text/GlyphAtlas.js +2 -1
- package/dist/esm/rendering/text/GlyphAtlas.js.map +1 -1
- package/dist/esm/rendering/text/GlyphAtlasPool.d.ts +8 -1
- package/dist/esm/rendering/text/GlyphAtlasPool.d.ts.map +1 -1
- package/dist/esm/rendering/text/GlyphAtlasPool.js +9 -12
- package/dist/esm/rendering/text/GlyphAtlasPool.js.map +1 -1
- package/dist/esm/rendering/text/GlyphSdf.d.ts.map +1 -1
- package/dist/esm/rendering/text/GlyphSdf.js +5 -1
- package/dist/esm/rendering/text/GlyphSdf.js.map +1 -1
- package/dist/esm/rendering/text/HTMLText.d.ts.map +1 -1
- package/dist/esm/rendering/text/HTMLText.js +1 -0
- package/dist/esm/rendering/text/HTMLText.js.map +1 -1
- package/dist/esm/rendering/text/Text.d.ts +17 -6
- package/dist/esm/rendering/text/Text.d.ts.map +1 -1
- package/dist/esm/rendering/text/Text.js +7 -12
- package/dist/esm/rendering/text/Text.js.map +1 -1
- package/dist/esm/rendering/text/TextLayout.d.ts.map +1 -1
- package/dist/esm/rendering/text/TextLayout.js +4 -18
- package/dist/esm/rendering/text/TextLayout.js.map +1 -1
- package/dist/esm/rendering/texture/DataTexture.js +2 -2
- package/dist/esm/rendering/texture/DataTexture.js.map +1 -1
- package/dist/esm/rendering/texture/Texture.d.ts +6 -0
- package/dist/esm/rendering/texture/Texture.d.ts.map +1 -1
- package/dist/esm/rendering/texture/Texture.js +8 -0
- package/dist/esm/rendering/texture/Texture.js.map +1 -1
- package/dist/esm/rendering/texture/TextureRegion.d.ts +100 -0
- package/dist/esm/rendering/texture/TextureRegion.d.ts.map +1 -0
- package/dist/esm/rendering/texture/TextureRegion.js +144 -0
- package/dist/esm/rendering/texture/TextureRegion.js.map +1 -0
- package/dist/esm/rendering/texture/repeat.d.ts +96 -0
- package/dist/esm/rendering/texture/repeat.d.ts.map +1 -0
- package/dist/esm/rendering/texture/repeat.js +158 -0
- package/dist/esm/rendering/texture/repeat.js.map +1 -0
- package/dist/esm/rendering/types.d.ts +11 -0
- package/dist/esm/rendering/types.d.ts.map +1 -1
- package/dist/esm/rendering/types.js +11 -0
- package/dist/esm/rendering/types.js.map +1 -1
- package/dist/esm/rendering/video/Video.d.ts +7 -3
- package/dist/esm/rendering/video/Video.d.ts.map +1 -1
- package/dist/esm/rendering/video/Video.js +7 -3
- package/dist/esm/rendering/video/Video.js.map +1 -1
- package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.d.ts.map +1 -1
- package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js +2 -2
- package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts +41 -2
- package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2Backend.js +137 -8
- package/dist/esm/rendering/webgl2/WebGl2Backend.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.d.ts.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.js +2 -2
- package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.d.ts +17 -0
- package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.d.ts.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.js +122 -38
- package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2NineSliceSpriteRenderer.d.ts +32 -0
- package/dist/esm/rendering/webgl2/WebGl2NineSliceSpriteRenderer.d.ts.map +1 -0
- package/dist/esm/rendering/webgl2/WebGl2NineSliceSpriteRenderer.js +309 -0
- package/dist/esm/rendering/webgl2/WebGl2NineSliceSpriteRenderer.js.map +1 -0
- package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.d.ts +16 -1
- package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.d.ts.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.js +32 -1
- package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2RepeatingSpriteRenderer.d.ts +49 -0
- package/dist/esm/rendering/webgl2/WebGl2RepeatingSpriteRenderer.d.ts.map +1 -0
- package/dist/esm/rendering/webgl2/WebGl2RepeatingSpriteRenderer.js +539 -0
- package/dist/esm/rendering/webgl2/WebGl2RepeatingSpriteRenderer.js.map +1 -0
- package/dist/esm/rendering/webgl2/WebGl2ShaderBlock.d.ts.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2ShaderBlock.js +14 -3
- package/dist/esm/rendering/webgl2/WebGl2ShaderBlock.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2ShaderMappings.js +3 -3
- package/dist/esm/rendering/webgl2/WebGl2ShaderMappings.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2ShaderProgram.d.ts.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2ShaderProgram.js +11 -2
- package/dist/esm/rendering/webgl2/WebGl2ShaderProgram.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.d.ts +9 -0
- package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.d.ts.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js +29 -4
- package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2StencilClipper.d.ts.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2StencilClipper.js +3 -2
- package/dist/esm/rendering/webgl2/WebGl2StencilClipper.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2TextRenderer.d.ts.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js +10 -4
- package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts +39 -3
- package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuBackend.js +120 -12
- package/dist/esm/rendering/webgpu/WebGpuBackend.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuBlendState.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuBlendState.js +3 -0
- package/dist/esm/rendering/webgpu/WebGpuBlendState.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.d.ts +13 -0
- package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js +102 -24
- package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.d.ts +36 -0
- package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.d.ts.map +1 -0
- package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.js +363 -0
- package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.js.map +1 -0
- package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.d.ts +52 -0
- package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.d.ts.map +1 -0
- package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.js +566 -0
- package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.js.map +1 -0
- package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts +9 -0
- package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js +30 -6
- package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuStencilClipper.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuStencilClipper.js +1 -0
- package/dist/esm/rendering/webgpu/WebGpuStencilClipper.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuTextRenderer.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js +19 -7
- package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuTransformStorage.d.ts +16 -4
- package/dist/esm/rendering/webgpu/WebGpuTransformStorage.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js +26 -6
- package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js.map +1 -1
- package/dist/esm/rendering/webgpu/compute/WebGpuComputePipeline.js +1 -1
- package/dist/esm/rendering/webgpu/compute/WebGpuComputePipeline.js.map +1 -1
- package/dist/esm/rendering/webgpu/compute/WebGpuStorageBuffer.d.ts +7 -0
- package/dist/esm/rendering/webgpu/compute/WebGpuStorageBuffer.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/compute/WebGpuStorageBuffer.js +8 -0
- package/dist/esm/rendering/webgpu/compute/WebGpuStorageBuffer.js.map +1 -1
- package/dist/esm/resources/Asset.d.ts +1 -1
- package/dist/esm/resources/Asset.d.ts.map +1 -1
- package/dist/esm/resources/Asset.js +0 -2
- package/dist/esm/resources/Asset.js.map +1 -1
- package/dist/esm/resources/AssetContainer.d.ts +75 -0
- package/dist/esm/resources/AssetContainer.d.ts.map +1 -0
- package/dist/esm/resources/AssetContainer.js +100 -0
- package/dist/esm/resources/AssetContainer.js.map +1 -0
- package/dist/esm/resources/AssetDefinitions.d.ts +3 -3
- package/dist/esm/resources/AssetDefinitions.d.ts.map +1 -1
- package/dist/esm/resources/Assets.d.ts.map +1 -1
- package/dist/esm/resources/Assets.js +0 -1
- package/dist/esm/resources/Assets.js.map +1 -1
- package/dist/esm/resources/FactoryRegistry.d.ts.map +1 -1
- package/dist/esm/resources/FactoryRegistry.js +14 -23
- package/dist/esm/resources/FactoryRegistry.js.map +1 -1
- package/dist/esm/resources/IndexedDbDatabase.d.ts.map +1 -1
- package/dist/esm/resources/IndexedDbDatabase.js +8 -1
- package/dist/esm/resources/IndexedDbDatabase.js.map +1 -1
- package/dist/esm/resources/IndexedDbKeyValueStore.d.ts +37 -0
- package/dist/esm/resources/IndexedDbKeyValueStore.d.ts.map +1 -0
- package/dist/esm/resources/IndexedDbKeyValueStore.js +58 -0
- package/dist/esm/resources/IndexedDbKeyValueStore.js.map +1 -0
- package/dist/esm/resources/KeyValueStore.d.ts +31 -0
- package/dist/esm/resources/KeyValueStore.d.ts.map +1 -0
- package/dist/esm/resources/Loader.d.ts +78 -10
- package/dist/esm/resources/Loader.d.ts.map +1 -1
- package/dist/esm/resources/Loader.js +119 -15
- package/dist/esm/resources/Loader.js.map +1 -1
- package/dist/esm/resources/MemoryStore.d.ts +17 -0
- package/dist/esm/resources/MemoryStore.d.ts.map +1 -0
- package/dist/esm/resources/MemoryStore.js +30 -0
- package/dist/esm/resources/MemoryStore.js.map +1 -0
- package/dist/esm/resources/WebStorageStore.d.ts +40 -0
- package/dist/esm/resources/WebStorageStore.d.ts.map +1 -0
- package/dist/esm/resources/WebStorageStore.js +84 -0
- package/dist/esm/resources/WebStorageStore.js.map +1 -0
- package/dist/esm/resources/coreAssetBindings.d.ts.map +1 -1
- package/dist/esm/resources/coreAssetBindings.js +16 -5
- package/dist/esm/resources/coreAssetBindings.js.map +1 -1
- package/dist/esm/resources/factories/BmFontFactory.js +4 -4
- package/dist/esm/resources/factories/BmFontFactory.js.map +1 -1
- package/dist/esm/resources/factories/MusicFactory.d.ts +9 -9
- package/dist/esm/resources/factories/MusicFactory.d.ts.map +1 -1
- package/dist/esm/resources/factories/MusicFactory.js +7 -7
- package/dist/esm/resources/factories/MusicFactory.js.map +1 -1
- package/dist/esm/resources/factories/SoundFactory.js +2 -2
- package/dist/esm/resources/factories/SoundFactory.js.map +1 -1
- package/dist/esm/resources/factories/SubtitleFactory.d.ts +11 -1
- package/dist/esm/resources/factories/SubtitleFactory.d.ts.map +1 -1
- package/dist/esm/resources/factories/SubtitleFactory.js +13 -9
- package/dist/esm/resources/factories/SubtitleFactory.js.map +1 -1
- package/dist/esm/resources/index.d.ts +51 -34
- package/dist/esm/resources/index.d.ts.map +1 -1
- package/dist/esm/resources/utils.js +4 -4
- package/dist/esm/resources/utils.js.map +1 -1
- package/dist/esm/ui/Button.d.ts +54 -0
- package/dist/esm/ui/Button.d.ts.map +1 -0
- package/dist/esm/ui/Button.js +139 -0
- package/dist/esm/ui/Button.js.map +1 -0
- package/dist/esm/ui/Label.d.ts +17 -0
- package/dist/esm/ui/Label.d.ts.map +1 -0
- package/dist/esm/ui/Label.js +37 -0
- package/dist/esm/ui/Label.js.map +1 -0
- package/dist/esm/ui/Panel.d.ts +38 -0
- package/dist/esm/ui/Panel.d.ts.map +1 -0
- package/dist/esm/ui/Panel.js +61 -0
- package/dist/esm/ui/Panel.js.map +1 -0
- package/dist/esm/ui/ProgressBar.d.ts +37 -0
- package/dist/esm/ui/ProgressBar.d.ts.map +1 -0
- package/dist/esm/ui/ProgressBar.js +76 -0
- package/dist/esm/ui/ProgressBar.js.map +1 -0
- package/dist/esm/ui/Stack.d.ts +34 -0
- package/dist/esm/ui/Stack.d.ts.map +1 -0
- package/dist/esm/ui/Stack.js +69 -0
- package/dist/esm/ui/Stack.js.map +1 -0
- package/dist/esm/ui/UIRoot.d.ts +31 -0
- package/dist/esm/ui/UIRoot.d.ts.map +1 -0
- package/dist/esm/ui/UIRoot.js +49 -0
- package/dist/esm/ui/UIRoot.js.map +1 -0
- package/dist/esm/ui/Widget.d.ts +45 -0
- package/dist/esm/ui/Widget.d.ts.map +1 -0
- package/dist/esm/ui/Widget.js +113 -0
- package/dist/esm/ui/Widget.js.map +1 -0
- package/dist/esm/ui/index.d.ts +13 -0
- package/dist/esm/ui/index.d.ts.map +1 -0
- package/dist/exo.debug.esm.js +1 -948
- package/dist/exo.debug.esm.js.map +1 -1
- package/dist/exo.esm.js +1 -37555
- package/dist/exo.esm.js.map +1 -1
- package/package.json +31 -13
- package/dist/esm/audio/AbstractMedia.d.ts +0 -75
- package/dist/esm/audio/AbstractMedia.d.ts.map +0 -1
- package/dist/esm/audio/AbstractMedia.js +0 -179
- package/dist/esm/audio/AbstractMedia.js.map +0 -1
- package/dist/esm/audio/AudioAnalyser.d.ts +0 -128
- package/dist/esm/audio/AudioAnalyser.d.ts.map +0 -1
- package/dist/esm/audio/AudioAnalyser.js +0 -473
- package/dist/esm/audio/AudioAnalyser.js.map +0 -1
- package/dist/esm/audio/AudioFilter.d.ts +0 -17
- package/dist/esm/audio/AudioFilter.d.ts.map +0 -1
- package/dist/esm/audio/AudioFilter.js +0 -15
- package/dist/esm/audio/AudioFilter.js.map +0 -1
- package/dist/esm/audio/BeatDetector.d.ts +0 -207
- package/dist/esm/audio/BeatDetector.d.ts.map +0 -1
- package/dist/esm/audio/BeatDetector.js +0 -424
- package/dist/esm/audio/BeatDetector.js.map +0 -1
- package/dist/esm/audio/Media.d.ts +0 -37
- package/dist/esm/audio/Media.d.ts.map +0 -1
- package/dist/esm/audio/Music.d.ts +0 -42
- package/dist/esm/audio/Music.d.ts.map +0 -1
- package/dist/esm/audio/Music.js +0 -164
- package/dist/esm/audio/Music.js.map +0 -1
- package/dist/esm/audio/OscillatorSound.d.ts +0 -100
- package/dist/esm/audio/OscillatorSound.d.ts.map +0 -1
- package/dist/esm/audio/OscillatorSound.js +0 -346
- package/dist/esm/audio/OscillatorSound.js.map +0 -1
- package/dist/esm/audio/dsp/fft.d.ts +0 -23
- package/dist/esm/audio/dsp/fft.d.ts.map +0 -1
- package/dist/esm/audio/dsp/mel.d.ts +0 -44
- package/dist/esm/audio/dsp/mel.d.ts.map +0 -1
- package/dist/esm/audio/dsp/mel.js +0 -70
- package/dist/esm/audio/dsp/mel.js.map +0 -1
- package/dist/esm/audio/dsp/tempogram.d.ts +0 -52
- package/dist/esm/audio/dsp/tempogram.d.ts.map +0 -1
- package/dist/esm/audio/filters/ChorusFilter.d.ts +0 -54
- package/dist/esm/audio/filters/ChorusFilter.d.ts.map +0 -1
- package/dist/esm/audio/filters/ChorusFilter.js +0 -155
- package/dist/esm/audio/filters/ChorusFilter.js.map +0 -1
- package/dist/esm/audio/filters/CompressorFilter.d.ts +0 -54
- package/dist/esm/audio/filters/CompressorFilter.d.ts.map +0 -1
- package/dist/esm/audio/filters/CompressorFilter.js +0 -123
- package/dist/esm/audio/filters/CompressorFilter.js.map +0 -1
- package/dist/esm/audio/filters/DelayFilter.d.ts +0 -36
- package/dist/esm/audio/filters/DelayFilter.d.ts.map +0 -1
- package/dist/esm/audio/filters/DelayFilter.js +0 -114
- package/dist/esm/audio/filters/DelayFilter.js.map +0 -1
- package/dist/esm/audio/filters/DuckingFilter.d.ts +0 -45
- package/dist/esm/audio/filters/DuckingFilter.d.ts.map +0 -1
- package/dist/esm/audio/filters/DuckingFilter.js +0 -172
- package/dist/esm/audio/filters/DuckingFilter.js.map +0 -1
- package/dist/esm/audio/filters/EqualizerFilter.d.ts +0 -51
- package/dist/esm/audio/filters/EqualizerFilter.d.ts.map +0 -1
- package/dist/esm/audio/filters/EqualizerFilter.js +0 -138
- package/dist/esm/audio/filters/EqualizerFilter.js.map +0 -1
- package/dist/esm/audio/filters/GranularFilter.d.ts +0 -63
- package/dist/esm/audio/filters/GranularFilter.d.ts.map +0 -1
- package/dist/esm/audio/filters/GranularFilter.js +0 -107
- package/dist/esm/audio/filters/GranularFilter.js.map +0 -1
- package/dist/esm/audio/filters/PitchShiftFilter.d.ts +0 -45
- package/dist/esm/audio/filters/PitchShiftFilter.d.ts.map +0 -1
- package/dist/esm/audio/filters/PitchShiftFilter.js +0 -66
- package/dist/esm/audio/filters/PitchShiftFilter.js.map +0 -1
- package/dist/esm/audio/filters/ReverbFilter.d.ts +0 -38
- package/dist/esm/audio/filters/ReverbFilter.d.ts.map +0 -1
- package/dist/esm/audio/filters/ReverbFilter.js +0 -122
- package/dist/esm/audio/filters/ReverbFilter.js.map +0 -1
- package/dist/esm/audio/filters/VocoderFilter.d.ts +0 -50
- package/dist/esm/audio/filters/VocoderFilter.d.ts.map +0 -1
- package/dist/esm/audio/filters/VocoderFilter.js +0 -94
- package/dist/esm/audio/filters/VocoderFilter.js.map +0 -1
- package/dist/esm/audio/filters/WorkletFilter.d.ts.map +0 -1
- package/dist/esm/audio/filters/WorkletFilter.js.map +0 -1
- package/dist/esm/audio/worklets/beat-detector.worklet.d.ts +0 -2
- package/dist/esm/audio/worklets/beat-detector.worklet.d.ts.map +0 -1
- package/dist/esm/audio/worklets/beat-detector.worklet.js +0 -647
- package/dist/esm/audio/worklets/beat-detector.worklet.js.map +0 -1
- package/dist/esm/audio/worklets/granular.worklet.d.ts +0 -2
- package/dist/esm/audio/worklets/granular.worklet.d.ts.map +0 -1
- package/dist/esm/audio/worklets/granular.worklet.js +0 -89
- package/dist/esm/audio/worklets/granular.worklet.js.map +0 -1
- package/dist/esm/audio/worklets/pitch-shift.worklet.d.ts +0 -2
- package/dist/esm/audio/worklets/pitch-shift.worklet.d.ts.map +0 -1
- package/dist/esm/audio/worklets/pitch-shift.worklet.js +0 -74
- package/dist/esm/audio/worklets/pitch-shift.worklet.js.map +0 -1
- package/dist/esm/audio/worklets/vocoder.worklet.d.ts +0 -2
- package/dist/esm/audio/worklets/vocoder.worklet.d.ts.map +0 -1
- package/dist/esm/audio/worklets/vocoder.worklet.js +0 -92
- package/dist/esm/audio/worklets/vocoder.worklet.js.map +0 -1
- package/dist/esm/input/internal/interactionManagerRegistry.d.ts +0 -10
- package/dist/esm/input/internal/interactionManagerRegistry.d.ts.map +0 -1
- package/dist/esm/input/internal/interactionManagerRegistry.js +0 -10
- package/dist/esm/input/internal/interactionManagerRegistry.js.map +0 -1
- package/dist/esm/rendering/index.d.ts.map +0 -1
- package/dist/esm/rendering/plan/RenderInstruction.js +0 -45
- package/dist/esm/rendering/plan/RenderInstruction.js.map +0 -1
- package/dist/esm/rendering.d.ts +0 -28
- package/dist/esm/rendering.d.ts.map +0 -1
- package/dist/esm/rendering.js.map +0 -1
- package/dist/esm/resources/JsonStore.d.ts +0 -19
- package/dist/esm/resources/JsonStore.d.ts.map +0 -1
- package/dist/esm/resources/JsonStore.js +0 -62
- package/dist/esm/resources/JsonStore.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,13 +4,265 @@ 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
|
-
## [
|
|
7
|
+
## [0.14.0] - 2026-06-26
|
|
8
|
+
|
|
9
|
+
The architecture and hardening release. Two new packages —
|
|
10
|
+
`@codexo/exojs-physics` (a native 2D physics world with a TGS-Soft solver) and
|
|
11
|
+
`@codexo/exojs-audio-fx` (the audio effect suite, extracted from core) — join the
|
|
12
|
+
lockstep set. Core gains a UI layer, scene-graph serialization with prefabs,
|
|
13
|
+
immediate-mode rendering, an ordered System scheduler, and a multi-instance-safe
|
|
14
|
+
foundation. The type system reaches its strictest configuration
|
|
15
|
+
(`noUncheckedIndexedAccess` + `exactOptionalPropertyTypes` across all packages,
|
|
16
|
+
zero `as any`, zero `ts-ignore`). Save-slot persistence moves to a new
|
|
17
|
+
`KeyValueStore` surface with three swappable backends. This is a pre-1.0 release
|
|
18
|
+
and includes intentional breaking changes; see **Changed** and **Removed**.
|
|
8
19
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
20
|
+
### Added
|
|
21
|
+
|
|
22
|
+
- **`@codexo/exojs-physics` — native 2D physics.** Circles, boxes, capsules, and
|
|
23
|
+
convex polygons; static, kinematic, and dynamic bodies; SAP broadphase; manifold
|
|
24
|
+
narrow-phase; warm-started TGS-Soft solver (sub-stepped soft-constraint, 2×2
|
|
25
|
+
block normal LCP) stable to 20+ box stacks. Contact graph, collision events,
|
|
26
|
+
spatial queries, scene-graph binding, and a `/debug` draw subpath. Allocation
|
|
27
|
+
measured and halved per step (V8 heap-sampler verified); the dynamics surface
|
|
28
|
+
(`velocity`, `applyForce`/`Torque`/`Impulse`) is fully public (#131, #140, #141,
|
|
29
|
+
#142, #143, #155, #156, #177, #180, #181).
|
|
30
|
+
- **`@codexo/exojs-audio-fx` — audio effect package.** Extracted from core: the
|
|
31
|
+
`*Effect` suite, `AudioAnalyser`, `BeatDetector`, worklets, and DSP helpers.
|
|
32
|
+
Core keeps the audio engine and effect base classes (#133).
|
|
33
|
+
- **UI core.** `scene.ui` with a `Widget`/`Label`/`Panel`/`Button`/`ProgressBar`
|
|
34
|
+
set, row/column/stack layout and anchoring, a `FocusManager` with keyboard
|
|
35
|
+
navigation, and `app.focus` (#138).
|
|
36
|
+
- **Scene-graph serialization.** `SerializationRegistry`, `NodeSerializer`, and
|
|
37
|
+
`Prefab` with `Scene.serialize`/`deserialize`; serializers for containers,
|
|
38
|
+
sprites, text, meshes, graphics, nine-slice/repeating sprites, animated sprites,
|
|
39
|
+
bitmap text, video, and UI widgets. Tilemap nodes serialize through an extension
|
|
40
|
+
binding. Pair with a `KeyValueStore` for save-slot persistence (#144, #145, #146,
|
|
41
|
+
#147, #148).
|
|
42
|
+
- **`KeyValueStore` interface + three backends.** `WebStorageStore` wraps
|
|
43
|
+
`localStorage`/`sessionStorage` with JSON serialization. `IndexedDbKeyValueStore`
|
|
44
|
+
stores values via structured clone — `Blob`s and `ArrayBuffer`s round-trip
|
|
45
|
+
natively. `MemoryStore` is an in-process `Map` for tests and ephemeral state.
|
|
46
|
+
All three share one `async` interface; swapping backends is a one-line change
|
|
47
|
+
(#178).
|
|
48
|
+
- **Binary asset containers.** `Loader.loadContainer(url)` fetches a single
|
|
49
|
+
archive, injects each entry directly into the cache, and triggers `onLoaded`
|
|
50
|
+
callbacks — one HTTP request in place of N individual asset fetches. A
|
|
51
|
+
`build-container` script bundles assets at build time (#179).
|
|
52
|
+
- **Immediate-mode rendering.** `RenderingContext.drawGeometry` for one-off
|
|
53
|
+
geometry and `RenderBatch` + `drawBatch` for instanced draws collapsing to a
|
|
54
|
+
single draw call (#150, #151, #159).
|
|
55
|
+
- **System scheduler.** `app.systems` and `scene.systems` run the core managers
|
|
56
|
+
as ordered systems with deterministic tick bands (#134).
|
|
57
|
+
- **Design-space coordinates.** Automatic DPR handling, letterbox sizing, and
|
|
58
|
+
`canvas`-mount / `sizingMode` options on `Application` (#130).
|
|
59
|
+
- **Typed tilemap object layers.** Object layers and queries converted from Tiled
|
|
60
|
+
object groups, plus an `ObjectKind` `as const` schema and a generic
|
|
61
|
+
`ObjectLayer<S>` with `byType`/`byKind`/`where` (#132, #157).
|
|
62
|
+
- **GPU resource accounting in `RenderStats`.** `gpuMemoryBytes` tracks an
|
|
63
|
+
accumulated VRAM estimate; `textureUploadBytes` and `bufferUploadBytes` count
|
|
64
|
+
bytes transferred each frame (#173).
|
|
65
|
+
- **Combined Tiled + physics examples** with an `ObjectLayer`→collider bridge
|
|
66
|
+
(#160), a rebuilt example catalog on a shared runtime helper kit, and a live
|
|
67
|
+
hero example with an expandable playground preview.
|
|
68
|
+
|
|
69
|
+
### Changed
|
|
70
|
+
|
|
71
|
+
- **Audio re-architecture.** `Sound`/`AudioStream`/`AudioGenerator` descriptors
|
|
72
|
+
with a voice capability matrix; the audio singleton is gone and `AudioFilter`
|
|
73
|
+
becomes `AudioEffect`. Playback defers until the autoplay gesture unlocks
|
|
74
|
+
audio (#133).
|
|
75
|
+
- **Multi-instance foundation.** `Destroyable`/`DisposalScope` for deterministic
|
|
76
|
+
teardown; `Interaction`, `Audio`, `Random`, and the serializer registry are
|
|
77
|
+
app-owned rather than process singletons; `ObservableVector` sheds per-node
|
|
78
|
+
closures (#133, #134, #154).
|
|
79
|
+
- **BREAKING — API hygiene.** Value-type footgun fixes (`Matrix.getInverse`,
|
|
80
|
+
`Color.toRgba`, honest `Rectangle` types), curated barrels, and namespaced
|
|
81
|
+
utilities (`MathUtils`, `MeshBuilder`, `Sweep`, `Collision`, …) (#135).
|
|
82
|
+
- **BREAKING — `Random` engine.** Mersenne Twister replaced with xoshiro128\*\*
|
|
83
|
+
and SplitMix32 seeding; the `iteration` getter is removed (#137).
|
|
84
|
+
- **BREAKING — physics body construction.** `new PhysicsBody({ colliders })` +
|
|
85
|
+
`world.add`/`world.attach` replace `createBody`/`createStaticCollider` (#156).
|
|
86
|
+
- **BREAKING — physics solver config.** `velocityIterations`/`positionIterations`
|
|
87
|
+
replaced by `subStepCount` (default 4), `contactHertz` (default 30), and
|
|
88
|
+
`dampingRatio` (default 10) for the TGS-Soft solver (#181).
|
|
89
|
+
- **BREAKING — rendering barrel.** Backend renderer internals move behind the
|
|
90
|
+
`@codexo/exojs/renderer-sdk` subpath; the root barrel is curated (#153).
|
|
91
|
+
- **BREAKING — `Text` constructor.** The multi-argument overload is removed in
|
|
92
|
+
favour of `new Text(text, options?)` (#165).
|
|
93
|
+
- **BREAKING — `System.update` signature.** All system `update` methods now
|
|
94
|
+
receive `(delta: Time)` (#164).
|
|
95
|
+
- **BREAKING — `SerializationRegistry` is app-owned.** Access through
|
|
96
|
+
`app.serializers`; the process-singleton accessor is removed (#164).
|
|
97
|
+
- **BREAKING — `noUncheckedIndexedAccess` + `exactOptionalPropertyTypes`
|
|
98
|
+
enabled.** Both flags are now `true` across all packages. Code that indexed
|
|
99
|
+
arrays without narrowing will need guards or non-null assertions (#171).
|
|
100
|
+
- **Render-plan performance.** `DrawCommand`, `MaterialKey`, and `ScopeEntry`
|
|
101
|
+
objects are pooled; static 1,000-sprite scenes shed ~55 % of per-frame
|
|
102
|
+
allocation. `RenderPlanOptimizer` overlap grouping goes O(n²) → O(n) via a
|
|
103
|
+
`Map`-based index — 10,000-sprite / 8-texture scenes optimize in ~2.3 ms vs
|
|
104
|
+
~14 ms (~6×), grouping bit-identical (#173, #175).
|
|
105
|
+
- **Production bundle size.** A `terser` `pure_funcs` pass strips dev-assert
|
|
106
|
+
calls from production builds; `exo.esm.js` shrinks from 1.66 MB to 625 KB
|
|
107
|
+
(#172).
|
|
108
|
+
- **Strict lint and type rules.** `noUnusedLocals`/`noUnusedParameters` enforced;
|
|
109
|
+
`@vitest/eslint-plugin` flags non-awaited promise assertions and focused tests;
|
|
110
|
+
explicit barrel re-exports replace wildcards throughout (#163, #166, #167, #168).
|
|
111
|
+
- **Site islands migrated from Lit to React** (#149); a shared `Registry<K,V>`
|
|
112
|
+
primitive backs constructor-keyed dispatch (#136).
|
|
113
|
+
|
|
114
|
+
### Removed
|
|
115
|
+
|
|
116
|
+
- **BREAKING — scene stack.** `SceneStackMode`, `SceneParticipation`,
|
|
117
|
+
`pushScene`, and `popScene` are removed in favor of one active scene with
|
|
118
|
+
`setScene`, fade transitions, and `scene.paused` (#139).
|
|
119
|
+
|
|
120
|
+
### Fixed
|
|
121
|
+
|
|
122
|
+
- Physics contact pair keys no longer collide past 65,536 body IDs (#155).
|
|
123
|
+
- New and mutated textures upload correctly after their first bind, and pointer
|
|
124
|
+
coordinates map to backing-store pixels when the canvas is scaled (#130).
|
|
125
|
+
- Deserialization validates the data boundary on entry — malformed or absent
|
|
126
|
+
fields no longer reach node constructors. `NineSliceSprite.slices` absent no
|
|
127
|
+
longer throws; non-object children in a serialized scene are silently skipped
|
|
128
|
+
(#177).
|
|
129
|
+
|
|
130
|
+
### Docs
|
|
131
|
+
|
|
132
|
+
- Text API guide corrected: stale property names removed, property table
|
|
133
|
+
rewritten, mutation-sync behaviour documented (#183).
|
|
134
|
+
- Storage and serialization guides written for the `KeyValueStore` surface (#183).
|
|
135
|
+
- `SceneManager` API page documents the single-scene, no-stack model (#183).
|
|
136
|
+
- Physics solver operating envelope characterised — mass-ratio ceiling (100:1) and
|
|
137
|
+
no-CCD disclaimer added to class docs, backed by `SG-MR3` and `SG-X5`
|
|
138
|
+
regression tests (#184).
|
|
139
|
+
- ADR on shared geometry with separate collision detection (#158) and an
|
|
140
|
+
immediate-mode rendering guide (#159).
|
|
141
|
+
|
|
142
|
+
## [0.13.0] - 2026-06-13
|
|
143
|
+
|
|
144
|
+
The scalable-sprites and tilemap release. `TextureRegion`, `NineSliceSprite`,
|
|
145
|
+
and `RepeatingSprite` bring nine-slice and tiled-repeat rendering to both
|
|
146
|
+
backends. `@codexo/exojs-tilemap` is introduced as a generic, format-independent
|
|
147
|
+
tilemap runtime foundation. `@codexo/exojs-tiled` is expanded from its v0.12
|
|
148
|
+
stub into the parsed Tiled source adapter and runtime conversion layer.
|
|
149
|
+
|
|
150
|
+
### Added
|
|
151
|
+
|
|
152
|
+
- **Scalable sprites.** `NineSliceSprite` renders a texture subdivided into
|
|
153
|
+
nine regions (four corners, four edges, and a centre) with per-edge repeat
|
|
154
|
+
modes (`stretch`, `repeat`, `mirror-repeat`) and size fits (`clip`, `round`).
|
|
155
|
+
Dedicated WebGL2 and WebGPU instanced renderers batch by texture and blend
|
|
156
|
+
mode. Source slices and destination borders are independently configured
|
|
157
|
+
through `edgeFit` and `centerFit` (#110).
|
|
158
|
+
|
|
159
|
+
- **`RepeatingSprite`** tiles a `Texture` or `TextureRegion` across a target
|
|
160
|
+
area with independent `modeX`/`modeY` (`stretch`, `repeat`, `mirror-repeat`)
|
|
161
|
+
and `fitX`/`fitY` (`clip`, `round`). A bare `Texture` uses the shader/sampler
|
|
162
|
+
path; a `TextureRegion` uses the geometry path. Dedicated WebGL2 and WebGPU
|
|
163
|
+
renderers batch by texture and blend mode; sampler and strategy changes
|
|
164
|
+
create additional batch boundaries (#111).
|
|
165
|
+
|
|
166
|
+
- **`TextureRegion`.** An immutable structural type identifying a sub-rectangle
|
|
167
|
+
of a `Texture` without duplicating GPU resources. Used by nine-slice and
|
|
168
|
+
repeating sprites, tilemap tiles, and any consumer that operates on a
|
|
169
|
+
sub-area of an atlas (#109).
|
|
170
|
+
|
|
171
|
+
- **Render-only pixel snapping.** `Drawable.pixelSnapMode` accepts `none`,
|
|
172
|
+
`position`, or `geometry`, snapping only the visual transform without
|
|
173
|
+
disturbing the logical model. The effective mode degrades automatically for
|
|
174
|
+
non-axis-aligned sprites (#116).
|
|
175
|
+
|
|
176
|
+
- **TransformBuffer upload coalescing.** `RenderPlanPlayer` prepares all
|
|
177
|
+
transforms for a render scope before draw execution. The first renderer
|
|
178
|
+
flush uploads the stable transform range; subsequent flushes reuse it
|
|
179
|
+
through the hash guard, eliminating repeated uploads of growing ranges
|
|
180
|
+
within a scope (#118).
|
|
181
|
+
|
|
182
|
+
- **Renderer performance benchmark harness.** Structural metric sweep for
|
|
183
|
+
`Sprite`, `NineSliceSprite`, `RepeatingSprite`, and `Tilemap` renderers
|
|
184
|
+
(WebGL2, recording fake GL context for deterministic GPU-free metrics).
|
|
185
|
+
Profiling mode gated behind `EXOJS_PERF_PROFILE` (#117).
|
|
186
|
+
|
|
187
|
+
- **`@codexo/exojs-tilemap` — generic tilemap runtime.** `TileMap` manages
|
|
188
|
+
tilesets, layers, and mutation. `TileLayer` holds a sparse packed-tile array
|
|
189
|
+
with configurable chunk dimensions (default 32×32). `TileSet` indexes tile
|
|
190
|
+
definitions by local ID. Scene-graph nodes (`TileMapNode`, `TileLayerNode`)
|
|
191
|
+
provide per-pixel positioning with `Container` children, chunk-level culling,
|
|
192
|
+
and `TileMapBand` for actor interleaving. `TileMapView` maps layer selections
|
|
193
|
+
to bands declaratively. Chunk rendering uses instanced WebGL2 and WebGPU
|
|
194
|
+
renderers batched by compatible state and tileset texture. `ReadonlyTileChunk`
|
|
195
|
+
is the public immutable chunk view (#112, #114, #115).
|
|
196
|
+
|
|
197
|
+
- **`@codexo/exojs-tiled` — Tiled map format adapter.** Loads finite orthogonal
|
|
198
|
+
TMJ/TSJ maps through `Loader.load(TileMap, 'map.tmj')` for a ready-to-use
|
|
199
|
+
runtime `TileMap` or `Loader.load(TiledMap, 'map.tmj')` for the structured,
|
|
200
|
+
dependency-resolved source model. `TiledMap` resolves external tileset
|
|
201
|
+
references, validates the source against the Tiled schema, and exposes
|
|
202
|
+
`toTileMap()` for synchronous runtime conversion. Supports multiple tilesets
|
|
203
|
+
(external and embedded), tile flip flags, custom properties, and sub-URL
|
|
204
|
+
resolution. Ships `tiledExtension` for one-line setup (#113).
|
|
205
|
+
|
|
206
|
+
- **Extension descriptor dependencies.** The `Extension` interface accepts
|
|
207
|
+
`dependencies?: readonly Extension[]`. Each dependency references another
|
|
208
|
+
extension descriptor object. Dependencies are materialised before dependents;
|
|
209
|
+
the snapshot resolver deduplicates the same descriptor object, rejects
|
|
210
|
+
same-ID/different-object conflicts, and detects cycles. This ensures
|
|
211
|
+
`@codexo/exojs-tiled`'s tilemap foundation is loaded before Tiled bindings
|
|
212
|
+
are registered (#107).
|
|
213
|
+
|
|
214
|
+
- **Typed declarative asset bindings.** `AssetBinding<Result, Options>` and
|
|
215
|
+
`AssetHandler<Result, Options>` carry typed result and option generics.
|
|
216
|
+
Handlers may provide `getIdentityKey(request)` to define deterministic
|
|
217
|
+
result-sensitive cache identity. The `Loader.load(type, path)` overloads
|
|
218
|
+
return the declared `Result` type without manual casting (#108).
|
|
219
|
+
|
|
220
|
+
### Fixed
|
|
221
|
+
|
|
222
|
+
- **Extension package CI path coverage.** A PR touching only extension-package
|
|
223
|
+
source no longer skips the unit, package-verify, and browser lanes (#120).
|
|
224
|
+
|
|
225
|
+
- **Package ESLint hardening.** Extension package source files are linted
|
|
226
|
+
with typed `@typescript-eslint` rules through `projectService`, resolving
|
|
227
|
+
the prior exit-code-2 crash. Package lint is enforced in CI alongside root
|
|
228
|
+
lint. Genuine import-sorting and type-annotation lint defects in extension
|
|
229
|
+
tests are fixed.
|
|
230
|
+
|
|
231
|
+
- **API documentation synchronisation.** `site/scripts/build-api.ts` now
|
|
232
|
+
processes `@codexo/exojs-tilemap` alongside the other official extension
|
|
233
|
+
packages. The `tilemap` subsystem appears in the API index and content
|
|
234
|
+
collection schema. A deterministic `docs:api:check` command verifies that
|
|
235
|
+
committed API docs match a fresh generation from source.
|
|
236
|
+
|
|
237
|
+
### Known Limitations
|
|
238
|
+
|
|
239
|
+
- **Infinite Tiled maps** are parsed but not converted to runtime `TileMap`
|
|
240
|
+
instances (internal chunk grid requires finite bounds).
|
|
241
|
+
- **Object/image/group layers** parse correctly but do not produce rendered
|
|
242
|
+
scene nodes — only tile layers are converted.
|
|
243
|
+
- **Tilemap atlas bleeding** may occur at tile edges with linear or mipmap
|
|
244
|
+
texture filtering when atlas tile regions lack sufficient padding or
|
|
245
|
+
extrusion, causing neighbouring texel bleeding.
|
|
246
|
+
- **No runtime autotiling.** Tiled terrain/wang sets are not evaluated.
|
|
247
|
+
- **Single-texture batching.** NineSlice, RepeatingSprite, and Tilemap
|
|
248
|
+
renderers support different textures, but they do not combine several
|
|
249
|
+
textures into a single multi-texture draw batch. Texture changes therefore
|
|
250
|
+
create batch boundaries. For RepeatingSprite, sampler and strategy changes
|
|
251
|
+
also create batch boundaries. For Tilemap, batches are grouped by compatible
|
|
252
|
+
state and tileset texture.
|
|
253
|
+
|
|
254
|
+
### Package Graph
|
|
255
|
+
|
|
256
|
+
After this release the published lockstep package set is:
|
|
257
|
+
|
|
258
|
+
```
|
|
259
|
+
@codexo/exojs 0.13.0
|
|
260
|
+
@codexo/exojs-particles 0.13.0 (peer @codexo/exojs 0.13.x)
|
|
261
|
+
@codexo/exojs-tilemap 0.13.0 (peer @codexo/exojs 0.13.x)
|
|
262
|
+
@codexo/exojs-tiled 0.13.0 (peer @codexo/exojs 0.13.x, dep @codexo/exojs-tilemap 0.13.0)
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
`create-exo-app` is independently versioned and not in engine lockstep.
|
|
14
266
|
|
|
15
267
|
## [0.12.0] - 2026-06-09
|
|
16
268
|
|
package/README.md
CHANGED
|
@@ -1,42 +1,67 @@
|
|
|
1
1
|
# ExoJS
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
A TypeScript-first 2D engine for games and interactive apps. Explicit scene graph, WebGPU/WebGL2 rendering, native physics, spatial audio, and a strict type system — measured and verified, not just claimed.
|
|
4
4
|
|
|
5
5
|
**[Guide](https://exoridus.github.io/ExoJS/en/guide/)** · **[API Reference](https://exoridus.github.io/ExoJS/en/api/)** · **[Playground](https://exoridus.github.io/ExoJS/en/playground/)**
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
> **Pre-1.0.** The public API is under active design — minor versions may include breaking changes. Pin exact versions in downstream projects. `1.0.0` marks the first stable API contract.
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
## Packages
|
|
10
|
+
|
|
11
|
+
| Package | Description |
|
|
12
|
+
| ------------------------- | ------------------------------------------------------------------ |
|
|
13
|
+
| `@codexo/exojs` | Core runtime — scene graph, rendering, audio, UI, serialization |
|
|
14
|
+
| `@codexo/exojs-physics` | Native 2D physics — shapes, constraints, TGS-Soft solver |
|
|
15
|
+
| `@codexo/exojs-particles` | GPU-driven particles (WebGPU compute) with CPU fallback |
|
|
16
|
+
| `@codexo/exojs-tilemap` | Format-independent tilemap runtime and object layers |
|
|
17
|
+
| `@codexo/exojs-tiled` | Tiled JSON adapter and scene-graph conversion |
|
|
18
|
+
| `@codexo/exojs-audio-fx` | Audio effects — biquad filters, analyser, beat detection, worklets |
|
|
10
19
|
|
|
11
20
|
## Features
|
|
12
21
|
|
|
13
|
-
|
|
14
|
-
- Scene stacking (`overlay` / `modal` / `opaque`) with input routing and fade transitions
|
|
15
|
-
- Typed `Loader` with manifest/bundle workflow (`defineAssetManifest`, `registerManifest`, `loadBundle`)
|
|
16
|
-
- Drawables: `Sprite`, `AnimatedSprite`, `Graphics`, `ParticleSystem`, `Text`, `Video`
|
|
17
|
-
- WebGPU-first rendering with automatic WebGL2 fallback
|
|
18
|
-
- GPU-driven particles (WebGPU compute) with a CPU fallback for WebGL2
|
|
19
|
-
- Rendering composition primitives (`RenderTexture`, `RenderPipeline`, filter chains, visual masks, cache-as-bitmap)
|
|
20
|
-
- Linear and radial gradients for `Graphics` fills and strokes (`fillStyle` / `strokeStyle`)
|
|
21
|
-
- View/camera helpers (`follow`, bounds clamp, shake, zoom)
|
|
22
|
-
- Audio with sprites, spatial panning, and frequency/waveform analysis
|
|
23
|
-
- Render stats (`submittedNodes`, `culledNodes`, `drawCalls`, `batches`, `renderPasses`, ...) and a benchmark harness
|
|
22
|
+
**Rendering**
|
|
24
23
|
|
|
25
|
-
|
|
24
|
+
- WebGPU-first with automatic WebGL2 fallback; force either backend with one option
|
|
25
|
+
- Drawables: `Sprite`, `AnimatedSprite`, `NineSliceSprite`, `RepeatingSprite`, `Graphics`, `Text` (SDF), `BitmapText`, `Video`
|
|
26
|
+
- Rendering composition: `RenderTexture`, `RenderPipeline`, filter chains, visual masks, cache-as-bitmap
|
|
27
|
+
- Immediate-mode rendering: one-off `drawGeometry` and instanced `RenderBatch` collapsing to a single draw call
|
|
28
|
+
- Linear and radial gradients, pixel snapping, view/camera helpers (`follow`, shake, zoom, bounds clamp)
|
|
29
|
+
- Render stats with GPU memory accounting (`gpuMemoryBytes`, texture/buffer upload bytes)
|
|
26
30
|
|
|
27
|
-
|
|
31
|
+
**Scene & UI**
|
|
28
32
|
|
|
29
|
-
-
|
|
30
|
-
-
|
|
31
|
-
|
|
32
|
-
-
|
|
33
|
-
|
|
34
|
-
-
|
|
35
|
-
-
|
|
36
|
-
-
|
|
37
|
-
-
|
|
38
|
-
|
|
39
|
-
|
|
33
|
+
- `Application`, `Scene`, `SceneManager` — one active scene with `setScene`, fade transitions, and `scene.paused`
|
|
34
|
+
- `scene.ui` — screen-fixed widget layer with `Label`, `Panel`, `Button`, `ProgressBar`, `Stack`, anchoring, and a `FocusManager` with keyboard and gamepad navigation
|
|
35
|
+
|
|
36
|
+
**Physics** (`@codexo/exojs-physics`)
|
|
37
|
+
|
|
38
|
+
- Circles, boxes, capsules, and convex polygons; static, kinematic, and dynamic bodies
|
|
39
|
+
- SAP broadphase, manifold narrow-phase, warm-started TGS-Soft solver (sub-stepped, stable to 20+ box stacks)
|
|
40
|
+
- Contact graph, collision events, spatial queries; allocation-free per step (V8-sampler verified)
|
|
41
|
+
- Scene-graph binding and a `/debug` draw subpath
|
|
42
|
+
|
|
43
|
+
**Audio**
|
|
44
|
+
|
|
45
|
+
- Voice capability matrix across `Sound`, `AudioStream`, and `AudioGenerator`
|
|
46
|
+
- Spatial panning, audio sprites, frequency and waveform analysis
|
|
47
|
+
- `@codexo/exojs-audio-fx`: `BiquadEffect`, `AudioAnalyser`, `BeatDetector`, worklets, and DSP helpers
|
|
48
|
+
|
|
49
|
+
**Assets & Storage**
|
|
50
|
+
|
|
51
|
+
- Typed `Loader` with manifest/bundle workflow (`defineAssetManifest`, `loadBundle`)
|
|
52
|
+
- Binary asset containers (`loader.loadContainer`) for bundled distribution
|
|
53
|
+
- Key-value persistence: `WebStorageStore` (localStorage/sessionStorage), `IndexedDbKeyValueStore` (structured-clone, binary-safe), `MemoryStore` (tests/ephemeral)
|
|
54
|
+
|
|
55
|
+
**Serialization**
|
|
56
|
+
|
|
57
|
+
- `Scene.serialize` / `deserialize` captures scene structure — nodes, drawables, UI, tilemap
|
|
58
|
+
- `SerializationRegistry` and `Prefab` for templates; pairs with any `KeyValueStore` for save-slot persistence
|
|
59
|
+
|
|
60
|
+
**Architecture**
|
|
61
|
+
|
|
62
|
+
- `noUncheckedIndexedAccess` + `exactOptionalPropertyTypes` across the full codebase — zero `as any`, zero `ts-ignore`
|
|
63
|
+
- Ordered `SystemRegistry` (`app.systems`, `scene.systems`) with deterministic tick bands
|
|
64
|
+
- Deterministic disposal via `Destroyable` / `DisposalScope`; all managers are app-owned, not process singletons
|
|
40
65
|
|
|
41
66
|
## Getting Started
|
|
42
67
|
|
|
@@ -68,8 +93,15 @@ npm run dev
|
|
|
68
93
|
npm install @codexo/exojs
|
|
69
94
|
```
|
|
70
95
|
|
|
71
|
-
ExoJS
|
|
72
|
-
|
|
96
|
+
ExoJS is ESM-only. Use `import` syntax with a modern bundler or runtime.
|
|
97
|
+
Optional packages install independently — add only what your project needs:
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
npm install @codexo/exojs-physics
|
|
101
|
+
npm install @codexo/exojs-particles
|
|
102
|
+
npm install @codexo/exojs-tilemap @codexo/exojs-tiled
|
|
103
|
+
npm install @codexo/exojs-audio-fx
|
|
104
|
+
```
|
|
73
105
|
|
|
74
106
|
## Quickstart
|
|
75
107
|
|
|
@@ -99,47 +131,41 @@ class HelloScene extends Scene {
|
|
|
99
131
|
}
|
|
100
132
|
}
|
|
101
133
|
|
|
102
|
-
const canvas = document.querySelector('canvas');
|
|
103
|
-
|
|
104
|
-
if (!canvas) {
|
|
105
|
-
throw new Error('Missing <canvas> element.');
|
|
106
|
-
}
|
|
107
|
-
|
|
108
134
|
const app = new Application({
|
|
109
|
-
canvas: {
|
|
110
|
-
element: canvas,
|
|
111
|
-
width: 800,
|
|
112
|
-
height: 600,
|
|
113
|
-
},
|
|
135
|
+
canvas: { element: document.querySelector('canvas')!, width: 800, height: 600 },
|
|
114
136
|
clearColor: Color.cornflowerBlue,
|
|
115
137
|
});
|
|
116
138
|
|
|
117
139
|
await app.start(new HelloScene());
|
|
118
140
|
```
|
|
119
141
|
|
|
120
|
-
|
|
142
|
+
See the [Guide](https://exoridus.github.io/ExoJS/en/guide/) for physics, audio, UI, and more, or browse the [live examples](https://exoridus.github.io/ExoJS/).
|
|
121
143
|
|
|
122
|
-
|
|
144
|
+
## Roadmap
|
|
123
145
|
|
|
124
|
-
|
|
146
|
+
Directional work toward the `1.0.0` API freeze. Priorities may shift — nothing here is a release commitment.
|
|
125
147
|
|
|
126
|
-
|
|
148
|
+
- Physics joints, sleeping, and CCD (ragdolls, vehicles, ropes, fast projectiles)
|
|
149
|
+
- W3C blend mode suite — multiply, screen, overlay, and the full non-separable set
|
|
150
|
+
- Additional scene transitions (slide, crossfade, custom)
|
|
151
|
+
- Screen-level post-processing (bloom, CRT, vignette, chromatic aberration)
|
|
152
|
+
- Path following with Bézier and Catmull-Rom splines
|
|
153
|
+
- Tween sequencer and coroutine helpers
|
|
154
|
+
- Aseprite and LDtk first-party adapters
|
|
155
|
+
- CDN/IIFE bundle for script-tag usage
|
|
156
|
+
- Localization primitive
|
|
157
|
+
- Final pre-1.0 API audit and stabilization pass
|
|
127
158
|
|
|
128
|
-
|
|
129
|
-
- falls back to WebGL2 if WebGPU is unavailable or initialization fails
|
|
159
|
+
## WebGPU and WebGL2
|
|
130
160
|
|
|
131
|
-
|
|
161
|
+
`Application` auto-selects the best available backend. Force one when needed:
|
|
132
162
|
|
|
133
163
|
```ts
|
|
134
164
|
new Application({ backend: { type: 'webgpu' } });
|
|
135
165
|
new Application({ backend: { type: 'webgl2' } });
|
|
136
|
-
new Application({ backend: { type: 'auto' } });
|
|
166
|
+
new Application({ backend: { type: 'auto' } }); // default
|
|
137
167
|
```
|
|
138
168
|
|
|
139
|
-
## Examples
|
|
140
|
-
|
|
141
|
-
The runnable live site (Astro + Lit + Monaco preview) lives in [`examples/`](examples/README.md) and is deployed as the repository's GitHub Pages site at <https://exoridus.github.io/ExoJS/>.
|
|
142
|
-
|
|
143
169
|
## Development
|
|
144
170
|
|
|
145
171
|
```bash
|
|
@@ -151,16 +177,9 @@ pnpm build
|
|
|
151
177
|
pnpm verify:package
|
|
152
178
|
```
|
|
153
179
|
|
|
154
|
-
Package-internal imports use Node `package.json#imports` subpath imports: `./X` for the
|
|
155
|
-
same directory, `#dir/X` for any other path in the same package, and the public bare
|
|
156
|
-
specifier (`@codexo/exojs`) across packages. See [CONTRIBUTING.md](./CONTRIBUTING.md)
|
|
157
|
-
for the full import policy, per-package commands, and the shared `@codexo/exojs-config`
|
|
158
|
-
tooling. Building the library requires TypeScript 6.
|
|
159
|
-
|
|
160
|
-
### Workspace Commands
|
|
180
|
+
Package-internal imports use Node `package.json#imports` subpath imports: `./X` for the same directory, `#dir/X` for any other path in the same package, and the public bare specifier (`@codexo/exojs`) across packages. See [CONTRIBUTING.md](./CONTRIBUTING.md) for the full import policy, per-package commands, and the shared `@codexo/exojs-config` tooling. Building the library requires TypeScript 6.
|
|
161
181
|
|
|
162
|
-
This repository uses pnpm workspaces (`site/` is a workspace package).
|
|
163
|
-
Use root-level commands as the source of truth:
|
|
182
|
+
This repository uses pnpm workspaces (`site/` is a workspace package). Use root-level commands as the source of truth — avoid running `pnpm install` inside `site/` directly:
|
|
164
183
|
|
|
165
184
|
```bash
|
|
166
185
|
pnpm bootstrap
|
|
@@ -168,8 +187,6 @@ pnpm site:build
|
|
|
168
187
|
pnpm site:build:api
|
|
169
188
|
```
|
|
170
189
|
|
|
171
|
-
Avoid running `pnpm install` inside `site/` directly to prevent lockfile drift.
|
|
172
|
-
|
|
173
190
|
## Links
|
|
174
191
|
|
|
175
192
|
- Repository: <https://github.com/Exoridus/ExoJS>
|
|
@@ -317,7 +317,7 @@ class Tween {
|
|
|
317
317
|
for (const key of keys) {
|
|
318
318
|
const start = this._startValues[key];
|
|
319
319
|
const end = properties[key];
|
|
320
|
-
if (end === undefined)
|
|
320
|
+
if (start === undefined || end === undefined)
|
|
321
321
|
continue;
|
|
322
322
|
this._target[key] = start + (end - start) * easedT;
|
|
323
323
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tween.js","sources":["../../../../src/animation/Tween.ts"],"sourcesContent":[null],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Tween.js","sources":["../../../../src/animation/Tween.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type { System } from '#core/System';
|
|
2
|
+
import type { Time } from '#core/Time';
|
|
1
3
|
import { Tween } from './Tween';
|
|
2
4
|
/**
|
|
3
5
|
* Owns and advances a collection of {@link Tween} instances, driving them
|
|
@@ -10,7 +12,9 @@ import { Tween } from './Tween';
|
|
|
10
12
|
* stopped tweens are evicted automatically.
|
|
11
13
|
* @stable
|
|
12
14
|
*/
|
|
13
|
-
export declare class TweenManager {
|
|
15
|
+
export declare class TweenManager implements System {
|
|
16
|
+
/** App-systems tick band — tweens after audio. @internal */
|
|
17
|
+
readonly order = 400;
|
|
14
18
|
private _tweens;
|
|
15
19
|
private _destroyed;
|
|
16
20
|
/**
|
|
@@ -40,11 +44,11 @@ export declare class TweenManager {
|
|
|
40
44
|
/** Remove a tween from the manager. Called automatically on stop/complete. */
|
|
41
45
|
remove(tween: Tween): this;
|
|
42
46
|
/**
|
|
43
|
-
* Advance all active tweens by
|
|
44
|
-
* Application.
|
|
45
|
-
* add or remove tweens do not corrupt mid-iteration.
|
|
47
|
+
* Advance all active tweens by the frame `delta` (read as seconds). Ticked
|
|
48
|
+
* once per frame via {@link Application.systems}. Uses a snapshot of the list
|
|
49
|
+
* so that callbacks that add or remove tweens do not corrupt mid-iteration.
|
|
46
50
|
*/
|
|
47
|
-
update(
|
|
51
|
+
update(delta: Time): void;
|
|
48
52
|
/**
|
|
49
53
|
* Remove all tweens immediately. No callbacks (onComplete etc.) fire.
|
|
50
54
|
* The tweens' states are left as-is; they are simply evicted from the list.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TweenManager.d.ts","sourceRoot":"","sources":["../../../src/animation/TweenManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC;;;;;;;;;;GAUG;AACH,qBAAa,
|
|
1
|
+
{"version":3,"file":"TweenManager.d.ts","sourceRoot":"","sources":["../../../src/animation/TweenManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC;;;;;;;;;;GAUG;AACH,qBAAa,YAAa,YAAW,MAAM;IACzC,4DAA4D;IAC5D,SAAgB,KAAK,OAAO;IAC5B,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,UAAU,CAAS;IAE3B;;;OAGG;IACI,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IAQpD;;;;;;;;;;;;OAYG;IACI,QAAQ,CAAC,MAAM,EAAE,SAAS,KAAK,EAAE,GAAG,KAAK;IAoBhD;;;OAGG;IACI,GAAG,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAU9B,8EAA8E;IACvE,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAUjC;;;;OAIG;IACI,MAAM,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI;IAUhC;;;OAGG;IACI,KAAK,IAAI,IAAI;IAMpB,gFAAgF;IACzE,OAAO,IAAI,IAAI;CAIvB"}
|
|
@@ -12,6 +12,8 @@ import { Tween } from './Tween.js';
|
|
|
12
12
|
* @stable
|
|
13
13
|
*/
|
|
14
14
|
class TweenManager {
|
|
15
|
+
/** App-systems tick band — tweens after audio. @internal */
|
|
16
|
+
order = 400;
|
|
15
17
|
_tweens = [];
|
|
16
18
|
_destroyed = false;
|
|
17
19
|
/**
|
|
@@ -38,16 +40,20 @@ class TweenManager {
|
|
|
38
40
|
* ```
|
|
39
41
|
*/
|
|
40
42
|
sequence(tweens) {
|
|
41
|
-
|
|
43
|
+
const [first] = tweens;
|
|
44
|
+
if (first === undefined) {
|
|
42
45
|
throw new Error('[ExoJS] TweenManager.sequence() requires at least one tween.');
|
|
43
46
|
}
|
|
44
47
|
for (let i = 0; i < tweens.length - 1; i++) {
|
|
45
|
-
tweens[i]
|
|
48
|
+
const current = tweens[i];
|
|
49
|
+
const next = tweens[i + 1];
|
|
50
|
+
if (current !== undefined && next !== undefined)
|
|
51
|
+
current.chain(next);
|
|
46
52
|
}
|
|
47
53
|
for (const tween of tweens) {
|
|
48
54
|
this.add(tween);
|
|
49
55
|
}
|
|
50
|
-
return
|
|
56
|
+
return first;
|
|
51
57
|
}
|
|
52
58
|
/**
|
|
53
59
|
* Explicitly add a stand-alone Tween (created via `new Tween(target)`)
|
|
@@ -69,16 +75,16 @@ class TweenManager {
|
|
|
69
75
|
return this;
|
|
70
76
|
}
|
|
71
77
|
/**
|
|
72
|
-
* Advance all active tweens by
|
|
73
|
-
* Application.
|
|
74
|
-
* add or remove tweens do not corrupt mid-iteration.
|
|
78
|
+
* Advance all active tweens by the frame `delta` (read as seconds). Ticked
|
|
79
|
+
* once per frame via {@link Application.systems}. Uses a snapshot of the list
|
|
80
|
+
* so that callbacks that add or remove tweens do not corrupt mid-iteration.
|
|
75
81
|
*/
|
|
76
|
-
update(
|
|
82
|
+
update(delta) {
|
|
77
83
|
if (this._destroyed)
|
|
78
84
|
return;
|
|
79
85
|
const snapshot = [...this._tweens];
|
|
80
86
|
for (const tween of snapshot) {
|
|
81
|
-
tween.update(
|
|
87
|
+
tween.update(delta.seconds);
|
|
82
88
|
}
|
|
83
89
|
}
|
|
84
90
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TweenManager.js","sources":["../../../../src/animation/TweenManager.ts"],"sourcesContent":[null],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"TweenManager.js","sources":["../../../../src/animation/TweenManager.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAKA;;;;;;;;;;AAUG;MACU,YAAY,CAAA;;IAEP,KAAK,GAAG,GAAG;IACnB,OAAO,GAAY,EAAE;IACrB,UAAU,GAAG,KAAK;AAE1B;;;AAGG;AACI,IAAA,MAAM,CAAmB,MAAS,EAAA;AACvC,QAAA,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC;AAC/B,QAAA,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC;AAC1B,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AAExB,QAAA,OAAO,KAAK;IACd;AAEA;;;;;;;;;;;;AAYG;AACI,IAAA,QAAQ,CAAC,MAAwB,EAAA;AACtC,QAAA,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM;AAEtB,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AACvB,YAAA,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC;QACjF;AAEA,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC1C,YAAA,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC;YACzB,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1B,YAAA,IAAI,OAAO,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS;AAAE,gBAAA,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;QACtE;AAEA,QAAA,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;AAC1B,YAAA,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;QACjB;AAEA,QAAA,OAAO,KAAK;IACd;AAEA;;;AAGG;AACI,IAAA,GAAG,CAAC,KAAY,EAAA;AACrB,QAAA,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC;QAE1B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AACjC,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;QAC1B;AAEA,QAAA,OAAO,IAAI;IACb;;AAGO,IAAA,MAAM,CAAC,KAAY,EAAA;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;AAEzC,QAAA,IAAI,KAAK,KAAK,EAAE,EAAE;YAChB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QAC/B;AAEA,QAAA,OAAO,IAAI;IACb;AAEA;;;;AAIG;AACI,IAAA,MAAM,CAAC,KAAW,EAAA;QACvB,IAAI,IAAI,CAAC,UAAU;YAAE;QAErB,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;AAElC,QAAA,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE;AAC5B,YAAA,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;QAC7B;IACF;AAEA;;;AAGG;IACI,KAAK,GAAA;AACV,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE;AAEjB,QAAA,OAAO,IAAI;IACb;;IAGO,OAAO,GAAA;QACZ,IAAI,CAAC,KAAK,EAAE;AACZ,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI;IACxB;AACD;;;;"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
3
|
-
export
|
|
4
|
-
export
|
|
1
|
+
export type { EasingFunction } from './Easing';
|
|
2
|
+
export { Ease } from './Easing';
|
|
3
|
+
export { Tween } from './Tween';
|
|
4
|
+
export { TweenManager } from './TweenManager';
|
|
5
|
+
export type { TweenLifecycleCallback, TweenUpdateCallback } from './types';
|
|
6
|
+
export { TweenState } from './types';
|
|
5
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/animation/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/animation/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC"}
|