@codexo/exojs 0.8.0 → 0.8.2
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 +318 -208
- package/README.md +19 -19
- package/dist/esm/animation/Easing.js +13 -21
- package/dist/esm/animation/Easing.js.map +1 -1
- package/dist/esm/animation/Tween.d.ts +3 -3
- package/dist/esm/animation/Tween.js +7 -5
- package/dist/esm/animation/Tween.js.map +1 -1
- package/dist/esm/animation/TweenManager.js +1 -1
- package/dist/esm/animation/TweenManager.js.map +1 -1
- package/dist/esm/animation/types.js.map +1 -1
- package/dist/esm/audio/AbstractMedia.d.ts +1 -1
- package/dist/esm/audio/AbstractMedia.js +1 -1
- package/dist/esm/audio/AbstractMedia.js.map +1 -1
- package/dist/esm/audio/AudioAnalyser.d.ts +1 -1
- package/dist/esm/audio/AudioAnalyser.js +2 -2
- package/dist/esm/audio/AudioAnalyser.js.map +1 -1
- package/dist/esm/audio/AudioBus.d.ts +1 -1
- package/dist/esm/audio/AudioBus.js.map +1 -1
- package/dist/esm/audio/AudioFilter.js +3 -1
- package/dist/esm/audio/AudioFilter.js.map +1 -1
- package/dist/esm/audio/AudioListener.d.ts +1 -1
- package/dist/esm/audio/AudioListener.js +5 -3
- package/dist/esm/audio/AudioListener.js.map +1 -1
- package/dist/esm/audio/AudioManager.js.map +1 -1
- package/dist/esm/audio/BeatDetector.d.ts +4 -4
- package/dist/esm/audio/BeatDetector.js +68 -44
- package/dist/esm/audio/BeatDetector.js.map +1 -1
- package/dist/esm/audio/Envelope.d.ts +1 -1
- package/dist/esm/audio/Envelope.js +2 -2
- package/dist/esm/audio/Envelope.js.map +1 -1
- package/dist/esm/audio/Music.d.ts +1 -1
- package/dist/esm/audio/Music.js +1 -1
- package/dist/esm/audio/Music.js.map +1 -1
- package/dist/esm/audio/OscillatorSound.d.ts +2 -2
- package/dist/esm/audio/OscillatorSound.js.map +1 -1
- package/dist/esm/audio/Sound.d.ts +40 -2
- package/dist/esm/audio/Sound.js +69 -9
- package/dist/esm/audio/Sound.js.map +1 -1
- package/dist/esm/audio/audio-context.js +1 -1
- package/dist/esm/audio/audio-context.js.map +1 -1
- package/dist/esm/audio/crossFade.js +1 -1
- package/dist/esm/audio/crossFade.js.map +1 -1
- package/dist/esm/audio/dsp/mel.d.ts +2 -2
- package/dist/esm/audio/dsp/tempogram.d.ts +2 -2
- package/dist/esm/audio/filters/ChorusFilter.js +12 -4
- package/dist/esm/audio/filters/ChorusFilter.js.map +1 -1
- package/dist/esm/audio/filters/CompressorFilter.d.ts +9 -0
- package/dist/esm/audio/filters/CompressorFilter.js +11 -0
- package/dist/esm/audio/filters/CompressorFilter.js.map +1 -1
- package/dist/esm/audio/filters/DelayFilter.js.map +1 -1
- package/dist/esm/audio/filters/DuckingFilter.d.ts +1 -1
- package/dist/esm/audio/filters/DuckingFilter.js +13 -5
- package/dist/esm/audio/filters/DuckingFilter.js.map +1 -1
- package/dist/esm/audio/filters/EqualizerFilter.js.map +1 -1
- package/dist/esm/audio/filters/GranularFilter.js +30 -14
- package/dist/esm/audio/filters/GranularFilter.js.map +1 -1
- package/dist/esm/audio/filters/HighpassFilter.js.map +1 -1
- package/dist/esm/audio/filters/LowpassFilter.js.map +1 -1
- package/dist/esm/audio/filters/PitchShiftFilter.js +14 -10
- package/dist/esm/audio/filters/PitchShiftFilter.js.map +1 -1
- package/dist/esm/audio/filters/ReverbFilter.js.map +1 -1
- package/dist/esm/audio/filters/VocoderFilter.d.ts +2 -2
- package/dist/esm/audio/filters/VocoderFilter.js +20 -12
- package/dist/esm/audio/filters/VocoderFilter.js.map +1 -1
- package/dist/esm/audio/filters/WorkletFilter.js +5 -6
- package/dist/esm/audio/filters/WorkletFilter.js.map +1 -1
- package/dist/esm/audio/filters/index.d.ts +7 -7
- package/dist/esm/audio/index.d.ts +9 -9
- package/dist/esm/audio/worklet/registerWorklet.js +7 -3
- package/dist/esm/audio/worklet/registerWorklet.js.map +1 -1
- package/dist/esm/core/Application.d.ts +13 -13
- package/dist/esm/core/Application.js +24 -16
- package/dist/esm/core/Application.js.map +1 -1
- package/dist/esm/core/Bounds.d.ts +1 -1
- package/dist/esm/core/Bounds.js +1 -3
- package/dist/esm/core/Bounds.js.map +1 -1
- package/dist/esm/core/Clock.js +1 -1
- package/dist/esm/core/Clock.js.map +1 -1
- package/dist/esm/core/Color.js +2 -5
- package/dist/esm/core/Color.js.map +1 -1
- package/dist/esm/core/Scene.d.ts +10 -10
- package/dist/esm/core/Scene.js +1 -1
- package/dist/esm/core/Scene.js.map +1 -1
- package/dist/esm/core/SceneManager.d.ts +4 -4
- package/dist/esm/core/SceneManager.js +39 -33
- package/dist/esm/core/SceneManager.js.map +1 -1
- package/dist/esm/core/SceneNode.d.ts +8 -8
- package/dist/esm/core/SceneNode.js +39 -29
- package/dist/esm/core/SceneNode.js.map +1 -1
- package/dist/esm/core/Signal.d.ts +3 -3
- package/dist/esm/core/Signal.js +3 -3
- package/dist/esm/core/Signal.js.map +1 -1
- package/dist/esm/core/Time.js +6 -6
- package/dist/esm/core/Time.js.map +1 -1
- package/dist/esm/core/Timer.d.ts +1 -1
- package/dist/esm/core/Timer.js +1 -1
- package/dist/esm/core/Timer.js.map +1 -1
- package/dist/esm/core/capabilities.js +2 -4
- package/dist/esm/core/capabilities.js.map +1 -1
- package/dist/esm/core/index.d.ts +2 -2
- package/dist/esm/core/utils.d.ts +4 -4
- package/dist/esm/core/utils.js +10 -10
- package/dist/esm/core/utils.js.map +1 -1
- package/dist/esm/debug/BoundingBoxesLayer.d.ts +3 -3
- package/dist/esm/debug/BoundingBoxesLayer.js +6 -13
- package/dist/esm/debug/BoundingBoxesLayer.js.map +1 -1
- package/dist/esm/debug/DebugLayer.d.ts +1 -1
- package/dist/esm/debug/DebugLayer.js.map +1 -1
- package/dist/esm/debug/DebugOverlay.d.ts +2 -2
- package/dist/esm/debug/DebugOverlay.js +2 -2
- package/dist/esm/debug/DebugOverlay.js.map +1 -1
- package/dist/esm/debug/HitTestLayer.d.ts +3 -3
- package/dist/esm/debug/HitTestLayer.js +3 -10
- package/dist/esm/debug/HitTestLayer.js.map +1 -1
- package/dist/esm/debug/PerformanceLayer.d.ts +2 -2
- package/dist/esm/debug/PerformanceLayer.js +6 -6
- package/dist/esm/debug/PerformanceLayer.js.map +1 -1
- package/dist/esm/debug/PointerStackLayer.d.ts +3 -3
- package/dist/esm/debug/PointerStackLayer.js +3 -3
- package/dist/esm/debug/PointerStackLayer.js.map +1 -1
- package/dist/esm/debug/index.d.ts +3 -3
- package/dist/esm/debug/index.js +3 -3
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.js +99 -98
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/input/ArcadeStickGamepadMapping.js.map +1 -1
- package/dist/esm/input/GameCubeGamepadMapping.d.ts +1 -1
- package/dist/esm/input/GameCubeGamepadMapping.js +1 -1
- package/dist/esm/input/GameCubeGamepadMapping.js.map +1 -1
- package/dist/esm/input/Gamepad.d.ts +7 -7
- package/dist/esm/input/Gamepad.js +10 -6
- package/dist/esm/input/Gamepad.js.map +1 -1
- package/dist/esm/input/GamepadAxis.js +1 -1
- package/dist/esm/input/GamepadAxis.js.map +1 -1
- package/dist/esm/input/GamepadButton.js +1 -1
- package/dist/esm/input/GamepadButton.js.map +1 -1
- package/dist/esm/input/GamepadDefinitions.d.ts +4 -4
- package/dist/esm/input/GamepadDefinitions.js +12 -14
- package/dist/esm/input/GamepadDefinitions.js.map +1 -1
- package/dist/esm/input/GamepadMapping.d.ts +5 -5
- package/dist/esm/input/GamepadMapping.js.map +1 -1
- package/dist/esm/input/GamepadPromptLayouts.d.ts +2 -2
- package/dist/esm/input/GamepadPromptLayouts.js +8 -8
- package/dist/esm/input/GamepadPromptLayouts.js.map +1 -1
- package/dist/esm/input/GenericDualAnalogGamepadMapping.js.map +1 -1
- package/dist/esm/input/GestureRecognizer.d.ts +1 -1
- package/dist/esm/input/GestureRecognizer.js.map +1 -1
- package/dist/esm/input/InputBinding.d.ts +3 -3
- package/dist/esm/input/InputBinding.js.map +1 -1
- package/dist/esm/input/InputManager.d.ts +9 -9
- package/dist/esm/input/InputManager.js +25 -16
- package/dist/esm/input/InputManager.js.map +1 -1
- package/dist/esm/input/InteractionEvent.d.ts +1 -1
- package/dist/esm/input/InteractionEvent.js.map +1 -1
- package/dist/esm/input/InteractionManager.d.ts +2 -2
- package/dist/esm/input/InteractionManager.js +25 -16
- package/dist/esm/input/InteractionManager.js.map +1 -1
- package/dist/esm/input/JoyConLeftGamepadMapping.js.map +1 -1
- package/dist/esm/input/JoyConRightGamepadMapping.js.map +1 -1
- package/dist/esm/input/PlayStationGamepadMapping.d.ts +1 -1
- package/dist/esm/input/PlayStationGamepadMapping.js +1 -1
- package/dist/esm/input/PlayStationGamepadMapping.js.map +1 -1
- package/dist/esm/input/Pointer.d.ts +2 -2
- package/dist/esm/input/Pointer.js +6 -6
- package/dist/esm/input/Pointer.js.map +1 -1
- package/dist/esm/input/SteamControllerGamepadMapping.d.ts +1 -1
- package/dist/esm/input/SteamControllerGamepadMapping.js +1 -1
- package/dist/esm/input/SteamControllerGamepadMapping.js.map +1 -1
- package/dist/esm/input/SteamDeckGamepadMapping.js.map +1 -1
- package/dist/esm/input/SwitchProGamepadMapping.d.ts +1 -1
- package/dist/esm/input/SwitchProGamepadMapping.js +1 -1
- package/dist/esm/input/SwitchProGamepadMapping.js.map +1 -1
- package/dist/esm/input/XboxGamepadMapping.d.ts +1 -1
- package/dist/esm/input/XboxGamepadMapping.js +1 -1
- package/dist/esm/input/XboxGamepadMapping.js.map +1 -1
- package/dist/esm/input/index.d.ts +16 -16
- package/dist/esm/input/interaction-hooks.js.map +1 -1
- package/dist/esm/input/types.js.map +1 -1
- package/dist/esm/math/AbstractVector.js +8 -9
- package/dist/esm/math/AbstractVector.js.map +1 -1
- package/dist/esm/math/Circle.d.ts +5 -5
- package/dist/esm/math/Circle.js +33 -21
- package/dist/esm/math/Circle.js.map +1 -1
- package/dist/esm/math/Collision.d.ts +2 -2
- package/dist/esm/math/Collision.js.map +1 -1
- package/dist/esm/math/Ellipse.d.ts +5 -5
- package/dist/esm/math/Ellipse.js +28 -19
- package/dist/esm/math/Ellipse.js.map +1 -1
- package/dist/esm/math/Flags.d.ts +4 -4
- package/dist/esm/math/Flags.js.map +1 -1
- package/dist/esm/math/Interval.js.map +1 -1
- package/dist/esm/math/Line.d.ts +5 -5
- package/dist/esm/math/Line.js +23 -15
- package/dist/esm/math/Line.js.map +1 -1
- package/dist/esm/math/Matrix.js +14 -16
- package/dist/esm/math/Matrix.js.map +1 -1
- package/dist/esm/math/ObservableSize.js.map +1 -1
- package/dist/esm/math/ObservableVector.d.ts +1 -1
- package/dist/esm/math/ObservableVector.js.map +1 -1
- package/dist/esm/math/PolarVector.js.map +1 -1
- package/dist/esm/math/Polygon.d.ts +11 -11
- package/dist/esm/math/Polygon.js +37 -26
- package/dist/esm/math/Polygon.js.map +1 -1
- package/dist/esm/math/PolygonLike.d.ts +1 -1
- package/dist/esm/math/Quadtree.js +2 -8
- package/dist/esm/math/Quadtree.js.map +1 -1
- package/dist/esm/math/Random.js +5 -5
- package/dist/esm/math/Random.js.map +1 -1
- package/dist/esm/math/Rectangle.d.ts +4 -4
- package/dist/esm/math/Rectangle.js +59 -41
- package/dist/esm/math/Rectangle.js.map +1 -1
- package/dist/esm/math/Segment.d.ts +1 -1
- package/dist/esm/math/Segment.js +4 -4
- package/dist/esm/math/Segment.js.map +1 -1
- package/dist/esm/math/ShapeLike.d.ts +1 -1
- package/dist/esm/math/Size.js +1 -2
- package/dist/esm/math/Size.js.map +1 -1
- package/dist/esm/math/Vector.d.ts +4 -4
- package/dist/esm/math/Vector.js +19 -13
- package/dist/esm/math/Vector.js.map +1 -1
- package/dist/esm/math/collision-detection.d.ts +3 -3
- package/dist/esm/math/collision-detection.js +49 -49
- package/dist/esm/math/collision-detection.js.map +1 -1
- package/dist/esm/math/collision-primitives.d.ts +8 -8
- package/dist/esm/math/collision-primitives.js +27 -33
- package/dist/esm/math/collision-primitives.js.map +1 -1
- package/dist/esm/math/geometry.d.ts +3 -3
- package/dist/esm/math/geometry.js +55 -48
- package/dist/esm/math/geometry.js.map +1 -1
- package/dist/esm/math/index.d.ts +16 -16
- package/dist/esm/math/swept-collision.d.ts +3 -3
- package/dist/esm/math/swept-collision.js +5 -8
- package/dist/esm/math/swept-collision.js.map +1 -1
- package/dist/esm/math/triangulate.js +34 -24
- package/dist/esm/math/triangulate.js.map +1 -1
- package/dist/esm/math/utils.d.ts +2 -2
- package/dist/esm/math/utils.js +7 -7
- package/dist/esm/math/utils.js.map +1 -1
- package/dist/esm/particles/ParticleSystem.d.ts +9 -9
- package/dist/esm/particles/ParticleSystem.js +29 -29
- package/dist/esm/particles/ParticleSystem.js.map +1 -1
- package/dist/esm/particles/distributions/BoxArea.js.map +1 -1
- package/dist/esm/particles/distributions/CircleArea.js.map +1 -1
- package/dist/esm/particles/distributions/ConeDirection.js.map +1 -1
- package/dist/esm/particles/distributions/Constant.js.map +1 -1
- package/dist/esm/particles/distributions/Curve.d.ts +1 -1
- package/dist/esm/particles/distributions/Curve.js.map +1 -1
- package/dist/esm/particles/distributions/Gradient.d.ts +1 -1
- package/dist/esm/particles/distributions/Gradient.js +1 -1
- package/dist/esm/particles/distributions/Gradient.js.map +1 -1
- package/dist/esm/particles/distributions/LineSegment.js.map +1 -1
- package/dist/esm/particles/distributions/Range.js.map +1 -1
- package/dist/esm/particles/distributions/VectorRange.js.map +1 -1
- package/dist/esm/particles/distributions/index.d.ts +9 -9
- package/dist/esm/particles/gpu/ParticleGpuState.d.ts +3 -3
- package/dist/esm/particles/gpu/ParticleGpuState.js +48 -21
- package/dist/esm/particles/gpu/ParticleGpuState.js.map +1 -1
- package/dist/esm/particles/index.d.ts +1 -1
- package/dist/esm/particles/modules/AlphaFadeOverLifetime.d.ts +2 -2
- package/dist/esm/particles/modules/AlphaFadeOverLifetime.js.map +1 -1
- package/dist/esm/particles/modules/ApplyForce.d.ts +1 -1
- package/dist/esm/particles/modules/ApplyForce.js.map +1 -1
- package/dist/esm/particles/modules/AttractToPoint.d.ts +1 -1
- package/dist/esm/particles/modules/AttractToPoint.js.map +1 -1
- package/dist/esm/particles/modules/BurstSpawn.d.ts +4 -4
- package/dist/esm/particles/modules/BurstSpawn.js +2 -2
- package/dist/esm/particles/modules/BurstSpawn.js.map +1 -1
- package/dist/esm/particles/modules/ColorOverLifetime.d.ts +2 -2
- package/dist/esm/particles/modules/ColorOverLifetime.js +1 -1
- package/dist/esm/particles/modules/ColorOverLifetime.js.map +1 -1
- package/dist/esm/particles/modules/ColorOverSpeed.d.ts +2 -2
- package/dist/esm/particles/modules/ColorOverSpeed.js +1 -1
- package/dist/esm/particles/modules/ColorOverSpeed.js.map +1 -1
- package/dist/esm/particles/modules/DeathModule.js.map +1 -1
- package/dist/esm/particles/modules/Drag.d.ts +1 -1
- package/dist/esm/particles/modules/Drag.js +1 -3
- package/dist/esm/particles/modules/Drag.js.map +1 -1
- package/dist/esm/particles/modules/OrbitalForce.d.ts +1 -1
- package/dist/esm/particles/modules/OrbitalForce.js.map +1 -1
- package/dist/esm/particles/modules/RateSpawn.d.ts +3 -3
- package/dist/esm/particles/modules/RateSpawn.js +2 -2
- package/dist/esm/particles/modules/RateSpawn.js.map +1 -1
- package/dist/esm/particles/modules/RepelFromPoint.d.ts +1 -1
- package/dist/esm/particles/modules/RepelFromPoint.js.map +1 -1
- package/dist/esm/particles/modules/RotateOverLifetime.d.ts +1 -1
- package/dist/esm/particles/modules/RotateOverLifetime.js +1 -3
- package/dist/esm/particles/modules/RotateOverLifetime.js.map +1 -1
- package/dist/esm/particles/modules/ScaleOverLifetime.d.ts +2 -2
- package/dist/esm/particles/modules/ScaleOverLifetime.js.map +1 -1
- package/dist/esm/particles/modules/SpawnModule.js.map +1 -1
- package/dist/esm/particles/modules/SpawnOnDeath.d.ts +1 -1
- package/dist/esm/particles/modules/SpawnOnDeath.js.map +1 -1
- package/dist/esm/particles/modules/Turbulence.d.ts +1 -1
- package/dist/esm/particles/modules/Turbulence.js.map +1 -1
- package/dist/esm/particles/modules/UpdateModule.js.map +1 -1
- package/dist/esm/particles/modules/VelocityOverLifetime.d.ts +2 -2
- package/dist/esm/particles/modules/VelocityOverLifetime.js.map +1 -1
- package/dist/esm/particles/modules/WgslContribution.d.ts +3 -3
- package/dist/esm/particles/modules/WgslContribution.js.map +1 -1
- package/dist/esm/particles/modules/index.d.ts +17 -17
- package/dist/esm/rendering/CallbackRenderPass.js.map +1 -1
- package/dist/esm/rendering/Container.d.ts +2 -2
- package/dist/esm/rendering/Container.js +10 -11
- package/dist/esm/rendering/Container.js.map +1 -1
- package/dist/esm/rendering/Drawable.js.map +1 -1
- package/dist/esm/rendering/RenderBackend.d.ts +6 -6
- package/dist/esm/rendering/RenderBackendType.js.map +1 -1
- package/dist/esm/rendering/RenderNode.d.ts +10 -10
- package/dist/esm/rendering/RenderNode.js +31 -31
- package/dist/esm/rendering/RenderNode.js.map +1 -1
- package/dist/esm/rendering/RenderStats.js.map +1 -1
- package/dist/esm/rendering/RenderTarget.d.ts +2 -2
- package/dist/esm/rendering/RenderTarget.js +5 -5
- package/dist/esm/rendering/RenderTarget.js.map +1 -1
- package/dist/esm/rendering/RenderTargetPass.d.ts +3 -3
- package/dist/esm/rendering/RenderTargetPass.js.map +1 -1
- package/dist/esm/rendering/Renderer.d.ts +2 -2
- package/dist/esm/rendering/RendererRegistry.d.ts +3 -3
- package/dist/esm/rendering/RendererRegistry.js +2 -3
- package/dist/esm/rendering/RendererRegistry.js.map +1 -1
- package/dist/esm/rendering/View.d.ts +3 -3
- package/dist/esm/rendering/View.js +17 -20
- package/dist/esm/rendering/View.js.map +1 -1
- package/dist/esm/rendering/filters/BlurFilter.d.ts +1 -1
- package/dist/esm/rendering/filters/BlurFilter.js +4 -9
- package/dist/esm/rendering/filters/BlurFilter.js.map +1 -1
- package/dist/esm/rendering/filters/ColorFilter.d.ts +1 -1
- package/dist/esm/rendering/filters/ColorFilter.js +3 -9
- package/dist/esm/rendering/filters/ColorFilter.js.map +1 -1
- package/dist/esm/rendering/filters/Filter.d.ts +1 -1
- package/dist/esm/rendering/filters/Filter.js.map +1 -1
- package/dist/esm/rendering/filters/LutFilter.d.ts +87 -0
- package/dist/esm/rendering/filters/LutFilter.js +261 -0
- package/dist/esm/rendering/filters/LutFilter.js.map +1 -0
- package/dist/esm/rendering/filters/WebGl2ShaderFilter.d.ts +2 -2
- package/dist/esm/rendering/filters/WebGl2ShaderFilter.js +7 -14
- package/dist/esm/rendering/filters/WebGl2ShaderFilter.js.map +1 -1
- package/dist/esm/rendering/filters/WebGpuShaderFilter.d.ts +1 -1
- package/dist/esm/rendering/filters/WebGpuShaderFilter.js +11 -10
- package/dist/esm/rendering/filters/WebGpuShaderFilter.js.map +1 -1
- package/dist/esm/rendering/index.d.ts +28 -27
- package/dist/esm/rendering/mesh/Mesh.d.ts +49 -1
- package/dist/esm/rendering/mesh/Mesh.js +3 -1
- package/dist/esm/rendering/mesh/Mesh.js.map +1 -1
- package/dist/esm/rendering/primitives/Graphics.d.ts +3 -3
- package/dist/esm/rendering/primitives/Graphics.js +12 -12
- package/dist/esm/rendering/primitives/Graphics.js.map +1 -1
- package/dist/esm/rendering/shader/Shader.js.map +1 -1
- package/dist/esm/rendering/shader/ShaderAttribute.js.map +1 -1
- package/dist/esm/rendering/shader/ShaderUniform.js.map +1 -1
- package/dist/esm/rendering/shader/upgradeFragmentShaderToGl300.js +6 -8
- package/dist/esm/rendering/shader/upgradeFragmentShaderToGl300.js.map +1 -1
- package/dist/esm/rendering/sprite/AnimatedSprite.d.ts +3 -3
- package/dist/esm/rendering/sprite/AnimatedSprite.js.map +1 -1
- package/dist/esm/rendering/sprite/Sprite.d.ts +4 -4
- package/dist/esm/rendering/sprite/Sprite.js +51 -35
- package/dist/esm/rendering/sprite/Sprite.js.map +1 -1
- package/dist/esm/rendering/sprite/Spritesheet.d.ts +5 -9
- package/dist/esm/rendering/sprite/Spritesheet.js +1 -1
- package/dist/esm/rendering/sprite/Spritesheet.js.map +1 -1
- package/dist/esm/rendering/text/DynamicGlyphAtlas.js +3 -9
- package/dist/esm/rendering/text/DynamicGlyphAtlas.js.map +1 -1
- package/dist/esm/rendering/text/Text.js +9 -9
- package/dist/esm/rendering/text/Text.js.map +1 -1
- package/dist/esm/rendering/text/TextLayout.d.ts +2 -2
- package/dist/esm/rendering/text/TextLayout.js.map +1 -1
- package/dist/esm/rendering/text/TextStyle.js.map +1 -1
- package/dist/esm/rendering/text/atlas-singleton.js.map +1 -1
- package/dist/esm/rendering/texture/RenderTexture.d.ts +1 -1
- package/dist/esm/rendering/texture/RenderTexture.js +4 -1
- package/dist/esm/rendering/texture/RenderTexture.js.map +1 -1
- package/dist/esm/rendering/texture/Sampler.js.map +1 -1
- package/dist/esm/rendering/texture/Texture.d.ts +2 -2
- package/dist/esm/rendering/texture/Texture.js +8 -5
- package/dist/esm/rendering/texture/Texture.js.map +1 -1
- package/dist/esm/rendering/types.js.map +1 -1
- package/dist/esm/rendering/utils.js.map +1 -1
- package/dist/esm/rendering/video/Video.d.ts +3 -3
- package/dist/esm/rendering/video/Video.js +7 -6
- package/dist/esm/rendering/video/Video.js.map +1 -1
- package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.d.ts +6 -6
- package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js +7 -10
- package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/AbstractWebGl2Renderer.d.ts +1 -1
- package/dist/esm/rendering/webgl2/AbstractWebGl2Renderer.js +1 -2
- package/dist/esm/rendering/webgl2/AbstractWebGl2Renderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts +11 -11
- package/dist/esm/rendering/webgl2/WebGl2Backend.js +19 -21
- package/dist/esm/rendering/webgl2/WebGl2Backend.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.d.ts +2 -2
- package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.js +6 -8
- package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.d.ts +7 -4
- package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.js +110 -43
- package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.d.ts +1 -1
- package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.js +10 -18
- package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.d.ts +1 -1
- package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2ShaderBlock.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2ShaderMappings.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2ShaderProgram.js +54 -22
- package/dist/esm/rendering/webgl2/WebGl2ShaderProgram.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.d.ts +1 -1
- package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js +11 -14
- package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2VertexArrayObject.d.ts +1 -1
- package/dist/esm/rendering/webgl2/WebGl2VertexArrayObject.js.map +1 -1
- package/dist/esm/rendering/webgpu/AbstractWebGpuRenderer.d.ts +1 -1
- package/dist/esm/rendering/webgpu/AbstractWebGpuRenderer.js +1 -2
- package/dist/esm/rendering/webgpu/AbstractWebGpuRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts +7 -7
- package/dist/esm/rendering/webgpu/WebGpuBackend.js +44 -30
- package/dist/esm/rendering/webgpu/WebGpuBackend.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuBlendState.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.d.ts +2 -2
- package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.js +1 -3
- package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.d.ts +2 -2
- package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js +25 -23
- package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.d.ts +1 -1
- package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.js +100 -56
- package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts +2 -2
- package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js +45 -45
- package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/compute/WebGpuComputePipeline.d.ts +1 -1
- package/dist/esm/rendering/webgpu/compute/index.d.ts +2 -2
- package/dist/esm/resources/AbstractAssetFactory.d.ts +1 -1
- package/dist/esm/resources/AbstractAssetFactory.js.map +1 -1
- package/dist/esm/resources/AssetManifest.d.ts +1 -1
- package/dist/esm/resources/AssetManifest.js +2 -2
- package/dist/esm/resources/AssetManifest.js.map +1 -1
- package/dist/esm/resources/CacheFirstStrategy.d.ts +2 -2
- package/dist/esm/resources/CacheFirstStrategy.js.map +1 -1
- package/dist/esm/resources/CacheStrategy.d.ts +1 -1
- package/dist/esm/resources/FactoryRegistry.d.ts +1 -1
- package/dist/esm/resources/FactoryRegistry.js +2 -3
- package/dist/esm/resources/FactoryRegistry.js.map +1 -1
- package/dist/esm/resources/IndexedDbDatabase.d.ts +1 -1
- package/dist/esm/resources/IndexedDbDatabase.js +11 -14
- package/dist/esm/resources/IndexedDbDatabase.js.map +1 -1
- package/dist/esm/resources/IndexedDbStore.d.ts +1 -1
- package/dist/esm/resources/IndexedDbStore.js +2 -7
- package/dist/esm/resources/IndexedDbStore.js.map +1 -1
- package/dist/esm/resources/Loader.d.ts +9 -9
- package/dist/esm/resources/Loader.js +48 -35
- package/dist/esm/resources/Loader.js.map +1 -1
- package/dist/esm/resources/NetworkOnlyStrategy.d.ts +2 -2
- package/dist/esm/resources/NetworkOnlyStrategy.js.map +1 -1
- package/dist/esm/resources/factories/BinaryFactory.js.map +1 -1
- package/dist/esm/resources/factories/FontFactory.js +1 -1
- package/dist/esm/resources/factories/FontFactory.js.map +1 -1
- package/dist/esm/resources/factories/ImageFactory.js +4 -4
- package/dist/esm/resources/factories/ImageFactory.js.map +1 -1
- package/dist/esm/resources/factories/JsonFactory.d.ts +1 -1
- package/dist/esm/resources/factories/JsonFactory.js +1 -1
- package/dist/esm/resources/factories/JsonFactory.js.map +1 -1
- package/dist/esm/resources/factories/MusicFactory.d.ts +1 -1
- package/dist/esm/resources/factories/MusicFactory.js +4 -4
- package/dist/esm/resources/factories/MusicFactory.js.map +1 -1
- package/dist/esm/resources/factories/SoundFactory.d.ts +1 -1
- package/dist/esm/resources/factories/SoundFactory.js +3 -3
- package/dist/esm/resources/factories/SoundFactory.js.map +1 -1
- package/dist/esm/resources/factories/SvgFactory.js +3 -3
- package/dist/esm/resources/factories/SvgFactory.js.map +1 -1
- package/dist/esm/resources/factories/TextFactory.js +1 -1
- package/dist/esm/resources/factories/TextFactory.js.map +1 -1
- package/dist/esm/resources/factories/TextureFactory.d.ts +1 -1
- package/dist/esm/resources/factories/TextureFactory.js +3 -3
- package/dist/esm/resources/factories/TextureFactory.js.map +1 -1
- package/dist/esm/resources/factories/VideoFactory.d.ts +2 -2
- package/dist/esm/resources/factories/VideoFactory.js +5 -5
- package/dist/esm/resources/factories/VideoFactory.js.map +1 -1
- package/dist/esm/resources/factories/VttFactory.d.ts +2 -2
- package/dist/esm/resources/factories/VttFactory.js +6 -6
- package/dist/esm/resources/factories/VttFactory.js.map +1 -1
- package/dist/esm/resources/factories/WasmFactory.js.map +1 -1
- package/dist/esm/resources/index.d.ts +11 -11
- package/dist/esm/resources/utils.js +30 -25
- package/dist/esm/resources/utils.js.map +1 -1
- package/dist/exo.esm.js +25798 -25144
- package/dist/exo.esm.js.map +1 -1
- package/package.json +15 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractAssetFactory.js","sources":["../../../../src/resources/AbstractAssetFactory.ts"],"sourcesContent":[null],"names":[],"mappings":"AAEA;;;;;;;;AAQG;MACmB,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"AbstractAssetFactory.js","sources":["../../../../src/resources/AbstractAssetFactory.ts"],"sourcesContent":[null],"names":[],"mappings":"AAEA;;;;;;;;AAQG;MACmB,oBAAoB,CAAA;IACrB,WAAW,GAAa,EAAE;AAM7C;;;;;;AAMG;AACI,IAAA,eAAe,CAAC,IAAU,EAAA;QAC/B,MAAM,SAAS,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC;AAE3C,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC;AAEhC,QAAA,OAAO,SAAS;IAClB;AAEU,IAAA,eAAe,CAAC,SAAiB,EAAA;AACzC,QAAA,GAAG,CAAC,eAAe,CAAC,SAAS,CAAC;QAE9B,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC;AAEjD,QAAA,IAAI,KAAK,KAAK,EAAE,EAAE;YAChB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QACnC;IACF;AAEA;;;AAGG;IACI,OAAO,GAAA;AACZ,QAAA,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,WAAW,EAAE;AACxC,YAAA,GAAG,CAAC,eAAe,CAAC,SAAS,CAAC;QAChC;AAEA,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;IAC7B;AACD;;;;"}
|
|
@@ -20,7 +20,7 @@ export interface AssetEntry<T extends Loadable = Loadable> {
|
|
|
20
20
|
* construct a validated, type-safe manifest at authoring time.
|
|
21
21
|
*/
|
|
22
22
|
export interface AssetManifest {
|
|
23
|
-
readonly bundles: Readonly<Record<string,
|
|
23
|
+
readonly bundles: Readonly<Record<string, readonly AssetEntry[]>>;
|
|
24
24
|
}
|
|
25
25
|
/**
|
|
26
26
|
* Options controlling how a bundle is loaded by {@link Loader.loadBundle}.
|
|
@@ -52,7 +52,7 @@ function validateAssetManifest(manifest) {
|
|
|
52
52
|
throw new Error(`Invalid asset manifest: bundle "${bundleName}" must be an array of entries.`);
|
|
53
53
|
}
|
|
54
54
|
const seenAliasesByType = new Map();
|
|
55
|
-
rawEntries.
|
|
55
|
+
for (const [index, rawEntry] of rawEntries.entries()) {
|
|
56
56
|
const location = `bundle "${bundleName}" entry[${index}]`;
|
|
57
57
|
if (!isObjectRecord(rawEntry)) {
|
|
58
58
|
throw new Error(`Invalid asset manifest: ${location} must be an object.`);
|
|
@@ -72,7 +72,7 @@ function validateAssetManifest(manifest) {
|
|
|
72
72
|
throw new Error(`Invalid asset manifest: duplicate (${describeType(type)}, "${alias}") in bundle "${bundleName}".`);
|
|
73
73
|
}
|
|
74
74
|
aliases.add(alias);
|
|
75
|
-
}
|
|
75
|
+
}
|
|
76
76
|
}
|
|
77
77
|
}
|
|
78
78
|
function isObjectRecord(value) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssetManifest.js","sources":["../../../../src/resources/AssetManifest.ts"],"sourcesContent":[null],"names":[],"mappings":"AAsCA;;;;;;AAMG;AACG,MAAO,eAAgB,SAAQ,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"AssetManifest.js","sources":["../../../../src/resources/AssetManifest.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { CacheRequest, CacheStrategy } from './CacheStrategy';
|
|
2
1
|
import type { CacheStore } from './CacheStore';
|
|
2
|
+
import type { CacheRequest, CacheStrategy } from './CacheStrategy';
|
|
3
3
|
/**
|
|
4
4
|
* {@link CacheStrategy} that checks every provided {@link CacheStore} before
|
|
5
5
|
* falling back to the network.
|
|
@@ -16,5 +16,5 @@ import type { CacheStore } from './CacheStore';
|
|
|
16
16
|
* {@link AssetFactory.create} again.
|
|
17
17
|
*/
|
|
18
18
|
export declare class CacheFirstStrategy implements CacheStrategy {
|
|
19
|
-
resolve(request: CacheRequest, stores:
|
|
19
|
+
resolve(request: CacheRequest, stores: readonly CacheStore[]): Promise<unknown>;
|
|
20
20
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CacheFirstStrategy.js","sources":["../../../../src/resources/CacheFirstStrategy.ts"],"sourcesContent":[null],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;AAcG;MACU,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"CacheFirstStrategy.js","sources":["../../../../src/resources/CacheFirstStrategy.ts"],"sourcesContent":[null],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;AAcG;MACU,kBAAkB,CAAA;AACtB,IAAA,MAAM,OAAO,CAAC,OAAqB,EAAE,MAA6B,EAAA;AACvE,QAAA,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO;AAE3E,QAAA,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YAC1B,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC;YAEjD,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,EAAE;AAC3C,gBAAA,IAAI;oBACF,OAAO,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;gBAC9C;AAAE,gBAAA,MAAM;oBACN,MAAM,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC;gBACtC;YACF;QACF;QAEA,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,cAAc,CAAC;AAEjD,QAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;AAChB,YAAA,MAAM,IAAI,KAAK,CAAC,CAAA,iBAAA,EAAoB,GAAG,CAAA,GAAA,EAAM,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,CAAA,EAAA,CAAI,CAAC;QAC1F;QAEA,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;QAC9C,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;AAEtD,QAAA,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;AAC1B,YAAA,IAAI;gBACF,MAAM,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,MAAM,CAAC;YAC5C;AAAE,YAAA,MAAM;;YAER;QACF;AAEA,QAAA,OAAO,QAAQ;IACjB;AACD;;;;"}
|
|
@@ -36,5 +36,5 @@ export interface CacheStrategy {
|
|
|
36
36
|
* Resolves a single asset according to the strategy's caching policy and
|
|
37
37
|
* returns the fully constructed resource.
|
|
38
38
|
*/
|
|
39
|
-
resolve(request: CacheRequest, stores:
|
|
39
|
+
resolve(request: CacheRequest, stores: readonly CacheStore[]): Promise<unknown>;
|
|
40
40
|
}
|
|
@@ -3,7 +3,7 @@ import type { AssetFactory } from './AssetFactory';
|
|
|
3
3
|
* Any abstract or concrete constructor whose instances are the asset type
|
|
4
4
|
* produced by a factory (e.g. `typeof Texture`, `typeof Sound`).
|
|
5
5
|
*/
|
|
6
|
-
export type AssetConstructor<T = unknown> = abstract new (...args:
|
|
6
|
+
export type AssetConstructor<T = unknown> = abstract new (...args: any[]) => T;
|
|
7
7
|
/**
|
|
8
8
|
* Maps {@link AssetConstructor} tokens to their corresponding
|
|
9
9
|
* {@link AssetFactory} instances.
|
|
@@ -21,7 +21,7 @@ class FactoryRegistry {
|
|
|
21
21
|
*/
|
|
22
22
|
resolve(type) {
|
|
23
23
|
let constructor = type;
|
|
24
|
-
let factory
|
|
24
|
+
let factory;
|
|
25
25
|
while (constructor !== null && !factory) {
|
|
26
26
|
factory = this._factories.get(constructor);
|
|
27
27
|
if (!factory) {
|
|
@@ -30,8 +30,7 @@ class FactoryRegistry {
|
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
if (!factory) {
|
|
33
|
-
throw new Error(`No factory registered for ${type.name}. `
|
|
34
|
-
+ 'Register one with loader.register() before loading.');
|
|
33
|
+
throw new Error(`No factory registered for ${type.name}. ` + 'Register one with loader.register() before loading.');
|
|
35
34
|
}
|
|
36
35
|
return factory;
|
|
37
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FactoryRegistry.js","sources":["../../../../src/resources/FactoryRegistry.ts"],"sourcesContent":[null],"names":[],"mappings":"AASA;;;;;;;;;;AAUG;MACU,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"FactoryRegistry.js","sources":["../../../../src/resources/FactoryRegistry.ts"],"sourcesContent":[null],"names":[],"mappings":"AASA;;;;;;;;;;AAUG;MACU,eAAe,CAAA;AACT,IAAA,UAAU,GAAG,IAAI,GAAG,EAAkC;;IAGhE,QAAQ,CAAI,IAAyB,EAAE,OAAwB,EAAA;QACpE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC;IACpC;AAEA;;;AAGG;AACI,IAAA,OAAO,CAAI,IAAyB,EAAA;QACzC,IAAI,WAAW,GAA4B,IAAI;AAC/C,QAAA,IAAI,OAAiC;AAErC,QAAA,OAAO,WAAW,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE;YACvC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC;YAE1C,IAAI,CAAC,OAAO,EAAE;gBACZ,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,SAAS,CAA8C;AAE3G,gBAAA,WAAW,GAAG,SAAS,EAAE,WAAW,IAAI,IAAI;YAC9C;QACF;QAEA,IAAI,CAAC,OAAO,EAAE;YACZ,MAAM,IAAI,KAAK,CAAC,CAAA,0BAAA,EAA6B,IAAI,CAAC,IAAI,CAAA,EAAA,CAAI,GAAG,qDAAqD,CAAC;QACrH;AAEA,QAAA,OAAO,OAA0B;IACnC;AAEA;;;AAGG;AACI,IAAA,GAAG,CAAC,IAAsB,EAAA;QAC/B,IAAI,WAAW,GAA4B,IAAI;AAE/C,QAAA,OAAO,WAAW,KAAK,IAAI,EAAE;YAC3B,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;AACpC,gBAAA,OAAO,IAAI;YACb;YAEA,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,SAAS,CAA8C;AAE3G,YAAA,WAAW,GAAG,SAAS,EAAE,WAAW,IAAI,IAAI;QAC9C;AAEA,QAAA,OAAO,KAAK;IACd;AAEA;;;AAGG;IACI,OAAO,GAAA;QACZ,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE;YAC9C,OAAO,CAAC,OAAO,EAAE;QACnB;AAEA,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;IACzB;AACD;;;;"}
|
|
@@ -23,7 +23,7 @@ export declare class IndexedDbDatabase implements Database {
|
|
|
23
23
|
private _connected;
|
|
24
24
|
private _database;
|
|
25
25
|
get connected(): boolean;
|
|
26
|
-
constructor(name: string, version?: number, storeNames?:
|
|
26
|
+
constructor(name: string, version?: number, storeNames?: readonly string[], migrations?: Record<number, (db: IDBDatabase, transaction: IDBTransaction) => boolean>);
|
|
27
27
|
/**
|
|
28
28
|
* Opens (or re-uses) an IDBObjectStore for `type` in the given
|
|
29
29
|
* `transactionMode`. Calls {@link connect} automatically if the database
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import { supportsIndexedDb } from '../core/utils.js';
|
|
2
2
|
|
|
3
|
-
const defaultStoreNames = [
|
|
4
|
-
'font', 'video', 'music', 'sound', 'image', 'texture',
|
|
5
|
-
'text', 'svg', 'json', 'binary', 'wasm', 'vtt',
|
|
6
|
-
];
|
|
3
|
+
const defaultStoreNames = ['font', 'video', 'music', 'sound', 'image', 'texture', 'text', 'svg', 'json', 'binary', 'wasm', 'vtt'];
|
|
7
4
|
/**
|
|
8
5
|
* {@link Database} implementation backed by the browser's IndexedDB API.
|
|
9
6
|
*
|
|
@@ -55,13 +52,13 @@ class IndexedDbDatabase {
|
|
|
55
52
|
}
|
|
56
53
|
return new Promise((resolve, reject) => {
|
|
57
54
|
const request = indexedDB.open(this.name, this.version);
|
|
58
|
-
request.addEventListener('upgradeneeded',
|
|
55
|
+
request.addEventListener('upgradeneeded', event => {
|
|
59
56
|
const database = request.result;
|
|
60
57
|
const transaction = request.transaction;
|
|
61
58
|
const currentStores = [...transaction.objectStoreNames];
|
|
62
59
|
const { oldVersion, newVersion } = event;
|
|
63
|
-
database.addEventListener('error', () => reject(Error('An error occurred while opening the database.')));
|
|
64
|
-
database.addEventListener('abort', () => reject(Error('The database opening was aborted.')));
|
|
60
|
+
database.addEventListener('error', () => reject(new Error('An error occurred while opening the database.')));
|
|
61
|
+
database.addEventListener('abort', () => reject(new Error('The database opening was aborted.')));
|
|
65
62
|
if (this._migrations) {
|
|
66
63
|
const migrationKeys = Object.keys(this._migrations)
|
|
67
64
|
.map(Number)
|
|
@@ -95,8 +92,8 @@ class IndexedDbDatabase {
|
|
|
95
92
|
this._connected = true;
|
|
96
93
|
resolve(true);
|
|
97
94
|
});
|
|
98
|
-
request.addEventListener('error', () => reject(Error('An error occurred while requesting the database connection.')));
|
|
99
|
-
request.addEventListener('blocked', () => reject(Error('The request for the database connection has been blocked.')));
|
|
95
|
+
request.addEventListener('error', () => reject(new Error('An error occurred while requesting the database connection.')));
|
|
96
|
+
request.addEventListener('blocked', () => reject(new Error('The request for the database connection has been blocked.')));
|
|
100
97
|
});
|
|
101
98
|
}
|
|
102
99
|
async disconnect() {
|
|
@@ -114,7 +111,7 @@ class IndexedDbDatabase {
|
|
|
114
111
|
return new Promise((resolve, reject) => {
|
|
115
112
|
const request = store.get(name);
|
|
116
113
|
request.addEventListener('success', () => resolve(request.result?.data ?? null));
|
|
117
|
-
request.addEventListener('error', () => reject(Error('An error occurred while loading an item.')));
|
|
114
|
+
request.addEventListener('error', () => reject(new Error('An error occurred while loading an item.')));
|
|
118
115
|
});
|
|
119
116
|
}
|
|
120
117
|
async save(type, name, data) {
|
|
@@ -122,7 +119,7 @@ class IndexedDbDatabase {
|
|
|
122
119
|
return new Promise((resolve, reject) => {
|
|
123
120
|
const request = store.put({ name, data });
|
|
124
121
|
request.addEventListener('success', () => resolve());
|
|
125
|
-
request.addEventListener('error', () => reject(Error('An error occurred while saving an item.')));
|
|
122
|
+
request.addEventListener('error', () => reject(new Error('An error occurred while saving an item.')));
|
|
126
123
|
});
|
|
127
124
|
}
|
|
128
125
|
async delete(type, name) {
|
|
@@ -130,7 +127,7 @@ class IndexedDbDatabase {
|
|
|
130
127
|
return new Promise((resolve, reject) => {
|
|
131
128
|
const request = store.delete(name);
|
|
132
129
|
request.addEventListener('success', () => resolve(true));
|
|
133
|
-
request.addEventListener('error', () => reject(Error('An error occurred while deleting an item.')));
|
|
130
|
+
request.addEventListener('error', () => reject(new Error('An error occurred while deleting an item.')));
|
|
134
131
|
});
|
|
135
132
|
}
|
|
136
133
|
async clearStorage(type) {
|
|
@@ -138,7 +135,7 @@ class IndexedDbDatabase {
|
|
|
138
135
|
return new Promise((resolve, reject) => {
|
|
139
136
|
const request = store.clear();
|
|
140
137
|
request.addEventListener('success', () => resolve(true));
|
|
141
|
-
request.addEventListener('error', () => reject(Error('An error occurred while clearing a storage.')));
|
|
138
|
+
request.addEventListener('error', () => reject(new Error('An error occurred while clearing a storage.')));
|
|
142
139
|
});
|
|
143
140
|
}
|
|
144
141
|
async deleteStorage() {
|
|
@@ -146,7 +143,7 @@ class IndexedDbDatabase {
|
|
|
146
143
|
return new Promise((resolve, reject) => {
|
|
147
144
|
const request = indexedDB.deleteDatabase(this.name);
|
|
148
145
|
request.addEventListener('success', () => resolve(true));
|
|
149
|
-
request.addEventListener('error', () => reject(Error('An error occurred while deleting a storage.')));
|
|
146
|
+
request.addEventListener('error', () => reject(new Error('An error occurred while deleting a storage.')));
|
|
150
147
|
});
|
|
151
148
|
}
|
|
152
149
|
destroy() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IndexedDbDatabase.js","sources":["../../../../src/resources/IndexedDbDatabase.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAGA,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"IndexedDbDatabase.js","sources":["../../../../src/resources/IndexedDbDatabase.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@ import type { CacheStore } from './CacheStore';
|
|
|
10
10
|
export interface IndexedDbStoreOptions {
|
|
11
11
|
name: string;
|
|
12
12
|
version?: number;
|
|
13
|
-
storeNames?:
|
|
13
|
+
storeNames?: readonly string[];
|
|
14
14
|
migrations?: Record<number, (db: IDBDatabase, transaction: IDBTransaction) => boolean>;
|
|
15
15
|
}
|
|
16
16
|
/**
|
|
@@ -15,13 +15,8 @@ import { IndexedDbDatabase } from './IndexedDbDatabase.js';
|
|
|
15
15
|
class IndexedDbStore {
|
|
16
16
|
_db;
|
|
17
17
|
constructor(nameOrOptions) {
|
|
18
|
-
const options = typeof nameOrOptions === 'string'
|
|
19
|
-
|
|
20
|
-
: nameOrOptions;
|
|
21
|
-
this._db = new IndexedDbDatabase(options.name, options.version ?? 1, options.storeNames ?? [
|
|
22
|
-
'font', 'video', 'music', 'sound', 'image', 'texture',
|
|
23
|
-
'text', 'svg', 'json', 'binary', 'wasm', 'vtt',
|
|
24
|
-
], options.migrations);
|
|
18
|
+
const options = typeof nameOrOptions === 'string' ? { name: nameOrOptions } : nameOrOptions;
|
|
19
|
+
this._db = new IndexedDbDatabase(options.name, options.version ?? 1, options.storeNames ?? ['font', 'video', 'music', 'sound', 'image', 'texture', 'text', 'svg', 'json', 'binary', 'wasm', 'vtt'], options.migrations);
|
|
25
20
|
}
|
|
26
21
|
async load(storageName, key) {
|
|
27
22
|
return this._db.load(storageName, key);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IndexedDbStore.js","sources":["../../../../src/resources/IndexedDbStore.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAkBA;;;;;;;;;;;AAWG;MACU,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"IndexedDbStore.js","sources":["../../../../src/resources/IndexedDbStore.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAkBA;;;;;;;;;;;AAWG;MACU,cAAc,CAAA;AACR,IAAA,GAAG;AAEpB,IAAA,WAAA,CAAmB,aAA6C,EAAA;AAC9D,QAAA,MAAM,OAAO,GAAG,OAAO,aAAa,KAAK,QAAQ,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,aAAa;QAE3F,IAAI,CAAC,GAAG,GAAG,IAAI,iBAAiB,CAC9B,OAAO,CAAC,IAAI,EACZ,OAAO,CAAC,OAAO,IAAI,CAAC,EACpB,OAAO,CAAC,UAAU,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAC7H,OAAO,CAAC,UAAU,CACnB;IACH;AAEO,IAAA,MAAM,IAAI,CAAC,WAAmB,EAAE,GAAW,EAAA;QAChD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC;IACxC;AAEO,IAAA,MAAM,IAAI,CAAC,WAAmB,EAAE,GAAW,EAAE,IAAa,EAAA;AAC/D,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,IAAI,CAAC;IAC9C;AAEO,IAAA,MAAM,MAAM,CAAC,WAAmB,EAAE,GAAW,EAAA;QAClD,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC;IAC1C;IAEO,MAAM,KAAK,CAAC,WAAmB,EAAA;QACpC,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC;IAC3C;IAEO,OAAO,GAAA;AACZ,QAAA,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE;IACpB;AACD;;;;"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { Signal } from '@/core/Signal';
|
|
2
|
-
import { Json, TextAsset, SvgAsset, VttAsset } from './tokens';
|
|
3
2
|
import type { AssetFactory } from './AssetFactory';
|
|
4
|
-
import type {
|
|
3
|
+
import type { AssetManifest, LoadBundleOptions } from './AssetManifest';
|
|
5
4
|
import type { CacheStore } from './CacheStore';
|
|
6
5
|
import type { CacheStrategy } from './CacheStrategy';
|
|
7
|
-
import type {
|
|
6
|
+
import type { AssetConstructor } from './FactoryRegistry';
|
|
7
|
+
import { Json, SvgAsset, TextAsset, VttAsset } from './tokens';
|
|
8
8
|
/**
|
|
9
9
|
* Any abstract or concrete constructor that can be used as an asset type token
|
|
10
10
|
* with {@link Loader.load} and related methods.
|
|
11
11
|
*/
|
|
12
|
-
export type Loadable = abstract new (...args:
|
|
12
|
+
export type Loadable = abstract new (...args: any[]) => any;
|
|
13
13
|
/**
|
|
14
14
|
* Maps a {@link Loadable} constructor to the concrete type returned by
|
|
15
15
|
* {@link Loader.load}.
|
|
@@ -19,7 +19,7 @@ export type Loadable = abstract new (...args: Array<any>) => any;
|
|
|
19
19
|
* their constructor type. All other loadables return the instance type inferred
|
|
20
20
|
* from the constructor.
|
|
21
21
|
*/
|
|
22
|
-
export type LoadReturn<T> = T extends typeof Json ? unknown : T extends typeof TextAsset ? string : T extends typeof SvgAsset ? HTMLImageElement : T extends typeof VttAsset ?
|
|
22
|
+
export type LoadReturn<T> = T extends typeof Json ? unknown : T extends typeof TextAsset ? string : T extends typeof SvgAsset ? HTMLImageElement : T extends typeof VttAsset ? VTTCue[] : T extends abstract new (...args: any[]) => infer R ? R : never;
|
|
23
23
|
/**
|
|
24
24
|
* Construction options for {@link Loader}.
|
|
25
25
|
*
|
|
@@ -33,7 +33,7 @@ export type LoadReturn<T> = T extends typeof Json ? unknown : T extends typeof T
|
|
|
33
33
|
export interface LoaderOptions {
|
|
34
34
|
resourcePath?: string;
|
|
35
35
|
requestOptions?: RequestInit;
|
|
36
|
-
cache?: CacheStore |
|
|
36
|
+
cache?: CacheStore | readonly CacheStore[];
|
|
37
37
|
cacheStrategy?: CacheStrategy;
|
|
38
38
|
concurrency?: number;
|
|
39
39
|
}
|
|
@@ -113,7 +113,7 @@ export declare class Loader {
|
|
|
113
113
|
* truth when resolving conflicts in {@link registerManifest}.
|
|
114
114
|
*/
|
|
115
115
|
add(type: Loadable, path: string): this;
|
|
116
|
-
add(type: Loadable, paths:
|
|
116
|
+
add(type: Loadable, paths: readonly string[]): this;
|
|
117
117
|
add(type: Loadable, items: Readonly<Record<string, string>>): this;
|
|
118
118
|
/**
|
|
119
119
|
* Validates and registers an {@link AssetManifest}, making its bundles
|
|
@@ -155,10 +155,10 @@ export declare class Loader {
|
|
|
155
155
|
* (e.g. audio decoding hints or image format overrides).
|
|
156
156
|
*/
|
|
157
157
|
load<T = unknown>(type: typeof Json, path: string, options?: unknown): Promise<T>;
|
|
158
|
-
load<T = unknown>(type: typeof Json, paths:
|
|
158
|
+
load<T = unknown>(type: typeof Json, paths: readonly string[], options?: unknown): Promise<T[]>;
|
|
159
159
|
load<T = unknown, K extends string = string>(type: typeof Json, items: Readonly<Record<K, string>>, options?: unknown): Promise<Record<K, T>>;
|
|
160
160
|
load<T extends Loadable>(type: T, path: string, options?: unknown): Promise<LoadReturn<T>>;
|
|
161
|
-
load<T extends Loadable>(type: T, paths:
|
|
161
|
+
load<T extends Loadable>(type: T, paths: readonly string[], options?: unknown): Promise<Array<LoadReturn<T>>>;
|
|
162
162
|
load<T extends Loadable, K extends string>(type: T, items: Readonly<Record<K, string>>, options?: unknown): Promise<Record<K, LoadReturn<T>>>;
|
|
163
163
|
/**
|
|
164
164
|
* Enqueues all manifest-registered assets that have not yet been loaded
|
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
import { Signal } from '../core/Signal.js';
|
|
2
|
-
import { Texture } from '../rendering/texture/Texture.js';
|
|
3
1
|
import { Music } from '../audio/Music.js';
|
|
4
2
|
import { Sound } from '../audio/Sound.js';
|
|
3
|
+
import { Signal } from '../core/Signal.js';
|
|
4
|
+
import { Texture } from '../rendering/texture/Texture.js';
|
|
5
5
|
import { Video } from '../rendering/video/Video.js';
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
6
|
+
import { defineAssetManifest, BundleLoadError } from './AssetManifest.js';
|
|
7
|
+
import { CacheFirstStrategy } from './CacheFirstStrategy.js';
|
|
8
|
+
import { BinaryFactory } from './factories/BinaryFactory.js';
|
|
8
9
|
import { FontFactory } from './factories/FontFactory.js';
|
|
9
10
|
import { ImageFactory } from './factories/ImageFactory.js';
|
|
10
11
|
import { JsonFactory } from './factories/JsonFactory.js';
|
|
11
12
|
import { MusicFactory } from './factories/MusicFactory.js';
|
|
12
13
|
import { SoundFactory } from './factories/SoundFactory.js';
|
|
14
|
+
import { SvgFactory } from './factories/SvgFactory.js';
|
|
13
15
|
import { TextFactory } from './factories/TextFactory.js';
|
|
14
16
|
import { TextureFactory } from './factories/TextureFactory.js';
|
|
15
17
|
import { VideoFactory } from './factories/VideoFactory.js';
|
|
16
|
-
import { SvgFactory } from './factories/SvgFactory.js';
|
|
17
|
-
import { BinaryFactory } from './factories/BinaryFactory.js';
|
|
18
|
-
import { WasmFactory } from './factories/WasmFactory.js';
|
|
19
18
|
import { VttFactory } from './factories/VttFactory.js';
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
19
|
+
import { WasmFactory } from './factories/WasmFactory.js';
|
|
20
|
+
import { FactoryRegistry } from './FactoryRegistry.js';
|
|
21
|
+
import { Json, TextAsset, SvgAsset, VttAsset } from './tokens.js';
|
|
22
22
|
|
|
23
23
|
// ---------------------------------------------------------------------------
|
|
24
24
|
// Loader
|
|
@@ -80,9 +80,7 @@ class Loader {
|
|
|
80
80
|
this._resourcePath = options.resourcePath ?? '';
|
|
81
81
|
this._requestOptions = options.requestOptions ?? {};
|
|
82
82
|
this._concurrency = options.concurrency ?? 6;
|
|
83
|
-
this._stores = options.cache
|
|
84
|
-
? (Array.isArray(options.cache) ? options.cache : [options.cache])
|
|
85
|
-
: [];
|
|
83
|
+
this._stores = options.cache ? (Array.isArray(options.cache) ? options.cache : [options.cache]) : [];
|
|
86
84
|
this._cacheStrategy = options.cacheStrategy ?? new CacheFirstStrategy();
|
|
87
85
|
this._registerBuiltinFactories();
|
|
88
86
|
}
|
|
@@ -140,8 +138,7 @@ class Loader {
|
|
|
140
138
|
const type = bundleEntry.type;
|
|
141
139
|
const key = this._key(type, bundleEntry.alias);
|
|
142
140
|
const existingDefinition = plannedDefinitions.get(key) ?? this._getManifestEntry(type, bundleEntry.alias);
|
|
143
|
-
if (existingDefinition
|
|
144
|
-
&& !this._isManifestDefinitionEquivalent(existingDefinition, bundleEntry.path, bundleEntry.options)) {
|
|
141
|
+
if (existingDefinition && !this._isManifestDefinitionEquivalent(existingDefinition, bundleEntry.path, bundleEntry.options)) {
|
|
145
142
|
throw new Error(`Conflicting asset definition for (${this._describeType(type)}, "${bundleEntry.alias}") while registering bundle "${bundleName}".`);
|
|
146
143
|
}
|
|
147
144
|
plannedDefinitions.set(key, {
|
|
@@ -188,12 +185,9 @@ class Loader {
|
|
|
188
185
|
}
|
|
189
186
|
await Promise.all(bundle.map(async (entry) => {
|
|
190
187
|
try {
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
else {
|
|
195
|
-
await this._loadSingle(entry.type, entry.alias, entry.options, entry.path);
|
|
196
|
-
}
|
|
188
|
+
await (options.background
|
|
189
|
+
? this._loadSingleBackground(entry.type, entry.alias, entry.path, entry.options)
|
|
190
|
+
: this._loadSingle(entry.type, entry.alias, entry.options, entry.path));
|
|
197
191
|
}
|
|
198
192
|
catch (error) {
|
|
199
193
|
failures.push({
|
|
@@ -261,7 +255,10 @@ class Loader {
|
|
|
261
255
|
if (this._inFlight.has(key))
|
|
262
256
|
continue;
|
|
263
257
|
this._backgroundQueue.push({
|
|
264
|
-
type,
|
|
258
|
+
type,
|
|
259
|
+
alias,
|
|
260
|
+
path: entry.path,
|
|
261
|
+
options: entry.options,
|
|
265
262
|
});
|
|
266
263
|
}
|
|
267
264
|
}
|
|
@@ -277,7 +274,7 @@ class Loader {
|
|
|
277
274
|
* reject the returned promise.
|
|
278
275
|
*/
|
|
279
276
|
loadAll() {
|
|
280
|
-
return new Promise(
|
|
277
|
+
return new Promise(resolve => {
|
|
281
278
|
this._backgroundResolve = resolve;
|
|
282
279
|
this.backgroundLoad();
|
|
283
280
|
if (this._backgroundQueue.length === 0 && this._backgroundActive === 0) {
|
|
@@ -402,7 +399,10 @@ class Loader {
|
|
|
402
399
|
// -----------------------------------------------------------------------
|
|
403
400
|
async _loadSingle(type, alias, options, explicitPath) {
|
|
404
401
|
if (this._hasResource(type, alias)) {
|
|
405
|
-
|
|
402
|
+
const typeMap = this._resources.get(type);
|
|
403
|
+
if (typeMap?.has(alias) === true) {
|
|
404
|
+
return typeMap.get(alias);
|
|
405
|
+
}
|
|
406
406
|
}
|
|
407
407
|
const key = this._key(type, alias);
|
|
408
408
|
if (this._inFlight.has(key)) {
|
|
@@ -419,7 +419,10 @@ class Loader {
|
|
|
419
419
|
}
|
|
420
420
|
_loadSingleBackground(type, alias, path, options) {
|
|
421
421
|
if (this._hasResource(type, alias)) {
|
|
422
|
-
|
|
422
|
+
const typeMap = this._resources.get(type);
|
|
423
|
+
if (typeMap?.has(alias) === true) {
|
|
424
|
+
return Promise.resolve(typeMap.get(alias));
|
|
425
|
+
}
|
|
423
426
|
}
|
|
424
427
|
const key = this._key(type, alias);
|
|
425
428
|
const inFlight = this._inFlight.get(key);
|
|
@@ -469,6 +472,9 @@ class Loader {
|
|
|
469
472
|
_drainBackground() {
|
|
470
473
|
while (this._backgroundActive < this._concurrency && this._backgroundQueue.length > 0) {
|
|
471
474
|
const entry = this._backgroundQueue.shift();
|
|
475
|
+
if (!entry) {
|
|
476
|
+
continue;
|
|
477
|
+
}
|
|
472
478
|
const key = this._key(entry.type, entry.alias);
|
|
473
479
|
if (this._hasResource(entry.type, entry.alias) || this._inFlight.has(key)) {
|
|
474
480
|
this._backgroundLoaded++;
|
|
@@ -490,7 +496,10 @@ class Loader {
|
|
|
490
496
|
}
|
|
491
497
|
_waitForBackgroundEntry(type, alias) {
|
|
492
498
|
if (this._hasResource(type, alias)) {
|
|
493
|
-
|
|
499
|
+
const typeMap = this._resources.get(type);
|
|
500
|
+
if (typeMap?.has(alias) === true) {
|
|
501
|
+
return Promise.resolve(typeMap.get(alias));
|
|
502
|
+
}
|
|
494
503
|
}
|
|
495
504
|
const key = this._key(type, alias);
|
|
496
505
|
const inFlight = this._inFlight.get(key);
|
|
@@ -524,15 +533,14 @@ class Loader {
|
|
|
524
533
|
}
|
|
525
534
|
if (this._hasResource(type, alias)) {
|
|
526
535
|
cleanup();
|
|
527
|
-
|
|
536
|
+
const typeMap = this._resources.get(type);
|
|
537
|
+
resolve(typeMap?.get(alias));
|
|
528
538
|
}
|
|
529
539
|
});
|
|
530
540
|
}
|
|
531
541
|
_onBackgroundItemDone() {
|
|
532
542
|
this.onProgress.dispatch(this._backgroundLoaded, this._backgroundTotal);
|
|
533
|
-
if (this._backgroundResolve
|
|
534
|
-
&& this._backgroundQueue.length === 0
|
|
535
|
-
&& this._backgroundActive === 0) {
|
|
543
|
+
if (this._backgroundResolve && this._backgroundQueue.length === 0 && this._backgroundActive === 0) {
|
|
536
544
|
const resolve = this._backgroundResolve;
|
|
537
545
|
this._backgroundResolve = null;
|
|
538
546
|
resolve();
|
|
@@ -574,7 +582,11 @@ class Loader {
|
|
|
574
582
|
if (!this._manifest.has(type)) {
|
|
575
583
|
this._manifest.set(type, new Map());
|
|
576
584
|
}
|
|
577
|
-
this._manifest.get(type)
|
|
585
|
+
const typeManifest = this._manifest.get(type);
|
|
586
|
+
if (!typeManifest) {
|
|
587
|
+
return;
|
|
588
|
+
}
|
|
589
|
+
typeManifest.set(alias, { path, options });
|
|
578
590
|
}
|
|
579
591
|
_getManifestEntry(type, alias) {
|
|
580
592
|
return this._manifest.get(type)?.get(alias);
|
|
@@ -611,8 +623,7 @@ class Loader {
|
|
|
611
623
|
if (leftPrototype !== rightPrototype) {
|
|
612
624
|
return false;
|
|
613
625
|
}
|
|
614
|
-
if (leftPrototype !== Object.prototype
|
|
615
|
-
&& leftPrototype !== null) {
|
|
626
|
+
if (leftPrototype !== Object.prototype && leftPrototype !== null) {
|
|
616
627
|
return false;
|
|
617
628
|
}
|
|
618
629
|
const leftObject = left;
|
|
@@ -646,10 +657,12 @@ class Loader {
|
|
|
646
657
|
if (this._preventStoreKeys.delete(key)) {
|
|
647
658
|
return;
|
|
648
659
|
}
|
|
649
|
-
|
|
650
|
-
|
|
660
|
+
let typeResources = this._resources.get(type);
|
|
661
|
+
if (!typeResources) {
|
|
662
|
+
typeResources = new Map();
|
|
663
|
+
this._resources.set(type, typeResources);
|
|
651
664
|
}
|
|
652
|
-
|
|
665
|
+
typeResources.set(alias, resource);
|
|
653
666
|
this.onLoaded.dispatch(type, alias, resource);
|
|
654
667
|
}
|
|
655
668
|
_key(type, alias) {
|