@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
package/dist/esm/core/index.d.ts
CHANGED
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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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { DebugLayer } from './DebugLayer';
|
|
2
|
+
import type { DebugLayerViewMode } from './DebugLayer';
|
|
3
|
+
import type { Time } from '@/core/Time';
|
|
4
|
+
import type { RenderBackend } from '@/rendering/RenderBackend';
|
|
5
|
+
import type { Application } from '@/core/Application';
|
|
6
|
+
/**
|
|
7
|
+
* Debug layer that draws a bounding-box outline around every visible
|
|
8
|
+
* RenderNode in the scene. Colours cycle by zIndex (HSL hue). World-space.
|
|
9
|
+
*/
|
|
10
|
+
export declare class BoundingBoxesLayer extends DebugLayer {
|
|
11
|
+
private _graphics;
|
|
12
|
+
constructor(app: Application);
|
|
13
|
+
/** Renders in world-space so outlines align with scene node positions. */
|
|
14
|
+
get viewMode(): DebugLayerViewMode;
|
|
15
|
+
/** No per-frame pre-computation required; all state is derived in {@link render}. */
|
|
16
|
+
update(_delta: Time): void;
|
|
17
|
+
/**
|
|
18
|
+
* Walk the scene tree and draw a colored rectangle outline around every
|
|
19
|
+
* visible node that has non-zero bounds. Outline hue cycles by `zIndex`
|
|
20
|
+
* so overlapping nodes are visually distinguishable.
|
|
21
|
+
*/
|
|
22
|
+
render(backend: RenderBackend): void;
|
|
23
|
+
/** Release the internal {@link Graphics} primitive. */
|
|
24
|
+
destroy(): void;
|
|
25
|
+
private _walkNode;
|
|
26
|
+
}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import { DebugLayer } from './DebugLayer.js';
|
|
2
|
+
import { Graphics } from '../rendering/primitives/Graphics.js';
|
|
3
|
+
import { Color } from '../core/Color.js';
|
|
4
|
+
import '../math/Size.js';
|
|
5
|
+
import '../core/Time.js';
|
|
6
|
+
import '../core/SceneNode.js';
|
|
7
|
+
import '../math/Rectangle.js';
|
|
8
|
+
import '../rendering/types.js';
|
|
9
|
+
import '../rendering/View.js';
|
|
10
|
+
import '../rendering/texture/RenderTexture.js';
|
|
11
|
+
|
|
12
|
+
// ---------------------------------------------------------------------------
|
|
13
|
+
// HSL → RGB helper
|
|
14
|
+
// ---------------------------------------------------------------------------
|
|
15
|
+
/**
|
|
16
|
+
* Convert HSL (hue 0-360, saturation 0-1, lightness 0-1) to a Color instance.
|
|
17
|
+
* Returns an RGB Color (alpha = alpha parameter).
|
|
18
|
+
*/
|
|
19
|
+
function hslToColor(h, s, l, alpha) {
|
|
20
|
+
const c = (1 - Math.abs(2 * l - 1)) * s;
|
|
21
|
+
const x = c * (1 - Math.abs(((h / 60) % 2) - 1));
|
|
22
|
+
const m = l - c / 2;
|
|
23
|
+
let r = 0;
|
|
24
|
+
let g = 0;
|
|
25
|
+
let b = 0;
|
|
26
|
+
if (h < 60) {
|
|
27
|
+
r = c;
|
|
28
|
+
g = x;
|
|
29
|
+
b = 0;
|
|
30
|
+
}
|
|
31
|
+
else if (h < 120) {
|
|
32
|
+
r = x;
|
|
33
|
+
g = c;
|
|
34
|
+
b = 0;
|
|
35
|
+
}
|
|
36
|
+
else if (h < 180) {
|
|
37
|
+
r = 0;
|
|
38
|
+
g = c;
|
|
39
|
+
b = x;
|
|
40
|
+
}
|
|
41
|
+
else if (h < 240) {
|
|
42
|
+
r = 0;
|
|
43
|
+
g = x;
|
|
44
|
+
b = c;
|
|
45
|
+
}
|
|
46
|
+
else if (h < 300) {
|
|
47
|
+
r = x;
|
|
48
|
+
g = 0;
|
|
49
|
+
b = c;
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
r = c;
|
|
53
|
+
g = 0;
|
|
54
|
+
b = x;
|
|
55
|
+
}
|
|
56
|
+
return new Color(r + m, g + m, b + m, alpha);
|
|
57
|
+
}
|
|
58
|
+
// ---------------------------------------------------------------------------
|
|
59
|
+
/**
|
|
60
|
+
* Debug layer that draws a bounding-box outline around every visible
|
|
61
|
+
* RenderNode in the scene. Colours cycle by zIndex (HSL hue). World-space.
|
|
62
|
+
*/
|
|
63
|
+
class BoundingBoxesLayer extends DebugLayer {
|
|
64
|
+
_graphics = null;
|
|
65
|
+
constructor(app) {
|
|
66
|
+
super(app);
|
|
67
|
+
}
|
|
68
|
+
/** Renders in world-space so outlines align with scene node positions. */
|
|
69
|
+
get viewMode() {
|
|
70
|
+
return 'world';
|
|
71
|
+
}
|
|
72
|
+
/** No per-frame pre-computation required; all state is derived in {@link render}. */
|
|
73
|
+
update(_delta) {
|
|
74
|
+
// State is built in render() each frame; nothing to pre-compute here.
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Walk the scene tree and draw a colored rectangle outline around every
|
|
78
|
+
* visible node that has non-zero bounds. Outline hue cycles by `zIndex`
|
|
79
|
+
* so overlapping nodes are visually distinguishable.
|
|
80
|
+
*/
|
|
81
|
+
render(backend) {
|
|
82
|
+
const root = this._app.sceneManager.scene?.root;
|
|
83
|
+
if (!root) {
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
if (this._graphics === null) {
|
|
87
|
+
this._graphics = new Graphics();
|
|
88
|
+
}
|
|
89
|
+
const gfx = this._graphics;
|
|
90
|
+
gfx.clear();
|
|
91
|
+
gfx.lineWidth = 1;
|
|
92
|
+
this._walkNode(root, gfx);
|
|
93
|
+
gfx.render(backend);
|
|
94
|
+
}
|
|
95
|
+
/** Release the internal {@link Graphics} primitive. */
|
|
96
|
+
destroy() {
|
|
97
|
+
if (this._graphics !== null) {
|
|
98
|
+
this._graphics.destroy();
|
|
99
|
+
this._graphics = null;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
// -----------------------------------------------------------------------
|
|
103
|
+
_walkNode(node, gfx) {
|
|
104
|
+
if (!node.visible) {
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
const bounds = node.getBounds();
|
|
108
|
+
// Skip zero-area bounds (defensive).
|
|
109
|
+
if (bounds.width > 0 && bounds.height > 0) {
|
|
110
|
+
const hue = ((node.zIndex * 30) % 360 + 360) % 360;
|
|
111
|
+
const color = hslToColor(hue, 0.7, 0.5, 0.7);
|
|
112
|
+
gfx.lineColor = color;
|
|
113
|
+
// Draw the rectangle outline as four line segments.
|
|
114
|
+
const l = bounds.left;
|
|
115
|
+
const t = bounds.top;
|
|
116
|
+
const r = bounds.right;
|
|
117
|
+
const bo = bounds.bottom;
|
|
118
|
+
gfx.moveTo(l, t);
|
|
119
|
+
gfx.lineTo(r, t);
|
|
120
|
+
gfx.lineTo(r, bo);
|
|
121
|
+
gfx.lineTo(l, bo);
|
|
122
|
+
gfx.lineTo(l, t);
|
|
123
|
+
color.destroy();
|
|
124
|
+
}
|
|
125
|
+
// Recurse into Container children.
|
|
126
|
+
const container = node;
|
|
127
|
+
if (Array.isArray(container.children)) {
|
|
128
|
+
for (const child of container.children) {
|
|
129
|
+
this._walkNode(child, gfx);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
export { BoundingBoxesLayer };
|
|
136
|
+
//# sourceMappingURL=BoundingBoxesLayer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BoundingBoxesLayer.js","sources":["../../../../src/debug/BoundingBoxesLayer.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;AAUA;AACA;AACA;AAEA;;;AAGG;AACH,SAAS,UAAU,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,KAAa,EAAA;AAC9D,IAAA,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;IACvC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAChD,IAAA,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;IAEnB,IAAI,CAAC,GAAG,CAAC;IACT,IAAI,CAAC,GAAG,CAAC;IACT,IAAI,CAAC,GAAG,CAAC;AAET,IAAA,IAAI,CAAC,GAAG,EAAE,EAAQ;QAAE,CAAC,GAAG,CAAC;QAAE,CAAC,GAAG,CAAC;QAAE,CAAC,GAAG,CAAC;IAAE;AACpC,SAAA,IAAI,CAAC,GAAG,GAAG,EAAE;QAAE,CAAC,GAAG,CAAC;QAAE,CAAC,GAAG,CAAC;QAAE,CAAC,GAAG,CAAC;IAAE;AACpC,SAAA,IAAI,CAAC,GAAG,GAAG,EAAE;QAAE,CAAC,GAAG,CAAC;QAAE,CAAC,GAAG,CAAC;QAAE,CAAC,GAAG,CAAC;IAAE;AACpC,SAAA,IAAI,CAAC,GAAG,GAAG,EAAE;QAAE,CAAC,GAAG,CAAC;QAAE,CAAC,GAAG,CAAC;QAAE,CAAC,GAAG,CAAC;IAAE;AACpC,SAAA,IAAI,CAAC,GAAG,GAAG,EAAE;QAAE,CAAC,GAAG,CAAC;QAAE,CAAC,GAAG,CAAC;QAAE,CAAC,GAAG,CAAC;IAAE;SACvB;QAAE,CAAC,GAAG,CAAC;QAAE,CAAC,GAAG,CAAC;QAAE,CAAC,GAAG,CAAC;IAAE;AAEzC,IAAA,OAAO,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC;AAChD;AAEA;AAEA;;;AAGG;AACG,MAAO,kBAAmB,SAAQ,UAAU,CAAA;IACtC,SAAS,GAAoB,IAAI;AAEzC,IAAA,WAAA,CAAmB,GAAgB,EAAA;QAC/B,KAAK,CAAC,GAAG,CAAC;IACd;;AAGA,IAAA,IAAoB,QAAQ,GAAA;AACxB,QAAA,OAAO,OAAO;IAClB;;AAGgB,IAAA,MAAM,CAAC,MAAY,EAAA;;IAEnC;AAEA;;;;AAIG;AACa,IAAA,MAAM,CAAC,OAAsB,EAAA;QACzC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI;QAE/C,IAAI,CAAC,IAAI,EAAE;YACP;QACJ;AAEA,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE;AACzB,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,QAAQ,EAAE;QACnC;AAEA,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS;QAE1B,GAAG,CAAC,KAAK,EAAE;AACX,QAAA,GAAG,CAAC,SAAS,GAAG,CAAC;AAEjB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAkB,EAAE,GAAG,CAAC;AAEvC,QAAA,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC;IACvB;;IAGgB,OAAO,GAAA;AACnB,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE;AACzB,YAAA,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;AACxB,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI;QACzB;IACJ;;IAIQ,SAAS,CAAC,IAAgB,EAAE,GAAa,EAAA;AAC7C,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACf;QACJ;AAEA,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE;;AAG/B,QAAA,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AACvC,YAAA,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG;AAClD,YAAA,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAE5C,YAAA,GAAG,CAAC,SAAS,GAAG,KAAK;;AAGrB,YAAA,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI;AACrB,YAAA,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG;AACpB,YAAA,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK;AACtB,YAAA,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM;AAExB,YAAA,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;AAChB,YAAA,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;AAChB,YAAA,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC;AACjB,YAAA,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC;AACjB,YAAA,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;YAEhB,KAAK,CAAC,OAAO,EAAE;QACnB;;QAGA,MAAM,SAAS,GAAG,IAAgD;QAElE,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;AACnC,YAAA,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,QAAQ,EAAE;AACpC,gBAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC;YAC9B;QACJ;IACJ;AACH;;;;"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { Time } from '@/core/Time';
|
|
2
|
+
import type { RenderBackend } from '@/rendering/RenderBackend';
|
|
3
|
+
import type { Application } from '@/core/Application';
|
|
4
|
+
/**
|
|
5
|
+
* Determines the coordinate space a {@link DebugLayer} renders into.
|
|
6
|
+
* `'screen'` uses the overlay's pixel-space view; `'world'` uses the scene's
|
|
7
|
+
* current world-space view and renders beneath screen-space panels.
|
|
8
|
+
*/
|
|
9
|
+
export type DebugLayerViewMode = 'screen' | 'world';
|
|
10
|
+
/**
|
|
11
|
+
* Abstract base for a single diagnostic overlay layer. Subclasses produce a
|
|
12
|
+
* visual (outlines, text panels, sparklines, etc.) that
|
|
13
|
+
* {@link DebugOverlay} composites each frame when {@link visible} is `true`.
|
|
14
|
+
*
|
|
15
|
+
* Concrete layers are tree-shakeable via the `@codexo/exojs/debug` subpath
|
|
16
|
+
* and are not loaded unless explicitly imported.
|
|
17
|
+
*/
|
|
18
|
+
export declare abstract class DebugLayer {
|
|
19
|
+
protected readonly _app: Application;
|
|
20
|
+
visible: boolean;
|
|
21
|
+
constructor(_app: Application);
|
|
22
|
+
/**
|
|
23
|
+
* Whether this layer renders in the scene's world-space view or in a
|
|
24
|
+
* screen-space (canvas-pixel) view. Defaults to 'screen'. Subclasses
|
|
25
|
+
* override to return 'world' when rendering at actual scene positions.
|
|
26
|
+
*/
|
|
27
|
+
get viewMode(): DebugLayerViewMode;
|
|
28
|
+
/** Update internal state from this frame's data. Called only when visible. */
|
|
29
|
+
abstract update(delta: Time): void;
|
|
30
|
+
/**
|
|
31
|
+
* Render the layer's content using the backend. The DebugOverlay manages
|
|
32
|
+
* the active view based on this layer's viewMode; restore is handled by the overlay.
|
|
33
|
+
* Called only when visible.
|
|
34
|
+
*/
|
|
35
|
+
abstract render(backend: RenderBackend): void;
|
|
36
|
+
/**
|
|
37
|
+
* Release any scene-graph nodes or resources owned by this layer.
|
|
38
|
+
* Called by {@link DebugOverlay.destroy}. The base implementation is a
|
|
39
|
+
* no-op; subclasses override to tear down their {@link Container} subtrees.
|
|
40
|
+
*/
|
|
41
|
+
destroy(): void;
|
|
42
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Abstract base for a single diagnostic overlay layer. Subclasses produce a
|
|
3
|
+
* visual (outlines, text panels, sparklines, etc.) that
|
|
4
|
+
* {@link DebugOverlay} composites each frame when {@link visible} is `true`.
|
|
5
|
+
*
|
|
6
|
+
* Concrete layers are tree-shakeable via the `@codexo/exojs/debug` subpath
|
|
7
|
+
* and are not loaded unless explicitly imported.
|
|
8
|
+
*/
|
|
9
|
+
class DebugLayer {
|
|
10
|
+
_app;
|
|
11
|
+
visible = false;
|
|
12
|
+
constructor(_app) {
|
|
13
|
+
this._app = _app;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Whether this layer renders in the scene's world-space view or in a
|
|
17
|
+
* screen-space (canvas-pixel) view. Defaults to 'screen'. Subclasses
|
|
18
|
+
* override to return 'world' when rendering at actual scene positions.
|
|
19
|
+
*/
|
|
20
|
+
get viewMode() {
|
|
21
|
+
return 'screen';
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Release any scene-graph nodes or resources owned by this layer.
|
|
25
|
+
* Called by {@link DebugOverlay.destroy}. The base implementation is a
|
|
26
|
+
* no-op; subclasses override to tear down their {@link Container} subtrees.
|
|
27
|
+
*/
|
|
28
|
+
destroy() {
|
|
29
|
+
// Default: nothing. Subclasses override to release Container subtrees etc.
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export { DebugLayer };
|
|
34
|
+
//# sourceMappingURL=DebugLayer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DebugLayer.js","sources":["../../../../src/debug/DebugLayer.ts"],"sourcesContent":[null],"names":[],"mappings":"AAWA;;;;;;;AAOG;MACmB,UAAU,CAAA;AAGU,IAAA,IAAA;IAF/B,OAAO,GAAY,KAAK;AAE/B,IAAA,WAAA,CAAsC,IAAiB,EAAA;QAAjB,IAAA,CAAA,IAAI,GAAJ,IAAI;IAAgB;AAE1D;;;;AAIG;AACH,IAAA,IAAW,QAAQ,GAAA;AACf,QAAA,OAAO,QAAQ;IACnB;AAYA;;;;AAIG;IACI,OAAO,GAAA;;IAEd;AACH;;;;"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { PerformanceLayer } from './PerformanceLayer';
|
|
2
|
+
import { BoundingBoxesLayer } from './BoundingBoxesLayer';
|
|
3
|
+
import { HitTestLayer } from './HitTestLayer';
|
|
4
|
+
import { PointerStackLayer } from './PointerStackLayer';
|
|
5
|
+
import type { Application } from '@/core/Application';
|
|
6
|
+
/**
|
|
7
|
+
* Typed map of the four built-in diagnostic layers managed by
|
|
8
|
+
* {@link DebugOverlay}. Access individual layers to toggle visibility or
|
|
9
|
+
* interact with layer-specific state.
|
|
10
|
+
*/
|
|
11
|
+
export interface DebugLayers {
|
|
12
|
+
readonly performance: PerformanceLayer;
|
|
13
|
+
readonly boundingBoxes: BoundingBoxesLayer;
|
|
14
|
+
readonly hitTest: HitTestLayer;
|
|
15
|
+
readonly pointerStack: PointerStackLayer;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Canvas-native debug overlay. Instantiate AFTER Application is constructed:
|
|
19
|
+
*
|
|
20
|
+
* import { DebugOverlay } from '@codexo/exojs/debug';
|
|
21
|
+
* const debug = new DebugOverlay(app);
|
|
22
|
+
* debug.layers.performance.visible = true; // or press F1
|
|
23
|
+
*
|
|
24
|
+
* The overlay subscribes to `app.onFrame` and renders its visible layers.
|
|
25
|
+
* World-space layers render first (under text panels) in the scene view;
|
|
26
|
+
* screen-space layers then render in the overlay's pixel-space view.
|
|
27
|
+
*
|
|
28
|
+
* Keybindings (while canvas has focus):
|
|
29
|
+
* F1 — toggle Performance layer
|
|
30
|
+
* F2 — toggle BoundingBoxes layer
|
|
31
|
+
* F3 — toggle HitTest layer
|
|
32
|
+
* F4 — toggle PointerStack layer
|
|
33
|
+
*
|
|
34
|
+
* NOTE: F-keys only fire while the canvas has focus (engine convention).
|
|
35
|
+
*
|
|
36
|
+
* The master `visible` switch suppresses all layer rendering when false
|
|
37
|
+
* without changing individual layer visibility flags.
|
|
38
|
+
*/
|
|
39
|
+
export declare class DebugOverlay {
|
|
40
|
+
/** Master visibility switch. When false, no layers render regardless of their individual flags. */
|
|
41
|
+
visible: boolean;
|
|
42
|
+
/** The four built-in diagnostic layers. Toggle each layer's `visible` flag or use the F1–F4 keybindings. */
|
|
43
|
+
readonly layers: DebugLayers;
|
|
44
|
+
private readonly _app;
|
|
45
|
+
private readonly _view;
|
|
46
|
+
private readonly _onFrameHandler;
|
|
47
|
+
private readonly _onKeyDownHandler;
|
|
48
|
+
private readonly _onResizeHandler;
|
|
49
|
+
constructor(app: Application);
|
|
50
|
+
/**
|
|
51
|
+
* Unsubscribe from all application events, destroy every layer, and
|
|
52
|
+
* release the overlay's internal {@link View}. Call this when you no
|
|
53
|
+
* longer need the overlay to avoid memory leaks.
|
|
54
|
+
*/
|
|
55
|
+
destroy(): void;
|
|
56
|
+
private _onResize;
|
|
57
|
+
private _onFrame;
|
|
58
|
+
private _onKeyDown;
|
|
59
|
+
}
|