@codexo/exojs 0.6.12 → 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 +1424 -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 +29 -0
- package/dist/esm/audio/AbstractMedia.js +76 -0
- package/dist/esm/audio/AbstractMedia.js.map +1 -1
- package/dist/esm/audio/AudioAnalyser.d.ts +83 -23
- package/dist/esm/audio/AudioAnalyser.js +277 -57
- package/dist/esm/audio/AudioAnalyser.js.map +1 -1
- package/dist/esm/audio/AudioBus.d.ts +82 -0
- package/dist/esm/audio/AudioBus.js +255 -0
- package/dist/esm/audio/AudioBus.js.map +1 -0
- package/dist/esm/audio/AudioFilter.d.ts +16 -0
- package/dist/esm/audio/AudioFilter.js +13 -0
- package/dist/esm/audio/AudioFilter.js.map +1 -0
- package/dist/esm/audio/AudioListener.d.ts +39 -0
- package/dist/esm/audio/AudioListener.js +97 -0
- package/dist/esm/audio/AudioListener.js.map +1 -0
- package/dist/esm/audio/AudioManager.d.ts +68 -0
- package/dist/esm/audio/AudioManager.js +139 -0
- package/dist/esm/audio/AudioManager.js.map +1 -0
- package/dist/esm/audio/BeatDetector.d.ts +142 -0
- package/dist/esm/audio/BeatDetector.js +957 -0
- package/dist/esm/audio/BeatDetector.js.map +1 -0
- package/dist/esm/audio/Envelope.d.ts +44 -0
- package/dist/esm/audio/Envelope.js +60 -0
- package/dist/esm/audio/Envelope.js.map +1 -0
- package/dist/esm/audio/Media.d.ts +11 -0
- package/dist/esm/audio/Music.d.ts +20 -0
- package/dist/esm/audio/Music.js +45 -4
- package/dist/esm/audio/Music.js.map +1 -1
- package/dist/esm/audio/OscillatorSound.d.ts +98 -0
- package/dist/esm/audio/OscillatorSound.js +342 -0
- package/dist/esm/audio/OscillatorSound.js.map +1 -0
- package/dist/esm/audio/Sound.d.ts +119 -9
- package/dist/esm/audio/Sound.js +301 -117
- 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/crossFade.d.ts +19 -0
- package/dist/esm/audio/crossFade.js +26 -0
- package/dist/esm/audio/crossFade.js.map +1 -0
- package/dist/esm/audio/dsp/fft.d.ts +22 -0
- package/dist/esm/audio/dsp/mel.d.ts +43 -0
- package/dist/esm/audio/dsp/tempogram.d.ts +51 -0
- package/dist/esm/audio/filters/ChorusFilter.d.ts +52 -0
- package/dist/esm/audio/filters/ChorusFilter.js +143 -0
- package/dist/esm/audio/filters/ChorusFilter.js.map +1 -0
- package/dist/esm/audio/filters/CompressorFilter.d.ts +43 -0
- package/dist/esm/audio/filters/CompressorFilter.js +108 -0
- package/dist/esm/audio/filters/CompressorFilter.js.map +1 -0
- package/dist/esm/audio/filters/DelayFilter.d.ts +34 -0
- package/dist/esm/audio/filters/DelayFilter.js +110 -0
- package/dist/esm/audio/filters/DelayFilter.js.map +1 -0
- package/dist/esm/audio/filters/DuckingFilter.d.ts +44 -0
- package/dist/esm/audio/filters/DuckingFilter.js +164 -0
- package/dist/esm/audio/filters/DuckingFilter.js.map +1 -0
- package/dist/esm/audio/filters/EqualizerFilter.d.ts +49 -0
- package/dist/esm/audio/filters/EqualizerFilter.js +134 -0
- package/dist/esm/audio/filters/EqualizerFilter.js.map +1 -0
- package/dist/esm/audio/filters/GranularFilter.d.ts +62 -0
- package/dist/esm/audio/filters/GranularFilter.js +176 -0
- package/dist/esm/audio/filters/GranularFilter.js.map +1 -0
- package/dist/esm/audio/filters/HighpassFilter.d.ts +29 -0
- package/dist/esm/audio/filters/HighpassFilter.js +71 -0
- package/dist/esm/audio/filters/HighpassFilter.js.map +1 -0
- package/dist/esm/audio/filters/LowpassFilter.d.ts +29 -0
- package/dist/esm/audio/filters/LowpassFilter.js +71 -0
- package/dist/esm/audio/filters/LowpassFilter.js.map +1 -0
- package/dist/esm/audio/filters/PitchShiftFilter.d.ts +44 -0
- package/dist/esm/audio/filters/PitchShiftFilter.js +132 -0
- package/dist/esm/audio/filters/PitchShiftFilter.js.map +1 -0
- package/dist/esm/audio/filters/ReverbFilter.d.ts +36 -0
- package/dist/esm/audio/filters/ReverbFilter.js +118 -0
- package/dist/esm/audio/filters/ReverbFilter.js.map +1 -0
- package/dist/esm/audio/filters/VocoderFilter.d.ts +49 -0
- package/dist/esm/audio/filters/VocoderFilter.js +174 -0
- package/dist/esm/audio/filters/VocoderFilter.js.map +1 -0
- package/dist/esm/audio/filters/WorkletFilter.d.ts +51 -0
- package/dist/esm/audio/filters/WorkletFilter.js +106 -0
- package/dist/esm/audio/filters/WorkletFilter.js.map +1 -0
- package/dist/esm/audio/filters/index.d.ts +12 -0
- package/dist/esm/audio/index.d.ts +15 -1
- package/dist/esm/audio/worklet/registerWorklet.d.ts +10 -0
- package/dist/esm/audio/worklet/registerWorklet.js +44 -0
- package/dist/esm/audio/worklet/registerWorklet.js.map +1 -0
- package/dist/esm/core/Application.d.ts +82 -0
- package/dist/esm/core/Application.js +137 -2
- 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 +40 -1
- package/dist/esm/core/SceneNode.js +75 -6
- 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 +22 -1
- 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/index.d.ts +0 -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 +26 -0
- package/dist/esm/debug/BoundingBoxesLayer.js +136 -0
- package/dist/esm/debug/BoundingBoxesLayer.js.map +1 -0
- package/dist/esm/debug/DebugLayer.d.ts +42 -0
- package/dist/esm/debug/DebugLayer.js +34 -0
- package/dist/esm/debug/DebugLayer.js.map +1 -0
- package/dist/esm/debug/DebugOverlay.d.ts +59 -0
- package/dist/esm/debug/DebugOverlay.js +123 -0
- package/dist/esm/debug/DebugOverlay.js.map +1 -0
- package/dist/esm/debug/HitTestLayer.d.ts +32 -0
- package/dist/esm/debug/HitTestLayer.js +118 -0
- package/dist/esm/debug/HitTestLayer.js.map +1 -0
- package/dist/esm/debug/PerformanceLayer.d.ts +37 -0
- package/dist/esm/debug/PerformanceLayer.js +193 -0
- package/dist/esm/debug/PerformanceLayer.js.map +1 -0
- package/dist/esm/debug/PointerStackLayer.d.ts +31 -0
- package/dist/esm/debug/PointerStackLayer.js +160 -0
- package/dist/esm/debug/PointerStackLayer.js.map +1 -0
- package/dist/esm/debug/index.d.ts +6 -0
- package/dist/esm/debug/index.js +7 -0
- package/dist/esm/debug/index.js.map +1 -0
- package/dist/esm/index.js +30 -4
- package/dist/esm/index.js.map +1 -1
- 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 +43 -0
- package/dist/esm/input/InputManager.js +68 -5
- package/dist/esm/input/InputManager.js.map +1 -1
- package/dist/esm/input/InteractionEvent.d.ts +31 -0
- package/dist/esm/input/InteractionEvent.js +37 -0
- package/dist/esm/input/InteractionEvent.js.map +1 -0
- package/dist/esm/input/InteractionManager.d.ts +163 -0
- package/dist/esm/input/InteractionManager.js +575 -0
- package/dist/esm/input/InteractionManager.js.map +1 -0
- 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/index.d.ts +2 -0
- package/dist/esm/input/interaction-hooks.d.ts +34 -0
- package/dist/esm/input/interaction-hooks.js +35 -0
- package/dist/esm/input/interaction-hooks.js.map +1 -0
- 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 +44 -2
- package/dist/esm/math/Circle.js +116 -16
- 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 +16 -1
- 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 +11 -2
- package/dist/esm/math/ObservableVector.js +13 -2
- 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 +35 -1
- package/dist/esm/math/Polygon.js +78 -6
- 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 +84 -0
- package/dist/esm/math/Quadtree.js +204 -0
- package/dist/esm/math/Quadtree.js.map +1 -0
- package/dist/esm/math/Random.d.ts +25 -0
- package/dist/esm/math/Random.js +26 -1
- 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 +10 -1
- package/dist/esm/math/Size.js.map +1 -1
- package/dist/esm/math/Vector.d.ts +16 -0
- package/dist/esm/math/Vector.js +17 -1
- 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 +231 -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/index.d.ts +1 -0
- 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 +70 -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 +12 -1
- 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 +44 -0
- package/dist/esm/rendering/Container.js +62 -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 +45 -0
- package/dist/esm/rendering/RenderNode.js +62 -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 +73 -6
- package/dist/esm/rendering/View.js +69 -2
- 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 +114 -0
- package/dist/esm/rendering/filters/WebGl2ShaderFilter.js +273 -0
- package/dist/esm/rendering/filters/WebGl2ShaderFilter.js.map +1 -0
- package/dist/esm/rendering/filters/WebGpuShaderFilter.d.ts +116 -0
- package/dist/esm/rendering/filters/WebGpuShaderFilter.js +402 -0
- package/dist/esm/rendering/filters/WebGpuShaderFilter.js.map +1 -0
- package/dist/esm/rendering/index.d.ts +3 -0
- package/dist/esm/rendering/mesh/Mesh.d.ts +2 -0
- package/dist/esm/rendering/mesh/Mesh.js +3 -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/shader/upgradeFragmentShaderToGl300.d.ts +34 -0
- package/dist/esm/rendering/shader/upgradeFragmentShaderToGl300.js +60 -0
- package/dist/esm/rendering/shader/upgradeFragmentShaderToGl300.js.map +1 -0
- 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 +62 -1
- package/dist/esm/rendering/sprite/Sprite.js +97 -19
- 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 +39 -1
- package/dist/esm/rendering/video/Video.js +68 -6
- 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 +17 -4
- package/dist/esm/rendering/webgl2/WebGl2Backend.js +20 -16
- 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 +45 -8
- package/dist/esm/rendering/webgpu/WebGpuBackend.js +160 -40
- 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 +11182 -2538
- package/dist/exo.esm.js.map +1 -1
- package/package.json +20 -9
- package/dist/esm/core/Quadtree.d.ts +0 -20
- package/dist/esm/core/Quadtree.js +0 -86
- package/dist/esm/core/Quadtree.js.map +0 -1
|
@@ -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;;;;"}
|
|
@@ -1,9 +1,21 @@
|
|
|
1
1
|
import type { Media } from '@/audio/Media';
|
|
2
2
|
import { Signal } from '@/core/Signal';
|
|
3
3
|
import type { PlaybackOptions } from '@/core/types';
|
|
4
|
+
import type { AudioBus } from '@/audio/AudioBus';
|
|
5
|
+
/** Initial state passed to the {@link AbstractMedia} constructor by subclasses. */
|
|
4
6
|
export interface AbstractMediaInitialState extends Omit<PlaybackOptions, 'time'> {
|
|
5
7
|
duration: number;
|
|
6
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
|
+
*/
|
|
7
19
|
export declare abstract class AbstractMedia implements Media {
|
|
8
20
|
readonly onStart: Signal<[]>;
|
|
9
21
|
readonly onStop: Signal<[]>;
|
|
@@ -12,9 +24,16 @@ export declare abstract class AbstractMedia implements Media {
|
|
|
12
24
|
protected _playbackRate: number;
|
|
13
25
|
protected _loop: boolean;
|
|
14
26
|
protected _muted: boolean;
|
|
27
|
+
protected _bus: AudioBus | null;
|
|
15
28
|
abstract get paused(): boolean;
|
|
16
29
|
abstract set paused(paused: boolean);
|
|
17
30
|
abstract get analyserTarget(): AudioNode | null;
|
|
31
|
+
get bus(): AudioBus;
|
|
32
|
+
set bus(bus: AudioBus);
|
|
33
|
+
/** Returns the default bus for this media type. Subclasses override. */
|
|
34
|
+
protected abstract _defaultBus(): AudioBus;
|
|
35
|
+
protected abstract _disconnectFromBus(): void;
|
|
36
|
+
protected abstract _connectToBus(): void;
|
|
18
37
|
get duration(): number;
|
|
19
38
|
get volume(): number;
|
|
20
39
|
set volume(volume: number);
|
|
@@ -38,6 +57,16 @@ export declare abstract class AbstractMedia implements Media {
|
|
|
38
57
|
abstract getTime(): number;
|
|
39
58
|
abstract setTime(time: number): this;
|
|
40
59
|
abstract setMuted(muted: boolean): this;
|
|
60
|
+
protected abstract _getAudioSetup(): {
|
|
61
|
+
audioContext: AudioContext;
|
|
62
|
+
gainNode: GainNode;
|
|
63
|
+
} | null;
|
|
64
|
+
private _scheduledStopId;
|
|
65
|
+
private _clearScheduledStop;
|
|
66
|
+
fadeIn(durationMs: number): this;
|
|
67
|
+
fadeOut(durationMs: number, options?: {
|
|
68
|
+
stopAfter?: boolean;
|
|
69
|
+
}): this;
|
|
41
70
|
stop(options?: Partial<PlaybackOptions>): this;
|
|
42
71
|
toggle(options?: Partial<PlaybackOptions>): this;
|
|
43
72
|
applyOptions(options?: Partial<PlaybackOptions>): this;
|
|
@@ -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();
|
|
@@ -8,6 +18,17 @@ class AbstractMedia {
|
|
|
8
18
|
_playbackRate;
|
|
9
19
|
_loop;
|
|
10
20
|
_muted;
|
|
21
|
+
_bus = null;
|
|
22
|
+
get bus() {
|
|
23
|
+
return this._bus ?? this._defaultBus();
|
|
24
|
+
}
|
|
25
|
+
set bus(bus) {
|
|
26
|
+
if (this._bus === bus)
|
|
27
|
+
return;
|
|
28
|
+
this._disconnectFromBus();
|
|
29
|
+
this._bus = bus;
|
|
30
|
+
this._connectToBus();
|
|
31
|
+
}
|
|
11
32
|
get duration() {
|
|
12
33
|
return this._duration;
|
|
13
34
|
}
|
|
@@ -65,6 +86,60 @@ class AbstractMedia {
|
|
|
65
86
|
this._loop = loop;
|
|
66
87
|
this._muted = muted;
|
|
67
88
|
}
|
|
89
|
+
_scheduledStopId = null;
|
|
90
|
+
_clearScheduledStop() {
|
|
91
|
+
if (this._scheduledStopId !== null) {
|
|
92
|
+
clearTimeout(this._scheduledStopId);
|
|
93
|
+
this._scheduledStopId = null;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
fadeIn(durationMs) {
|
|
97
|
+
this._clearScheduledStop();
|
|
98
|
+
if (durationMs <= 0) {
|
|
99
|
+
if (this.paused)
|
|
100
|
+
this.play();
|
|
101
|
+
return this;
|
|
102
|
+
}
|
|
103
|
+
const setup = this._getAudioSetup();
|
|
104
|
+
if (!setup)
|
|
105
|
+
return this;
|
|
106
|
+
if (this.paused)
|
|
107
|
+
this.play();
|
|
108
|
+
const ctx = setup.audioContext;
|
|
109
|
+
const target = this.muted ? 0 : this._volume;
|
|
110
|
+
const node = setup.gainNode;
|
|
111
|
+
node.gain.cancelScheduledValues(ctx.currentTime);
|
|
112
|
+
node.gain.setValueAtTime(0, ctx.currentTime);
|
|
113
|
+
node.gain.linearRampToValueAtTime(target, ctx.currentTime + durationMs / 1000);
|
|
114
|
+
return this;
|
|
115
|
+
}
|
|
116
|
+
fadeOut(durationMs, options = {}) {
|
|
117
|
+
const stopAfter = options.stopAfter ?? true;
|
|
118
|
+
if (durationMs <= 0) {
|
|
119
|
+
if (stopAfter)
|
|
120
|
+
this.pause();
|
|
121
|
+
return this;
|
|
122
|
+
}
|
|
123
|
+
const setup = this._getAudioSetup();
|
|
124
|
+
if (!setup) {
|
|
125
|
+
if (stopAfter)
|
|
126
|
+
this.pause();
|
|
127
|
+
return this;
|
|
128
|
+
}
|
|
129
|
+
const ctx = setup.audioContext;
|
|
130
|
+
const node = setup.gainNode;
|
|
131
|
+
node.gain.cancelScheduledValues(ctx.currentTime);
|
|
132
|
+
node.gain.setValueAtTime(node.gain.value, ctx.currentTime);
|
|
133
|
+
node.gain.linearRampToValueAtTime(0, ctx.currentTime + durationMs / 1000);
|
|
134
|
+
if (stopAfter) {
|
|
135
|
+
this._clearScheduledStop();
|
|
136
|
+
this._scheduledStopId = setTimeout(() => {
|
|
137
|
+
this._scheduledStopId = null;
|
|
138
|
+
this.pause();
|
|
139
|
+
}, durationMs);
|
|
140
|
+
}
|
|
141
|
+
return this;
|
|
142
|
+
}
|
|
68
143
|
stop(options) {
|
|
69
144
|
this.pause(options);
|
|
70
145
|
this.currentTime = 0;
|
|
@@ -93,6 +168,7 @@ class AbstractMedia {
|
|
|
93
168
|
return this;
|
|
94
169
|
}
|
|
95
170
|
destroy() {
|
|
171
|
+
this._clearScheduledStop();
|
|
96
172
|
this.stop();
|
|
97
173
|
this.onStart.destroy();
|
|
98
174
|
this.onStop.destroy();
|
|
@@ -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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"}
|
|
@@ -1,29 +1,89 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { AudioBus } from '@/audio/AudioBus';
|
|
2
|
+
import type { Sound } from '@/audio/Sound';
|
|
3
|
+
import type { Music } from '@/audio/Music';
|
|
4
|
+
export type AudioAnalyserSource = AudioBus | Sound | Music | MediaStream | AudioNode | null;
|
|
5
|
+
/** Construction options for {@link AudioAnalyser}. */
|
|
2
6
|
export interface AudioAnalyserOptions {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
smoothingTimeConstant
|
|
7
|
+
/** FFT window size; must be a power of two between 32 and 32768. Default 2048. */
|
|
8
|
+
fftSize?: number;
|
|
9
|
+
/** Time-domain smoothing constant in 0..1 applied between successive analyses. Default 0.8. */
|
|
10
|
+
smoothingTimeConstant?: number;
|
|
11
|
+
/** Minimum dBFS rendered by the byte-domain spectrum getters. Default -100. */
|
|
12
|
+
minDecibels?: number;
|
|
13
|
+
/** Maximum dBFS rendered by the byte-domain spectrum getters. Default -30. */
|
|
14
|
+
maxDecibels?: number;
|
|
7
15
|
}
|
|
16
|
+
/**
|
|
17
|
+
* Lightweight visualisation analyser backed by a Web Audio AnalyserNode.
|
|
18
|
+
*
|
|
19
|
+
* Accepts any of: AudioBus, Sound, Music, MediaStream, AudioNode, or null.
|
|
20
|
+
* The tap is a parallel branch — it does not affect the source's main routing.
|
|
21
|
+
*
|
|
22
|
+
* Migration from 0.7.1: the old constructor was `new AudioAnalyser(media, options)`.
|
|
23
|
+
* The new API is `new AudioAnalyser(options?); analyser.source = media`.
|
|
24
|
+
*/
|
|
8
25
|
export declare class AudioAnalyser {
|
|
9
|
-
private readonly _media;
|
|
10
|
-
private readonly _fftSize;
|
|
11
|
-
private readonly _minDecibels;
|
|
12
|
-
private readonly _maxDecibels;
|
|
13
|
-
private readonly _smoothingTimeConstant;
|
|
14
|
-
private readonly _frequencyBinCount;
|
|
15
|
-
private readonly _timeDomainData;
|
|
16
|
-
private readonly _frequencyData;
|
|
17
|
-
private readonly _preciseTimeDomainData;
|
|
18
|
-
private readonly _preciseFrequencyData;
|
|
19
26
|
private _analyser;
|
|
20
|
-
private
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
+
private readonly _options;
|
|
28
|
+
private _source;
|
|
29
|
+
private _tapSource;
|
|
30
|
+
private _streamSource;
|
|
31
|
+
private _byteSpectrum;
|
|
32
|
+
private _floatSpectrum;
|
|
33
|
+
private _byteWaveform;
|
|
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
|
+
*/
|
|
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
|
+
*/
|
|
46
|
+
get source(): AudioAnalyserSource;
|
|
47
|
+
set source(value: AudioAnalyserSource);
|
|
48
|
+
get fftSize(): number;
|
|
49
|
+
/** Number of frequency bins available — half of `fftSize`. */
|
|
50
|
+
get frequencyBinCount(): number;
|
|
51
|
+
get smoothingTimeConstant(): number;
|
|
52
|
+
set smoothingTimeConstant(v: number);
|
|
53
|
+
get minDecibels(): number;
|
|
54
|
+
set minDecibels(v: number);
|
|
55
|
+
get maxDecibels(): number;
|
|
56
|
+
set maxDecibels(v: number);
|
|
57
|
+
/** Fill and return the byte frequency spectrum (0..255 per bin). */
|
|
58
|
+
getSpectrum(into?: Uint8Array<ArrayBuffer>): Uint8Array<ArrayBuffer>;
|
|
59
|
+
/** Fill and return the float frequency spectrum (dB per bin). */
|
|
60
|
+
getSpectrumFloat(into?: Float32Array<ArrayBuffer>): Float32Array<ArrayBuffer>;
|
|
61
|
+
/** Fill and return the byte time-domain waveform (0..255 per sample). */
|
|
62
|
+
getWaveform(into?: Uint8Array<ArrayBuffer>): Uint8Array<ArrayBuffer>;
|
|
63
|
+
/** Fill and return the float time-domain waveform (-1..1 per sample). */
|
|
64
|
+
getWaveformFloat(into?: Float32Array<ArrayBuffer>): Float32Array<ArrayBuffer>;
|
|
65
|
+
/**
|
|
66
|
+
* Return the mean energy of frequency bins in the given Hz range, normalised 0..1.
|
|
67
|
+
* Uses the byte spectrum (0..255), normalised by dividing by 255.
|
|
68
|
+
*/
|
|
69
|
+
getBandEnergy(fromHz: number, toHz: number): number;
|
|
70
|
+
/** Return low (0-250 Hz), mid (250-2 kHz), and high (2 k-20 kHz) band energies (0..1 each). */
|
|
71
|
+
getLowMidHigh(): {
|
|
72
|
+
low: number;
|
|
73
|
+
mid: number;
|
|
74
|
+
high: number;
|
|
75
|
+
};
|
|
76
|
+
/** Return overall RMS energy across all bins, normalised 0..1. */
|
|
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
|
+
*/
|
|
27
83
|
destroy(): void;
|
|
28
|
-
private
|
|
84
|
+
private _setupAnalyser;
|
|
85
|
+
private _connectSource;
|
|
86
|
+
private _resolveToAudioNode;
|
|
87
|
+
private _deferConnectionViaBus;
|
|
88
|
+
private _disconnectTap;
|
|
29
89
|
}
|