@codexo/exojs 0.6.12 → 0.7.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1424 -0
- package/dist/esm/animation/Tween.d.ts +60 -1
- package/dist/esm/animation/Tween.js +60 -1
- package/dist/esm/animation/Tween.js.map +1 -1
- package/dist/esm/animation/TweenManager.d.ts +10 -0
- package/dist/esm/animation/TweenManager.js +10 -0
- package/dist/esm/animation/TweenManager.js.map +1 -1
- package/dist/esm/animation/types.d.ts +15 -0
- package/dist/esm/animation/types.js +6 -0
- package/dist/esm/animation/types.js.map +1 -1
- package/dist/esm/audio/AbstractMedia.d.ts +29 -0
- package/dist/esm/audio/AbstractMedia.js +76 -0
- package/dist/esm/audio/AbstractMedia.js.map +1 -1
- package/dist/esm/audio/AudioAnalyser.d.ts +83 -23
- package/dist/esm/audio/AudioAnalyser.js +277 -57
- package/dist/esm/audio/AudioAnalyser.js.map +1 -1
- package/dist/esm/audio/AudioBus.d.ts +82 -0
- package/dist/esm/audio/AudioBus.js +255 -0
- package/dist/esm/audio/AudioBus.js.map +1 -0
- package/dist/esm/audio/AudioFilter.d.ts +16 -0
- package/dist/esm/audio/AudioFilter.js +13 -0
- package/dist/esm/audio/AudioFilter.js.map +1 -0
- package/dist/esm/audio/AudioListener.d.ts +39 -0
- package/dist/esm/audio/AudioListener.js +97 -0
- package/dist/esm/audio/AudioListener.js.map +1 -0
- package/dist/esm/audio/AudioManager.d.ts +68 -0
- package/dist/esm/audio/AudioManager.js +139 -0
- package/dist/esm/audio/AudioManager.js.map +1 -0
- package/dist/esm/audio/BeatDetector.d.ts +142 -0
- package/dist/esm/audio/BeatDetector.js +957 -0
- package/dist/esm/audio/BeatDetector.js.map +1 -0
- package/dist/esm/audio/Envelope.d.ts +44 -0
- package/dist/esm/audio/Envelope.js +60 -0
- package/dist/esm/audio/Envelope.js.map +1 -0
- package/dist/esm/audio/Media.d.ts +11 -0
- package/dist/esm/audio/Music.d.ts +20 -0
- package/dist/esm/audio/Music.js +45 -4
- package/dist/esm/audio/Music.js.map +1 -1
- package/dist/esm/audio/OscillatorSound.d.ts +98 -0
- package/dist/esm/audio/OscillatorSound.js +342 -0
- package/dist/esm/audio/OscillatorSound.js.map +1 -0
- package/dist/esm/audio/Sound.d.ts +119 -9
- package/dist/esm/audio/Sound.js +301 -117
- package/dist/esm/audio/Sound.js.map +1 -1
- package/dist/esm/audio/audio-context.d.ts +48 -0
- package/dist/esm/audio/audio-context.js +48 -5
- package/dist/esm/audio/audio-context.js.map +1 -1
- package/dist/esm/audio/crossFade.d.ts +19 -0
- package/dist/esm/audio/crossFade.js +26 -0
- package/dist/esm/audio/crossFade.js.map +1 -0
- package/dist/esm/audio/dsp/fft.d.ts +22 -0
- package/dist/esm/audio/dsp/mel.d.ts +43 -0
- package/dist/esm/audio/dsp/tempogram.d.ts +51 -0
- package/dist/esm/audio/filters/ChorusFilter.d.ts +52 -0
- package/dist/esm/audio/filters/ChorusFilter.js +143 -0
- package/dist/esm/audio/filters/ChorusFilter.js.map +1 -0
- package/dist/esm/audio/filters/CompressorFilter.d.ts +43 -0
- package/dist/esm/audio/filters/CompressorFilter.js +108 -0
- package/dist/esm/audio/filters/CompressorFilter.js.map +1 -0
- package/dist/esm/audio/filters/DelayFilter.d.ts +34 -0
- package/dist/esm/audio/filters/DelayFilter.js +110 -0
- package/dist/esm/audio/filters/DelayFilter.js.map +1 -0
- package/dist/esm/audio/filters/DuckingFilter.d.ts +44 -0
- package/dist/esm/audio/filters/DuckingFilter.js +164 -0
- package/dist/esm/audio/filters/DuckingFilter.js.map +1 -0
- package/dist/esm/audio/filters/EqualizerFilter.d.ts +49 -0
- package/dist/esm/audio/filters/EqualizerFilter.js +134 -0
- package/dist/esm/audio/filters/EqualizerFilter.js.map +1 -0
- package/dist/esm/audio/filters/GranularFilter.d.ts +62 -0
- package/dist/esm/audio/filters/GranularFilter.js +176 -0
- package/dist/esm/audio/filters/GranularFilter.js.map +1 -0
- package/dist/esm/audio/filters/HighpassFilter.d.ts +29 -0
- package/dist/esm/audio/filters/HighpassFilter.js +71 -0
- package/dist/esm/audio/filters/HighpassFilter.js.map +1 -0
- package/dist/esm/audio/filters/LowpassFilter.d.ts +29 -0
- package/dist/esm/audio/filters/LowpassFilter.js +71 -0
- package/dist/esm/audio/filters/LowpassFilter.js.map +1 -0
- package/dist/esm/audio/filters/PitchShiftFilter.d.ts +44 -0
- package/dist/esm/audio/filters/PitchShiftFilter.js +132 -0
- package/dist/esm/audio/filters/PitchShiftFilter.js.map +1 -0
- package/dist/esm/audio/filters/ReverbFilter.d.ts +36 -0
- package/dist/esm/audio/filters/ReverbFilter.js +118 -0
- package/dist/esm/audio/filters/ReverbFilter.js.map +1 -0
- package/dist/esm/audio/filters/VocoderFilter.d.ts +49 -0
- package/dist/esm/audio/filters/VocoderFilter.js +174 -0
- package/dist/esm/audio/filters/VocoderFilter.js.map +1 -0
- package/dist/esm/audio/filters/WorkletFilter.d.ts +51 -0
- package/dist/esm/audio/filters/WorkletFilter.js +106 -0
- package/dist/esm/audio/filters/WorkletFilter.js.map +1 -0
- package/dist/esm/audio/filters/index.d.ts +12 -0
- package/dist/esm/audio/index.d.ts +15 -1
- package/dist/esm/audio/worklet/registerWorklet.d.ts +10 -0
- package/dist/esm/audio/worklet/registerWorklet.js +44 -0
- package/dist/esm/audio/worklet/registerWorklet.js.map +1 -0
- package/dist/esm/core/Application.d.ts +82 -0
- package/dist/esm/core/Application.js +137 -2
- package/dist/esm/core/Application.js.map +1 -1
- package/dist/esm/core/Bounds.d.ts +23 -0
- package/dist/esm/core/Bounds.js +23 -0
- package/dist/esm/core/Bounds.js.map +1 -1
- package/dist/esm/core/Clock.d.ts +21 -0
- package/dist/esm/core/Clock.js +21 -0
- package/dist/esm/core/Clock.js.map +1 -1
- package/dist/esm/core/Color.d.ts +35 -0
- package/dist/esm/core/Color.js +35 -0
- package/dist/esm/core/Color.js.map +1 -1
- package/dist/esm/core/Scene.d.ts +46 -0
- package/dist/esm/core/Scene.js +27 -0
- package/dist/esm/core/Scene.js.map +1 -1
- package/dist/esm/core/SceneManager.d.ts +62 -0
- package/dist/esm/core/SceneManager.js +49 -0
- package/dist/esm/core/SceneManager.js.map +1 -1
- package/dist/esm/core/SceneNode.d.ts +40 -1
- package/dist/esm/core/SceneNode.js +75 -6
- package/dist/esm/core/SceneNode.js.map +1 -1
- package/dist/esm/core/Signal.d.ts +44 -0
- package/dist/esm/core/Signal.js +39 -0
- package/dist/esm/core/Signal.js.map +1 -1
- package/dist/esm/core/Time.d.ts +21 -0
- package/dist/esm/core/Time.js +22 -1
- package/dist/esm/core/Time.js.map +1 -1
- package/dist/esm/core/Timer.d.ts +7 -0
- package/dist/esm/core/Timer.js +7 -0
- package/dist/esm/core/Timer.js.map +1 -1
- package/dist/esm/core/capabilities.d.ts +12 -0
- package/dist/esm/core/capabilities.js +12 -0
- package/dist/esm/core/capabilities.js.map +1 -1
- package/dist/esm/core/index.d.ts +0 -1
- package/dist/esm/core/types.d.ts +37 -0
- package/dist/esm/core/utils.d.ts +48 -0
- package/dist/esm/core/utils.js +48 -0
- package/dist/esm/core/utils.js.map +1 -1
- package/dist/esm/debug/BoundingBoxesLayer.d.ts +26 -0
- package/dist/esm/debug/BoundingBoxesLayer.js +136 -0
- package/dist/esm/debug/BoundingBoxesLayer.js.map +1 -0
- package/dist/esm/debug/DebugLayer.d.ts +42 -0
- package/dist/esm/debug/DebugLayer.js +34 -0
- package/dist/esm/debug/DebugLayer.js.map +1 -0
- package/dist/esm/debug/DebugOverlay.d.ts +59 -0
- package/dist/esm/debug/DebugOverlay.js +123 -0
- package/dist/esm/debug/DebugOverlay.js.map +1 -0
- package/dist/esm/debug/HitTestLayer.d.ts +32 -0
- package/dist/esm/debug/HitTestLayer.js +118 -0
- package/dist/esm/debug/HitTestLayer.js.map +1 -0
- package/dist/esm/debug/PerformanceLayer.d.ts +37 -0
- package/dist/esm/debug/PerformanceLayer.js +193 -0
- package/dist/esm/debug/PerformanceLayer.js.map +1 -0
- package/dist/esm/debug/PointerStackLayer.d.ts +31 -0
- package/dist/esm/debug/PointerStackLayer.js +160 -0
- package/dist/esm/debug/PointerStackLayer.js.map +1 -0
- package/dist/esm/debug/index.d.ts +6 -0
- package/dist/esm/debug/index.js +7 -0
- package/dist/esm/debug/index.js.map +1 -0
- package/dist/esm/index.js +30 -4
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/input/ArcadeStickGamepadMapping.d.ts +7 -0
- package/dist/esm/input/ArcadeStickGamepadMapping.js +7 -0
- package/dist/esm/input/ArcadeStickGamepadMapping.js.map +1 -1
- package/dist/esm/input/GameCubeGamepadMapping.d.ts +9 -0
- package/dist/esm/input/GameCubeGamepadMapping.js +9 -0
- package/dist/esm/input/GameCubeGamepadMapping.js.map +1 -1
- package/dist/esm/input/Gamepad.d.ts +48 -0
- package/dist/esm/input/Gamepad.js +43 -0
- package/dist/esm/input/Gamepad.js.map +1 -1
- package/dist/esm/input/GamepadChannels.d.ts +8 -0
- package/dist/esm/input/GamepadChannels.js +8 -0
- package/dist/esm/input/GamepadChannels.js.map +1 -1
- package/dist/esm/input/GamepadControl.d.ts +18 -0
- package/dist/esm/input/GamepadControl.js +13 -0
- package/dist/esm/input/GamepadControl.js.map +1 -1
- package/dist/esm/input/GamepadDefinitions.d.ts +64 -1
- package/dist/esm/input/GamepadDefinitions.js +40 -1
- package/dist/esm/input/GamepadDefinitions.js.map +1 -1
- package/dist/esm/input/GamepadMapping.d.ts +32 -2
- package/dist/esm/input/GamepadMapping.js +24 -0
- package/dist/esm/input/GamepadMapping.js.map +1 -1
- package/dist/esm/input/GamepadPromptLayouts.d.ts +32 -1
- package/dist/esm/input/GamepadPromptLayouts.js +25 -1
- package/dist/esm/input/GamepadPromptLayouts.js.map +1 -1
- package/dist/esm/input/GenericDualAnalogGamepadMapping.d.ts +10 -0
- package/dist/esm/input/GenericDualAnalogGamepadMapping.js +10 -0
- package/dist/esm/input/GenericDualAnalogGamepadMapping.js.map +1 -1
- package/dist/esm/input/GestureRecognizer.d.ts +11 -2
- package/dist/esm/input/GestureRecognizer.js +11 -2
- package/dist/esm/input/GestureRecognizer.js.map +1 -1
- package/dist/esm/input/Input.d.ts +24 -0
- package/dist/esm/input/Input.js +22 -0
- package/dist/esm/input/Input.js.map +1 -1
- package/dist/esm/input/InputManager.d.ts +43 -0
- package/dist/esm/input/InputManager.js +68 -5
- package/dist/esm/input/InputManager.js.map +1 -1
- package/dist/esm/input/InteractionEvent.d.ts +31 -0
- package/dist/esm/input/InteractionEvent.js +37 -0
- package/dist/esm/input/InteractionEvent.js.map +1 -0
- package/dist/esm/input/InteractionManager.d.ts +163 -0
- package/dist/esm/input/InteractionManager.js +575 -0
- package/dist/esm/input/InteractionManager.js.map +1 -0
- package/dist/esm/input/JoyConLeftGamepadMapping.d.ts +9 -0
- package/dist/esm/input/JoyConLeftGamepadMapping.js +9 -0
- package/dist/esm/input/JoyConLeftGamepadMapping.js.map +1 -1
- package/dist/esm/input/JoyConRightGamepadMapping.d.ts +9 -0
- package/dist/esm/input/JoyConRightGamepadMapping.js +9 -0
- package/dist/esm/input/JoyConRightGamepadMapping.js.map +1 -1
- package/dist/esm/input/PlayStationGamepadMapping.d.ts +8 -0
- package/dist/esm/input/PlayStationGamepadMapping.js +8 -0
- package/dist/esm/input/PlayStationGamepadMapping.js.map +1 -1
- package/dist/esm/input/Pointer.d.ts +22 -0
- package/dist/esm/input/Pointer.js +22 -0
- package/dist/esm/input/Pointer.js.map +1 -1
- package/dist/esm/input/SteamControllerGamepadMapping.d.ts +8 -0
- package/dist/esm/input/SteamControllerGamepadMapping.js +8 -0
- package/dist/esm/input/SteamControllerGamepadMapping.js.map +1 -1
- package/dist/esm/input/SwitchProGamepadMapping.d.ts +9 -0
- package/dist/esm/input/SwitchProGamepadMapping.js +9 -0
- package/dist/esm/input/SwitchProGamepadMapping.js.map +1 -1
- package/dist/esm/input/XboxGamepadMapping.d.ts +8 -0
- package/dist/esm/input/XboxGamepadMapping.js +8 -0
- package/dist/esm/input/XboxGamepadMapping.js.map +1 -1
- package/dist/esm/input/index.d.ts +2 -0
- package/dist/esm/input/interaction-hooks.d.ts +34 -0
- package/dist/esm/input/interaction-hooks.js +35 -0
- package/dist/esm/input/interaction-hooks.js.map +1 -0
- package/dist/esm/input/types.d.ts +20 -0
- package/dist/esm/input/types.js +20 -0
- package/dist/esm/input/types.js.map +1 -1
- package/dist/esm/math/AbstractVector.d.ts +83 -0
- package/dist/esm/math/AbstractVector.js +83 -0
- package/dist/esm/math/AbstractVector.js.map +1 -1
- package/dist/esm/math/Circle.d.ts +44 -2
- package/dist/esm/math/Circle.js +116 -16
- package/dist/esm/math/Circle.js.map +1 -1
- package/dist/esm/math/CircleLike.d.ts +1 -0
- package/dist/esm/math/Collision.d.ts +39 -0
- package/dist/esm/math/Collision.js +5 -0
- package/dist/esm/math/Collision.js.map +1 -1
- package/dist/esm/math/Ellipse.d.ts +11 -0
- package/dist/esm/math/Ellipse.js +18 -2
- package/dist/esm/math/Ellipse.js.map +1 -1
- package/dist/esm/math/EllipseLike.d.ts +3 -0
- package/dist/esm/math/Flags.d.ts +31 -0
- package/dist/esm/math/Flags.js +31 -0
- package/dist/esm/math/Flags.js.map +1 -1
- package/dist/esm/math/Interval.d.ts +15 -0
- package/dist/esm/math/Interval.js +16 -1
- package/dist/esm/math/Interval.js.map +1 -1
- package/dist/esm/math/Line.d.ts +17 -1
- package/dist/esm/math/Line.js +17 -1
- package/dist/esm/math/Line.js.map +1 -1
- package/dist/esm/math/LineLike.d.ts +1 -0
- package/dist/esm/math/Matrix.d.ts +44 -3
- package/dist/esm/math/Matrix.js +44 -3
- package/dist/esm/math/Matrix.js.map +1 -1
- package/dist/esm/math/ObservableSize.d.ts +7 -0
- package/dist/esm/math/ObservableSize.js +7 -0
- package/dist/esm/math/ObservableSize.js.map +1 -1
- package/dist/esm/math/ObservableVector.d.ts +11 -2
- package/dist/esm/math/ObservableVector.js +13 -2
- package/dist/esm/math/ObservableVector.js.map +1 -1
- package/dist/esm/math/PointLike.d.ts +1 -0
- package/dist/esm/math/PolarVector.d.ts +15 -0
- package/dist/esm/math/PolarVector.js +16 -1
- package/dist/esm/math/PolarVector.js.map +1 -1
- package/dist/esm/math/Polygon.d.ts +35 -1
- package/dist/esm/math/Polygon.js +78 -6
- package/dist/esm/math/Polygon.js.map +1 -1
- package/dist/esm/math/PolygonLike.d.ts +4 -0
- package/dist/esm/math/Quadtree.d.ts +84 -0
- package/dist/esm/math/Quadtree.js +204 -0
- package/dist/esm/math/Quadtree.js.map +1 -0
- package/dist/esm/math/Random.d.ts +25 -0
- package/dist/esm/math/Random.js +26 -1
- package/dist/esm/math/Random.js.map +1 -1
- package/dist/esm/math/Rectangle.d.ts +15 -0
- package/dist/esm/math/Rectangle.js +17 -2
- package/dist/esm/math/Rectangle.js.map +1 -1
- package/dist/esm/math/RectangleLike.d.ts +1 -0
- package/dist/esm/math/Segment.d.ts +7 -0
- package/dist/esm/math/Segment.js +7 -0
- package/dist/esm/math/Segment.js.map +1 -1
- package/dist/esm/math/ShapeLike.d.ts +6 -0
- package/dist/esm/math/Size.d.ts +9 -0
- package/dist/esm/math/Size.js +10 -1
- package/dist/esm/math/Size.js.map +1 -1
- package/dist/esm/math/Vector.d.ts +16 -0
- package/dist/esm/math/Vector.js +17 -1
- package/dist/esm/math/Vector.js.map +1 -1
- package/dist/esm/math/collision-detection.d.ts +47 -1
- package/dist/esm/math/collision-detection.js +231 -17
- package/dist/esm/math/collision-detection.js.map +1 -1
- package/dist/esm/math/collision-primitives.d.ts +23 -0
- package/dist/esm/math/collision-primitives.js +23 -0
- package/dist/esm/math/collision-primitives.js.map +1 -1
- package/dist/esm/math/geometry.d.ts +42 -0
- package/dist/esm/math/geometry.js +37 -0
- package/dist/esm/math/geometry.js.map +1 -1
- package/dist/esm/math/index.d.ts +1 -0
- package/dist/esm/math/utils.d.ts +41 -0
- package/dist/esm/math/utils.js +41 -0
- package/dist/esm/math/utils.js.map +1 -1
- package/dist/esm/particles/Particle.d.ts +37 -0
- package/dist/esm/particles/Particle.js +37 -0
- package/dist/esm/particles/Particle.js.map +1 -1
- package/dist/esm/particles/ParticleProperties.d.ts +15 -0
- package/dist/esm/particles/ParticleSystem.d.ts +69 -0
- package/dist/esm/particles/ParticleSystem.js +70 -0
- package/dist/esm/particles/ParticleSystem.js.map +1 -1
- package/dist/esm/particles/affectors/ColorAffector.d.ts +13 -0
- package/dist/esm/particles/affectors/ColorAffector.js +13 -0
- package/dist/esm/particles/affectors/ColorAffector.js.map +1 -1
- package/dist/esm/particles/affectors/ForceAffector.d.ts +11 -0
- package/dist/esm/particles/affectors/ForceAffector.js +11 -0
- package/dist/esm/particles/affectors/ForceAffector.js.map +1 -1
- package/dist/esm/particles/affectors/ParticleAffector.d.ts +13 -0
- package/dist/esm/particles/affectors/ScaleAffector.d.ts +10 -0
- package/dist/esm/particles/affectors/ScaleAffector.js +10 -0
- package/dist/esm/particles/affectors/ScaleAffector.js.map +1 -1
- package/dist/esm/particles/affectors/TorqueAffector.d.ts +11 -0
- package/dist/esm/particles/affectors/TorqueAffector.js +12 -1
- package/dist/esm/particles/affectors/TorqueAffector.js.map +1 -1
- package/dist/esm/particles/emitters/ParticleEmitter.d.ts +13 -0
- package/dist/esm/particles/emitters/ParticleOptions.d.ts +16 -0
- package/dist/esm/particles/emitters/ParticleOptions.js +16 -0
- package/dist/esm/particles/emitters/ParticleOptions.js.map +1 -1
- package/dist/esm/particles/emitters/UniversalEmitter.d.ts +23 -0
- package/dist/esm/particles/emitters/UniversalEmitter.js +23 -0
- package/dist/esm/particles/emitters/UniversalEmitter.js.map +1 -1
- package/dist/esm/rendering/CallbackRenderPass.d.ts +12 -0
- package/dist/esm/rendering/CallbackRenderPass.js +12 -0
- package/dist/esm/rendering/CallbackRenderPass.js.map +1 -1
- package/dist/esm/rendering/Container.d.ts +44 -0
- package/dist/esm/rendering/Container.js +62 -0
- package/dist/esm/rendering/Container.js.map +1 -1
- package/dist/esm/rendering/Drawable.d.ts +22 -0
- package/dist/esm/rendering/Drawable.js +22 -0
- package/dist/esm/rendering/Drawable.js.map +1 -1
- package/dist/esm/rendering/RenderBackend.d.ts +13 -0
- package/dist/esm/rendering/RenderBackendType.d.ts +4 -0
- package/dist/esm/rendering/RenderBackendType.js +4 -0
- package/dist/esm/rendering/RenderBackendType.js.map +1 -1
- package/dist/esm/rendering/RenderNode.d.ts +45 -0
- package/dist/esm/rendering/RenderNode.js +62 -0
- package/dist/esm/rendering/RenderNode.js.map +1 -1
- package/dist/esm/rendering/RenderPass.d.ts +8 -0
- package/dist/esm/rendering/RenderStats.d.ts +19 -0
- package/dist/esm/rendering/RenderStats.js +7 -0
- package/dist/esm/rendering/RenderStats.js.map +1 -1
- package/dist/esm/rendering/RenderTarget.d.ts +17 -0
- package/dist/esm/rendering/RenderTarget.js +17 -0
- package/dist/esm/rendering/RenderTarget.js.map +1 -1
- package/dist/esm/rendering/RenderTargetPass.d.ts +11 -0
- package/dist/esm/rendering/RenderTargetPass.js +7 -0
- package/dist/esm/rendering/RenderTargetPass.js.map +1 -1
- package/dist/esm/rendering/Renderer.d.ts +15 -0
- package/dist/esm/rendering/RendererRegistry.d.ts +7 -0
- package/dist/esm/rendering/RendererRegistry.js +7 -0
- package/dist/esm/rendering/RendererRegistry.js.map +1 -1
- package/dist/esm/rendering/View.d.ts +73 -6
- package/dist/esm/rendering/View.js +69 -2
- package/dist/esm/rendering/View.js.map +1 -1
- package/dist/esm/rendering/filters/BlurFilter.d.ts +9 -0
- package/dist/esm/rendering/filters/BlurFilter.js +8 -0
- package/dist/esm/rendering/filters/BlurFilter.js.map +1 -1
- package/dist/esm/rendering/filters/ColorFilter.d.ts +7 -0
- package/dist/esm/rendering/filters/ColorFilter.js +7 -0
- package/dist/esm/rendering/filters/ColorFilter.js.map +1 -1
- package/dist/esm/rendering/filters/Filter.d.ts +23 -0
- package/dist/esm/rendering/filters/Filter.js +20 -0
- package/dist/esm/rendering/filters/Filter.js.map +1 -1
- package/dist/esm/rendering/filters/WebGl2ShaderFilter.d.ts +114 -0
- package/dist/esm/rendering/filters/WebGl2ShaderFilter.js +273 -0
- package/dist/esm/rendering/filters/WebGl2ShaderFilter.js.map +1 -0
- package/dist/esm/rendering/filters/WebGpuShaderFilter.d.ts +116 -0
- package/dist/esm/rendering/filters/WebGpuShaderFilter.js +402 -0
- package/dist/esm/rendering/filters/WebGpuShaderFilter.js.map +1 -0
- package/dist/esm/rendering/index.d.ts +3 -0
- package/dist/esm/rendering/mesh/Mesh.d.ts +2 -0
- package/dist/esm/rendering/mesh/Mesh.js +3 -0
- package/dist/esm/rendering/mesh/Mesh.js.map +1 -1
- package/dist/esm/rendering/primitives/Graphics.d.ts +34 -0
- package/dist/esm/rendering/primitives/Graphics.js +34 -0
- package/dist/esm/rendering/primitives/Graphics.js.map +1 -1
- package/dist/esm/rendering/shader/Shader.d.ts +36 -0
- package/dist/esm/rendering/shader/Shader.js +26 -0
- package/dist/esm/rendering/shader/Shader.js.map +1 -1
- package/dist/esm/rendering/shader/ShaderAttribute.d.ts +13 -0
- package/dist/esm/rendering/shader/ShaderAttribute.js +13 -0
- package/dist/esm/rendering/shader/ShaderAttribute.js.map +1 -1
- package/dist/esm/rendering/shader/ShaderUniform.d.ts +27 -0
- package/dist/esm/rendering/shader/ShaderUniform.js +28 -1
- package/dist/esm/rendering/shader/ShaderUniform.js.map +1 -1
- package/dist/esm/rendering/shader/upgradeFragmentShaderToGl300.d.ts +34 -0
- package/dist/esm/rendering/shader/upgradeFragmentShaderToGl300.js +60 -0
- package/dist/esm/rendering/shader/upgradeFragmentShaderToGl300.js.map +1 -0
- package/dist/esm/rendering/sprite/AnimatedSprite.d.ts +38 -0
- package/dist/esm/rendering/sprite/AnimatedSprite.js +36 -0
- package/dist/esm/rendering/sprite/AnimatedSprite.js.map +1 -1
- package/dist/esm/rendering/sprite/Sprite.d.ts +62 -1
- package/dist/esm/rendering/sprite/Sprite.js +97 -19
- package/dist/esm/rendering/sprite/Sprite.js.map +1 -1
- package/dist/esm/rendering/sprite/Spritesheet.d.ts +25 -0
- package/dist/esm/rendering/sprite/Spritesheet.js +20 -0
- package/dist/esm/rendering/sprite/Spritesheet.js.map +1 -1
- package/dist/esm/rendering/text/Text.d.ts +2 -0
- package/dist/esm/rendering/text/Text.js +2 -0
- package/dist/esm/rendering/text/Text.js.map +1 -1
- package/dist/esm/rendering/text/TextStyle.d.ts +29 -0
- package/dist/esm/rendering/text/TextStyle.js +24 -0
- package/dist/esm/rendering/text/TextStyle.js.map +1 -1
- package/dist/esm/rendering/text/types.d.ts +1 -0
- package/dist/esm/rendering/texture/RenderTexture.d.ts +16 -0
- package/dist/esm/rendering/texture/RenderTexture.js +16 -0
- package/dist/esm/rendering/texture/RenderTexture.js.map +1 -1
- package/dist/esm/rendering/texture/Sampler.d.ts +23 -0
- package/dist/esm/rendering/texture/Sampler.js +13 -0
- package/dist/esm/rendering/texture/Sampler.js.map +1 -1
- package/dist/esm/rendering/texture/Texture.d.ts +30 -0
- package/dist/esm/rendering/texture/Texture.js +30 -0
- package/dist/esm/rendering/texture/Texture.js.map +1 -1
- package/dist/esm/rendering/types.d.ts +29 -0
- package/dist/esm/rendering/types.js +29 -0
- package/dist/esm/rendering/types.js.map +1 -1
- package/dist/esm/rendering/utils.d.ts +20 -0
- package/dist/esm/rendering/utils.js +10 -0
- package/dist/esm/rendering/utils.js.map +1 -1
- package/dist/esm/rendering/video/Video.d.ts +39 -1
- package/dist/esm/rendering/video/Video.js +68 -6
- package/dist/esm/rendering/video/Video.js.map +1 -1
- package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.d.ts +7 -0
- package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js +7 -0
- package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts +17 -4
- package/dist/esm/rendering/webgl2/WebGl2Backend.js +20 -16
- package/dist/esm/rendering/webgl2/WebGl2Backend.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.d.ts +8 -0
- package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.js +8 -0
- package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts +45 -8
- package/dist/esm/rendering/webgpu/WebGpuBackend.js +160 -40
- package/dist/esm/rendering/webgpu/WebGpuBackend.js.map +1 -1
- package/dist/esm/resources/AbstractAssetFactory.d.ts +20 -0
- package/dist/esm/resources/AbstractAssetFactory.js +20 -0
- package/dist/esm/resources/AbstractAssetFactory.js.map +1 -1
- package/dist/esm/resources/AssetFactory.d.ts +26 -0
- package/dist/esm/resources/AssetManifest.d.ts +45 -0
- package/dist/esm/resources/AssetManifest.js +25 -0
- package/dist/esm/resources/AssetManifest.js.map +1 -1
- package/dist/esm/resources/CacheFirstStrategy.d.ts +12 -0
- package/dist/esm/resources/CacheFirstStrategy.js +12 -0
- package/dist/esm/resources/CacheFirstStrategy.js.map +1 -1
- package/dist/esm/resources/CacheStore.d.ts +23 -0
- package/dist/esm/resources/CacheStrategy.d.ts +20 -0
- package/dist/esm/resources/Database.d.ts +45 -0
- package/dist/esm/resources/FactoryRegistry.d.ts +28 -0
- package/dist/esm/resources/FactoryRegistry.js +24 -0
- package/dist/esm/resources/FactoryRegistry.js.map +1 -1
- package/dist/esm/resources/IndexedDbDatabase.d.ts +22 -1
- package/dist/esm/resources/IndexedDbDatabase.js +21 -0
- package/dist/esm/resources/IndexedDbDatabase.js.map +1 -1
- package/dist/esm/resources/IndexedDbStore.d.ts +20 -0
- package/dist/esm/resources/IndexedDbStore.js +12 -0
- package/dist/esm/resources/IndexedDbStore.js.map +1 -1
- package/dist/esm/resources/Loader.d.ts +167 -0
- package/dist/esm/resources/Loader.js +110 -0
- package/dist/esm/resources/Loader.js.map +1 -1
- package/dist/esm/resources/NetworkOnlyStrategy.d.ts +8 -0
- package/dist/esm/resources/NetworkOnlyStrategy.js +8 -0
- package/dist/esm/resources/NetworkOnlyStrategy.js.map +1 -1
- package/dist/esm/resources/factories/BinaryFactory.d.ts +13 -0
- package/dist/esm/resources/factories/BinaryFactory.js +13 -0
- package/dist/esm/resources/factories/BinaryFactory.js.map +1 -1
- package/dist/esm/resources/factories/FontFactory.d.ts +37 -0
- package/dist/esm/resources/factories/FontFactory.js +26 -0
- package/dist/esm/resources/factories/FontFactory.js.map +1 -1
- package/dist/esm/resources/factories/ImageFactory.d.ts +24 -0
- package/dist/esm/resources/factories/ImageFactory.js +19 -0
- package/dist/esm/resources/factories/ImageFactory.js.map +1 -1
- package/dist/esm/resources/factories/JsonFactory.d.ts +13 -0
- package/dist/esm/resources/factories/JsonFactory.js +13 -0
- package/dist/esm/resources/factories/JsonFactory.js.map +1 -1
- package/dist/esm/resources/factories/MusicFactory.d.ts +36 -0
- package/dist/esm/resources/factories/MusicFactory.js +44 -4
- package/dist/esm/resources/factories/MusicFactory.js.map +1 -1
- package/dist/esm/resources/factories/SoundFactory.d.ts +29 -0
- package/dist/esm/resources/factories/SoundFactory.js +18 -0
- package/dist/esm/resources/factories/SoundFactory.js.map +1 -1
- package/dist/esm/resources/factories/SvgFactory.d.ts +19 -0
- package/dist/esm/resources/factories/SvgFactory.js +19 -0
- package/dist/esm/resources/factories/SvgFactory.js.map +1 -1
- package/dist/esm/resources/factories/TextFactory.d.ts +11 -0
- package/dist/esm/resources/factories/TextFactory.js +11 -0
- package/dist/esm/resources/factories/TextFactory.js.map +1 -1
- package/dist/esm/resources/factories/TextureFactory.d.ts +25 -0
- package/dist/esm/resources/factories/TextureFactory.js +20 -0
- package/dist/esm/resources/factories/TextureFactory.js.map +1 -1
- package/dist/esm/resources/factories/VideoFactory.d.ts +37 -0
- package/dist/esm/resources/factories/VideoFactory.js +48 -5
- package/dist/esm/resources/factories/VideoFactory.js.map +1 -1
- package/dist/esm/resources/factories/VttFactory.d.ts +18 -0
- package/dist/esm/resources/factories/VttFactory.js +24 -0
- package/dist/esm/resources/factories/VttFactory.js.map +1 -1
- package/dist/esm/resources/factories/WasmFactory.d.ts +16 -0
- package/dist/esm/resources/factories/WasmFactory.js +16 -0
- package/dist/esm/resources/factories/WasmFactory.js.map +1 -1
- package/dist/esm/resources/utils.d.ts +10 -0
- package/dist/esm/resources/utils.js +10 -0
- package/dist/esm/resources/utils.js.map +1 -1
- package/dist/exo.esm.js +11182 -2538
- package/dist/exo.esm.js.map +1 -1
- package/package.json +20 -9
- package/dist/esm/core/Quadtree.d.ts +0 -20
- package/dist/esm/core/Quadtree.js +0 -86
- package/dist/esm/core/Quadtree.js.map +0 -1
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
import type { RenderBackend } from './RenderBackend';
|
|
2
2
|
import type { RenderPass } from './RenderPass';
|
|
3
|
+
/**
|
|
4
|
+
* A {@link RenderPass} that delegates its execution to a user-supplied callback.
|
|
5
|
+
* Use this as a lightweight alternative to a full renderer class when custom
|
|
6
|
+
* draw logic needs to participate in the render graph without a dedicated type.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* new CallbackRenderPass((backend) => {
|
|
11
|
+
* backend.draw(myDrawable);
|
|
12
|
+
* });
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
3
15
|
export declare class CallbackRenderPass implements RenderPass {
|
|
4
16
|
private readonly _callback;
|
|
5
17
|
constructor(callback: (backend: RenderBackend) => void);
|
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A {@link RenderPass} that delegates its execution to a user-supplied callback.
|
|
3
|
+
* Use this as a lightweight alternative to a full renderer class when custom
|
|
4
|
+
* draw logic needs to participate in the render graph without a dedicated type.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```ts
|
|
8
|
+
* new CallbackRenderPass((backend) => {
|
|
9
|
+
* backend.draw(myDrawable);
|
|
10
|
+
* });
|
|
11
|
+
* ```
|
|
12
|
+
*/
|
|
1
13
|
class CallbackRenderPass {
|
|
2
14
|
_callback;
|
|
3
15
|
constructor(callback) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CallbackRenderPass.js","sources":["../../../../src/rendering/CallbackRenderPass.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CallbackRenderPass.js","sources":["../../../../src/rendering/CallbackRenderPass.ts"],"sourcesContent":[null],"names":[],"mappings":"AAGA;;;;;;;;;;;AAWG;MACU,kBAAkB,CAAA;AAEV,IAAA,SAAS;AAE1B,IAAA,WAAA,CAAmB,QAA0C,EAAA;AACzD,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ;IAC7B;AAEO,IAAA,OAAO,CAAC,OAAsB,EAAA;AACjC,QAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;IAC3B;AACH;;;;"}
|
|
@@ -1,11 +1,35 @@
|
|
|
1
1
|
import type { RenderBackend } from './RenderBackend';
|
|
2
2
|
import { RenderNode } from './RenderNode';
|
|
3
|
+
/**
|
|
4
|
+
* Scene-graph node that owns child {@link RenderNode}s. Renders its
|
|
5
|
+
* subtree in document order, optionally re-sorted each frame by
|
|
6
|
+
* `zIndex` + child-add-order when {@link Container.sortableChildren} is
|
|
7
|
+
* enabled.
|
|
8
|
+
*
|
|
9
|
+
* Bounds aggregate the local bounds + every visible child's bounds, so
|
|
10
|
+
* `container.bounds` always reflects the smallest axis-aligned rectangle
|
|
11
|
+
* containing the subtree. Width/height accessors derive from the bounds
|
|
12
|
+
* (× `scale`) and writing to them rescales `scale` to fit.
|
|
13
|
+
*
|
|
14
|
+
* Adding a child re-parents it: the previous parent is detached
|
|
15
|
+
* automatically. Removing a child cascades bounds invalidation up the
|
|
16
|
+
* ancestor chain so further-up containers also rebuild on next read.
|
|
17
|
+
*
|
|
18
|
+
* Subclassed by {@link Sprite}, {@link Mesh}, {@link Graphics}, {@link Text},
|
|
19
|
+
* etc. — the base `Container` is a non-drawing grouping node.
|
|
20
|
+
*/
|
|
3
21
|
export declare class Container extends RenderNode {
|
|
4
22
|
private readonly _children;
|
|
5
23
|
private _sortableChildren;
|
|
6
24
|
private _sortDirty;
|
|
7
25
|
private _nextChildOrder;
|
|
8
26
|
get children(): Array<RenderNode>;
|
|
27
|
+
/**
|
|
28
|
+
* When `true`, children are re-sorted by `zIndex` (ascending; ties
|
|
29
|
+
* broken by add-order) before each render. Disabled by default to
|
|
30
|
+
* avoid the per-frame sort cost; enable on the few containers where
|
|
31
|
+
* z-ordering matters.
|
|
32
|
+
*/
|
|
9
33
|
get sortableChildren(): boolean;
|
|
10
34
|
set sortableChildren(sortableChildren: boolean);
|
|
11
35
|
get width(): number;
|
|
@@ -16,19 +40,39 @@ export declare class Container extends RenderNode {
|
|
|
16
40
|
get top(): number;
|
|
17
41
|
get right(): number;
|
|
18
42
|
get bottom(): number;
|
|
43
|
+
/**
|
|
44
|
+
* Append one or more children to the end of the child list. Each child
|
|
45
|
+
* is detached from its previous parent (if any) before being added.
|
|
46
|
+
*/
|
|
19
47
|
addChild(...children: Array<RenderNode>): this;
|
|
48
|
+
/**
|
|
49
|
+
* Insert `child` at `index` in the child list. The child is detached
|
|
50
|
+
* from any previous parent first. Throws if `index` is out of bounds.
|
|
51
|
+
* Self-as-child is a no-op.
|
|
52
|
+
*/
|
|
20
53
|
addChildAt(child: RenderNode, index: number): this;
|
|
21
54
|
swapChildren(firstChild: RenderNode, secondChild: RenderNode): this;
|
|
22
55
|
getChildIndex(child: RenderNode): number;
|
|
23
56
|
setChildIndex(child: RenderNode, index: number): this;
|
|
24
57
|
getChildAt(index: number): RenderNode;
|
|
58
|
+
/** Remove `child` from this container. No-op if not present. */
|
|
25
59
|
removeChild(child: RenderNode): this;
|
|
26
60
|
removeChildAt(index: number): this;
|
|
61
|
+
/**
|
|
62
|
+
* Remove children in the half-open range `[begin, end)`. Defaults to
|
|
63
|
+
* the entire child list. Throws if the range is invalid.
|
|
64
|
+
*/
|
|
27
65
|
removeChildren(begin?: number, end?: number): this;
|
|
28
66
|
render(backend: RenderBackend): this;
|
|
29
67
|
contains(x: number, y: number): boolean;
|
|
68
|
+
protected _invalidateChildrenTransform(): void;
|
|
30
69
|
updateBounds(): this;
|
|
31
70
|
destroy(): void;
|
|
71
|
+
/**
|
|
72
|
+
* Flag the child list as needing a re-sort before next render. Called
|
|
73
|
+
* automatically by `addChild*`, `removeChild*`, `swapChildren`, and
|
|
74
|
+
* `setChildIndex`; expose for callers that mutate `zIndex` directly.
|
|
75
|
+
*/
|
|
32
76
|
markSortDirty(): this;
|
|
33
77
|
sortChildren(): this;
|
|
34
78
|
private _sortChildrenIfNeeded;
|
|
@@ -1,6 +1,25 @@
|
|
|
1
1
|
import { removeArrayItems } from '../core/utils.js';
|
|
2
2
|
import { RenderNode } from './RenderNode.js';
|
|
3
|
+
import { _getCurrentInteractionManager } from '../input/interaction-hooks.js';
|
|
3
4
|
|
|
5
|
+
/**
|
|
6
|
+
* Scene-graph node that owns child {@link RenderNode}s. Renders its
|
|
7
|
+
* subtree in document order, optionally re-sorted each frame by
|
|
8
|
+
* `zIndex` + child-add-order when {@link Container.sortableChildren} is
|
|
9
|
+
* enabled.
|
|
10
|
+
*
|
|
11
|
+
* Bounds aggregate the local bounds + every visible child's bounds, so
|
|
12
|
+
* `container.bounds` always reflects the smallest axis-aligned rectangle
|
|
13
|
+
* containing the subtree. Width/height accessors derive from the bounds
|
|
14
|
+
* (× `scale`) and writing to them rescales `scale` to fit.
|
|
15
|
+
*
|
|
16
|
+
* Adding a child re-parents it: the previous parent is detached
|
|
17
|
+
* automatically. Removing a child cascades bounds invalidation up the
|
|
18
|
+
* ancestor chain so further-up containers also rebuild on next read.
|
|
19
|
+
*
|
|
20
|
+
* Subclassed by {@link Sprite}, {@link Mesh}, {@link Graphics}, {@link Text},
|
|
21
|
+
* etc. — the base `Container` is a non-drawing grouping node.
|
|
22
|
+
*/
|
|
4
23
|
class Container extends RenderNode {
|
|
5
24
|
_children = [];
|
|
6
25
|
_sortableChildren = false;
|
|
@@ -9,6 +28,12 @@ class Container extends RenderNode {
|
|
|
9
28
|
get children() {
|
|
10
29
|
return this._children;
|
|
11
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* When `true`, children are re-sorted by `zIndex` (ascending; ties
|
|
33
|
+
* broken by add-order) before each render. Disabled by default to
|
|
34
|
+
* avoid the per-frame sort cost; enable on the few containers where
|
|
35
|
+
* z-ordering matters.
|
|
36
|
+
*/
|
|
12
37
|
get sortableChildren() {
|
|
13
38
|
return this._sortableChildren;
|
|
14
39
|
}
|
|
@@ -42,12 +67,21 @@ class Container extends RenderNode {
|
|
|
42
67
|
get bottom() {
|
|
43
68
|
return (this.y + this.height - this.origin.y);
|
|
44
69
|
}
|
|
70
|
+
/**
|
|
71
|
+
* Append one or more children to the end of the child list. Each child
|
|
72
|
+
* is detached from its previous parent (if any) before being added.
|
|
73
|
+
*/
|
|
45
74
|
addChild(...children) {
|
|
46
75
|
for (const child of children) {
|
|
47
76
|
this.addChildAt(child, this._children.length);
|
|
48
77
|
}
|
|
49
78
|
return this;
|
|
50
79
|
}
|
|
80
|
+
/**
|
|
81
|
+
* Insert `child` at `index` in the child list. The child is detached
|
|
82
|
+
* from any previous parent first. Throws if `index` is out of bounds.
|
|
83
|
+
* Self-as-child is a no-op.
|
|
84
|
+
*/
|
|
51
85
|
addChildAt(child, index) {
|
|
52
86
|
if (index < 0 || index > this._children.length) {
|
|
53
87
|
throw new Error(`The index ${index} is out of bounds ${this._children.length}`);
|
|
@@ -63,6 +97,9 @@ class Container extends RenderNode {
|
|
|
63
97
|
this._children.splice(index, 0, child);
|
|
64
98
|
this.markSortDirty();
|
|
65
99
|
this.invalidateCache();
|
|
100
|
+
child._invalidateSubtreeTransform();
|
|
101
|
+
this._invalidateBoundsCascade();
|
|
102
|
+
_getCurrentInteractionManager()?._notifyNodeAdded(child);
|
|
66
103
|
return this;
|
|
67
104
|
}
|
|
68
105
|
swapChildren(firstChild, secondChild) {
|
|
@@ -99,6 +136,7 @@ class Container extends RenderNode {
|
|
|
99
136
|
}
|
|
100
137
|
return this._children[index];
|
|
101
138
|
}
|
|
139
|
+
/** Remove `child` from this container. No-op if not present. */
|
|
102
140
|
removeChild(child) {
|
|
103
141
|
const index = this._children.indexOf(child);
|
|
104
142
|
if (index !== -1) {
|
|
@@ -110,21 +148,35 @@ class Container extends RenderNode {
|
|
|
110
148
|
const child = this._children[index];
|
|
111
149
|
removeArrayItems(this._children, index, 1);
|
|
112
150
|
if (child && child.parentNode === this) {
|
|
151
|
+
// Cascade bounds up BEFORE clearing parent so the walk reaches this node.
|
|
152
|
+
this._invalidateBoundsCascade();
|
|
113
153
|
child.parentNode = null;
|
|
154
|
+
child._invalidateSubtreeTransform();
|
|
155
|
+
_getCurrentInteractionManager()?._notifyNodeRemoved(child);
|
|
114
156
|
}
|
|
115
157
|
this.markSortDirty();
|
|
116
158
|
this.invalidateCache();
|
|
117
159
|
return this;
|
|
118
160
|
}
|
|
161
|
+
/**
|
|
162
|
+
* Remove children in the half-open range `[begin, end)`. Defaults to
|
|
163
|
+
* the entire child list. Throws if the range is invalid.
|
|
164
|
+
*/
|
|
119
165
|
removeChildren(begin = 0, end = this._children.length) {
|
|
120
166
|
const range = (end - begin);
|
|
121
167
|
if (range < 0 || range > end) {
|
|
122
168
|
throw new Error('Values are outside the acceptable range.');
|
|
123
169
|
}
|
|
170
|
+
// Cascade bounds before clearing any parent references.
|
|
171
|
+
if (range > 0) {
|
|
172
|
+
this._invalidateBoundsCascade();
|
|
173
|
+
}
|
|
124
174
|
for (let i = begin; i < end; i++) {
|
|
125
175
|
const child = this._children[i];
|
|
126
176
|
if (child && child.parentNode === this) {
|
|
127
177
|
child.parentNode = null;
|
|
178
|
+
child._invalidateSubtreeTransform();
|
|
179
|
+
_getCurrentInteractionManager()?._notifyNodeRemoved(child);
|
|
128
180
|
}
|
|
129
181
|
}
|
|
130
182
|
removeArrayItems(this._children, begin, range);
|
|
@@ -151,6 +203,11 @@ class Container extends RenderNode {
|
|
|
151
203
|
contains(x, y) {
|
|
152
204
|
return this._children.some((child) => child.contains(x, y));
|
|
153
205
|
}
|
|
206
|
+
_invalidateChildrenTransform() {
|
|
207
|
+
for (const child of this._children) {
|
|
208
|
+
child._invalidateSubtreeTransform();
|
|
209
|
+
}
|
|
210
|
+
}
|
|
154
211
|
updateBounds() {
|
|
155
212
|
this._bounds.reset()
|
|
156
213
|
.addRect(this.getLocalBounds(), this.getGlobalTransform());
|
|
@@ -165,6 +222,11 @@ class Container extends RenderNode {
|
|
|
165
222
|
this.removeChildren();
|
|
166
223
|
super.destroy();
|
|
167
224
|
}
|
|
225
|
+
/**
|
|
226
|
+
* Flag the child list as needing a re-sort before next render. Called
|
|
227
|
+
* automatically by `addChild*`, `removeChild*`, `swapChildren`, and
|
|
228
|
+
* `setChildIndex`; expose for callers that mutate `zIndex` directly.
|
|
229
|
+
*/
|
|
168
230
|
markSortDirty() {
|
|
169
231
|
if (this._sortableChildren) {
|
|
170
232
|
this._sortDirty = true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Container.js","sources":["../../../../src/rendering/Container.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Container.js","sources":["../../../../src/rendering/Container.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,14 @@ import { Color } from '@/core/Color';
|
|
|
2
2
|
import { BlendModes } from '@/rendering/types';
|
|
3
3
|
import type { RenderBackend } from './RenderBackend';
|
|
4
4
|
import { RenderNode } from './RenderNode';
|
|
5
|
+
/**
|
|
6
|
+
* Base class for every renderable scene object.
|
|
7
|
+
*
|
|
8
|
+
* Extends {@link RenderNode} with a per-object tint colour and blend mode,
|
|
9
|
+
* and implements the default view-frustum culling logic in {@link render}.
|
|
10
|
+
* Concrete drawable types (sprites, meshes, text, etc.) extend this class
|
|
11
|
+
* and are paired with a matching {@link Renderer} via {@link RendererRegistry}.
|
|
12
|
+
*/
|
|
5
13
|
export declare class Drawable extends RenderNode {
|
|
6
14
|
private _tint;
|
|
7
15
|
private _blendMode;
|
|
@@ -9,8 +17,22 @@ export declare class Drawable extends RenderNode {
|
|
|
9
17
|
set tint(tint: Color);
|
|
10
18
|
get blendMode(): BlendModes;
|
|
11
19
|
set blendMode(blendMode: BlendModes);
|
|
20
|
+
/**
|
|
21
|
+
* Set the tint colour by copying `color` into the internal {@link Color} instance.
|
|
22
|
+
* Invalidates the render cache so the change is picked up on the next frame.
|
|
23
|
+
*/
|
|
12
24
|
setTint(color: Color): this;
|
|
25
|
+
/**
|
|
26
|
+
* Change the blend mode. No-ops if the value is unchanged.
|
|
27
|
+
* Invalidates the render cache when the blend mode actually changes.
|
|
28
|
+
*/
|
|
13
29
|
setBlendMode(blendMode: BlendModes): this;
|
|
30
|
+
/**
|
|
31
|
+
* Submit this drawable for rendering.
|
|
32
|
+
* Skips invisible nodes and increments the cull counter for nodes that fall
|
|
33
|
+
* outside the current view. Visible, in-view nodes are drawn via the backend
|
|
34
|
+
* using the current blend mode.
|
|
35
|
+
*/
|
|
14
36
|
render(backend: RenderBackend): this;
|
|
15
37
|
destroy(): void;
|
|
16
38
|
}
|
|
@@ -2,6 +2,14 @@ import { Color } from '../core/Color.js';
|
|
|
2
2
|
import { BlendModes } from './types.js';
|
|
3
3
|
import { RenderNode } from './RenderNode.js';
|
|
4
4
|
|
|
5
|
+
/**
|
|
6
|
+
* Base class for every renderable scene object.
|
|
7
|
+
*
|
|
8
|
+
* Extends {@link RenderNode} with a per-object tint colour and blend mode,
|
|
9
|
+
* and implements the default view-frustum culling logic in {@link render}.
|
|
10
|
+
* Concrete drawable types (sprites, meshes, text, etc.) extend this class
|
|
11
|
+
* and are paired with a matching {@link Renderer} via {@link RendererRegistry}.
|
|
12
|
+
*/
|
|
5
13
|
class Drawable extends RenderNode {
|
|
6
14
|
_tint = Color.white.clone();
|
|
7
15
|
_blendMode = BlendModes.Normal;
|
|
@@ -17,6 +25,10 @@ class Drawable extends RenderNode {
|
|
|
17
25
|
set blendMode(blendMode) {
|
|
18
26
|
this.setBlendMode(blendMode);
|
|
19
27
|
}
|
|
28
|
+
/**
|
|
29
|
+
* Set the tint colour by copying `color` into the internal {@link Color} instance.
|
|
30
|
+
* Invalidates the render cache so the change is picked up on the next frame.
|
|
31
|
+
*/
|
|
20
32
|
setTint(color) {
|
|
21
33
|
if (color) {
|
|
22
34
|
this._tint.copy(color);
|
|
@@ -24,6 +36,10 @@ class Drawable extends RenderNode {
|
|
|
24
36
|
}
|
|
25
37
|
return this;
|
|
26
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* Change the blend mode. No-ops if the value is unchanged.
|
|
41
|
+
* Invalidates the render cache when the blend mode actually changes.
|
|
42
|
+
*/
|
|
27
43
|
setBlendMode(blendMode) {
|
|
28
44
|
if (this._blendMode !== blendMode) {
|
|
29
45
|
this._blendMode = blendMode;
|
|
@@ -31,6 +47,12 @@ class Drawable extends RenderNode {
|
|
|
31
47
|
}
|
|
32
48
|
return this;
|
|
33
49
|
}
|
|
50
|
+
/**
|
|
51
|
+
* Submit this drawable for rendering.
|
|
52
|
+
* Skips invisible nodes and increments the cull counter for nodes that fall
|
|
53
|
+
* outside the current view. Visible, in-view nodes are drawn via the backend
|
|
54
|
+
* using the current blend mode.
|
|
55
|
+
*/
|
|
34
56
|
render(backend) {
|
|
35
57
|
if (!this.visible) {
|
|
36
58
|
return this;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Drawable.js","sources":["../../../../src/rendering/Drawable.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"Drawable.js","sources":["../../../../src/rendering/Drawable.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAKA;;;;;;;AAOG;AACG,MAAO,QAAS,SAAQ,UAAU,CAAA;AAE5B,IAAA,KAAK,GAAU,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE;AAClC,IAAA,UAAU,GAAe,UAAU,CAAC,MAAM;AAElD,IAAA,IAAW,IAAI,GAAA;QACX,OAAO,IAAI,CAAC,KAAK;IACrB;IAEA,IAAW,IAAI,CAAC,IAAW,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IACtB;AAEA,IAAA,IAAW,SAAS,GAAA;QAChB,OAAO,IAAI,CAAC,UAAU;IAC1B;IAEA,IAAW,SAAS,CAAC,SAAqB,EAAA;AACtC,QAAA,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;IAChC;AAEA;;;AAGG;AACI,IAAA,OAAO,CAAC,KAAY,EAAA;QACvB,IAAI,KAAK,EAAE;AACP,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;YACtB,IAAI,CAAC,eAAe,EAAE;QAC1B;AAEA,QAAA,OAAO,IAAI;IACf;AAEA;;;AAGG;AACI,IAAA,YAAY,CAAC,SAAqB,EAAA;AACrC,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE;AAC/B,YAAA,IAAI,CAAC,UAAU,GAAG,SAAS;YAC3B,IAAI,CAAC,eAAe,EAAE;QAC1B;AAEA,QAAA,OAAO,IAAI;IACf;AAEA;;;;;AAKG;AACa,IAAA,MAAM,CAAC,OAAsB,EAAA;AACzC,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACf,YAAA,OAAO,IAAI;QACf;QAEA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AAC5B,YAAA,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE;AAE3B,YAAA,OAAO,IAAI;QACf;AAEA,QAAA,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAK;AACnC,YAAA,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AACtB,QAAA,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC;AAEnB,QAAA,OAAO,IAAI;IACf;IAEgB,OAAO,GAAA;QACnB,KAAK,CAAC,OAAO,EAAE;AAEf,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;IACxB;AACH;;;;"}
|
|
@@ -9,6 +9,19 @@ import type { Texture } from './texture/Texture';
|
|
|
9
9
|
import type { RenderTexture } from './texture/RenderTexture';
|
|
10
10
|
import type { RenderStats } from './RenderStats';
|
|
11
11
|
import type { BlendModes } from './types';
|
|
12
|
+
/**
|
|
13
|
+
* Common interface implemented by both rendering backends
|
|
14
|
+
* ({@link WebGl2Backend}, {@link WebGpuBackend}). Owns the canvas root
|
|
15
|
+
* render target, exposes the active {@link View}, accepts {@link Drawable}
|
|
16
|
+
* submissions, manages an offscreen render-texture pool, and exposes the
|
|
17
|
+
* scissor-stack and alpha-mask compositing primitives used by
|
|
18
|
+
* {@link RenderNode}'s `mask` machinery.
|
|
19
|
+
*
|
|
20
|
+
* Application code rarely calls this directly — high-level code submits
|
|
21
|
+
* drawables via the scene graph and reads `app.backend.stats` for
|
|
22
|
+
* per-frame counters. Custom render passes (subclasses of
|
|
23
|
+
* {@link RenderPass}) interact with the interface directly.
|
|
24
|
+
*/
|
|
12
25
|
export interface RenderBackend {
|
|
13
26
|
readonly backendType: RenderBackendType;
|
|
14
27
|
readonly view: View;
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Identifies the active GPU backend used by the engine.
|
|
3
|
+
* Passed to renderers and shaders so they can select backend-specific code paths.
|
|
4
|
+
*/
|
|
1
5
|
var RenderBackendType;
|
|
2
6
|
(function (RenderBackendType) {
|
|
3
7
|
RenderBackendType[RenderBackendType["WebGl2"] = 0] = "WebGl2";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderBackendType.js","sources":["../../../../src/rendering/RenderBackendType.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RenderBackendType.js","sources":["../../../../src/rendering/RenderBackendType.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;;;AAGG;IACS;AAAZ,CAAA,UAAY,iBAAiB,EAAA;AACzB,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM;AACN,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM;AACV,CAAC,EAHW,iBAAiB,KAAjB,iBAAiB,GAAA,EAAA,CAAA,CAAA;;;;"}
|
|
@@ -2,10 +2,12 @@ import { SceneNode } from '@/core/SceneNode';
|
|
|
2
2
|
import { Color } from '@/core/Color';
|
|
3
3
|
import { Rectangle } from '@/math/Rectangle';
|
|
4
4
|
import { BlendModes } from '@/rendering/types';
|
|
5
|
+
import { Signal } from '@/core/Signal';
|
|
5
6
|
import type { Texture } from '@/rendering/texture/Texture';
|
|
6
7
|
import { RenderTexture } from '@/rendering/texture/RenderTexture';
|
|
7
8
|
import type { RenderBackend } from '@/rendering/RenderBackend';
|
|
8
9
|
import type { Filter } from '@/rendering/filters/Filter';
|
|
10
|
+
import type { InteractionEvent } from '@/input/InteractionEvent';
|
|
9
11
|
interface RenderNodeSpriteLike {
|
|
10
12
|
width: number;
|
|
11
13
|
height: number;
|
|
@@ -42,8 +44,51 @@ interface RenderNodeSpriteLike {
|
|
|
42
44
|
* one or two intermediate render textures plus an alpha-composite pass.
|
|
43
45
|
*/
|
|
44
46
|
export type MaskSource = Rectangle | Texture | RenderTexture | RenderNode | null;
|
|
47
|
+
/**
|
|
48
|
+
* {@link SceneNode} that can produce visual output. Adds the rendering
|
|
49
|
+
* pipeline features on top of the structural transform/bounds carried by
|
|
50
|
+
* SceneNode: `tint`, `alpha`, `blendMode`, post-process `filters`, an
|
|
51
|
+
* optional `mask` (via {@link MaskSource}), bitmap caching
|
|
52
|
+
* (`cacheAsBitmap`), and the interaction surface
|
|
53
|
+
* (`interactive`, `draggable`, all the pointer Signals).
|
|
54
|
+
*
|
|
55
|
+
* `RenderNode.render(backend)` is the per-frame visual entry point each
|
|
56
|
+
* subclass implements. The base provides `renderVisualContent()` — a
|
|
57
|
+
* helper that wraps the subclass's draw work with cache / mask / filter /
|
|
58
|
+
* tint orchestration so subclasses focus on their own geometry.
|
|
59
|
+
*
|
|
60
|
+
* Subclasses of note: {@link Container} (children), {@link Sprite} (textured
|
|
61
|
+
* quad), {@link Mesh} (custom geometry), {@link Graphics} (immediate-mode
|
|
62
|
+
* shapes), {@link Text} (glyph-atlas text), {@link Video} (video texture),
|
|
63
|
+
* {@link ParticleSystem} (particles).
|
|
64
|
+
*/
|
|
45
65
|
export declare abstract class RenderNode extends SceneNode {
|
|
46
66
|
private static _spriteFactory;
|
|
67
|
+
private _interactive;
|
|
68
|
+
cursor: string | null;
|
|
69
|
+
get interactive(): boolean;
|
|
70
|
+
set interactive(value: boolean);
|
|
71
|
+
/**
|
|
72
|
+
* When `true` and `interactive` is also `true`, this node will be
|
|
73
|
+
* automatically repositioned to follow the pointer during a drag gesture.
|
|
74
|
+
* The framework captures the pointer offset at drag-start so the node
|
|
75
|
+
* doesn't snap to the cursor position. Both `interactive` and `draggable`
|
|
76
|
+
* must be set for dragging to work — a `draggable` but non-interactive
|
|
77
|
+
* node will never receive `pointerdown` and therefore cannot start a drag.
|
|
78
|
+
*/
|
|
79
|
+
draggable: boolean;
|
|
80
|
+
readonly onPointerDown: Signal<[InteractionEvent]>;
|
|
81
|
+
readonly onPointerUp: Signal<[InteractionEvent]>;
|
|
82
|
+
readonly onPointerMove: Signal<[InteractionEvent]>;
|
|
83
|
+
readonly onPointerOver: Signal<[InteractionEvent]>;
|
|
84
|
+
readonly onPointerOut: Signal<[InteractionEvent]>;
|
|
85
|
+
readonly onPointerTap: Signal<[InteractionEvent]>;
|
|
86
|
+
/** Fired once when a drag gesture begins on this node. Does not bubble. */
|
|
87
|
+
readonly onDragStart: Signal<[InteractionEvent]>;
|
|
88
|
+
/** Fired on every pointer-move while this node is being dragged. Does not bubble. */
|
|
89
|
+
readonly onDrag: Signal<[InteractionEvent]>;
|
|
90
|
+
/** Fired when the drag gesture ends (pointer-up or cancel). Does not bubble. */
|
|
91
|
+
readonly onDragEnd: Signal<[InteractionEvent]>;
|
|
47
92
|
private readonly _filters;
|
|
48
93
|
private readonly _cacheBounds;
|
|
49
94
|
private _cacheSprite;
|
|
@@ -3,12 +3,65 @@ import { Color } from '../core/Color.js';
|
|
|
3
3
|
import { Rectangle } from '../math/Rectangle.js';
|
|
4
4
|
import { BlendModes } from './types.js';
|
|
5
5
|
import { View } from './View.js';
|
|
6
|
+
import { Signal } from '../core/Signal.js';
|
|
6
7
|
import { RenderTexture } from './texture/RenderTexture.js';
|
|
7
8
|
import { RenderTargetPass } from './RenderTargetPass.js';
|
|
9
|
+
import { _getCurrentInteractionManager } from '../input/interaction-hooks.js';
|
|
8
10
|
|
|
9
11
|
const isDestroyableFilter = (filter) => ('destroy' in filter && typeof filter.destroy === 'function');
|
|
12
|
+
/**
|
|
13
|
+
* {@link SceneNode} that can produce visual output. Adds the rendering
|
|
14
|
+
* pipeline features on top of the structural transform/bounds carried by
|
|
15
|
+
* SceneNode: `tint`, `alpha`, `blendMode`, post-process `filters`, an
|
|
16
|
+
* optional `mask` (via {@link MaskSource}), bitmap caching
|
|
17
|
+
* (`cacheAsBitmap`), and the interaction surface
|
|
18
|
+
* (`interactive`, `draggable`, all the pointer Signals).
|
|
19
|
+
*
|
|
20
|
+
* `RenderNode.render(backend)` is the per-frame visual entry point each
|
|
21
|
+
* subclass implements. The base provides `renderVisualContent()` — a
|
|
22
|
+
* helper that wraps the subclass's draw work with cache / mask / filter /
|
|
23
|
+
* tint orchestration so subclasses focus on their own geometry.
|
|
24
|
+
*
|
|
25
|
+
* Subclasses of note: {@link Container} (children), {@link Sprite} (textured
|
|
26
|
+
* quad), {@link Mesh} (custom geometry), {@link Graphics} (immediate-mode
|
|
27
|
+
* shapes), {@link Text} (glyph-atlas text), {@link Video} (video texture),
|
|
28
|
+
* {@link ParticleSystem} (particles).
|
|
29
|
+
*/
|
|
10
30
|
class RenderNode extends SceneNode {
|
|
11
31
|
static _spriteFactory = null;
|
|
32
|
+
_interactive = false;
|
|
33
|
+
cursor = null;
|
|
34
|
+
get interactive() {
|
|
35
|
+
return this._interactive;
|
|
36
|
+
}
|
|
37
|
+
set interactive(value) {
|
|
38
|
+
if (this._interactive === value) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
this._interactive = value;
|
|
42
|
+
_getCurrentInteractionManager()?._notifyInteractiveChanged(this, value);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* When `true` and `interactive` is also `true`, this node will be
|
|
46
|
+
* automatically repositioned to follow the pointer during a drag gesture.
|
|
47
|
+
* The framework captures the pointer offset at drag-start so the node
|
|
48
|
+
* doesn't snap to the cursor position. Both `interactive` and `draggable`
|
|
49
|
+
* must be set for dragging to work — a `draggable` but non-interactive
|
|
50
|
+
* node will never receive `pointerdown` and therefore cannot start a drag.
|
|
51
|
+
*/
|
|
52
|
+
draggable = false;
|
|
53
|
+
onPointerDown = new Signal();
|
|
54
|
+
onPointerUp = new Signal();
|
|
55
|
+
onPointerMove = new Signal();
|
|
56
|
+
onPointerOver = new Signal();
|
|
57
|
+
onPointerOut = new Signal();
|
|
58
|
+
onPointerTap = new Signal();
|
|
59
|
+
/** Fired once when a drag gesture begins on this node. Does not bubble. */
|
|
60
|
+
onDragStart = new Signal();
|
|
61
|
+
/** Fired on every pointer-move while this node is being dragged. Does not bubble. */
|
|
62
|
+
onDrag = new Signal();
|
|
63
|
+
/** Fired when the drag gesture ends (pointer-up or cancel). Does not bubble. */
|
|
64
|
+
onDragEnd = new Signal();
|
|
12
65
|
_filters = [];
|
|
13
66
|
_cacheBounds = new Rectangle();
|
|
14
67
|
_cacheSprite = null;
|
|
@@ -169,6 +222,15 @@ class RenderNode extends SceneNode {
|
|
|
169
222
|
}
|
|
170
223
|
this._filters.length = 0;
|
|
171
224
|
this._mask = null;
|
|
225
|
+
this.onPointerDown.destroy();
|
|
226
|
+
this.onPointerUp.destroy();
|
|
227
|
+
this.onPointerMove.destroy();
|
|
228
|
+
this.onPointerOver.destroy();
|
|
229
|
+
this.onPointerOut.destroy();
|
|
230
|
+
this.onPointerTap.destroy();
|
|
231
|
+
this.onDragStart.destroy();
|
|
232
|
+
this.onDrag.destroy();
|
|
233
|
+
this.onDragEnd.destroy();
|
|
172
234
|
}
|
|
173
235
|
_withMask(backend, callback, blendMode = BlendModes.Normal) {
|
|
174
236
|
const mask = this._mask;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderNode.js","sources":["../../../../src/rendering/RenderNode.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RenderNode.js","sources":["../../../../src/rendering/RenderNode.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,12 @@
|
|
|
1
1
|
import type { RenderBackend } from './RenderBackend';
|
|
2
|
+
/**
|
|
3
|
+
* A single node in the render graph.
|
|
4
|
+
*
|
|
5
|
+
* Concrete implementations include {@link CallbackRenderPass} for arbitrary
|
|
6
|
+
* draw logic and {@link RenderTargetPass} for off-screen rendering to a
|
|
7
|
+
* {@link RenderTarget}. Passes are executed in order each frame by the backend.
|
|
8
|
+
*/
|
|
2
9
|
export interface RenderPass {
|
|
10
|
+
/** Execute this pass, issuing draw calls through `backend`. */
|
|
3
11
|
execute(backend: RenderBackend): void;
|
|
4
12
|
}
|