@codexo/exojs 0.7.11 → 0.7.12
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 +108 -0
- package/dist/esm/animation/Tween.d.ts +60 -1
- package/dist/esm/animation/Tween.js +60 -1
- package/dist/esm/animation/Tween.js.map +1 -1
- package/dist/esm/animation/TweenManager.d.ts +10 -0
- package/dist/esm/animation/TweenManager.js +10 -0
- package/dist/esm/animation/TweenManager.js.map +1 -1
- package/dist/esm/animation/types.d.ts +15 -0
- package/dist/esm/animation/types.js +6 -0
- package/dist/esm/animation/types.js.map +1 -1
- package/dist/esm/audio/AbstractMedia.d.ts +11 -0
- package/dist/esm/audio/AbstractMedia.js +10 -0
- package/dist/esm/audio/AbstractMedia.js.map +1 -1
- package/dist/esm/audio/AudioAnalyser.d.ts +21 -0
- package/dist/esm/audio/AudioAnalyser.js +16 -0
- package/dist/esm/audio/AudioAnalyser.js.map +1 -1
- package/dist/esm/audio/AudioBus.d.ts +37 -0
- package/dist/esm/audio/AudioBus.js +36 -0
- package/dist/esm/audio/AudioBus.js.map +1 -1
- package/dist/esm/audio/AudioFilter.d.ts +7 -0
- package/dist/esm/audio/AudioFilter.js +6 -0
- package/dist/esm/audio/AudioFilter.js.map +1 -1
- package/dist/esm/audio/AudioListener.d.ts +19 -0
- package/dist/esm/audio/AudioListener.js +11 -0
- package/dist/esm/audio/AudioListener.js.map +1 -1
- package/dist/esm/audio/AudioManager.d.ts +37 -0
- package/dist/esm/audio/AudioManager.js +37 -0
- package/dist/esm/audio/AudioManager.js.map +1 -1
- package/dist/esm/audio/BeatDetector.d.ts +21 -0
- package/dist/esm/audio/BeatDetector.js +21 -0
- package/dist/esm/audio/BeatDetector.js.map +1 -1
- package/dist/esm/audio/Media.d.ts +11 -0
- package/dist/esm/audio/Music.d.ts +12 -0
- package/dist/esm/audio/Music.js +12 -0
- package/dist/esm/audio/Music.js.map +1 -1
- package/dist/esm/audio/Sound.d.ts +25 -0
- package/dist/esm/audio/Sound.js +18 -0
- package/dist/esm/audio/Sound.js.map +1 -1
- package/dist/esm/audio/audio-context.d.ts +48 -0
- package/dist/esm/audio/audio-context.js +48 -5
- package/dist/esm/audio/audio-context.js.map +1 -1
- package/dist/esm/audio/filters/ChorusFilter.d.ts +5 -0
- package/dist/esm/audio/filters/ChorusFilter.js +4 -0
- package/dist/esm/audio/filters/ChorusFilter.js.map +1 -1
- package/dist/esm/audio/filters/CompressorFilter.d.ts +12 -0
- package/dist/esm/audio/filters/CompressorFilter.js +11 -0
- package/dist/esm/audio/filters/CompressorFilter.js.map +1 -1
- package/dist/esm/audio/filters/DelayFilter.d.ts +11 -0
- package/dist/esm/audio/filters/DelayFilter.js +10 -0
- package/dist/esm/audio/filters/DelayFilter.js.map +1 -1
- package/dist/esm/audio/filters/DuckingFilter.d.ts +13 -0
- package/dist/esm/audio/filters/DuckingFilter.js +12 -0
- package/dist/esm/audio/filters/DuckingFilter.js.map +1 -1
- package/dist/esm/audio/filters/EqualizerFilter.d.ts +20 -0
- package/dist/esm/audio/filters/EqualizerFilter.js +40 -0
- package/dist/esm/audio/filters/EqualizerFilter.js.map +1 -1
- package/dist/esm/audio/filters/GranularFilter.d.ts +6 -0
- package/dist/esm/audio/filters/GranularFilter.js +6 -0
- package/dist/esm/audio/filters/GranularFilter.js.map +1 -1
- package/dist/esm/audio/filters/HighpassFilter.d.ts +10 -0
- package/dist/esm/audio/filters/HighpassFilter.js +9 -0
- package/dist/esm/audio/filters/HighpassFilter.js.map +1 -1
- package/dist/esm/audio/filters/LowpassFilter.d.ts +10 -0
- package/dist/esm/audio/filters/LowpassFilter.js +9 -0
- package/dist/esm/audio/filters/LowpassFilter.js.map +1 -1
- package/dist/esm/audio/filters/PitchShiftFilter.d.ts +2 -0
- package/dist/esm/audio/filters/PitchShiftFilter.js +2 -0
- package/dist/esm/audio/filters/PitchShiftFilter.js.map +1 -1
- package/dist/esm/audio/filters/ReverbFilter.d.ts +12 -0
- package/dist/esm/audio/filters/ReverbFilter.js +11 -0
- package/dist/esm/audio/filters/ReverbFilter.js.map +1 -1
- package/dist/esm/audio/filters/VocoderFilter.d.ts +11 -0
- package/dist/esm/audio/filters/VocoderFilter.js +11 -0
- package/dist/esm/audio/filters/VocoderFilter.js.map +1 -1
- package/dist/esm/audio/filters/WorkletFilter.d.ts +6 -1
- package/dist/esm/audio/filters/WorkletFilter.js +6 -1
- package/dist/esm/audio/filters/WorkletFilter.js.map +1 -1
- package/dist/esm/core/Application.d.ts +63 -0
- package/dist/esm/core/Application.js +61 -0
- package/dist/esm/core/Application.js.map +1 -1
- package/dist/esm/core/Bounds.d.ts +23 -0
- package/dist/esm/core/Bounds.js +23 -0
- package/dist/esm/core/Bounds.js.map +1 -1
- package/dist/esm/core/Clock.d.ts +21 -0
- package/dist/esm/core/Clock.js +21 -0
- package/dist/esm/core/Clock.js.map +1 -1
- package/dist/esm/core/Color.d.ts +35 -0
- package/dist/esm/core/Color.js +35 -0
- package/dist/esm/core/Color.js.map +1 -1
- package/dist/esm/core/Scene.d.ts +46 -0
- package/dist/esm/core/Scene.js +27 -0
- package/dist/esm/core/Scene.js.map +1 -1
- package/dist/esm/core/SceneManager.d.ts +62 -0
- package/dist/esm/core/SceneManager.js +49 -0
- package/dist/esm/core/SceneManager.js.map +1 -1
- package/dist/esm/core/SceneNode.d.ts +31 -0
- package/dist/esm/core/SceneNode.js +31 -0
- package/dist/esm/core/SceneNode.js.map +1 -1
- package/dist/esm/core/Signal.d.ts +44 -0
- package/dist/esm/core/Signal.js +39 -0
- package/dist/esm/core/Signal.js.map +1 -1
- package/dist/esm/core/Time.d.ts +21 -0
- package/dist/esm/core/Time.js +21 -0
- package/dist/esm/core/Time.js.map +1 -1
- package/dist/esm/core/Timer.d.ts +7 -0
- package/dist/esm/core/Timer.js +7 -0
- package/dist/esm/core/Timer.js.map +1 -1
- package/dist/esm/core/capabilities.d.ts +12 -0
- package/dist/esm/core/capabilities.js +12 -0
- package/dist/esm/core/capabilities.js.map +1 -1
- package/dist/esm/core/types.d.ts +37 -0
- package/dist/esm/core/utils.d.ts +48 -0
- package/dist/esm/core/utils.js +48 -0
- package/dist/esm/core/utils.js.map +1 -1
- package/dist/esm/debug/BoundingBoxesLayer.d.ts +8 -0
- package/dist/esm/debug/BoundingBoxesLayer.js +8 -0
- package/dist/esm/debug/BoundingBoxesLayer.js.map +1 -1
- package/dist/esm/debug/DebugLayer.d.ts +16 -3
- package/dist/esm/debug/DebugLayer.js +11 -3
- package/dist/esm/debug/DebugLayer.js.map +1 -1
- package/dist/esm/debug/DebugOverlay.d.ts +11 -0
- package/dist/esm/debug/DebugOverlay.js +6 -0
- package/dist/esm/debug/DebugOverlay.js.map +1 -1
- package/dist/esm/debug/HitTestLayer.d.ts +9 -0
- package/dist/esm/debug/HitTestLayer.js +9 -0
- package/dist/esm/debug/HitTestLayer.js.map +1 -1
- package/dist/esm/debug/PerformanceLayer.d.ts +17 -1
- package/dist/esm/debug/PerformanceLayer.js +18 -0
- package/dist/esm/debug/PerformanceLayer.js.map +1 -1
- package/dist/esm/debug/PointerStackLayer.d.ts +8 -0
- package/dist/esm/debug/PointerStackLayer.js +10 -2
- package/dist/esm/debug/PointerStackLayer.js.map +1 -1
- package/dist/esm/index.js +2 -2
- package/dist/esm/input/ArcadeStickGamepadMapping.d.ts +7 -0
- package/dist/esm/input/ArcadeStickGamepadMapping.js +7 -0
- package/dist/esm/input/ArcadeStickGamepadMapping.js.map +1 -1
- package/dist/esm/input/GameCubeGamepadMapping.d.ts +9 -0
- package/dist/esm/input/GameCubeGamepadMapping.js +9 -0
- package/dist/esm/input/GameCubeGamepadMapping.js.map +1 -1
- package/dist/esm/input/Gamepad.d.ts +48 -0
- package/dist/esm/input/Gamepad.js +43 -0
- package/dist/esm/input/Gamepad.js.map +1 -1
- package/dist/esm/input/GamepadChannels.d.ts +8 -0
- package/dist/esm/input/GamepadChannels.js +8 -0
- package/dist/esm/input/GamepadChannels.js.map +1 -1
- package/dist/esm/input/GamepadControl.d.ts +18 -0
- package/dist/esm/input/GamepadControl.js +13 -0
- package/dist/esm/input/GamepadControl.js.map +1 -1
- package/dist/esm/input/GamepadDefinitions.d.ts +64 -1
- package/dist/esm/input/GamepadDefinitions.js +40 -1
- package/dist/esm/input/GamepadDefinitions.js.map +1 -1
- package/dist/esm/input/GamepadMapping.d.ts +32 -2
- package/dist/esm/input/GamepadMapping.js +24 -0
- package/dist/esm/input/GamepadMapping.js.map +1 -1
- package/dist/esm/input/GamepadPromptLayouts.d.ts +32 -1
- package/dist/esm/input/GamepadPromptLayouts.js +25 -1
- package/dist/esm/input/GamepadPromptLayouts.js.map +1 -1
- package/dist/esm/input/GenericDualAnalogGamepadMapping.d.ts +10 -0
- package/dist/esm/input/GenericDualAnalogGamepadMapping.js +10 -0
- package/dist/esm/input/GenericDualAnalogGamepadMapping.js.map +1 -1
- package/dist/esm/input/GestureRecognizer.d.ts +11 -2
- package/dist/esm/input/GestureRecognizer.js +11 -2
- package/dist/esm/input/GestureRecognizer.js.map +1 -1
- package/dist/esm/input/Input.d.ts +24 -0
- package/dist/esm/input/Input.js +22 -0
- package/dist/esm/input/Input.js.map +1 -1
- package/dist/esm/input/InputManager.d.ts +33 -0
- package/dist/esm/input/InputManager.js +33 -0
- package/dist/esm/input/InputManager.js.map +1 -1
- package/dist/esm/input/InteractionEvent.d.ts +13 -0
- package/dist/esm/input/InteractionEvent.js +8 -0
- package/dist/esm/input/InteractionEvent.js.map +1 -1
- package/dist/esm/input/InteractionManager.d.ts +33 -4
- package/dist/esm/input/InteractionManager.js +33 -4
- package/dist/esm/input/InteractionManager.js.map +1 -1
- package/dist/esm/input/JoyConLeftGamepadMapping.d.ts +9 -0
- package/dist/esm/input/JoyConLeftGamepadMapping.js +9 -0
- package/dist/esm/input/JoyConLeftGamepadMapping.js.map +1 -1
- package/dist/esm/input/JoyConRightGamepadMapping.d.ts +9 -0
- package/dist/esm/input/JoyConRightGamepadMapping.js +9 -0
- package/dist/esm/input/JoyConRightGamepadMapping.js.map +1 -1
- package/dist/esm/input/PlayStationGamepadMapping.d.ts +8 -0
- package/dist/esm/input/PlayStationGamepadMapping.js +8 -0
- package/dist/esm/input/PlayStationGamepadMapping.js.map +1 -1
- package/dist/esm/input/Pointer.d.ts +22 -0
- package/dist/esm/input/Pointer.js +22 -0
- package/dist/esm/input/Pointer.js.map +1 -1
- package/dist/esm/input/SteamControllerGamepadMapping.d.ts +8 -0
- package/dist/esm/input/SteamControllerGamepadMapping.js +8 -0
- package/dist/esm/input/SteamControllerGamepadMapping.js.map +1 -1
- package/dist/esm/input/SwitchProGamepadMapping.d.ts +9 -0
- package/dist/esm/input/SwitchProGamepadMapping.js +9 -0
- package/dist/esm/input/SwitchProGamepadMapping.js.map +1 -1
- package/dist/esm/input/XboxGamepadMapping.d.ts +8 -0
- package/dist/esm/input/XboxGamepadMapping.js +8 -0
- package/dist/esm/input/XboxGamepadMapping.js.map +1 -1
- package/dist/esm/input/types.d.ts +20 -0
- package/dist/esm/input/types.js +20 -0
- package/dist/esm/input/types.js.map +1 -1
- package/dist/esm/math/AbstractVector.d.ts +83 -0
- package/dist/esm/math/AbstractVector.js +83 -0
- package/dist/esm/math/AbstractVector.js.map +1 -1
- package/dist/esm/math/Circle.d.ts +32 -0
- package/dist/esm/math/Circle.js +34 -2
- package/dist/esm/math/Circle.js.map +1 -1
- package/dist/esm/math/CircleLike.d.ts +1 -0
- package/dist/esm/math/Collision.d.ts +39 -0
- package/dist/esm/math/Collision.js +5 -0
- package/dist/esm/math/Collision.js.map +1 -1
- package/dist/esm/math/Ellipse.d.ts +11 -0
- package/dist/esm/math/Ellipse.js +18 -2
- package/dist/esm/math/Ellipse.js.map +1 -1
- package/dist/esm/math/EllipseLike.d.ts +3 -0
- package/dist/esm/math/Flags.d.ts +31 -0
- package/dist/esm/math/Flags.js +31 -0
- package/dist/esm/math/Flags.js.map +1 -1
- package/dist/esm/math/Interval.d.ts +15 -0
- package/dist/esm/math/Interval.js +15 -0
- package/dist/esm/math/Interval.js.map +1 -1
- package/dist/esm/math/Line.d.ts +17 -1
- package/dist/esm/math/Line.js +17 -1
- package/dist/esm/math/Line.js.map +1 -1
- package/dist/esm/math/LineLike.d.ts +1 -0
- package/dist/esm/math/Matrix.d.ts +44 -3
- package/dist/esm/math/Matrix.js +44 -3
- package/dist/esm/math/Matrix.js.map +1 -1
- package/dist/esm/math/ObservableSize.d.ts +7 -0
- package/dist/esm/math/ObservableSize.js +7 -0
- package/dist/esm/math/ObservableSize.js.map +1 -1
- package/dist/esm/math/ObservableVector.d.ts +9 -0
- package/dist/esm/math/ObservableVector.js +9 -0
- package/dist/esm/math/ObservableVector.js.map +1 -1
- package/dist/esm/math/PointLike.d.ts +1 -0
- package/dist/esm/math/PolarVector.d.ts +15 -0
- package/dist/esm/math/PolarVector.js +16 -1
- package/dist/esm/math/PolarVector.js.map +1 -1
- package/dist/esm/math/Polygon.d.ts +20 -0
- package/dist/esm/math/Polygon.js +20 -0
- package/dist/esm/math/Polygon.js.map +1 -1
- package/dist/esm/math/PolygonLike.d.ts +4 -0
- package/dist/esm/math/Quadtree.d.ts +40 -3
- package/dist/esm/math/Quadtree.js +39 -3
- package/dist/esm/math/Quadtree.js.map +1 -1
- package/dist/esm/math/Random.d.ts +25 -0
- package/dist/esm/math/Random.js +25 -0
- package/dist/esm/math/Random.js.map +1 -1
- package/dist/esm/math/Rectangle.d.ts +15 -0
- package/dist/esm/math/Rectangle.js +17 -2
- package/dist/esm/math/Rectangle.js.map +1 -1
- package/dist/esm/math/RectangleLike.d.ts +1 -0
- package/dist/esm/math/Segment.d.ts +7 -0
- package/dist/esm/math/Segment.js +7 -0
- package/dist/esm/math/Segment.js.map +1 -1
- package/dist/esm/math/ShapeLike.d.ts +6 -0
- package/dist/esm/math/Size.d.ts +9 -0
- package/dist/esm/math/Size.js +9 -0
- package/dist/esm/math/Size.js.map +1 -1
- package/dist/esm/math/Vector.d.ts +16 -0
- package/dist/esm/math/Vector.js +16 -0
- package/dist/esm/math/Vector.js.map +1 -1
- package/dist/esm/math/collision-detection.d.ts +47 -1
- package/dist/esm/math/collision-detection.js +228 -17
- package/dist/esm/math/collision-detection.js.map +1 -1
- package/dist/esm/math/collision-primitives.d.ts +23 -0
- package/dist/esm/math/collision-primitives.js +23 -0
- package/dist/esm/math/collision-primitives.js.map +1 -1
- package/dist/esm/math/geometry.d.ts +42 -0
- package/dist/esm/math/geometry.js +37 -0
- package/dist/esm/math/geometry.js.map +1 -1
- package/dist/esm/math/utils.d.ts +41 -0
- package/dist/esm/math/utils.js +41 -0
- package/dist/esm/math/utils.js.map +1 -1
- package/dist/esm/particles/Particle.d.ts +37 -0
- package/dist/esm/particles/Particle.js +37 -0
- package/dist/esm/particles/Particle.js.map +1 -1
- package/dist/esm/particles/ParticleProperties.d.ts +15 -0
- package/dist/esm/particles/ParticleSystem.d.ts +69 -0
- package/dist/esm/particles/ParticleSystem.js +69 -0
- package/dist/esm/particles/ParticleSystem.js.map +1 -1
- package/dist/esm/particles/affectors/ColorAffector.d.ts +13 -0
- package/dist/esm/particles/affectors/ColorAffector.js +13 -0
- package/dist/esm/particles/affectors/ColorAffector.js.map +1 -1
- package/dist/esm/particles/affectors/ForceAffector.d.ts +11 -0
- package/dist/esm/particles/affectors/ForceAffector.js +11 -0
- package/dist/esm/particles/affectors/ForceAffector.js.map +1 -1
- package/dist/esm/particles/affectors/ParticleAffector.d.ts +13 -0
- package/dist/esm/particles/affectors/ScaleAffector.d.ts +10 -0
- package/dist/esm/particles/affectors/ScaleAffector.js +10 -0
- package/dist/esm/particles/affectors/ScaleAffector.js.map +1 -1
- package/dist/esm/particles/affectors/TorqueAffector.d.ts +11 -0
- package/dist/esm/particles/affectors/TorqueAffector.js +11 -0
- package/dist/esm/particles/affectors/TorqueAffector.js.map +1 -1
- package/dist/esm/particles/emitters/ParticleEmitter.d.ts +13 -0
- package/dist/esm/particles/emitters/ParticleOptions.d.ts +16 -0
- package/dist/esm/particles/emitters/ParticleOptions.js +16 -0
- package/dist/esm/particles/emitters/ParticleOptions.js.map +1 -1
- package/dist/esm/particles/emitters/UniversalEmitter.d.ts +23 -0
- package/dist/esm/particles/emitters/UniversalEmitter.js +23 -0
- package/dist/esm/particles/emitters/UniversalEmitter.js.map +1 -1
- package/dist/esm/rendering/CallbackRenderPass.d.ts +12 -0
- package/dist/esm/rendering/CallbackRenderPass.js +12 -0
- package/dist/esm/rendering/CallbackRenderPass.js.map +1 -1
- package/dist/esm/rendering/Container.d.ts +43 -0
- package/dist/esm/rendering/Container.js +43 -0
- package/dist/esm/rendering/Container.js.map +1 -1
- package/dist/esm/rendering/Drawable.d.ts +22 -0
- package/dist/esm/rendering/Drawable.js +22 -0
- package/dist/esm/rendering/Drawable.js.map +1 -1
- package/dist/esm/rendering/RenderBackend.d.ts +13 -0
- package/dist/esm/rendering/RenderBackendType.d.ts +4 -0
- package/dist/esm/rendering/RenderBackendType.js +4 -0
- package/dist/esm/rendering/RenderBackendType.js.map +1 -1
- package/dist/esm/rendering/RenderNode.d.ts +18 -0
- package/dist/esm/rendering/RenderNode.js +18 -0
- package/dist/esm/rendering/RenderNode.js.map +1 -1
- package/dist/esm/rendering/RenderPass.d.ts +8 -0
- package/dist/esm/rendering/RenderStats.d.ts +19 -0
- package/dist/esm/rendering/RenderStats.js +7 -0
- package/dist/esm/rendering/RenderStats.js.map +1 -1
- package/dist/esm/rendering/RenderTarget.d.ts +17 -0
- package/dist/esm/rendering/RenderTarget.js +17 -0
- package/dist/esm/rendering/RenderTarget.js.map +1 -1
- package/dist/esm/rendering/RenderTargetPass.d.ts +11 -0
- package/dist/esm/rendering/RenderTargetPass.js +7 -0
- package/dist/esm/rendering/RenderTargetPass.js.map +1 -1
- package/dist/esm/rendering/Renderer.d.ts +15 -0
- package/dist/esm/rendering/RendererRegistry.d.ts +7 -0
- package/dist/esm/rendering/RendererRegistry.js +7 -0
- package/dist/esm/rendering/RendererRegistry.js.map +1 -1
- package/dist/esm/rendering/View.d.ts +67 -2
- package/dist/esm/rendering/View.js +57 -0
- package/dist/esm/rendering/View.js.map +1 -1
- package/dist/esm/rendering/filters/BlurFilter.d.ts +9 -0
- package/dist/esm/rendering/filters/BlurFilter.js +8 -0
- package/dist/esm/rendering/filters/BlurFilter.js.map +1 -1
- package/dist/esm/rendering/filters/ColorFilter.d.ts +7 -0
- package/dist/esm/rendering/filters/ColorFilter.js +7 -0
- package/dist/esm/rendering/filters/ColorFilter.js.map +1 -1
- package/dist/esm/rendering/filters/Filter.d.ts +23 -0
- package/dist/esm/rendering/filters/Filter.js +20 -0
- package/dist/esm/rendering/filters/Filter.js.map +1 -1
- package/dist/esm/rendering/filters/WebGl2ShaderFilter.d.ts +5 -0
- package/dist/esm/rendering/filters/WebGl2ShaderFilter.js +5 -0
- package/dist/esm/rendering/filters/WebGl2ShaderFilter.js.map +1 -1
- package/dist/esm/rendering/filters/WebGpuShaderFilter.d.ts +5 -0
- package/dist/esm/rendering/filters/WebGpuShaderFilter.js +5 -0
- package/dist/esm/rendering/filters/WebGpuShaderFilter.js.map +1 -1
- package/dist/esm/rendering/mesh/Mesh.d.ts +2 -0
- package/dist/esm/rendering/mesh/Mesh.js +2 -0
- package/dist/esm/rendering/mesh/Mesh.js.map +1 -1
- package/dist/esm/rendering/primitives/Graphics.d.ts +34 -0
- package/dist/esm/rendering/primitives/Graphics.js +34 -0
- package/dist/esm/rendering/primitives/Graphics.js.map +1 -1
- package/dist/esm/rendering/shader/Shader.d.ts +36 -0
- package/dist/esm/rendering/shader/Shader.js +26 -0
- package/dist/esm/rendering/shader/Shader.js.map +1 -1
- package/dist/esm/rendering/shader/ShaderAttribute.d.ts +13 -0
- package/dist/esm/rendering/shader/ShaderAttribute.js +13 -0
- package/dist/esm/rendering/shader/ShaderAttribute.js.map +1 -1
- package/dist/esm/rendering/shader/ShaderUniform.d.ts +27 -0
- package/dist/esm/rendering/shader/ShaderUniform.js +28 -1
- package/dist/esm/rendering/shader/ShaderUniform.js.map +1 -1
- package/dist/esm/rendering/sprite/AnimatedSprite.d.ts +38 -0
- package/dist/esm/rendering/sprite/AnimatedSprite.js +36 -0
- package/dist/esm/rendering/sprite/AnimatedSprite.js.map +1 -1
- package/dist/esm/rendering/sprite/Sprite.d.ts +56 -0
- package/dist/esm/rendering/sprite/Sprite.js +56 -0
- package/dist/esm/rendering/sprite/Sprite.js.map +1 -1
- package/dist/esm/rendering/sprite/Spritesheet.d.ts +25 -0
- package/dist/esm/rendering/sprite/Spritesheet.js +20 -0
- package/dist/esm/rendering/sprite/Spritesheet.js.map +1 -1
- package/dist/esm/rendering/text/Text.d.ts +2 -0
- package/dist/esm/rendering/text/Text.js +2 -0
- package/dist/esm/rendering/text/Text.js.map +1 -1
- package/dist/esm/rendering/text/TextStyle.d.ts +29 -0
- package/dist/esm/rendering/text/TextStyle.js +24 -0
- package/dist/esm/rendering/text/TextStyle.js.map +1 -1
- package/dist/esm/rendering/text/types.d.ts +1 -0
- package/dist/esm/rendering/texture/RenderTexture.d.ts +16 -0
- package/dist/esm/rendering/texture/RenderTexture.js +16 -0
- package/dist/esm/rendering/texture/RenderTexture.js.map +1 -1
- package/dist/esm/rendering/texture/Sampler.d.ts +23 -0
- package/dist/esm/rendering/texture/Sampler.js +13 -0
- package/dist/esm/rendering/texture/Sampler.js.map +1 -1
- package/dist/esm/rendering/texture/Texture.d.ts +30 -0
- package/dist/esm/rendering/texture/Texture.js +30 -0
- package/dist/esm/rendering/texture/Texture.js.map +1 -1
- package/dist/esm/rendering/types.d.ts +29 -0
- package/dist/esm/rendering/types.js +29 -0
- package/dist/esm/rendering/types.js.map +1 -1
- package/dist/esm/rendering/utils.d.ts +20 -0
- package/dist/esm/rendering/utils.js +10 -0
- package/dist/esm/rendering/utils.js.map +1 -1
- package/dist/esm/rendering/video/Video.d.ts +35 -1
- package/dist/esm/rendering/video/Video.js +36 -2
- package/dist/esm/rendering/video/Video.js.map +1 -1
- package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.d.ts +7 -0
- package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js +7 -0
- package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts +13 -0
- package/dist/esm/rendering/webgl2/WebGl2Backend.js +13 -0
- package/dist/esm/rendering/webgl2/WebGl2Backend.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.d.ts +8 -0
- package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.js +8 -0
- package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts +35 -0
- package/dist/esm/rendering/webgpu/WebGpuBackend.js +135 -5
- package/dist/esm/rendering/webgpu/WebGpuBackend.js.map +1 -1
- package/dist/esm/resources/AbstractAssetFactory.d.ts +20 -0
- package/dist/esm/resources/AbstractAssetFactory.js +20 -0
- package/dist/esm/resources/AbstractAssetFactory.js.map +1 -1
- package/dist/esm/resources/AssetFactory.d.ts +26 -0
- package/dist/esm/resources/AssetManifest.d.ts +45 -0
- package/dist/esm/resources/AssetManifest.js +25 -0
- package/dist/esm/resources/AssetManifest.js.map +1 -1
- package/dist/esm/resources/CacheFirstStrategy.d.ts +12 -0
- package/dist/esm/resources/CacheFirstStrategy.js +12 -0
- package/dist/esm/resources/CacheFirstStrategy.js.map +1 -1
- package/dist/esm/resources/CacheStore.d.ts +23 -0
- package/dist/esm/resources/CacheStrategy.d.ts +20 -0
- package/dist/esm/resources/Database.d.ts +45 -0
- package/dist/esm/resources/FactoryRegistry.d.ts +28 -0
- package/dist/esm/resources/FactoryRegistry.js +24 -0
- package/dist/esm/resources/FactoryRegistry.js.map +1 -1
- package/dist/esm/resources/IndexedDbDatabase.d.ts +22 -1
- package/dist/esm/resources/IndexedDbDatabase.js +21 -0
- package/dist/esm/resources/IndexedDbDatabase.js.map +1 -1
- package/dist/esm/resources/IndexedDbStore.d.ts +20 -0
- package/dist/esm/resources/IndexedDbStore.js +12 -0
- package/dist/esm/resources/IndexedDbStore.js.map +1 -1
- package/dist/esm/resources/Loader.d.ts +167 -0
- package/dist/esm/resources/Loader.js +110 -0
- package/dist/esm/resources/Loader.js.map +1 -1
- package/dist/esm/resources/NetworkOnlyStrategy.d.ts +8 -0
- package/dist/esm/resources/NetworkOnlyStrategy.js +8 -0
- package/dist/esm/resources/NetworkOnlyStrategy.js.map +1 -1
- package/dist/esm/resources/factories/BinaryFactory.d.ts +13 -0
- package/dist/esm/resources/factories/BinaryFactory.js +13 -0
- package/dist/esm/resources/factories/BinaryFactory.js.map +1 -1
- package/dist/esm/resources/factories/FontFactory.d.ts +37 -0
- package/dist/esm/resources/factories/FontFactory.js +26 -0
- package/dist/esm/resources/factories/FontFactory.js.map +1 -1
- package/dist/esm/resources/factories/ImageFactory.d.ts +24 -0
- package/dist/esm/resources/factories/ImageFactory.js +19 -0
- package/dist/esm/resources/factories/ImageFactory.js.map +1 -1
- package/dist/esm/resources/factories/JsonFactory.d.ts +13 -0
- package/dist/esm/resources/factories/JsonFactory.js +13 -0
- package/dist/esm/resources/factories/JsonFactory.js.map +1 -1
- package/dist/esm/resources/factories/MusicFactory.d.ts +36 -0
- package/dist/esm/resources/factories/MusicFactory.js +44 -4
- package/dist/esm/resources/factories/MusicFactory.js.map +1 -1
- package/dist/esm/resources/factories/SoundFactory.d.ts +29 -0
- package/dist/esm/resources/factories/SoundFactory.js +18 -0
- package/dist/esm/resources/factories/SoundFactory.js.map +1 -1
- package/dist/esm/resources/factories/SvgFactory.d.ts +19 -0
- package/dist/esm/resources/factories/SvgFactory.js +19 -0
- package/dist/esm/resources/factories/SvgFactory.js.map +1 -1
- package/dist/esm/resources/factories/TextFactory.d.ts +11 -0
- package/dist/esm/resources/factories/TextFactory.js +11 -0
- package/dist/esm/resources/factories/TextFactory.js.map +1 -1
- package/dist/esm/resources/factories/TextureFactory.d.ts +25 -0
- package/dist/esm/resources/factories/TextureFactory.js +20 -0
- package/dist/esm/resources/factories/TextureFactory.js.map +1 -1
- package/dist/esm/resources/factories/VideoFactory.d.ts +37 -0
- package/dist/esm/resources/factories/VideoFactory.js +48 -5
- package/dist/esm/resources/factories/VideoFactory.js.map +1 -1
- package/dist/esm/resources/factories/VttFactory.d.ts +18 -0
- package/dist/esm/resources/factories/VttFactory.js +24 -0
- package/dist/esm/resources/factories/VttFactory.js.map +1 -1
- package/dist/esm/resources/factories/WasmFactory.d.ts +16 -0
- package/dist/esm/resources/factories/WasmFactory.js +16 -0
- package/dist/esm/resources/factories/WasmFactory.js.map +1 -1
- package/dist/esm/resources/utils.d.ts +10 -0
- package/dist/esm/resources/utils.js +10 -0
- package/dist/esm/resources/utils.js.map +1 -1
- package/dist/exo.esm.js +3392 -59
- package/dist/exo.esm.js.map +1 -1
- package/package.json +7 -8
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,114 @@ 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
|
+
## [0.7.12] - 2026-05-07
|
|
8
|
+
|
|
9
|
+
API audit cleanup pass — implements collision-response computation that was
|
|
10
|
+
silently returning zero/null, exports previously-internal type aliases that
|
|
11
|
+
callers couldn't otherwise type, and removes a handful of small API papercuts
|
|
12
|
+
surfaced during the JSDoc-coverage pass that landed across `0.7.x`.
|
|
13
|
+
|
|
14
|
+
### Fixed — Collision-response computation
|
|
15
|
+
|
|
16
|
+
Four collision paths were returning a `CollisionResponse` whose `projectionN`
|
|
17
|
+
and `projectionV` were zero vectors (or returning `null` outright), making
|
|
18
|
+
the response unusable for separation/sliding logic.
|
|
19
|
+
|
|
20
|
+
- **`getCollisionRectangleRectangle`** — now returns the minimum-translation
|
|
21
|
+
vector (MTV) along the axis with the smaller penetration, signed by the
|
|
22
|
+
centre-to-centre direction. Existing `overlap` and containment flags are
|
|
23
|
+
unchanged.
|
|
24
|
+
- **`getCollisionCircleRectangle`** — rewritten to use the standard
|
|
25
|
+
closest-point-on-rect algorithm. Previously computed distance against an
|
|
26
|
+
out-of-rect anchor point, producing a wrong result whenever the circle
|
|
27
|
+
centre was inside the rectangle. Normal points from rect surface toward
|
|
28
|
+
circle; falls back to the smaller-exit axis when the circle centre is
|
|
29
|
+
inside the rect.
|
|
30
|
+
- **`Ellipse.collidesWith`** — implements `Ellipse`-vs-`Rectangle` and
|
|
31
|
+
`Ellipse`-vs-`Circle` via the directional ellipse-boundary equation
|
|
32
|
+
`1 / sqrt((dx/rx)² + (dy/ry)²)`. Other targets (ellipse-vs-ellipse,
|
|
33
|
+
ellipse-vs-polygon, ellipse-vs-line) still return `null` —
|
|
34
|
+
`intersectsWith` remains the boolean fallback.
|
|
35
|
+
- **`Line.collidesWith`** — kept returning `null` (lines have no
|
|
36
|
+
meaningful SAT response), but the JSDoc now states the contract
|
|
37
|
+
explicitly so callers don't expect a vector.
|
|
38
|
+
|
|
39
|
+
`Rectangle.collidesWith` and `Circle.collidesWith` route ellipse targets to
|
|
40
|
+
the new functions via the existing `swap` flag.
|
|
41
|
+
|
|
42
|
+
### Fixed — Object-URL leak (re-emphasised; was 0.7.11 fix)
|
|
43
|
+
|
|
44
|
+
The 0.7.11 fix for `MusicFactory` and `VideoFactory` URL revocation is
|
|
45
|
+
unchanged in 0.7.12 — listing it here for completeness because the pre-1.0
|
|
46
|
+
audit findings memory carries a forward reference to it.
|
|
47
|
+
|
|
48
|
+
### Changed — Visibility / readonly tightening (potentially breaking)
|
|
49
|
+
|
|
50
|
+
Pre-1.0 cleanups that narrow the public surface where callers could
|
|
51
|
+
previously poke at internal state:
|
|
52
|
+
|
|
53
|
+
- **`GamepadMapping.buttons` / `.axes`** typed `ReadonlyArray<GamepadControl>`
|
|
54
|
+
instead of `Array<GamepadControl>`. Internal `destroy()` retains the
|
|
55
|
+
`length = 0` clear via a local cast. **Breaking** for callers that were
|
|
56
|
+
pushing or splicing the arrays directly.
|
|
57
|
+
- **`View.updateTransform()` / `.updateBounds()`** changed from `public` to
|
|
58
|
+
`protected`. They were never safe to call externally — invoking them
|
|
59
|
+
bypassed the dirty-flag clearing in `getTransform()` / `getBounds()` and
|
|
60
|
+
could cause redundant recalculation. **Breaking** if you relied on them.
|
|
61
|
+
- **`IndexedDbDatabase.getObjectStore()`** changed from `public` to
|
|
62
|
+
`protected`. Only callers were the class's own `load`/`save`/`delete`
|
|
63
|
+
methods. **Breaking** if any subclass referenced it externally.
|
|
64
|
+
- **`GamepadDefinitions.normalizeIds`** is no longer exported. It was an
|
|
65
|
+
in-file helper that leaked through the barrel. **Breaking** for any
|
|
66
|
+
caller importing it directly.
|
|
67
|
+
- **`GamepadPromptLayouts.buildControlChannelMap()`** renamed to
|
|
68
|
+
`getControlChannelMap()` — the name now matches the behaviour (returns a
|
|
69
|
+
pre-built constant; never builds anything). **Breaking** rename.
|
|
70
|
+
|
|
71
|
+
### Added — API surface
|
|
72
|
+
|
|
73
|
+
Additive changes; not breaking:
|
|
74
|
+
|
|
75
|
+
- `EqualizerFilter` now exposes runtime setters for `lowFrequency`,
|
|
76
|
+
`midFrequency`, and `highFrequency` (previously only construction-time).
|
|
77
|
+
Smooth ramp via `setTargetAtTime` to avoid clicks.
|
|
78
|
+
- `Filter` (abstract base for post-process filters) now declares a
|
|
79
|
+
`destroy()` method with a no-op default. `BlurFilter` / `ColorFilter` /
|
|
80
|
+
`WebGl2ShaderFilter` / `WebGpuShaderFilter` mark their existing
|
|
81
|
+
implementations as `override`. Generic-filter consumers no longer need
|
|
82
|
+
a cast to release filters.
|
|
83
|
+
- `getCollisionEllipseRectangle` and `getCollisionEllipseCircle` are
|
|
84
|
+
exported from the math barrel for direct use.
|
|
85
|
+
|
|
86
|
+
### Changed — Internal cleanups
|
|
87
|
+
|
|
88
|
+
Doc-only and signature-only refactors:
|
|
89
|
+
|
|
90
|
+
- `Sprite._invalidateSubtreeTransform` / `._invalidateBoundsCascade` tagged
|
|
91
|
+
`@internal` (they are `public` only because of TS friend-class limits).
|
|
92
|
+
- `_getDebugQuadtree` (InteractionManager) and `_walkBounds` (Quadtree)
|
|
93
|
+
tagged `@internal` to mark the friend-class link to the debug layer.
|
|
94
|
+
- `PerformanceLayer` declares `viewMode` explicitly to match the other
|
|
95
|
+
debug layers.
|
|
96
|
+
- `PointerStackLayer._buildLines` lost its two unused `_panelX` / `_panelY`
|
|
97
|
+
parameters. Internal-only; not user-visible.
|
|
98
|
+
- `intersectionCirclePoly` got an inline comment explaining the
|
|
99
|
+
negated-frame coordinate transform.
|
|
100
|
+
- `AudioAnalyserOptions` interface picked up per-field JSDoc with documented
|
|
101
|
+
defaults.
|
|
102
|
+
- `SoundFactoryOptions.poolSize` JSDoc names the implicit `Sound` default (8).
|
|
103
|
+
- `ChorusFilter` lost a redundant `as AudioParam` cast.
|
|
104
|
+
- `Video.setupWithAudioContext` is now an arrow-bound field instead of a
|
|
105
|
+
context-bound method; cleaner internally, no API change.
|
|
106
|
+
- `ShaderUniform.propName` uses `String.prototype.substring` instead of the
|
|
107
|
+
deprecated `substr`.
|
|
108
|
+
- `Tween.repeat` JSDoc now ships an `@example` block clarifying that
|
|
109
|
+
`repeat(2)` runs the animation three times total.
|
|
110
|
+
- `Line.collidesWith` documents the always-`null` behaviour as intentional.
|
|
111
|
+
- `RenderTarget.addDestroyListener` / `.removeDestroyListener` got JSDoc
|
|
112
|
+
pointing out that `RenderTexture` (which extends `RenderTarget`) inherits
|
|
113
|
+
them; the audit finding that claimed otherwise was incorrect.
|
|
114
|
+
|
|
7
115
|
## [0.7.11] - 2026-05-07
|
|
8
116
|
|
|
9
117
|
Performance pass — adds a multi-domain benchmark suite, an auto-profiler
|
|
@@ -1,6 +1,34 @@
|
|
|
1
1
|
import { TweenState } from './types';
|
|
2
2
|
import type { EasingFunction, TweenLifecycleCallback, TweenUpdateCallback } from './types';
|
|
3
3
|
import type { TweenManager } from './TweenManager';
|
|
4
|
+
/**
|
|
5
|
+
* Animates numeric properties of `target` from their current value to a
|
|
6
|
+
* configured end value over a duration in seconds. Supports easing, delay,
|
|
7
|
+
* repeat (with optional yoyo), chaining, and lifecycle callbacks
|
|
8
|
+
* ({@link Tween.onStart}, {@link Tween.onUpdate}, {@link Tween.onComplete},
|
|
9
|
+
* {@link Tween.onRepeat}).
|
|
10
|
+
*
|
|
11
|
+
* Tweens are typically created via {@link TweenManager.create}, which attaches
|
|
12
|
+
* them to the manager so they advance once per frame. Stand-alone usage is
|
|
13
|
+
* supported by calling {@link Tween.update} manually with a frame delta.
|
|
14
|
+
*
|
|
15
|
+
* Start values are captured lazily on the first update after {@link Tween.start},
|
|
16
|
+
* so target properties may be mutated between configuration and start without
|
|
17
|
+
* affecting the captured baseline.
|
|
18
|
+
*
|
|
19
|
+
* Only number-typed properties on `target` are interpolated; non-number
|
|
20
|
+
* properties listed in {@link Tween.to} emit a console warning and are skipped.
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```ts
|
|
24
|
+
* app.tweens.create(sprite.position)
|
|
25
|
+
* .to({ x: 200 }, 1.5)
|
|
26
|
+
* .easing(Ease.cubicInOut)
|
|
27
|
+
* .yoyo()
|
|
28
|
+
* .repeat(-1)
|
|
29
|
+
* .start();
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
4
32
|
export declare class Tween<T extends object = object> {
|
|
5
33
|
private readonly _target;
|
|
6
34
|
private _state;
|
|
@@ -49,7 +77,18 @@ export declare class Tween<T extends object = object> {
|
|
|
49
77
|
easing(fn: EasingFunction): this;
|
|
50
78
|
/**
|
|
51
79
|
* Number of additional repeat cycles. -1 = infinite. Default 0 (runs once).
|
|
52
|
-
*
|
|
80
|
+
*
|
|
81
|
+
* The argument counts cycles **after** the first, not the total cycle
|
|
82
|
+
* count — `repeat(2)` runs the animation three times total (the initial
|
|
83
|
+
* pass plus two repeats).
|
|
84
|
+
*
|
|
85
|
+
* @example
|
|
86
|
+
* ```ts
|
|
87
|
+
* tween.repeat(0); // runs once
|
|
88
|
+
* tween.repeat(1); // runs twice
|
|
89
|
+
* tween.repeat(2); // runs three times
|
|
90
|
+
* tween.repeat(-1); // runs forever
|
|
91
|
+
* ```
|
|
53
92
|
*/
|
|
54
93
|
repeat(count: number): this;
|
|
55
94
|
/**
|
|
@@ -57,9 +96,29 @@ export declare class Tween<T extends object = object> {
|
|
|
57
96
|
* combined with repeat(). Calling yoyo() without repeat() is a no-op.
|
|
58
97
|
*/
|
|
59
98
|
yoyo(enabled?: boolean): this;
|
|
99
|
+
/**
|
|
100
|
+
* Register a callback fired once when the tween begins interpolating
|
|
101
|
+
* (after any configured delay has elapsed). Fires only on the first
|
|
102
|
+
* cycle — repeats do not re-trigger it.
|
|
103
|
+
*/
|
|
60
104
|
onStart(callback: TweenLifecycleCallback): this;
|
|
105
|
+
/**
|
|
106
|
+
* Register a callback fired on every active update. Receives the eased
|
|
107
|
+
* progress in 0..1 — already direction-flipped for yoyo cycles.
|
|
108
|
+
*/
|
|
61
109
|
onUpdate(callback: TweenUpdateCallback): this;
|
|
110
|
+
/**
|
|
111
|
+
* Register a callback fired when the tween finishes naturally (all repeat
|
|
112
|
+
* cycles exhausted). Does NOT fire when the tween is stopped via
|
|
113
|
+
* {@link Tween.stop}.
|
|
114
|
+
*/
|
|
62
115
|
onComplete(callback: TweenLifecycleCallback): this;
|
|
116
|
+
/**
|
|
117
|
+
* Register a callback fired at the boundary of each repeat cycle, after
|
|
118
|
+
* the cycle counter is decremented and before the next cycle begins. Not
|
|
119
|
+
* fired on the final cycle's completion (use {@link Tween.onComplete}
|
|
120
|
+
* for that).
|
|
121
|
+
*/
|
|
63
122
|
onRepeat(callback: TweenLifecycleCallback): this;
|
|
64
123
|
/**
|
|
65
124
|
* Start the tween. If a manager owns this tween it is already tracked;
|
|
@@ -1,6 +1,34 @@
|
|
|
1
1
|
import { Ease } from './Easing.js';
|
|
2
2
|
import { TweenState } from './types.js';
|
|
3
3
|
|
|
4
|
+
/**
|
|
5
|
+
* Animates numeric properties of `target` from their current value to a
|
|
6
|
+
* configured end value over a duration in seconds. Supports easing, delay,
|
|
7
|
+
* repeat (with optional yoyo), chaining, and lifecycle callbacks
|
|
8
|
+
* ({@link Tween.onStart}, {@link Tween.onUpdate}, {@link Tween.onComplete},
|
|
9
|
+
* {@link Tween.onRepeat}).
|
|
10
|
+
*
|
|
11
|
+
* Tweens are typically created via {@link TweenManager.create}, which attaches
|
|
12
|
+
* them to the manager so they advance once per frame. Stand-alone usage is
|
|
13
|
+
* supported by calling {@link Tween.update} manually with a frame delta.
|
|
14
|
+
*
|
|
15
|
+
* Start values are captured lazily on the first update after {@link Tween.start},
|
|
16
|
+
* so target properties may be mutated between configuration and start without
|
|
17
|
+
* affecting the captured baseline.
|
|
18
|
+
*
|
|
19
|
+
* Only number-typed properties on `target` are interpolated; non-number
|
|
20
|
+
* properties listed in {@link Tween.to} emit a console warning and are skipped.
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```ts
|
|
24
|
+
* app.tweens.create(sprite.position)
|
|
25
|
+
* .to({ x: 200 }, 1.5)
|
|
26
|
+
* .easing(Ease.cubicInOut)
|
|
27
|
+
* .yoyo()
|
|
28
|
+
* .repeat(-1)
|
|
29
|
+
* .start();
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
4
32
|
class Tween {
|
|
5
33
|
_target;
|
|
6
34
|
_state = TweenState.Idle;
|
|
@@ -72,7 +100,18 @@ class Tween {
|
|
|
72
100
|
}
|
|
73
101
|
/**
|
|
74
102
|
* Number of additional repeat cycles. -1 = infinite. Default 0 (runs once).
|
|
75
|
-
*
|
|
103
|
+
*
|
|
104
|
+
* The argument counts cycles **after** the first, not the total cycle
|
|
105
|
+
* count — `repeat(2)` runs the animation three times total (the initial
|
|
106
|
+
* pass plus two repeats).
|
|
107
|
+
*
|
|
108
|
+
* @example
|
|
109
|
+
* ```ts
|
|
110
|
+
* tween.repeat(0); // runs once
|
|
111
|
+
* tween.repeat(1); // runs twice
|
|
112
|
+
* tween.repeat(2); // runs three times
|
|
113
|
+
* tween.repeat(-1); // runs forever
|
|
114
|
+
* ```
|
|
76
115
|
*/
|
|
77
116
|
repeat(count) {
|
|
78
117
|
this._repeatTotal = count;
|
|
@@ -86,18 +125,38 @@ class Tween {
|
|
|
86
125
|
this._yoyo = enabled;
|
|
87
126
|
return this;
|
|
88
127
|
}
|
|
128
|
+
/**
|
|
129
|
+
* Register a callback fired once when the tween begins interpolating
|
|
130
|
+
* (after any configured delay has elapsed). Fires only on the first
|
|
131
|
+
* cycle — repeats do not re-trigger it.
|
|
132
|
+
*/
|
|
89
133
|
onStart(callback) {
|
|
90
134
|
this._onStart = callback;
|
|
91
135
|
return this;
|
|
92
136
|
}
|
|
137
|
+
/**
|
|
138
|
+
* Register a callback fired on every active update. Receives the eased
|
|
139
|
+
* progress in 0..1 — already direction-flipped for yoyo cycles.
|
|
140
|
+
*/
|
|
93
141
|
onUpdate(callback) {
|
|
94
142
|
this._onUpdate = callback;
|
|
95
143
|
return this;
|
|
96
144
|
}
|
|
145
|
+
/**
|
|
146
|
+
* Register a callback fired when the tween finishes naturally (all repeat
|
|
147
|
+
* cycles exhausted). Does NOT fire when the tween is stopped via
|
|
148
|
+
* {@link Tween.stop}.
|
|
149
|
+
*/
|
|
97
150
|
onComplete(callback) {
|
|
98
151
|
this._onComplete = callback;
|
|
99
152
|
return this;
|
|
100
153
|
}
|
|
154
|
+
/**
|
|
155
|
+
* Register a callback fired at the boundary of each repeat cycle, after
|
|
156
|
+
* the cycle counter is decremented and before the next cycle begins. Not
|
|
157
|
+
* fired on the final cycle's completion (use {@link Tween.onComplete}
|
|
158
|
+
* for that).
|
|
159
|
+
*/
|
|
101
160
|
onRepeat(callback) {
|
|
102
161
|
this._onRepeat = callback;
|
|
103
162
|
return this;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tween.js","sources":["../../../../src/animation/Tween.ts"],"sourcesContent":[null],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"Tween.js","sources":["../../../../src/animation/Tween.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,14 @@
|
|
|
1
1
|
import { Tween } from './Tween';
|
|
2
|
+
/**
|
|
3
|
+
* Owns and advances a collection of {@link Tween} instances, driving them
|
|
4
|
+
* once per frame from {@link Application.update}. Created tweens are tracked
|
|
5
|
+
* automatically; manually constructed tweens can be opted in via
|
|
6
|
+
* {@link TweenManager.add}.
|
|
7
|
+
*
|
|
8
|
+
* Update iteration uses a snapshot so callbacks may freely add or remove
|
|
9
|
+
* tweens during the same frame without corrupting the loop. Completed and
|
|
10
|
+
* stopped tweens are evicted automatically.
|
|
11
|
+
*/
|
|
2
12
|
export declare class TweenManager {
|
|
3
13
|
private _tweens;
|
|
4
14
|
private _destroyed;
|
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
import { Tween } from './Tween.js';
|
|
2
2
|
|
|
3
|
+
/**
|
|
4
|
+
* Owns and advances a collection of {@link Tween} instances, driving them
|
|
5
|
+
* once per frame from {@link Application.update}. Created tweens are tracked
|
|
6
|
+
* automatically; manually constructed tweens can be opted in via
|
|
7
|
+
* {@link TweenManager.add}.
|
|
8
|
+
*
|
|
9
|
+
* Update iteration uses a snapshot so callbacks may freely add or remove
|
|
10
|
+
* tweens during the same frame without corrupting the loop. Completed and
|
|
11
|
+
* stopped tweens are evicted automatically.
|
|
12
|
+
*/
|
|
3
13
|
class TweenManager {
|
|
4
14
|
_tweens = [];
|
|
5
15
|
_destroyed = false;
|
|
@@ -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":";;AAEA;;;;;;;;;AASG;MACU,YAAY,CAAA;IACb,OAAO,GAAiB,EAAE;IAC1B,UAAU,GAAG,KAAK;AAE1B;;;AAGG;AACI,IAAA,MAAM,CAAmB,MAAS,EAAA;AACrC,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,KAAc,CAAC;AAEjC,QAAA,OAAO,KAAK;IAChB;AAEA;;;AAGG;AACI,IAAA,GAAG,CAAC,KAAY,EAAA;AACnB,QAAA,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC;QAE1B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AAC/B,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;QAC5B;AAEA,QAAA,OAAO,IAAI;IACf;;AAGO,IAAA,MAAM,CAAC,KAAY,EAAA;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;AAEzC,QAAA,IAAI,KAAK,KAAK,EAAE,EAAE;YACd,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QACjC;AAEA,QAAA,OAAO,IAAI;IACf;AAEA;;;;AAIG;AACI,IAAA,MAAM,CAAC,YAAoB,EAAA;QAC9B,IAAI,IAAI,CAAC,UAAU;AAAE,YAAA,OAAO,IAAI;QAEhC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;AAErC,QAAA,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE;AAC1B,YAAA,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC;QAC9B;AAEA,QAAA,OAAO,IAAI;IACf;AAEA;;;AAGG;IACI,KAAK,GAAA;AACR,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE;AAEjB,QAAA,OAAO,IAAI;IACf;;IAGO,OAAO,GAAA;QACV,IAAI,CAAC,KAAK,EAAE;AACZ,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI;IAC1B;AACH;;;;"}
|
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
export type { EasingFunction } from './Easing';
|
|
2
|
+
/**
|
|
3
|
+
* Lifecycle states of a {@link Tween}. A tween starts in `Idle`, transitions
|
|
4
|
+
* to `Active` once {@link Tween.start} is called, and ends in `Complete`
|
|
5
|
+
* (natural finish, all repeats exhausted) or `Stopped` (cancelled via
|
|
6
|
+
* {@link Tween.stop}). `Paused` is reachable from `Active` only.
|
|
7
|
+
*/
|
|
2
8
|
export declare enum TweenState {
|
|
3
9
|
Idle = "idle",
|
|
4
10
|
Active = "active",
|
|
@@ -6,5 +12,14 @@ export declare enum TweenState {
|
|
|
6
12
|
Complete = "complete",
|
|
7
13
|
Stopped = "stopped"
|
|
8
14
|
}
|
|
15
|
+
/**
|
|
16
|
+
* Callback fired at one of the tween lifecycle points (start, complete,
|
|
17
|
+
* each repeat cycle). No arguments — use a closure to access related state.
|
|
18
|
+
*/
|
|
9
19
|
export type TweenLifecycleCallback = () => void;
|
|
20
|
+
/**
|
|
21
|
+
* Callback fired on every update during the active phase of a tween.
|
|
22
|
+
* Receives the eased progress in 0..1, after applying the easing function and
|
|
23
|
+
* accounting for yoyo direction.
|
|
24
|
+
*/
|
|
10
25
|
export type TweenUpdateCallback = (progress: number) => void;
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lifecycle states of a {@link Tween}. A tween starts in `Idle`, transitions
|
|
3
|
+
* to `Active` once {@link Tween.start} is called, and ends in `Complete`
|
|
4
|
+
* (natural finish, all repeats exhausted) or `Stopped` (cancelled via
|
|
5
|
+
* {@link Tween.stop}). `Paused` is reachable from `Active` only.
|
|
6
|
+
*/
|
|
1
7
|
var TweenState;
|
|
2
8
|
(function (TweenState) {
|
|
3
9
|
TweenState["Idle"] = "idle";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sources":["../../../../src/animation/types.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sources":["../../../../src/animation/types.ts"],"sourcesContent":[null],"names":[],"mappings":"AAEA;;;;;AAKG;IACS;AAAZ,CAAA,UAAY,UAAU,EAAA;AAClB,IAAA,UAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,UAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,UAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,UAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,UAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACvB,CAAC,EANW,UAAU,KAAV,UAAU,GAAA,EAAA,CAAA,CAAA;;;;"}
|
|
@@ -2,9 +2,20 @@ import type { Media } from '@/audio/Media';
|
|
|
2
2
|
import { Signal } from '@/core/Signal';
|
|
3
3
|
import type { PlaybackOptions } from '@/core/types';
|
|
4
4
|
import type { AudioBus } from '@/audio/AudioBus';
|
|
5
|
+
/** Initial state passed to the {@link AbstractMedia} constructor by subclasses. */
|
|
5
6
|
export interface AbstractMediaInitialState extends Omit<PlaybackOptions, 'time'> {
|
|
6
7
|
duration: number;
|
|
7
8
|
}
|
|
9
|
+
/**
|
|
10
|
+
* Shared base for {@link Sound} and {@link Music}: holds playback
|
|
11
|
+
* primitives (volume, loop, playbackRate, muted, currentTime), the
|
|
12
|
+
* {@link AudioBus} routing slot, lifecycle Signals (`onStart`, `onStop`),
|
|
13
|
+
* and ramp helpers ({@link AbstractMedia.fadeIn}, {@link AbstractMedia.fadeOut})
|
|
14
|
+
* that operate on whatever `GainNode` the subclass exposes.
|
|
15
|
+
*
|
|
16
|
+
* Subclasses implement the abstract members to bind to either an
|
|
17
|
+
* `AudioBufferSourceNode` (Sound) or `MediaElementAudioSourceNode` (Music).
|
|
18
|
+
*/
|
|
8
19
|
export declare abstract class AbstractMedia implements Media {
|
|
9
20
|
readonly onStart: Signal<[]>;
|
|
10
21
|
readonly onStop: Signal<[]>;
|
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
import { Signal } from '../core/Signal.js';
|
|
2
2
|
|
|
3
|
+
/**
|
|
4
|
+
* Shared base for {@link Sound} and {@link Music}: holds playback
|
|
5
|
+
* primitives (volume, loop, playbackRate, muted, currentTime), the
|
|
6
|
+
* {@link AudioBus} routing slot, lifecycle Signals (`onStart`, `onStop`),
|
|
7
|
+
* and ramp helpers ({@link AbstractMedia.fadeIn}, {@link AbstractMedia.fadeOut})
|
|
8
|
+
* that operate on whatever `GainNode` the subclass exposes.
|
|
9
|
+
*
|
|
10
|
+
* Subclasses implement the abstract members to bind to either an
|
|
11
|
+
* `AudioBufferSourceNode` (Sound) or `MediaElementAudioSourceNode` (Music).
|
|
12
|
+
*/
|
|
3
13
|
class AbstractMedia {
|
|
4
14
|
onStart = new Signal();
|
|
5
15
|
onStop = new Signal();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractMedia.js","sources":["../../../../src/audio/AbstractMedia.ts"],"sourcesContent":[null],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"AbstractMedia.js","sources":["../../../../src/audio/AbstractMedia.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -2,10 +2,15 @@ import type { AudioBus } from '@/audio/AudioBus';
|
|
|
2
2
|
import type { Sound } from '@/audio/Sound';
|
|
3
3
|
import type { Music } from '@/audio/Music';
|
|
4
4
|
export type AudioAnalyserSource = AudioBus | Sound | Music | MediaStream | AudioNode | null;
|
|
5
|
+
/** Construction options for {@link AudioAnalyser}. */
|
|
5
6
|
export interface AudioAnalyserOptions {
|
|
7
|
+
/** FFT window size; must be a power of two between 32 and 32768. Default 2048. */
|
|
6
8
|
fftSize?: number;
|
|
9
|
+
/** Time-domain smoothing constant in 0..1 applied between successive analyses. Default 0.8. */
|
|
7
10
|
smoothingTimeConstant?: number;
|
|
11
|
+
/** Minimum dBFS rendered by the byte-domain spectrum getters. Default -100. */
|
|
8
12
|
minDecibels?: number;
|
|
13
|
+
/** Maximum dBFS rendered by the byte-domain spectrum getters. Default -30. */
|
|
9
14
|
maxDecibels?: number;
|
|
10
15
|
}
|
|
11
16
|
/**
|
|
@@ -27,10 +32,21 @@ export declare class AudioAnalyser {
|
|
|
27
32
|
private _floatSpectrum;
|
|
28
33
|
private _byteWaveform;
|
|
29
34
|
private _floatWaveform;
|
|
35
|
+
/**
|
|
36
|
+
* Create an `AudioAnalyser` with the given options. The underlying
|
|
37
|
+
* `AnalyserNode` is created immediately if the `AudioContext` is already
|
|
38
|
+
* running, or deferred until {@link onAudioContextReady} fires.
|
|
39
|
+
*/
|
|
30
40
|
constructor(options?: AudioAnalyserOptions);
|
|
41
|
+
/**
|
|
42
|
+
* The currently tapped audio source, or `null` if none is set.
|
|
43
|
+
* Assigning a new value disconnects the previous tap and connects the new
|
|
44
|
+
* source as a parallel branch without affecting the source's main routing.
|
|
45
|
+
*/
|
|
31
46
|
get source(): AudioAnalyserSource;
|
|
32
47
|
set source(value: AudioAnalyserSource);
|
|
33
48
|
get fftSize(): number;
|
|
49
|
+
/** Number of frequency bins available — half of `fftSize`. */
|
|
34
50
|
get frequencyBinCount(): number;
|
|
35
51
|
get smoothingTimeConstant(): number;
|
|
36
52
|
set smoothingTimeConstant(v: number);
|
|
@@ -59,6 +75,11 @@ export declare class AudioAnalyser {
|
|
|
59
75
|
};
|
|
60
76
|
/** Return overall RMS energy across all bins, normalised 0..1. */
|
|
61
77
|
getRms(): number;
|
|
78
|
+
/**
|
|
79
|
+
* Disconnect the analyser tap, release the internal `AnalyserNode`, and
|
|
80
|
+
* cancel any pending setup callbacks. Call when the analyser is no longer
|
|
81
|
+
* needed to avoid memory leaks.
|
|
82
|
+
*/
|
|
62
83
|
destroy(): void;
|
|
63
84
|
private _setupAnalyser;
|
|
64
85
|
private _connectSource;
|
|
@@ -20,6 +20,11 @@ class AudioAnalyser {
|
|
|
20
20
|
_floatSpectrum;
|
|
21
21
|
_byteWaveform;
|
|
22
22
|
_floatWaveform;
|
|
23
|
+
/**
|
|
24
|
+
* Create an `AudioAnalyser` with the given options. The underlying
|
|
25
|
+
* `AnalyserNode` is created immediately if the `AudioContext` is already
|
|
26
|
+
* running, or deferred until {@link onAudioContextReady} fires.
|
|
27
|
+
*/
|
|
23
28
|
constructor(options) {
|
|
24
29
|
this._options = {
|
|
25
30
|
fftSize: options?.fftSize ?? 2048,
|
|
@@ -42,6 +47,11 @@ class AudioAnalyser {
|
|
|
42
47
|
// -----------------------------------------------------------------------
|
|
43
48
|
// Source setter
|
|
44
49
|
// -----------------------------------------------------------------------
|
|
50
|
+
/**
|
|
51
|
+
* The currently tapped audio source, or `null` if none is set.
|
|
52
|
+
* Assigning a new value disconnects the previous tap and connects the new
|
|
53
|
+
* source as a parallel branch without affecting the source's main routing.
|
|
54
|
+
*/
|
|
45
55
|
get source() {
|
|
46
56
|
return this._source;
|
|
47
57
|
}
|
|
@@ -71,6 +81,7 @@ class AudioAnalyser {
|
|
|
71
81
|
get fftSize() {
|
|
72
82
|
return this._options.fftSize;
|
|
73
83
|
}
|
|
84
|
+
/** Number of frequency bins available — half of `fftSize`. */
|
|
74
85
|
get frequencyBinCount() {
|
|
75
86
|
return this._options.fftSize >> 1;
|
|
76
87
|
}
|
|
@@ -189,6 +200,11 @@ class AudioAnalyser {
|
|
|
189
200
|
// -----------------------------------------------------------------------
|
|
190
201
|
// Lifecycle
|
|
191
202
|
// -----------------------------------------------------------------------
|
|
203
|
+
/**
|
|
204
|
+
* Disconnect the analyser tap, release the internal `AnalyserNode`, and
|
|
205
|
+
* cancel any pending setup callbacks. Call when the analyser is no longer
|
|
206
|
+
* needed to avoid memory leaks.
|
|
207
|
+
*/
|
|
192
208
|
destroy() {
|
|
193
209
|
onAudioContextReady.clearByContext(this);
|
|
194
210
|
this._disconnectTap();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AudioAnalyser.js","sources":["../../../../src/audio/AudioAnalyser.ts"],"sourcesContent":[null],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"AudioAnalyser.js","sources":["../../../../src/audio/AudioAnalyser.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|