@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
|
@@ -1,17 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Listener function for a {@link Signal}. Returning `false` from a handler
|
|
3
|
+
* stops further dispatch to remaining listeners for the current invocation
|
|
4
|
+
* (subsequent dispatches are unaffected).
|
|
5
|
+
*/
|
|
1
6
|
type SignalHandler<Args extends Array<unknown>> = (...params: Args) => void | boolean;
|
|
2
7
|
interface SignalBinding<Args extends Array<unknown>> {
|
|
3
8
|
handler: SignalHandler<Args>;
|
|
4
9
|
context?: object;
|
|
5
10
|
}
|
|
11
|
+
/**
|
|
12
|
+
* Lightweight typed event emitter. Each `Signal` represents one named
|
|
13
|
+
* notification channel (e.g. `onResize`, `onFrame`). Listeners are added with
|
|
14
|
+
* {@link Signal.add} or {@link Signal.once}, removed with
|
|
15
|
+
* {@link Signal.remove}, and notified with {@link Signal.dispatch}.
|
|
16
|
+
*
|
|
17
|
+
* `Args` is the tuple of arguments passed to listeners — type-checked end to
|
|
18
|
+
* end so a `new Signal<[number, string]>()` enforces both `dispatch(1, 'x')`
|
|
19
|
+
* and the listener signature `(n: number, s: string) => …`.
|
|
20
|
+
*
|
|
21
|
+
* `dispatch` snapshots the bindings list before iterating, so handlers may
|
|
22
|
+
* freely add or remove listeners during the same dispatch without corrupting
|
|
23
|
+
* the loop. Returning `false` from a handler short-circuits the rest of the
|
|
24
|
+
* dispatch (handy for capturing-style flows).
|
|
25
|
+
*/
|
|
6
26
|
export declare class Signal<Args extends Array<unknown> = []> {
|
|
7
27
|
private readonly _bindings;
|
|
8
28
|
get bindings(): ReadonlyArray<SignalBinding<Args>>;
|
|
29
|
+
/** `true` when `handler` is registered with the same `context`. */
|
|
9
30
|
has(handler: SignalHandler<Args>, context?: object): boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Register a listener. Idempotent — adding the same `(handler, context)`
|
|
33
|
+
* pair twice is a no-op. `context` becomes `this` inside the handler.
|
|
34
|
+
*/
|
|
10
35
|
add(handler: SignalHandler<Args>, context?: object): this;
|
|
36
|
+
/**
|
|
37
|
+
* Register a listener that auto-removes itself after the first dispatch.
|
|
38
|
+
* Wraps `handler` in a self-removing closure; calling
|
|
39
|
+
* {@link Signal.remove} with the original `handler` reference does NOT
|
|
40
|
+
* remove the wrapper — use {@link Signal.clear} or
|
|
41
|
+
* {@link Signal.clearByContext} to undo a `once` registration.
|
|
42
|
+
*/
|
|
11
43
|
once(handler: SignalHandler<Args>, context?: object): this;
|
|
44
|
+
/** Remove a previously registered `(handler, context)` pair. No-op if absent. */
|
|
12
45
|
remove(handler: SignalHandler<Args>, context?: object): this;
|
|
46
|
+
/**
|
|
47
|
+
* Remove every listener bound to `context`. Useful when an object is
|
|
48
|
+
* being torn down and needs to detach all its subscriptions in one call.
|
|
49
|
+
*/
|
|
13
50
|
clearByContext(context?: object): this;
|
|
51
|
+
/** Remove every listener. */
|
|
14
52
|
clear(): this;
|
|
53
|
+
/**
|
|
54
|
+
* Notify every registered listener in registration order. Returning `false`
|
|
55
|
+
* from a handler stops dispatch to the remaining listeners for this call.
|
|
56
|
+
* Listeners may safely add/remove bindings during dispatch — the iteration
|
|
57
|
+
* uses a pre-snapshot of the bindings array.
|
|
58
|
+
*/
|
|
15
59
|
dispatch(...params: Args): this;
|
|
16
60
|
destroy(): void;
|
|
17
61
|
}
|
package/dist/esm/core/Signal.js
CHANGED
|
@@ -1,19 +1,46 @@
|
|
|
1
1
|
import { removeArrayItems } from './utils.js';
|
|
2
2
|
|
|
3
|
+
/**
|
|
4
|
+
* Lightweight typed event emitter. Each `Signal` represents one named
|
|
5
|
+
* notification channel (e.g. `onResize`, `onFrame`). Listeners are added with
|
|
6
|
+
* {@link Signal.add} or {@link Signal.once}, removed with
|
|
7
|
+
* {@link Signal.remove}, and notified with {@link Signal.dispatch}.
|
|
8
|
+
*
|
|
9
|
+
* `Args` is the tuple of arguments passed to listeners — type-checked end to
|
|
10
|
+
* end so a `new Signal<[number, string]>()` enforces both `dispatch(1, 'x')`
|
|
11
|
+
* and the listener signature `(n: number, s: string) => …`.
|
|
12
|
+
*
|
|
13
|
+
* `dispatch` snapshots the bindings list before iterating, so handlers may
|
|
14
|
+
* freely add or remove listeners during the same dispatch without corrupting
|
|
15
|
+
* the loop. Returning `false` from a handler short-circuits the rest of the
|
|
16
|
+
* dispatch (handy for capturing-style flows).
|
|
17
|
+
*/
|
|
3
18
|
class Signal {
|
|
4
19
|
_bindings = new Array();
|
|
5
20
|
get bindings() {
|
|
6
21
|
return this._bindings;
|
|
7
22
|
}
|
|
23
|
+
/** `true` when `handler` is registered with the same `context`. */
|
|
8
24
|
has(handler, context) {
|
|
9
25
|
return this._bindings.some((binding) => (binding.handler === handler && binding.context === context));
|
|
10
26
|
}
|
|
27
|
+
/**
|
|
28
|
+
* Register a listener. Idempotent — adding the same `(handler, context)`
|
|
29
|
+
* pair twice is a no-op. `context` becomes `this` inside the handler.
|
|
30
|
+
*/
|
|
11
31
|
add(handler, context) {
|
|
12
32
|
if (!this.has(handler, context)) {
|
|
13
33
|
this._bindings.push({ handler, context });
|
|
14
34
|
}
|
|
15
35
|
return this;
|
|
16
36
|
}
|
|
37
|
+
/**
|
|
38
|
+
* Register a listener that auto-removes itself after the first dispatch.
|
|
39
|
+
* Wraps `handler` in a self-removing closure; calling
|
|
40
|
+
* {@link Signal.remove} with the original `handler` reference does NOT
|
|
41
|
+
* remove the wrapper — use {@link Signal.clear} or
|
|
42
|
+
* {@link Signal.clearByContext} to undo a `once` registration.
|
|
43
|
+
*/
|
|
17
44
|
once(handler, context) {
|
|
18
45
|
const once = (...params) => {
|
|
19
46
|
this.remove(once, context);
|
|
@@ -22,6 +49,7 @@ class Signal {
|
|
|
22
49
|
this.add(once, context);
|
|
23
50
|
return this;
|
|
24
51
|
}
|
|
52
|
+
/** Remove a previously registered `(handler, context)` pair. No-op if absent. */
|
|
25
53
|
remove(handler, context) {
|
|
26
54
|
const index = this._bindings.findIndex((binding) => (binding.handler === handler && binding.context === context));
|
|
27
55
|
if (index !== -1) {
|
|
@@ -29,6 +57,10 @@ class Signal {
|
|
|
29
57
|
}
|
|
30
58
|
return this;
|
|
31
59
|
}
|
|
60
|
+
/**
|
|
61
|
+
* Remove every listener bound to `context`. Useful when an object is
|
|
62
|
+
* being torn down and needs to detach all its subscriptions in one call.
|
|
63
|
+
*/
|
|
32
64
|
clearByContext(context) {
|
|
33
65
|
const bindings = this._bindings.filter(binding => binding.context === context);
|
|
34
66
|
for (const binding of bindings) {
|
|
@@ -36,10 +68,17 @@ class Signal {
|
|
|
36
68
|
}
|
|
37
69
|
return this;
|
|
38
70
|
}
|
|
71
|
+
/** Remove every listener. */
|
|
39
72
|
clear() {
|
|
40
73
|
this._bindings.length = 0;
|
|
41
74
|
return this;
|
|
42
75
|
}
|
|
76
|
+
/**
|
|
77
|
+
* Notify every registered listener in registration order. Returning `false`
|
|
78
|
+
* from a handler stops dispatch to the remaining listeners for this call.
|
|
79
|
+
* Listeners may safely add/remove bindings during dispatch — the iteration
|
|
80
|
+
* uses a pre-snapshot of the bindings array.
|
|
81
|
+
*/
|
|
43
82
|
dispatch(...params) {
|
|
44
83
|
if (this._bindings.length) {
|
|
45
84
|
// Snapshot bindings because handlers may mutate the array mid-dispatch
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Signal.js","sources":["../../../../src/core/Signal.ts"],"sourcesContent":[null],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"Signal.js","sources":["../../../../src/core/Signal.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAcA;;;;;;;;;;;;;;AAcG;MACU,MAAM,CAAA;AAEE,IAAA,SAAS,GAAG,IAAI,KAAK,EAAuB;AAE7D,IAAA,IAAW,QAAQ,GAAA;QACf,OAAO,IAAI,CAAC,SAAS;IACzB;;IAGO,GAAG,CAAC,OAA4B,EAAE,OAAgB,EAAA;QACrD,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,MAAM,OAAO,CAAC,OAAO,KAAK,OAAO,IAAI,OAAO,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC;IACzG;AAEA;;;AAGG;IACI,GAAG,CAAC,OAA4B,EAAE,OAAgB,EAAA;QACrD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE;YAC7B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;QAC7C;AAEA,QAAA,OAAO,IAAI;IACf;AAEA;;;;;;AAMG;IACI,IAAI,CAAC,OAA4B,EAAE,OAAgB,EAAA;AACtD,QAAA,MAAM,IAAI,GAAG,CAAC,GAAG,MAAY,KAAU;AACnC,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC;YAC1B,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC;AACpC,QAAA,CAAC;AAED,QAAA,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC;AAEvB,QAAA,OAAO,IAAI;IACf;;IAGO,MAAM,CAAC,OAA4B,EAAE,OAAgB,EAAA;QACxD,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,OAAO,MAAM,OAAO,CAAC,OAAO,KAAK,OAAO,IAAI,OAAO,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC;AAEjH,QAAA,IAAI,KAAK,KAAK,EAAE,EAAE;YACd,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;QAC9C;AAEA,QAAA,OAAO,IAAI;IACf;AAEA;;;AAGG;AACI,IAAA,cAAc,CAAC,OAAgB,EAAA;AAClC,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,KAAK,OAAO,CAAC;AAE9E,QAAA,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;AAC5B,YAAA,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACxE;AAEA,QAAA,OAAO,IAAI;IACf;;IAGO,KAAK,GAAA;AACR,QAAA,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;AAEzB,QAAA,OAAO,IAAI;IACf;AAEA;;;;;AAKG;IACI,QAAQ,CAAC,GAAG,MAAY,EAAA;AAC3B,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;;;;YAIvB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;AAEvC,YAAA,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;AAC5B,gBAAA,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,KAAK,KAAK,EAAE;oBAC5D;gBACJ;YACJ;QACJ;AAEA,QAAA,OAAO,IAAI;IACf;IAEO,OAAO,GAAA;QACV,IAAI,CAAC,KAAK,EAAE;IAChB;AACH;;;;"}
|
package/dist/esm/core/Time.d.ts
CHANGED
|
@@ -1,4 +1,16 @@
|
|
|
1
1
|
import type { Cloneable, TimeInterval } from '@/core/types';
|
|
2
|
+
/**
|
|
3
|
+
* Time-duration value object stored internally in milliseconds. Provides
|
|
4
|
+
* unit-converted accessors (`seconds`, `minutes`, `hours`) and arithmetic
|
|
5
|
+
* helpers ({@link Time.add}, {@link Time.subtract}, {@link Time.addTime}).
|
|
6
|
+
*
|
|
7
|
+
* Constants on the class hold canonical durations: {@link Time.zero},
|
|
8
|
+
* {@link Time.oneSecond}, {@link Time.oneMinute}, {@link Time.oneHour}, plus
|
|
9
|
+
* the {@link TimeInterval} multipliers used by the `factor` parameter.
|
|
10
|
+
*
|
|
11
|
+
* `Time.temp` is a shared scratch instance for hot paths — do not store the
|
|
12
|
+
* reference across calls.
|
|
13
|
+
*/
|
|
2
14
|
export declare class Time implements Cloneable {
|
|
3
15
|
private _milliseconds;
|
|
4
16
|
constructor(time?: number, factor?: TimeInterval);
|
|
@@ -10,6 +22,11 @@ export declare class Time implements Cloneable {
|
|
|
10
22
|
set minutes(minutes: number);
|
|
11
23
|
get hours(): number;
|
|
12
24
|
set hours(hours: number);
|
|
25
|
+
/**
|
|
26
|
+
* Replace the stored duration with `time * factor` milliseconds. Pair
|
|
27
|
+
* with {@link Time.seconds}, {@link Time.minutes}, or {@link Time.hours}
|
|
28
|
+
* as the `factor` to construct from non-millisecond units.
|
|
29
|
+
*/
|
|
13
30
|
set(time?: number, factor?: TimeInterval): this;
|
|
14
31
|
setMilliseconds(milliseconds: number): this;
|
|
15
32
|
setSeconds(seconds: number): this;
|
|
@@ -20,9 +37,13 @@ export declare class Time implements Cloneable {
|
|
|
20
37
|
lessThan(time: Time): boolean;
|
|
21
38
|
clone(): this;
|
|
22
39
|
copy(time: Time): this;
|
|
40
|
+
/** Add `value * factor` milliseconds in place. Mutates this instance. */
|
|
23
41
|
add(value?: number, factor?: TimeInterval): this;
|
|
42
|
+
/** Add another `Time` value in place. Mutates this instance. */
|
|
24
43
|
addTime(time: Time): this;
|
|
44
|
+
/** Subtract `value * factor` milliseconds in place. Mutates this instance. */
|
|
25
45
|
subtract(value?: number, factor?: TimeInterval): this;
|
|
46
|
+
/** Subtract another `Time` value in place. Mutates this instance. */
|
|
26
47
|
subtractTime(time: Time): this;
|
|
27
48
|
destroy(): void;
|
|
28
49
|
static readonly milliseconds: TimeInterval;
|
package/dist/esm/core/Time.js
CHANGED
|
@@ -1,4 +1,16 @@
|
|
|
1
1
|
let temp = null;
|
|
2
|
+
/**
|
|
3
|
+
* Time-duration value object stored internally in milliseconds. Provides
|
|
4
|
+
* unit-converted accessors (`seconds`, `minutes`, `hours`) and arithmetic
|
|
5
|
+
* helpers ({@link Time.add}, {@link Time.subtract}, {@link Time.addTime}).
|
|
6
|
+
*
|
|
7
|
+
* Constants on the class hold canonical durations: {@link Time.zero},
|
|
8
|
+
* {@link Time.oneSecond}, {@link Time.oneMinute}, {@link Time.oneHour}, plus
|
|
9
|
+
* the {@link TimeInterval} multipliers used by the `factor` parameter.
|
|
10
|
+
*
|
|
11
|
+
* `Time.temp` is a shared scratch instance for hot paths — do not store the
|
|
12
|
+
* reference across calls.
|
|
13
|
+
*/
|
|
2
14
|
class Time {
|
|
3
15
|
_milliseconds;
|
|
4
16
|
constructor(time = 0, factor = Time.milliseconds) {
|
|
@@ -28,6 +40,11 @@ class Time {
|
|
|
28
40
|
set hours(hours) {
|
|
29
41
|
this._milliseconds = hours * Time.hours;
|
|
30
42
|
}
|
|
43
|
+
/**
|
|
44
|
+
* Replace the stored duration with `time * factor` milliseconds. Pair
|
|
45
|
+
* with {@link Time.seconds}, {@link Time.minutes}, or {@link Time.hours}
|
|
46
|
+
* as the `factor` to construct from non-millisecond units.
|
|
47
|
+
*/
|
|
31
48
|
set(time = 0, factor = Time.milliseconds) {
|
|
32
49
|
this._milliseconds = time * factor;
|
|
33
50
|
return this;
|
|
@@ -67,18 +84,22 @@ class Time {
|
|
|
67
84
|
this._milliseconds = time.milliseconds;
|
|
68
85
|
return this;
|
|
69
86
|
}
|
|
87
|
+
/** Add `value * factor` milliseconds in place. Mutates this instance. */
|
|
70
88
|
add(value = 0, factor = Time.milliseconds) {
|
|
71
89
|
this._milliseconds += (value * factor);
|
|
72
90
|
return this;
|
|
73
91
|
}
|
|
92
|
+
/** Add another `Time` value in place. Mutates this instance. */
|
|
74
93
|
addTime(time) {
|
|
75
94
|
this._milliseconds += time.milliseconds;
|
|
76
95
|
return this;
|
|
77
96
|
}
|
|
97
|
+
/** Subtract `value * factor` milliseconds in place. Mutates this instance. */
|
|
78
98
|
subtract(value = 0, factor = Time.milliseconds) {
|
|
79
99
|
this._milliseconds -= (value * factor);
|
|
80
100
|
return this;
|
|
81
101
|
}
|
|
102
|
+
/** Subtract another `Time` value in place. Mutates this instance. */
|
|
82
103
|
subtractTime(time) {
|
|
83
104
|
this._milliseconds -= time.milliseconds;
|
|
84
105
|
return this;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Time.js","sources":["../../../../src/core/Time.ts"],"sourcesContent":[null],"names":[],"mappings":"AAEA,IAAI,IAAI,GAAgB,IAAI;
|
|
1
|
+
{"version":3,"file":"Time.js","sources":["../../../../src/core/Time.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
package/dist/esm/core/Timer.d.ts
CHANGED
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
import { Clock } from './Clock';
|
|
2
2
|
import { Time } from '@/core/Time';
|
|
3
|
+
/**
|
|
4
|
+
* {@link Clock} variant with a fixed limit. Inherits start/stop/reset/restart
|
|
5
|
+
* semantics; adds {@link Timer.expired} (true once `elapsedTime >= limit`)
|
|
6
|
+
* and remaining-time accessors. Useful for cooldowns, delays, and any timed
|
|
7
|
+
* gating logic where you want to ask "is the duration up?" each frame.
|
|
8
|
+
*/
|
|
3
9
|
export declare class Timer extends Clock {
|
|
4
10
|
private readonly _limit;
|
|
5
11
|
constructor(limit: Time, autoStart?: boolean);
|
|
6
12
|
set limit(limit: Time);
|
|
13
|
+
/** `true` once the elapsed time has reached or exceeded the configured limit. */
|
|
7
14
|
get expired(): boolean;
|
|
8
15
|
get remainingMilliseconds(): number;
|
|
9
16
|
get remainingSeconds(): number;
|
package/dist/esm/core/Timer.js
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import { Clock } from './Clock.js';
|
|
2
2
|
import { Time } from './Time.js';
|
|
3
3
|
|
|
4
|
+
/**
|
|
5
|
+
* {@link Clock} variant with a fixed limit. Inherits start/stop/reset/restart
|
|
6
|
+
* semantics; adds {@link Timer.expired} (true once `elapsedTime >= limit`)
|
|
7
|
+
* and remaining-time accessors. Useful for cooldowns, delays, and any timed
|
|
8
|
+
* gating logic where you want to ask "is the duration up?" each frame.
|
|
9
|
+
*/
|
|
4
10
|
class Timer extends Clock {
|
|
5
11
|
_limit;
|
|
6
12
|
constructor(limit, autoStart = false) {
|
|
@@ -13,6 +19,7 @@ class Timer extends Clock {
|
|
|
13
19
|
set limit(limit) {
|
|
14
20
|
this._limit.copy(limit);
|
|
15
21
|
}
|
|
22
|
+
/** `true` once the elapsed time has reached or exceeded the configured limit. */
|
|
16
23
|
get expired() {
|
|
17
24
|
return this.elapsedMilliseconds >= this._limit.milliseconds;
|
|
18
25
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Timer.js","sources":["../../../../src/core/Timer.ts"],"sourcesContent":[null],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"Timer.js","sources":["../../../../src/core/Timer.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAGA;;;;;AAKG;AACG,MAAO,KAAM,SAAQ,KAAK,CAAA;AAEX,IAAA,MAAM;AAEvB,IAAA,WAAA,CAAmB,KAAW,EAAE,SAAS,GAAG,KAAK,EAAA;AAC7C,QAAA,KAAK,EAAE;AAEP,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE;QAE3B,IAAI,SAAS,EAAE;YACX,IAAI,CAAC,OAAO,EAAE;QAClB;IACJ;IAEA,IAAW,KAAK,CAAC,KAAW,EAAA;AACxB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;IAC3B;;AAGA,IAAA,IAAW,OAAO,GAAA;QACd,OAAO,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY;IAC/D;AAEA,IAAA,IAAW,qBAAqB,GAAA;AAC5B,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC;IAC3E;AAEA,IAAA,IAAW,gBAAgB,GAAA;AACvB,QAAA,OAAO,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,OAAO;IACpD;AAEA,IAAA,IAAW,gBAAgB,GAAA;AACvB,QAAA,OAAO,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,OAAO;IACpD;AAEA,IAAA,IAAW,cAAc,GAAA;AACrB,QAAA,OAAO,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,KAAK;IAClD;AACH;;;;"}
|
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Frozen snapshot of host-environment feature support: which renderer
|
|
3
|
+
* backends are available, which input modalities are present, audio /
|
|
4
|
+
* fullscreen / vibration / OffscreenCanvas / Worker support, max touch
|
|
5
|
+
* points, and the resolved devicePixelRatio.
|
|
6
|
+
*
|
|
7
|
+
* Construction is private — the only public entry is
|
|
8
|
+
* {@link Capabilities.ready}, a lazy-cached `Promise<Capabilities>` that
|
|
9
|
+
* fires the (mostly) async probes on first access. The resolved instance
|
|
10
|
+
* is frozen and never mutates. {@link Application.capabilities} returns
|
|
11
|
+
* the same instance once `app.start()` has resolved.
|
|
12
|
+
*/
|
|
1
13
|
export declare class Capabilities {
|
|
2
14
|
private static _readyPromise;
|
|
3
15
|
/**
|
|
@@ -11,6 +11,18 @@
|
|
|
11
11
|
const hasWindow = typeof window !== 'undefined';
|
|
12
12
|
const hasDocument = typeof document !== 'undefined';
|
|
13
13
|
const hasNavigator = typeof navigator !== 'undefined';
|
|
14
|
+
/**
|
|
15
|
+
* Frozen snapshot of host-environment feature support: which renderer
|
|
16
|
+
* backends are available, which input modalities are present, audio /
|
|
17
|
+
* fullscreen / vibration / OffscreenCanvas / Worker support, max touch
|
|
18
|
+
* points, and the resolved devicePixelRatio.
|
|
19
|
+
*
|
|
20
|
+
* Construction is private — the only public entry is
|
|
21
|
+
* {@link Capabilities.ready}, a lazy-cached `Promise<Capabilities>` that
|
|
22
|
+
* fires the (mostly) async probes on first access. The resolved instance
|
|
23
|
+
* is frozen and never mutates. {@link Application.capabilities} returns
|
|
24
|
+
* the same instance once `app.start()` has resolved.
|
|
25
|
+
*/
|
|
14
26
|
class Capabilities {
|
|
15
27
|
static _readyPromise = null;
|
|
16
28
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capabilities.js","sources":["../../../../src/core/capabilities.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,MAAM,SAAS,GAAG,OAAO,MAAM,KAAK,WAAW;AAC/C,MAAM,WAAW,GAAG,OAAO,QAAQ,KAAK,WAAW;AACnD,MAAM,YAAY,GAAG,OAAO,SAAS,KAAK,WAAW;
|
|
1
|
+
{"version":3,"file":"capabilities.js","sources":["../../../../src/core/capabilities.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,MAAM,SAAS,GAAG,OAAO,MAAM,KAAK,WAAW;AAC/C,MAAM,WAAW,GAAG,OAAO,QAAQ,KAAK,WAAW;AACnD,MAAM,YAAY,GAAG,OAAO,SAAS,KAAK,WAAW;AAqBrD;;;;;;;;;;;AAWG;MACU,YAAY,CAAA;AAEb,IAAA,OAAO,aAAa,GAAiC,IAAI;AAEjE;;;;;;;;;;;;;;;AAeG;AACI,IAAA,WAAW,KAAK,GAAA;AACnB,QAAA,IAAI,YAAY,CAAC,aAAa,KAAK,IAAI,EAAE;AACrC,YAAA,YAAY,CAAC,aAAa,GAAG,YAAY,CAAC,OAAO,EAAE;QACvD;QAEA,OAAO,YAAY,CAAC,aAAa;IACrC;AAEgB,IAAA,MAAM;AACN,IAAA,MAAM;AACN,IAAA,aAAa;AACb,IAAA,YAAY;AACZ,IAAA,kBAAkB;AAClB,IAAA,OAAO;AACP,IAAA,QAAQ;AACR,IAAA,OAAO;AACP,IAAA,KAAK;AACL,IAAA,cAAc;AACd,IAAA,KAAK;AACL,IAAA,UAAU;AACV,IAAA,SAAS;AACT,IAAA,eAAe;AACf,IAAA,UAAU;AACV,IAAA,gBAAgB;AAEhC,IAAA,WAAA,CAAoB,MAAwB,EAAA;AACxC,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM;AAC3B,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM;AAC3B,QAAA,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa;AACzC,QAAA,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY;AACvC,QAAA,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,kBAAkB;AACnD,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO;AAC7B,QAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ;AAC/B,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO;AAC7B,QAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK;AACzB,QAAA,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc;AAC3C,QAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK;AACzB,QAAA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU;AACnC,QAAA,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS;AACjC,QAAA,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe;AAC7C,QAAA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU;AACnC,QAAA,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB;AAE/C,QAAA,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;IACvB;IAEQ,aAAa,OAAO,GAAA;QACxB,MAAM,CAAC,aAAa,EAAE,UAAU,CAAC,GAAG,MAAM,WAAW,EAAE;QAEvD,OAAO,IAAI,YAAY,CAAC;YACpB,MAAM,EAAE,WAAW,EAAE;YACrB,MAAM,EAAE,qBAAqB,EAAE;YAC/B,aAAa;AACb,YAAA,YAAY,EAAE,UAAU,EAAE,MAAM,IAAI,IAAI;AACxC,YAAA,kBAAkB,EAAE,UAAU,EAAE,YAAY,IAAI,IAAI;YACpD,OAAO,EAAE,YAAY,EAAE;YACvB,QAAQ,EAAE,aAAa,EAAE;YACzB,OAAO,EAAE,YAAY,EAAE;YACvB,KAAK,EAAE,mBAAmB,EAAE;YAC5B,cAAc,EAAE,mBAAmB,EAAE;YACrC,KAAK,EAAE,UAAU,EAAE;YACnB,UAAU,EAAE,eAAe,EAAE;YAC7B,SAAS,EAAE,cAAc,EAAE;YAC3B,eAAe,EAAE,oBAAoB,EAAE;YACvC,UAAU,EAAE,eAAe,EAAE;YAC7B,gBAAgB,EAAE,SAAS,GAAG,MAAM,CAAC,gBAAgB,GAAG,CAAC;AAC5D,SAAA,CAAC;IACN;;AAGJ;AAEA,SAAS,WAAW,GAAA;AAChB,IAAA,IAAI,CAAC,WAAW;AAAE,QAAA,OAAO,KAAK;AAE9B,IAAA,IAAI;QACA,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;QAC/C,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC;QACtC,OAAO,EAAE,KAAK,IAAI;IACtB;AAAE,IAAA,MAAM;AACJ,QAAA,OAAO,KAAK;IAChB;AACJ;AAEA,SAAS,qBAAqB,GAAA;AAC1B,IAAA,OAAO,YAAY,IAAI,KAAK,IAAI,SAAS;AAC7C;AAEA,eAAe,WAAW,GAAA;IACtB,IAAI,CAAC,qBAAqB,EAAE;AAAE,QAAA,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;AAEjD,IAAA,MAAM,GAAG,GAAI,SAAwC,CAAC,GAAG;IAEzD,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,CAAC,cAAc,KAAK,UAAU;AAAE,QAAA,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;AAEzE,IAAA,IAAI;AACA,QAAA,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,cAAc,EAAE;AAE1C,QAAA,IAAI,CAAC,OAAO;AAAE,YAAA,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;;;;;QAMjC,MAAM,UAAU,GAAG,OAGlB;AAED,QAAA,IAAI,UAAU,CAAC,IAAI,EAAE;AACjB,YAAA,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC;QACrC;AAEA,QAAA,IAAI,OAAO,UAAU,CAAC,kBAAkB,KAAK,UAAU,EAAE;AACrD,YAAA,IAAI;gBACA,OAAO,CAAC,OAAO,EAAE,MAAM,UAAU,CAAC,kBAAkB,EAAE,CAAC;YAC3D;AAAE,YAAA,MAAM;AACJ,gBAAA,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC;YAC1B;QACJ;AAEA,QAAA,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC;IAC1B;AAAE,IAAA,MAAM;AACJ,QAAA,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;IACvB;AACJ;AAEA,SAAS,YAAY,GAAA;AACjB,IAAA,OAAO,SAAS,IAAI,cAAc,IAAI,MAAM;AAChD;AAEA,SAAS,aAAa,GAAA;AAClB,IAAA,OAAO,SAAS,IAAI,eAAe,IAAI,MAAM;AACjD;AAEA,SAAS,YAAY,GAAA;IACjB,OAAO,YAAY,IAAI,OAAO,SAAS,CAAC,WAAW,KAAK,UAAU;AACtE;AAEA,SAAS,mBAAmB,GAAA;AACxB,IAAA,IAAI,CAAC,SAAS;AAAE,QAAA,OAAO,KAAK;IAC5B,IAAI,cAAc,IAAI,MAAM;AAAE,QAAA,OAAO,IAAI;IACzC,IAAI,mBAAmB,EAAE,GAAG,CAAC;AAAE,QAAA,OAAO,IAAI;AAC1C,IAAA,OAAO,KAAK;AAChB;AAEA,SAAS,mBAAmB,GAAA;AACxB,IAAA,IAAI,CAAC,YAAY;AAAE,QAAA,OAAO,CAAC;AAC3B,IAAA,MAAM,MAAM,GAAG,SAAS,CAAC,cAAc;AACvC,IAAA,OAAO,OAAO,MAAM,KAAK,QAAQ,GAAG,MAAM,GAAG,CAAC;AAClD;AAEA,SAAS,UAAU,GAAA;AACf,IAAA,IAAI,CAAC,SAAS;AAAE,QAAA,OAAO,KAAK;IAC5B,MAAM,CAAC,GAAG,MAA2D;AACrE,IAAA,OAAO,OAAO,CAAC,CAAC,YAAY,KAAK,WAAW,IAAI,OAAO,CAAC,CAAC,kBAAkB,KAAK,WAAW;AAC/F;AAEA,SAAS,eAAe,GAAA;AACpB,IAAA,IAAI,CAAC,WAAW;AAAE,QAAA,OAAO,KAAK;AAC9B,IAAA,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAuE;AAC3F,IAAA,OAAO,OAAO,EAAE,CAAC,iBAAiB,KAAK,UAAU,IAAI,OAAO,EAAE,CAAC,uBAAuB,KAAK,UAAU;AACzG;AAEA,SAAS,cAAc,GAAA;IACnB,OAAO,YAAY,IAAI,OAAO,SAAS,CAAC,OAAO,KAAK,UAAU;AAClE;AAEA,SAAS,oBAAoB,GAAA;;;;;IAKzB,OAAO,SAAS,IAAI,OAAQ,MAAyD,CAAC,eAAe,KAAK,WAAW;AACzH;AAEA,SAAS,eAAe,GAAA;;;;;IAKpB,OAAO,SAAS,IAAI,OAAQ,MAAgD,CAAC,MAAM,KAAK,UAAU;AACtG;;;;"}
|
package/dist/esm/core/types.d.ts
CHANGED
|
@@ -1,14 +1,33 @@
|
|
|
1
1
|
import type { Rectangle } from '@/math/Rectangle';
|
|
2
|
+
/** Union of every concrete `TypedArray` constructor result. */
|
|
2
3
|
export type TypedArray = Int8Array | Uint8Array | Int16Array | Uint16Array | Int32Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array;
|
|
4
|
+
/**
|
|
5
|
+
* Multiplier converting a unit-typed time value to milliseconds. Pair with
|
|
6
|
+
* {@link Time.set} / {@link Time.add} as the `factor` argument; canonical
|
|
7
|
+
* values are exposed on the `Time` class as `Time.milliseconds`,
|
|
8
|
+
* `Time.seconds`, `Time.minutes`, `Time.hours`.
|
|
9
|
+
*/
|
|
3
10
|
export type TimeInterval = 1 | 1000 | 60000 | 3600000;
|
|
11
|
+
/**
|
|
12
|
+
* Type-level mapper that rebuilds `Enum` with every value retyped to `Type`.
|
|
13
|
+
* Useful for "table-driven" lookups keyed by an enum.
|
|
14
|
+
*/
|
|
4
15
|
export type TypedEnum<Enum, Type> = {
|
|
5
16
|
[Key in keyof Enum]: Type;
|
|
6
17
|
};
|
|
18
|
+
/** Type-level extractor of an object's value type, equivalent to `T[keyof T]`. */
|
|
7
19
|
export type ValueOf<T> = T[keyof T];
|
|
20
|
+
/** Strips `readonly` modifiers from every property of `T`. */
|
|
8
21
|
export type Mutable<T> = {
|
|
9
22
|
-readonly [P in keyof T]: T[P];
|
|
10
23
|
};
|
|
24
|
+
/**
|
|
25
|
+
* Anything the rendering pipeline can sample as a texture source: a loaded
|
|
26
|
+
* image, an offscreen canvas, a playing video, or `null` when no source has
|
|
27
|
+
* been assigned yet.
|
|
28
|
+
*/
|
|
11
29
|
export type TextureSource = HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | null;
|
|
30
|
+
/** Common playback configuration for both {@link Sound} and {@link Music}. */
|
|
12
31
|
export interface PlaybackOptions {
|
|
13
32
|
volume: number;
|
|
14
33
|
playbackRate: number;
|
|
@@ -16,14 +35,32 @@ export interface PlaybackOptions {
|
|
|
16
35
|
muted: boolean;
|
|
17
36
|
time: number;
|
|
18
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
* Structural interface for value types that support a deep clone and an
|
|
40
|
+
* in-place copy from a same-type source. Implemented by {@link Color},
|
|
41
|
+
* {@link Time}, {@link Vector}, {@link Matrix}, {@link Rectangle}, and
|
|
42
|
+
* other ExoJS value classes.
|
|
43
|
+
*/
|
|
19
44
|
export interface Cloneable {
|
|
20
45
|
clone(): this;
|
|
21
46
|
copy(source: this): this;
|
|
22
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* Structural interface for anything that holds resources requiring explicit
|
|
50
|
+
* release. ExoJS value types tend to implement this even when no external
|
|
51
|
+
* resources are held (no-op `destroy()`) so consumers can call uniformly.
|
|
52
|
+
*/
|
|
23
53
|
export interface Destroyable {
|
|
24
54
|
destroy(): void;
|
|
25
55
|
}
|
|
56
|
+
/** Anything that can produce an axis-aligned bounding {@link Rectangle}. */
|
|
26
57
|
export interface HasBoundingBox {
|
|
27
58
|
getBounds(): Rectangle;
|
|
28
59
|
}
|
|
60
|
+
/**
|
|
61
|
+
* `HTMLMediaElement` ready-state events the streaming asset factories
|
|
62
|
+
* ({@link MusicFactory}, {@link VideoFactory}) accept as the load-completion
|
|
63
|
+
* signal. Pick the earliest event that meets your latency requirement;
|
|
64
|
+
* `'canplaythrough'` is the safest default.
|
|
65
|
+
*/
|
|
29
66
|
export type StreamingLoadEvent = 'loadedmetadata' | 'loadeddata' | 'canplay' | 'canplaythrough';
|
package/dist/esm/core/utils.d.ts
CHANGED
|
@@ -1,22 +1,70 @@
|
|
|
1
1
|
import { Size } from '@/math/Size';
|
|
2
2
|
import type { TextureSource } from '@/core/types';
|
|
3
3
|
import { Time } from '@/core/Time';
|
|
4
|
+
/**
|
|
5
|
+
* Random number in the range `[min, max]` from the module-level shared
|
|
6
|
+
* {@link Random} instance. Pass no arguments for `[0, 1)`. For deterministic
|
|
7
|
+
* sequences create your own seeded `Random` instance instead.
|
|
8
|
+
*/
|
|
4
9
|
export declare const rand: (min?: number, max?: number) => number;
|
|
10
|
+
/** Empty function literal — useful as a default callback that does nothing. */
|
|
5
11
|
export declare const noop: () => void;
|
|
12
|
+
/** `preventDefault()` + `stopImmediatePropagation()` on an event in one call. */
|
|
6
13
|
export declare const stopEvent: (event: Event) => void;
|
|
14
|
+
/** Snapshot at module-load: `true` when `AudioContext` is defined. */
|
|
7
15
|
export declare const supportsWebAudio: boolean;
|
|
16
|
+
/** Snapshot at module-load: `true` when `indexedDB` is defined. */
|
|
8
17
|
export declare const supportsIndexedDb: boolean;
|
|
18
|
+
/** Snapshot at module-load: `true` when the touch event API is detected. */
|
|
9
19
|
export declare const supportsTouchEvents: boolean;
|
|
20
|
+
/** Snapshot at module-load: `true` when `PointerEvent` is defined. */
|
|
10
21
|
export declare const supportsPointerEvents: boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Lazy-cached probe for the third `EventListenerOptions` argument to
|
|
24
|
+
* `addEventListener` (passive/capture object). Older browsers ignore the
|
|
25
|
+
* object and treat it as the boolean `useCapture`. Probed once on first call.
|
|
26
|
+
*/
|
|
11
27
|
export declare const supportsEventOptions: () => boolean;
|
|
28
|
+
/** High-resolution monotonic clock reading in milliseconds. Wraps `performance.now()`. */
|
|
12
29
|
export declare const getPreciseTime: () => number;
|
|
30
|
+
/** Construct a {@link Time} value from a millisecond count. */
|
|
13
31
|
export declare const milliseconds: (value: number) => Time;
|
|
32
|
+
/** Construct a {@link Time} value from a second count. */
|
|
14
33
|
export declare const seconds: (value: number) => Time;
|
|
34
|
+
/** Construct a {@link Time} value from a minute count. */
|
|
15
35
|
export declare const minutes: (value: number) => Time;
|
|
36
|
+
/** Construct a {@link Time} value from an hour count. */
|
|
16
37
|
export declare const hours: (value: number) => Time;
|
|
38
|
+
/** Shared zero-length `ArrayBuffer` for use as a sentinel / default. */
|
|
17
39
|
export declare const emptyArrayBuffer: ArrayBuffer;
|
|
40
|
+
/**
|
|
41
|
+
* Remove `amount` items from `array` starting at `startIndex`, in place.
|
|
42
|
+
* Faster than `Array.prototype.splice` for the common case because it
|
|
43
|
+
* skips the allocation of a removed-items array. Returns the same array
|
|
44
|
+
* for chaining.
|
|
45
|
+
*/
|
|
18
46
|
export declare const removeArrayItems: <T = unknown>(array: Array<T>, startIndex: number, amount: number) => Array<T>;
|
|
47
|
+
/**
|
|
48
|
+
* `true` when the host browser reports any of the given media-codec
|
|
49
|
+
* strings as playable on a transient `<audio>` element. Use to gate format
|
|
50
|
+
* selection (e.g. prefer OGG, fall back to MP3).
|
|
51
|
+
*/
|
|
19
52
|
export declare const supportsCodec: (...codecs: Array<string>) => boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Resolve the natural pixel dimensions of any `CanvasImageSource`. Returns
|
|
55
|
+
* a {@link Size.temp} scratch instance — copy if you need to retain the
|
|
56
|
+
* value. Returns {@link Size.zero} when the source has no resolvable size.
|
|
57
|
+
*/
|
|
20
58
|
export declare const getCanvasSourceSize: (source: CanvasImageSource) => Size;
|
|
59
|
+
/**
|
|
60
|
+
* Resolve the natural pixel dimensions of a {@link TextureSource}, treating
|
|
61
|
+
* `null` as zero. Same caveats as {@link getCanvasSourceSize} — shared
|
|
62
|
+
* scratch instance.
|
|
63
|
+
*/
|
|
21
64
|
export declare const getTextureSourceSize: (source: TextureSource) => Size;
|
|
65
|
+
/**
|
|
66
|
+
* Render any `CanvasImageSource` to the shared scratch 2D-canvas and return
|
|
67
|
+
* the result as a `data:` URL. Used by {@link Application.setCursor} to
|
|
68
|
+
* accept arbitrary image sources as the CSS cursor value.
|
|
69
|
+
*/
|
|
22
70
|
export declare const canvasSourceToDataUrl: (source: CanvasImageSource) => string;
|
package/dist/esm/core/utils.js
CHANGED
|
@@ -44,16 +44,32 @@ const getRandom = () => {
|
|
|
44
44
|
}
|
|
45
45
|
return internalRandom;
|
|
46
46
|
};
|
|
47
|
+
/**
|
|
48
|
+
* Random number in the range `[min, max]` from the module-level shared
|
|
49
|
+
* {@link Random} instance. Pass no arguments for `[0, 1)`. For deterministic
|
|
50
|
+
* sequences create your own seeded `Random` instance instead.
|
|
51
|
+
*/
|
|
47
52
|
const rand = (min, max) => getRandom().next(min, max);
|
|
53
|
+
/** Empty function literal — useful as a default callback that does nothing. */
|
|
48
54
|
const noop = () => { };
|
|
55
|
+
/** `preventDefault()` + `stopImmediatePropagation()` on an event in one call. */
|
|
49
56
|
const stopEvent = (event) => {
|
|
50
57
|
event.preventDefault();
|
|
51
58
|
event.stopImmediatePropagation();
|
|
52
59
|
};
|
|
60
|
+
/** Snapshot at module-load: `true` when `AudioContext` is defined. */
|
|
53
61
|
const supportsWebAudio = typeof AudioContext !== 'undefined';
|
|
62
|
+
/** Snapshot at module-load: `true` when `indexedDB` is defined. */
|
|
54
63
|
const supportsIndexedDb = typeof indexedDB !== 'undefined';
|
|
64
|
+
/** Snapshot at module-load: `true` when the touch event API is detected. */
|
|
55
65
|
const supportsTouchEvents = canUseWindow() && 'ontouchstart' in window;
|
|
66
|
+
/** Snapshot at module-load: `true` when `PointerEvent` is defined. */
|
|
56
67
|
const supportsPointerEvents = typeof PointerEvent !== 'undefined';
|
|
68
|
+
/**
|
|
69
|
+
* Lazy-cached probe for the third `EventListenerOptions` argument to
|
|
70
|
+
* `addEventListener` (passive/capture object). Older browsers ignore the
|
|
71
|
+
* object and treat it as the boolean `useCapture`. Probed once on first call.
|
|
72
|
+
*/
|
|
57
73
|
const supportsEventOptions = () => {
|
|
58
74
|
if (supportsEventOptionsValue !== null) {
|
|
59
75
|
return supportsEventOptionsValue;
|
|
@@ -78,12 +94,24 @@ const supportsEventOptions = () => {
|
|
|
78
94
|
supportsEventOptionsValue = supportsPassive;
|
|
79
95
|
return supportsEventOptionsValue;
|
|
80
96
|
};
|
|
97
|
+
/** High-resolution monotonic clock reading in milliseconds. Wraps `performance.now()`. */
|
|
81
98
|
const getPreciseTime = () => performance.now();
|
|
99
|
+
/** Construct a {@link Time} value from a millisecond count. */
|
|
82
100
|
const milliseconds = (value) => new Time(value, Time.milliseconds);
|
|
101
|
+
/** Construct a {@link Time} value from a second count. */
|
|
83
102
|
const seconds = (value) => new Time(value, Time.seconds);
|
|
103
|
+
/** Construct a {@link Time} value from a minute count. */
|
|
84
104
|
const minutes = (value) => new Time(value, Time.minutes);
|
|
105
|
+
/** Construct a {@link Time} value from an hour count. */
|
|
85
106
|
const hours = (value) => new Time(value, Time.hours);
|
|
107
|
+
/** Shared zero-length `ArrayBuffer` for use as a sentinel / default. */
|
|
86
108
|
const emptyArrayBuffer = new ArrayBuffer(0);
|
|
109
|
+
/**
|
|
110
|
+
* Remove `amount` items from `array` starting at `startIndex`, in place.
|
|
111
|
+
* Faster than `Array.prototype.splice` for the common case because it
|
|
112
|
+
* skips the allocation of a removed-items array. Returns the same array
|
|
113
|
+
* for chaining.
|
|
114
|
+
*/
|
|
87
115
|
const removeArrayItems = (array, startIndex, amount) => {
|
|
88
116
|
if (startIndex < array.length && amount > 0) {
|
|
89
117
|
const removeCount = (startIndex + amount > array.length)
|
|
@@ -97,7 +125,17 @@ const removeArrayItems = (array, startIndex, amount) => {
|
|
|
97
125
|
}
|
|
98
126
|
return array;
|
|
99
127
|
};
|
|
128
|
+
/**
|
|
129
|
+
* `true` when the host browser reports any of the given media-codec
|
|
130
|
+
* strings as playable on a transient `<audio>` element. Use to gate format
|
|
131
|
+
* selection (e.g. prefer OGG, fall back to MP3).
|
|
132
|
+
*/
|
|
100
133
|
const supportsCodec = (...codecs) => codecs.some((codec) => getAudioElement().canPlayType(codec).replace(codecNotSupportedPattern, ''));
|
|
134
|
+
/**
|
|
135
|
+
* Resolve the natural pixel dimensions of any `CanvasImageSource`. Returns
|
|
136
|
+
* a {@link Size.temp} scratch instance — copy if you need to retain the
|
|
137
|
+
* value. Returns {@link Size.zero} when the source has no resolvable size.
|
|
138
|
+
*/
|
|
101
139
|
const getCanvasSourceSize = (source) => {
|
|
102
140
|
const dynamicSource = source;
|
|
103
141
|
if (source instanceof HTMLImageElement) {
|
|
@@ -117,12 +155,22 @@ const getCanvasSourceSize = (source) => {
|
|
|
117
155
|
}
|
|
118
156
|
return Size.zero;
|
|
119
157
|
};
|
|
158
|
+
/**
|
|
159
|
+
* Resolve the natural pixel dimensions of a {@link TextureSource}, treating
|
|
160
|
+
* `null` as zero. Same caveats as {@link getCanvasSourceSize} — shared
|
|
161
|
+
* scratch instance.
|
|
162
|
+
*/
|
|
120
163
|
const getTextureSourceSize = (source) => {
|
|
121
164
|
if (source === null) {
|
|
122
165
|
return Size.zero;
|
|
123
166
|
}
|
|
124
167
|
return getCanvasSourceSize(source);
|
|
125
168
|
};
|
|
169
|
+
/**
|
|
170
|
+
* Render any `CanvasImageSource` to the shared scratch 2D-canvas and return
|
|
171
|
+
* the result as a `data:` URL. Used by {@link Application.setCursor} to
|
|
172
|
+
* accept arbitrary image sources as the CSS cursor value.
|
|
173
|
+
*/
|
|
126
174
|
const canvasSourceToDataUrl = (source) => {
|
|
127
175
|
const { width, height } = getCanvasSourceSize(source);
|
|
128
176
|
const canvasElement = getCanvasElement();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../../../../src/core/utils.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAYA,MAAM,wBAAwB,GAAG,MAAM;AAEvC,IAAI,oBAAoB,GAA4B,IAAI;AACxD,IAAI,qBAAqB,GAA6B,IAAI;AAC1D,IAAI,qBAAqB,GAAoC,IAAI;AACjE,IAAI,cAAc,GAAkB,IAAI;AACxC,IAAI,yBAAyB,GAAmB,IAAI;AAEpD,MAAM,cAAc,GAAG,MAAe,OAAO,QAAQ,KAAK,WAAW;AACrE,MAAM,YAAY,GAAG,MAAe,OAAO,MAAM,KAAK,WAAW;AAEjE,MAAM,eAAe,GAAG,MAAuB;AAC3C,IAAA,IAAI,CAAC,cAAc,EAAE,EAAE;AACnB,QAAA,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC;IACzE;AAEA,IAAA,IAAI,oBAAoB,KAAK,IAAI,EAAE;AAC/B,QAAA,oBAAoB,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAqB;IAC9E;AAEA,IAAA,OAAO,oBAAoB;AAC/B,CAAC;AAED,MAAM,gBAAgB,GAAG,MAAwB;AAC7C,IAAA,IAAI,CAAC,cAAc,EAAE,EAAE;AACnB,QAAA,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC;IACpE;AAEA,IAAA,IAAI,qBAAqB,KAAK,IAAI,EAAE;AAChC,QAAA,qBAAqB,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAsB;IACjF;AAEA,IAAA,OAAO,qBAAqB;AAChC,CAAC;AAED,MAAM,gBAAgB,GAAG,MAA+B;AACpD,IAAA,IAAI,qBAAqB,KAAK,IAAI,EAAE;QAChC,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;QAEnD,IAAI,CAAC,OAAO,EAAE;AACV,YAAA,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC;QAC5D;QAEA,qBAAqB,GAAG,OAAO;IACnC;AAEA,IAAA,OAAO,qBAAqB;AAChC,CAAC;AAED,MAAM,SAAS,GAAG,MAAa;AAC3B,IAAA,IAAI,cAAc,KAAK,IAAI,EAAE;AACzB,QAAA,cAAc,GAAG,IAAI,MAAM,EAAE;IACjC;AAEA,IAAA,OAAO,cAAc;AACzB,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../../src/core/utils.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|