@codexo/exojs 0.11.0 → 0.12.0
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 +182 -0
- package/LICENSE +21 -0
- package/README.md +59 -23
- package/dist/esm/animation/Easing.d.ts +1 -0
- package/dist/esm/animation/Easing.d.ts.map +1 -0
- package/dist/esm/animation/Tween.d.ts +1 -0
- package/dist/esm/animation/Tween.d.ts.map +1 -0
- package/dist/esm/animation/TweenManager.d.ts +1 -0
- package/dist/esm/animation/TweenManager.d.ts.map +1 -0
- package/dist/esm/animation/index.d.ts +1 -0
- package/dist/esm/animation/index.d.ts.map +1 -0
- package/dist/esm/animation/types.d.ts +1 -0
- package/dist/esm/animation/types.d.ts.map +1 -0
- package/dist/esm/audio/AbstractMedia.d.ts +5 -4
- package/dist/esm/audio/AbstractMedia.d.ts.map +1 -0
- package/dist/esm/audio/AbstractMedia.js.map +1 -1
- package/dist/esm/audio/AudioAnalyser.d.ts +4 -3
- package/dist/esm/audio/AudioAnalyser.d.ts.map +1 -0
- package/dist/esm/audio/AudioAnalyser.js +1 -1
- package/dist/esm/audio/AudioAnalyser.js.map +1 -1
- package/dist/esm/audio/AudioBus.d.ts +1 -0
- package/dist/esm/audio/AudioBus.d.ts.map +1 -0
- package/dist/esm/audio/AudioFilter.d.ts +1 -0
- package/dist/esm/audio/AudioFilter.d.ts.map +1 -0
- package/dist/esm/audio/AudioListener.d.ts +4 -3
- package/dist/esm/audio/AudioListener.d.ts.map +1 -0
- package/dist/esm/audio/AudioManager.d.ts +1 -0
- package/dist/esm/audio/AudioManager.d.ts.map +1 -0
- package/dist/esm/audio/BeatDetector.d.ts +5 -4
- package/dist/esm/audio/BeatDetector.d.ts.map +1 -0
- package/dist/esm/audio/BeatDetector.js +1 -1
- package/dist/esm/audio/BeatDetector.js.map +1 -1
- package/dist/esm/audio/Envelope.d.ts +1 -0
- package/dist/esm/audio/Envelope.d.ts.map +1 -0
- package/dist/esm/audio/Media.d.ts +2 -1
- package/dist/esm/audio/Media.d.ts.map +1 -0
- package/dist/esm/audio/Music.d.ts +4 -3
- package/dist/esm/audio/Music.d.ts.map +1 -0
- 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 -1
- package/dist/esm/audio/OscillatorSound.d.ts.map +1 -0
- package/dist/esm/audio/Sound.d.ts +5 -4
- package/dist/esm/audio/Sound.d.ts.map +1 -0
- package/dist/esm/audio/Sound.js +2 -2
- package/dist/esm/audio/Sound.js.map +1 -1
- package/dist/esm/audio/audio-context.d.ts +2 -1
- package/dist/esm/audio/audio-context.d.ts.map +1 -0
- package/dist/esm/audio/crossFade.d.ts +1 -0
- package/dist/esm/audio/crossFade.d.ts.map +1 -0
- package/dist/esm/audio/dsp/fft.d.ts +1 -0
- package/dist/esm/audio/dsp/fft.d.ts.map +1 -0
- package/dist/esm/audio/dsp/mel.d.ts +1 -0
- package/dist/esm/audio/dsp/mel.d.ts.map +1 -0
- package/dist/esm/audio/dsp/tempogram.d.ts +1 -0
- package/dist/esm/audio/dsp/tempogram.d.ts.map +1 -0
- package/dist/esm/audio/filters/ChorusFilter.d.ts +2 -1
- package/dist/esm/audio/filters/ChorusFilter.d.ts.map +1 -0
- package/dist/esm/audio/filters/CompressorFilter.d.ts +2 -1
- package/dist/esm/audio/filters/CompressorFilter.d.ts.map +1 -0
- package/dist/esm/audio/filters/DelayFilter.d.ts +2 -1
- package/dist/esm/audio/filters/DelayFilter.d.ts.map +1 -0
- package/dist/esm/audio/filters/DuckingFilter.d.ts +2 -1
- package/dist/esm/audio/filters/DuckingFilter.d.ts.map +1 -0
- package/dist/esm/audio/filters/DuckingFilter.js.map +1 -1
- package/dist/esm/audio/filters/EqualizerFilter.d.ts +2 -1
- package/dist/esm/audio/filters/EqualizerFilter.d.ts.map +1 -0
- package/dist/esm/audio/filters/GranularFilter.d.ts +1 -0
- package/dist/esm/audio/filters/GranularFilter.d.ts.map +1 -0
- package/dist/esm/audio/filters/GranularFilter.js.map +1 -1
- package/dist/esm/audio/filters/HighpassFilter.d.ts +2 -1
- package/dist/esm/audio/filters/HighpassFilter.d.ts.map +1 -0
- package/dist/esm/audio/filters/LowpassFilter.d.ts +2 -1
- package/dist/esm/audio/filters/LowpassFilter.d.ts.map +1 -0
- package/dist/esm/audio/filters/PitchShiftFilter.d.ts +1 -0
- package/dist/esm/audio/filters/PitchShiftFilter.d.ts.map +1 -0
- package/dist/esm/audio/filters/PitchShiftFilter.js.map +1 -1
- package/dist/esm/audio/filters/ReverbFilter.d.ts +2 -1
- package/dist/esm/audio/filters/ReverbFilter.d.ts.map +1 -0
- package/dist/esm/audio/filters/VocoderFilter.d.ts +2 -1
- package/dist/esm/audio/filters/VocoderFilter.d.ts.map +1 -0
- package/dist/esm/audio/filters/VocoderFilter.js.map +1 -1
- package/dist/esm/audio/filters/WorkletFilter.d.ts +2 -1
- package/dist/esm/audio/filters/WorkletFilter.d.ts.map +1 -0
- package/dist/esm/audio/filters/index.d.ts +1 -0
- package/dist/esm/audio/filters/index.d.ts.map +1 -0
- package/dist/esm/audio/index.d.ts +2 -1
- package/dist/esm/audio/index.d.ts.map +1 -0
- package/dist/esm/audio/worklet/registerWorklet.d.ts +1 -0
- package/dist/esm/audio/worklet/registerWorklet.d.ts.map +1 -0
- package/dist/esm/audio/worklets/beat-detector.worklet.d.ts +1 -0
- package/dist/esm/audio/worklets/beat-detector.worklet.d.ts.map +1 -0
- package/dist/esm/audio/worklets/granular.worklet.d.ts +1 -0
- package/dist/esm/audio/worklets/granular.worklet.d.ts.map +1 -0
- package/dist/esm/audio/worklets/pitch-shift.worklet.d.ts +1 -0
- package/dist/esm/audio/worklets/pitch-shift.worklet.d.ts.map +1 -0
- package/dist/esm/audio/worklets/vocoder.worklet.d.ts +1 -0
- package/dist/esm/audio/worklets/vocoder.worklet.d.ts.map +1 -0
- package/dist/esm/core/Application.d.ts +24 -14
- package/dist/esm/core/Application.d.ts.map +1 -0
- package/dist/esm/core/Application.js +50 -5
- package/dist/esm/core/Application.js.map +1 -1
- package/dist/esm/core/Bounds.d.ts +3 -2
- package/dist/esm/core/Bounds.d.ts.map +1 -0
- package/dist/esm/core/BuildInfo.d.ts +16 -0
- package/dist/esm/core/BuildInfo.d.ts.map +1 -0
- package/dist/esm/core/BuildInfo.js +8 -0
- package/dist/esm/core/BuildInfo.js.map +1 -0
- package/dist/esm/core/Clock.d.ts +1 -0
- package/dist/esm/core/Clock.d.ts.map +1 -0
- package/dist/esm/core/Clock.js +1 -1
- package/dist/esm/core/Clock.js.map +1 -1
- package/dist/esm/core/Color.d.ts +2 -1
- package/dist/esm/core/Color.d.ts.map +1 -0
- package/dist/esm/core/Color.js.map +1 -1
- package/dist/esm/core/Perf.d.ts +1 -0
- package/dist/esm/core/Perf.d.ts.map +1 -0
- package/dist/esm/core/Scene.d.ts +7 -6
- package/dist/esm/core/Scene.d.ts.map +1 -0
- package/dist/esm/core/SceneManager.d.ts +1 -0
- package/dist/esm/core/SceneManager.d.ts.map +1 -0
- package/dist/esm/core/SceneNode.d.ts +11 -10
- package/dist/esm/core/SceneNode.d.ts.map +1 -0
- package/dist/esm/core/Signal.d.ts +1 -0
- package/dist/esm/core/Signal.d.ts.map +1 -0
- package/dist/esm/core/Time.d.ts +2 -1
- package/dist/esm/core/Time.d.ts.map +1 -0
- package/dist/esm/core/Timer.d.ts +2 -1
- package/dist/esm/core/Timer.d.ts.map +1 -0
- package/dist/esm/core/Timer.js +1 -1
- package/dist/esm/core/Timer.js.map +1 -1
- package/dist/esm/core/capabilities.d.ts +1 -0
- package/dist/esm/core/capabilities.d.ts.map +1 -0
- package/dist/esm/core/dev.d.ts +1 -0
- package/dist/esm/core/dev.d.ts.map +1 -0
- package/dist/esm/core/dev.js +31 -10
- package/dist/esm/core/dev.js.map +1 -1
- package/dist/esm/core/index.d.ts +2 -0
- package/dist/esm/core/index.d.ts.map +1 -0
- package/dist/esm/core/types.d.ts +2 -1
- package/dist/esm/core/types.d.ts.map +1 -0
- package/dist/esm/core/utils.d.ts +4 -3
- package/dist/esm/core/utils.d.ts.map +1 -0
- package/dist/esm/core/utils.js +1 -1
- package/dist/esm/core/utils.js.map +1 -1
- package/dist/esm/debug/BoundingBoxesLayer.d.ts +4 -3
- package/dist/esm/debug/BoundingBoxesLayer.d.ts.map +1 -0
- package/dist/esm/debug/DebugLayer.d.ts +4 -3
- package/dist/esm/debug/DebugLayer.d.ts.map +1 -0
- package/dist/esm/debug/DebugOverlay.d.ts +2 -1
- package/dist/esm/debug/DebugOverlay.d.ts.map +1 -0
- package/dist/esm/debug/HitTestLayer.d.ts +4 -3
- package/dist/esm/debug/HitTestLayer.d.ts.map +1 -0
- package/dist/esm/debug/PerformanceLayer.d.ts +4 -3
- package/dist/esm/debug/PerformanceLayer.d.ts.map +1 -0
- package/dist/esm/debug/PointerStackLayer.d.ts +4 -3
- package/dist/esm/debug/PointerStackLayer.d.ts.map +1 -0
- package/dist/esm/debug/RenderPassInspectorLayer.d.ts +33 -4
- package/dist/esm/debug/RenderPassInspectorLayer.d.ts.map +1 -0
- package/dist/esm/debug/RenderPassInspectorLayer.js +41 -0
- package/dist/esm/debug/RenderPassInspectorLayer.js.map +1 -1
- package/dist/esm/debug/index.d.ts +2 -1
- package/dist/esm/debug/index.d.ts.map +1 -0
- package/dist/esm/extensions/Extension.d.ts +70 -0
- package/dist/esm/extensions/Extension.d.ts.map +1 -0
- package/dist/esm/extensions/ExtensionRegistry.d.ts +35 -0
- package/dist/esm/extensions/ExtensionRegistry.d.ts.map +1 -0
- package/dist/esm/extensions/ExtensionRegistry.js +63 -0
- package/dist/esm/extensions/ExtensionRegistry.js.map +1 -0
- package/dist/esm/extensions/index.d.ts +3 -0
- package/dist/esm/extensions/index.d.ts.map +1 -0
- package/dist/esm/extensions/index.js +2 -0
- package/dist/esm/extensions/index.js.map +1 -0
- package/dist/esm/extensions/materialize.d.ts +16 -0
- package/dist/esm/extensions/materialize.d.ts.map +1 -0
- package/dist/esm/extensions/materialize.js +61 -0
- package/dist/esm/extensions/materialize.js.map +1 -0
- package/dist/esm/extensions/snapshot.d.ts +16 -0
- package/dist/esm/extensions/snapshot.d.ts.map +1 -0
- package/dist/esm/extensions/snapshot.js +49 -0
- package/dist/esm/extensions/snapshot.js.map +1 -0
- package/dist/esm/extensions/testing.d.ts +7 -0
- package/dist/esm/extensions/testing.d.ts.map +1 -0
- package/dist/esm/index.d.ts +9 -8
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +21 -50
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/input/ArcadeStickGamepadMapping.d.ts +1 -0
- package/dist/esm/input/ArcadeStickGamepadMapping.d.ts.map +1 -0
- package/dist/esm/input/GameCubeGamepadMapping.d.ts +1 -0
- package/dist/esm/input/GameCubeGamepadMapping.d.ts.map +1 -0
- package/dist/esm/input/Gamepad.d.ts +2 -1
- package/dist/esm/input/Gamepad.d.ts.map +1 -0
- package/dist/esm/input/Gamepad.js +1 -1
- package/dist/esm/input/GamepadAxis.d.ts +1 -0
- package/dist/esm/input/GamepadAxis.d.ts.map +1 -0
- package/dist/esm/input/GamepadAxis.js +1 -1
- package/dist/esm/input/GamepadAxis.js.map +1 -1
- package/dist/esm/input/GamepadButton.d.ts +1 -0
- package/dist/esm/input/GamepadButton.d.ts.map +1 -0
- package/dist/esm/input/GamepadButton.js +1 -1
- package/dist/esm/input/GamepadButton.js.map +1 -1
- package/dist/esm/input/GamepadDefinitions.d.ts +1 -0
- package/dist/esm/input/GamepadDefinitions.d.ts.map +1 -0
- package/dist/esm/input/GamepadMapping.d.ts +1 -0
- package/dist/esm/input/GamepadMapping.d.ts.map +1 -0
- package/dist/esm/input/GamepadPromptLayouts.d.ts +1 -0
- package/dist/esm/input/GamepadPromptLayouts.d.ts.map +1 -0
- package/dist/esm/input/GenericDualAnalogGamepadMapping.d.ts +1 -0
- package/dist/esm/input/GenericDualAnalogGamepadMapping.d.ts.map +1 -0
- package/dist/esm/input/GestureRecognizer.d.ts +3 -2
- package/dist/esm/input/GestureRecognizer.d.ts.map +1 -0
- package/dist/esm/input/InputBinding.d.ts +3 -2
- package/dist/esm/input/InputBinding.d.ts.map +1 -0
- package/dist/esm/input/InputManager.d.ts +4 -3
- package/dist/esm/input/InputManager.d.ts.map +1 -0
- package/dist/esm/input/InputManager.js +1 -1
- package/dist/esm/input/InteractionEvent.d.ts +2 -1
- package/dist/esm/input/InteractionEvent.d.ts.map +1 -0
- package/dist/esm/input/InteractionManager.d.ts +4 -3
- package/dist/esm/input/InteractionManager.d.ts.map +1 -0
- package/dist/esm/input/JoyConLeftGamepadMapping.d.ts +1 -0
- package/dist/esm/input/JoyConLeftGamepadMapping.d.ts.map +1 -0
- package/dist/esm/input/JoyConRightGamepadMapping.d.ts +1 -0
- package/dist/esm/input/JoyConRightGamepadMapping.d.ts.map +1 -0
- package/dist/esm/input/PlayStationGamepadMapping.d.ts +1 -0
- package/dist/esm/input/PlayStationGamepadMapping.d.ts.map +1 -0
- package/dist/esm/input/Pointer.d.ts +4 -3
- package/dist/esm/input/Pointer.d.ts.map +1 -0
- package/dist/esm/input/Pointer.js +1 -1
- package/dist/esm/input/Pointer.js.map +1 -1
- package/dist/esm/input/SteamControllerGamepadMapping.d.ts +1 -0
- package/dist/esm/input/SteamControllerGamepadMapping.d.ts.map +1 -0
- package/dist/esm/input/SteamDeckGamepadMapping.d.ts +1 -0
- package/dist/esm/input/SteamDeckGamepadMapping.d.ts.map +1 -0
- package/dist/esm/input/SwitchProGamepadMapping.d.ts +1 -0
- package/dist/esm/input/SwitchProGamepadMapping.d.ts.map +1 -0
- package/dist/esm/input/XboxGamepadMapping.d.ts +1 -0
- package/dist/esm/input/XboxGamepadMapping.d.ts.map +1 -0
- package/dist/esm/input/index.d.ts +1 -0
- package/dist/esm/input/index.d.ts.map +1 -0
- package/dist/esm/input/internal/interactionManagerRegistry.d.ts +2 -1
- package/dist/esm/input/internal/interactionManagerRegistry.d.ts.map +1 -0
- package/dist/esm/input/types.d.ts +1 -0
- package/dist/esm/input/types.d.ts.map +1 -0
- package/dist/esm/math/AbstractVector.d.ts +2 -1
- package/dist/esm/math/AbstractVector.d.ts.map +1 -0
- package/dist/esm/math/Circle.d.ts +7 -6
- package/dist/esm/math/Circle.d.ts.map +1 -0
- package/dist/esm/math/Circle.js.map +1 -1
- package/dist/esm/math/CircleLike.d.ts +1 -0
- package/dist/esm/math/CircleLike.d.ts.map +1 -0
- package/dist/esm/math/Collision.d.ts +3 -2
- package/dist/esm/math/Collision.d.ts.map +1 -0
- package/dist/esm/math/Ellipse.d.ts +7 -6
- package/dist/esm/math/Ellipse.d.ts.map +1 -0
- package/dist/esm/math/Ellipse.js.map +1 -1
- package/dist/esm/math/EllipseLike.d.ts +1 -0
- package/dist/esm/math/EllipseLike.d.ts.map +1 -0
- package/dist/esm/math/Flags.d.ts +2 -1
- package/dist/esm/math/Flags.d.ts.map +1 -0
- package/dist/esm/math/Interval.d.ts +2 -1
- package/dist/esm/math/Interval.d.ts.map +1 -0
- package/dist/esm/math/Line.d.ts +7 -6
- package/dist/esm/math/Line.d.ts.map +1 -0
- package/dist/esm/math/Line.js.map +1 -1
- package/dist/esm/math/LineLike.d.ts +1 -0
- package/dist/esm/math/LineLike.d.ts.map +1 -0
- package/dist/esm/math/Matrix.d.ts +2 -1
- package/dist/esm/math/Matrix.d.ts.map +1 -0
- package/dist/esm/math/Matrix.js.map +1 -1
- package/dist/esm/math/ObservableSize.d.ts +1 -0
- package/dist/esm/math/ObservableSize.d.ts.map +1 -0
- package/dist/esm/math/ObservableVector.d.ts +2 -1
- package/dist/esm/math/ObservableVector.d.ts.map +1 -0
- package/dist/esm/math/PointLike.d.ts +1 -0
- package/dist/esm/math/PointLike.d.ts.map +1 -0
- package/dist/esm/math/PolarVector.d.ts +2 -1
- package/dist/esm/math/PolarVector.d.ts.map +1 -0
- package/dist/esm/math/Polygon.d.ts +7 -6
- package/dist/esm/math/Polygon.d.ts.map +1 -0
- package/dist/esm/math/Polygon.js.map +1 -1
- package/dist/esm/math/PolygonLike.d.ts +2 -1
- package/dist/esm/math/PolygonLike.d.ts.map +1 -0
- package/dist/esm/math/Quadtree.d.ts +1 -0
- package/dist/esm/math/Quadtree.d.ts.map +1 -0
- package/dist/esm/math/Random.d.ts +1 -0
- package/dist/esm/math/Random.d.ts.map +1 -0
- package/dist/esm/math/Rectangle.d.ts +8 -7
- package/dist/esm/math/Rectangle.d.ts.map +1 -0
- package/dist/esm/math/Rectangle.js.map +1 -1
- package/dist/esm/math/RectangleLike.d.ts +1 -0
- package/dist/esm/math/RectangleLike.d.ts.map +1 -0
- package/dist/esm/math/Segment.d.ts +3 -2
- package/dist/esm/math/Segment.d.ts.map +1 -0
- package/dist/esm/math/Segment.js.map +1 -1
- package/dist/esm/math/ShapeLike.d.ts +3 -2
- package/dist/esm/math/ShapeLike.d.ts.map +1 -0
- package/dist/esm/math/Size.d.ts +2 -1
- package/dist/esm/math/Size.d.ts.map +1 -0
- package/dist/esm/math/Vector.d.ts +6 -5
- package/dist/esm/math/Vector.d.ts.map +1 -0
- package/dist/esm/math/Vector.js +1 -1
- package/dist/esm/math/collision-detection.d.ts +8 -7
- package/dist/esm/math/collision-detection.d.ts.map +1 -0
- package/dist/esm/math/collision-detection.js +1 -1
- package/dist/esm/math/collision-detection.js.map +1 -1
- package/dist/esm/math/collision-primitives.d.ts +3 -2
- package/dist/esm/math/collision-primitives.d.ts.map +1 -0
- package/dist/esm/math/geometry.d.ts +1 -0
- package/dist/esm/math/geometry.d.ts.map +1 -0
- package/dist/esm/math/index.d.ts +1 -0
- package/dist/esm/math/index.d.ts.map +1 -0
- package/dist/esm/math/swept-collision.d.ts +1 -0
- package/dist/esm/math/swept-collision.d.ts.map +1 -0
- package/dist/esm/math/triangulate.d.ts +1 -0
- package/dist/esm/math/triangulate.d.ts.map +1 -0
- package/dist/esm/math/utils.d.ts +2 -1
- package/dist/esm/math/utils.d.ts.map +1 -0
- package/dist/esm/renderer-sdk.d.ts +27 -0
- package/dist/esm/renderer-sdk.d.ts.map +1 -0
- package/dist/esm/rendering/BackendRenderPass.d.ts +17 -0
- package/dist/esm/rendering/BackendRenderPass.d.ts.map +1 -0
- package/dist/esm/rendering/BackendTargetPass.d.ts +38 -0
- package/dist/esm/rendering/BackendTargetPass.d.ts.map +1 -0
- package/dist/esm/rendering/{RenderTargetPass.js → BackendTargetPass.js} +12 -7
- package/dist/esm/rendering/BackendTargetPass.js.map +1 -0
- package/dist/esm/rendering/CallbackRenderPass.d.ts +38 -14
- package/dist/esm/rendering/CallbackRenderPass.d.ts.map +1 -0
- package/dist/esm/rendering/CallbackRenderPass.js +61 -13
- package/dist/esm/rendering/CallbackRenderPass.js.map +1 -1
- package/dist/esm/rendering/Camera.d.ts +3 -2
- package/dist/esm/rendering/Camera.d.ts.map +1 -0
- package/dist/esm/rendering/Camera.js.map +1 -1
- package/dist/esm/rendering/Container.d.ts +2 -1
- package/dist/esm/rendering/Container.d.ts.map +1 -0
- package/dist/esm/rendering/Drawable.d.ts +4 -3
- package/dist/esm/rendering/Drawable.d.ts.map +1 -0
- package/dist/esm/rendering/Drawable.js +1 -1
- package/dist/esm/rendering/RenderBackend.d.ts +13 -10
- package/dist/esm/rendering/RenderBackend.d.ts.map +1 -0
- package/dist/esm/rendering/RenderBackendType.d.ts +1 -0
- package/dist/esm/rendering/RenderBackendType.d.ts.map +1 -0
- package/dist/esm/rendering/RenderNode.d.ts +13 -12
- package/dist/esm/rendering/RenderNode.d.ts.map +1 -0
- package/dist/esm/rendering/RenderNode.js +2 -2
- package/dist/esm/rendering/RenderNode.js.map +1 -1
- package/dist/esm/rendering/RenderNodePass.d.ts +38 -0
- package/dist/esm/rendering/RenderNodePass.d.ts.map +1 -0
- package/dist/esm/rendering/RenderNodePass.js +48 -0
- package/dist/esm/rendering/RenderNodePass.js.map +1 -0
- package/dist/esm/rendering/RenderPass.d.ts +53 -8
- package/dist/esm/rendering/RenderPass.d.ts.map +1 -0
- package/dist/esm/rendering/RenderPass.js +48 -0
- package/dist/esm/rendering/RenderPass.js.map +1 -0
- package/dist/esm/rendering/RenderPipeline.d.ts +61 -0
- package/dist/esm/rendering/RenderPipeline.d.ts.map +1 -0
- package/dist/esm/rendering/RenderPipeline.js +177 -0
- package/dist/esm/rendering/RenderPipeline.js.map +1 -0
- package/dist/esm/rendering/RenderStats.d.ts +1 -0
- package/dist/esm/rendering/RenderStats.d.ts.map +1 -0
- package/dist/esm/rendering/RenderTarget.d.ts +4 -3
- package/dist/esm/rendering/RenderTarget.d.ts.map +1 -0
- package/dist/esm/rendering/Renderer.d.ts +1 -0
- package/dist/esm/rendering/Renderer.d.ts.map +1 -0
- package/dist/esm/rendering/RendererRegistry.d.ts +13 -2
- package/dist/esm/rendering/RendererRegistry.d.ts.map +1 -0
- package/dist/esm/rendering/RendererRegistry.js +60 -7
- package/dist/esm/rendering/RendererRegistry.js.map +1 -1
- package/dist/esm/rendering/RenderingContext.d.ts +7 -6
- package/dist/esm/rendering/RenderingContext.d.ts.map +1 -0
- package/dist/esm/rendering/RenderingContext.js +5 -5
- package/dist/esm/rendering/TransformBuffer.d.ts +3 -2
- package/dist/esm/rendering/TransformBuffer.d.ts.map +1 -0
- package/dist/esm/rendering/View.d.ts +7 -6
- package/dist/esm/rendering/View.d.ts.map +1 -0
- package/dist/esm/rendering/coreRendererBindings.d.ts +10 -0
- package/dist/esm/rendering/coreRendererBindings.d.ts.map +1 -0
- package/dist/esm/rendering/coreRendererBindings.js +51 -0
- package/dist/esm/rendering/coreRendererBindings.js.map +1 -0
- package/dist/esm/rendering/filters/BlurFilter.d.ts +3 -2
- package/dist/esm/rendering/filters/BlurFilter.d.ts.map +1 -0
- package/dist/esm/rendering/filters/BlurFilter.js +2 -2
- package/dist/esm/rendering/filters/BlurFilter.js.map +1 -1
- package/dist/esm/rendering/filters/ColorFilter.d.ts +4 -3
- package/dist/esm/rendering/filters/ColorFilter.d.ts.map +1 -0
- package/dist/esm/rendering/filters/ColorFilter.js +2 -2
- package/dist/esm/rendering/filters/ColorFilter.js.map +1 -1
- package/dist/esm/rendering/filters/Filter.d.ts +3 -2
- package/dist/esm/rendering/filters/Filter.d.ts.map +1 -0
- package/dist/esm/rendering/filters/LutFilter.d.ts +4 -3
- package/dist/esm/rendering/filters/LutFilter.d.ts.map +1 -0
- package/dist/esm/rendering/filters/WebGl2ShaderFilter.d.ts +4 -3
- package/dist/esm/rendering/filters/WebGl2ShaderFilter.d.ts.map +1 -0
- package/dist/esm/rendering/filters/WebGl2ShaderFilter.js +2 -2
- package/dist/esm/rendering/filters/WebGl2ShaderFilter.js.map +1 -1
- package/dist/esm/rendering/filters/WebGpuShaderFilter.d.ts +3 -2
- package/dist/esm/rendering/filters/WebGpuShaderFilter.d.ts.map +1 -0
- package/dist/esm/rendering/filters/WebGpuShaderFilter.js +3 -3
- package/dist/esm/rendering/filters/WebGpuShaderFilter.js.map +1 -1
- package/dist/esm/rendering/geometry/Geometry.d.ts +2 -1
- package/dist/esm/rendering/geometry/Geometry.d.ts.map +1 -0
- package/dist/esm/rendering/geometry/GeometryAttribute.d.ts +1 -0
- package/dist/esm/rendering/geometry/GeometryAttribute.d.ts.map +1 -0
- package/dist/esm/rendering/geometry/QuadGeometry.d.ts +1 -0
- package/dist/esm/rendering/geometry/QuadGeometry.d.ts.map +1 -0
- package/dist/esm/rendering/gradient/Gradient.d.ts +5 -4
- package/dist/esm/rendering/gradient/Gradient.d.ts.map +1 -0
- package/dist/esm/rendering/gradient/LinearGradient.d.ts +1 -0
- package/dist/esm/rendering/gradient/LinearGradient.d.ts.map +1 -0
- package/dist/esm/rendering/gradient/RadialGradient.d.ts +1 -0
- package/dist/esm/rendering/gradient/RadialGradient.d.ts.map +1 -0
- package/dist/esm/rendering/index.d.ts +87 -84
- package/dist/esm/rendering/index.d.ts.map +1 -0
- package/dist/esm/rendering/material/Material.d.ts +5 -4
- package/dist/esm/rendering/material/Material.d.ts.map +1 -0
- package/dist/esm/rendering/material/MaterialKey.d.ts +5 -4
- package/dist/esm/rendering/material/MaterialKey.d.ts.map +1 -0
- package/dist/esm/rendering/material/MeshMaterial.d.ts +1 -0
- package/dist/esm/rendering/material/MeshMaterial.d.ts.map +1 -0
- package/dist/esm/rendering/material/ShaderSource.d.ts +1 -0
- package/dist/esm/rendering/material/ShaderSource.d.ts.map +1 -0
- package/dist/esm/rendering/material/SpriteMaterial.d.ts +1 -0
- package/dist/esm/rendering/material/SpriteMaterial.d.ts.map +1 -0
- package/dist/esm/rendering/mesh/Mesh.d.ts +6 -5
- package/dist/esm/rendering/mesh/Mesh.d.ts.map +1 -0
- package/dist/esm/rendering/pass/RenderPassCoordinator.d.ts +8 -7
- package/dist/esm/rendering/pass/RenderPassCoordinator.d.ts.map +1 -0
- package/dist/esm/rendering/pass/RenderPassDescriptor.d.ts +4 -3
- package/dist/esm/rendering/pass/RenderPassDescriptor.d.ts.map +1 -0
- package/dist/esm/rendering/pass/RenderPassDescriptor.js.map +1 -1
- package/dist/esm/rendering/plan/RenderCommand.d.ts +4 -3
- package/dist/esm/rendering/plan/RenderCommand.d.ts.map +1 -0
- package/dist/esm/rendering/plan/RenderEffectExecutor.d.ts +2 -1
- package/dist/esm/rendering/plan/RenderEffectExecutor.d.ts.map +1 -0
- package/dist/esm/rendering/plan/RenderInstruction.d.ts +1 -0
- package/dist/esm/rendering/plan/RenderInstruction.d.ts.map +1 -0
- package/dist/esm/rendering/plan/RenderPlan.d.ts +4 -3
- package/dist/esm/rendering/plan/RenderPlan.d.ts.map +1 -0
- package/dist/esm/rendering/plan/RenderPlanBuilder.d.ts +5 -4
- package/dist/esm/rendering/plan/RenderPlanBuilder.d.ts.map +1 -0
- package/dist/esm/rendering/plan/RenderPlanOptimizer.d.ts +1 -0
- package/dist/esm/rendering/plan/RenderPlanOptimizer.d.ts.map +1 -0
- package/dist/esm/rendering/plan/RenderPlanPlayer.d.ts +2 -1
- package/dist/esm/rendering/plan/RenderPlanPlayer.d.ts.map +1 -0
- package/dist/esm/rendering/plan/RenderScope.d.ts +6 -5
- package/dist/esm/rendering/plan/RenderScope.d.ts.map +1 -0
- package/dist/esm/rendering/plan/playRenderTree.d.ts +3 -2
- package/dist/esm/rendering/plan/playRenderTree.d.ts.map +1 -0
- package/dist/esm/rendering/primitives/Graphics.d.ts +7 -6
- package/dist/esm/rendering/primitives/Graphics.d.ts.map +1 -0
- package/dist/esm/rendering/shader/Shader.d.ts +1 -0
- package/dist/esm/rendering/shader/Shader.d.ts.map +1 -0
- package/dist/esm/rendering/shader/ShaderAttribute.d.ts +1 -0
- package/dist/esm/rendering/shader/ShaderAttribute.d.ts.map +1 -0
- package/dist/esm/rendering/shader/ShaderUniform.d.ts +2 -1
- package/dist/esm/rendering/shader/ShaderUniform.d.ts.map +1 -0
- package/dist/esm/rendering/shader/upgradeFragmentShaderToGl300.d.ts +1 -0
- package/dist/esm/rendering/shader/upgradeFragmentShaderToGl300.d.ts.map +1 -0
- package/dist/esm/rendering/sprite/AnimatedSprite.d.ts +6 -5
- package/dist/esm/rendering/sprite/AnimatedSprite.d.ts.map +1 -0
- package/dist/esm/rendering/sprite/Sprite.d.ts +8 -7
- package/dist/esm/rendering/sprite/Sprite.d.ts.map +1 -0
- package/dist/esm/rendering/sprite/Spritesheet.d.ts +3 -2
- package/dist/esm/rendering/sprite/Spritesheet.d.ts.map +1 -0
- package/dist/esm/rendering/sprite/spriteMaterialSources.d.ts +1 -0
- package/dist/esm/rendering/sprite/spriteMaterialSources.d.ts.map +1 -0
- package/dist/esm/rendering/text/AbstractText.d.ts +2 -1
- package/dist/esm/rendering/text/AbstractText.d.ts.map +1 -0
- package/dist/esm/rendering/text/BitmapText.d.ts +2 -1
- package/dist/esm/rendering/text/BitmapText.d.ts.map +1 -0
- package/dist/esm/rendering/text/BitmapText.js +1 -4
- package/dist/esm/rendering/text/BitmapText.js.map +1 -1
- package/dist/esm/rendering/text/BmFont.d.ts +2 -1
- package/dist/esm/rendering/text/BmFont.d.ts.map +1 -0
- package/dist/esm/rendering/text/GlyphAtlas.d.ts +3 -2
- package/dist/esm/rendering/text/GlyphAtlas.d.ts.map +1 -0
- package/dist/esm/rendering/text/GlyphAtlasPool.d.ts +1 -0
- package/dist/esm/rendering/text/GlyphAtlasPool.d.ts.map +1 -0
- package/dist/esm/rendering/text/GlyphSdf.d.ts +1 -0
- package/dist/esm/rendering/text/GlyphSdf.d.ts.map +1 -0
- package/dist/esm/rendering/text/GlyphSdf.js +7 -0
- package/dist/esm/rendering/text/GlyphSdf.js.map +1 -1
- package/dist/esm/rendering/text/HTMLText.d.ts +2 -1
- package/dist/esm/rendering/text/HTMLText.d.ts.map +1 -0
- package/dist/esm/rendering/text/LayoutOptions.d.ts +1 -0
- package/dist/esm/rendering/text/LayoutOptions.d.ts.map +1 -0
- package/dist/esm/rendering/text/Text.d.ts +1 -0
- package/dist/esm/rendering/text/Text.d.ts.map +1 -0
- package/dist/esm/rendering/text/TextLayout.d.ts +1 -0
- package/dist/esm/rendering/text/TextLayout.d.ts.map +1 -0
- package/dist/esm/rendering/text/TextStyle.d.ts +3 -2
- package/dist/esm/rendering/text/TextStyle.d.ts.map +1 -0
- package/dist/esm/rendering/text/types.d.ts +1 -0
- package/dist/esm/rendering/text/types.d.ts.map +1 -0
- package/dist/esm/rendering/texture/DataTexture.d.ts +3 -2
- package/dist/esm/rendering/texture/DataTexture.d.ts.map +1 -0
- package/dist/esm/rendering/texture/DataTexture.js +1 -1
- package/dist/esm/rendering/texture/DataTexture.js.map +1 -1
- package/dist/esm/rendering/texture/RenderTexture.d.ts +4 -3
- package/dist/esm/rendering/texture/RenderTexture.d.ts.map +1 -0
- package/dist/esm/rendering/texture/RenderTexture.js.map +1 -1
- package/dist/esm/rendering/texture/Sampler.d.ts +2 -1
- package/dist/esm/rendering/texture/Sampler.d.ts.map +1 -0
- package/dist/esm/rendering/texture/Texture.d.ts +4 -3
- package/dist/esm/rendering/texture/Texture.d.ts.map +1 -0
- package/dist/esm/rendering/types.d.ts +1 -0
- package/dist/esm/rendering/types.d.ts.map +1 -0
- package/dist/esm/rendering/utils.d.ts +1 -0
- package/dist/esm/rendering/utils.d.ts.map +1 -0
- package/dist/esm/rendering/video/Video.d.ts +8 -7
- package/dist/esm/rendering/video/Video.d.ts.map +1 -0
- package/dist/esm/rendering/video/Video.js.map +1 -1
- package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.d.ts +7 -6
- package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.d.ts.map +1 -0
- package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js +1 -1
- package/dist/esm/rendering/webgl2/AbstractWebGl2Renderer.d.ts +4 -3
- package/dist/esm/rendering/webgl2/AbstractWebGl2Renderer.d.ts.map +1 -0
- package/dist/esm/rendering/webgl2/AbstractWebGl2Renderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts +22 -21
- package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts.map +1 -0
- package/dist/esm/rendering/webgl2/WebGl2Backend.js +3 -17
- package/dist/esm/rendering/webgl2/WebGl2Backend.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.d.ts +4 -3
- package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.d.ts.map +1 -0
- package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.js +1 -1
- package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.d.ts +2 -1
- package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.d.ts.map +1 -0
- package/dist/esm/rendering/webgl2/WebGl2PassCoordinator.d.ts +10 -9
- package/dist/esm/rendering/webgl2/WebGl2PassCoordinator.d.ts.map +1 -0
- package/dist/esm/rendering/webgl2/WebGl2PassCoordinator.js +1 -1
- package/dist/esm/rendering/webgl2/WebGl2PassCoordinator.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.d.ts +3 -2
- package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.d.ts.map +1 -0
- package/dist/esm/rendering/webgl2/WebGl2ShaderBlock.d.ts +2 -1
- package/dist/esm/rendering/webgl2/WebGl2ShaderBlock.d.ts.map +1 -0
- package/dist/esm/rendering/webgl2/WebGl2ShaderBlock.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2ShaderMappings.d.ts +1 -0
- package/dist/esm/rendering/webgl2/WebGl2ShaderMappings.d.ts.map +1 -0
- package/dist/esm/rendering/webgl2/WebGl2ShaderProgram.d.ts +2 -1
- package/dist/esm/rendering/webgl2/WebGl2ShaderProgram.d.ts.map +1 -0
- package/dist/esm/rendering/webgl2/WebGl2ShaderProgram.js +1 -1
- package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.d.ts +2 -1
- package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.d.ts.map +1 -0
- package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js +1 -1
- package/dist/esm/rendering/webgl2/WebGl2StencilClipper.d.ts +3 -2
- package/dist/esm/rendering/webgl2/WebGl2StencilClipper.d.ts.map +1 -0
- package/dist/esm/rendering/webgl2/WebGl2StencilClipper.js +1 -1
- package/dist/esm/rendering/webgl2/WebGl2TextRenderer.d.ts +3 -2
- package/dist/esm/rendering/webgl2/WebGl2TextRenderer.d.ts.map +1 -0
- package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js +3 -3
- package/dist/esm/rendering/webgl2/WebGl2VertexArrayObject.d.ts +3 -2
- package/dist/esm/rendering/webgl2/WebGl2VertexArrayObject.d.ts.map +1 -0
- package/dist/esm/rendering/webgpu/AbstractWebGpuRenderer.d.ts +4 -3
- package/dist/esm/rendering/webgpu/AbstractWebGpuRenderer.d.ts.map +1 -0
- package/dist/esm/rendering/webgpu/AbstractWebGpuRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts +21 -20
- package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts.map +1 -0
- package/dist/esm/rendering/webgpu/WebGpuBackend.js +2 -15
- package/dist/esm/rendering/webgpu/WebGpuBackend.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuBlendState.d.ts +2 -1
- package/dist/esm/rendering/webgpu/WebGpuBlendState.d.ts.map +1 -0
- package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.d.ts +4 -3
- package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.d.ts.map +1 -0
- package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.d.ts +4 -3
- package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.d.ts.map +1 -0
- package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.d.ts +10 -9
- package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.d.ts.map +1 -0
- package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts +4 -3
- package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts.map +1 -0
- package/dist/esm/rendering/webgpu/WebGpuStencilClipper.d.ts +4 -3
- package/dist/esm/rendering/webgpu/WebGpuStencilClipper.d.ts.map +1 -0
- package/dist/esm/rendering/webgpu/WebGpuStencilClipper.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuStencilState.d.ts +1 -0
- package/dist/esm/rendering/webgpu/WebGpuStencilState.d.ts.map +1 -0
- package/dist/esm/rendering/webgpu/WebGpuTextRenderer.d.ts +3 -2
- package/dist/esm/rendering/webgpu/WebGpuTextRenderer.d.ts.map +1 -0
- package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js +2 -2
- package/dist/esm/rendering/webgpu/WebGpuTransformStorage.d.ts +4 -3
- package/dist/esm/rendering/webgpu/WebGpuTransformStorage.d.ts.map +1 -0
- package/dist/esm/rendering/webgpu/compute/WebGpuComputePipeline.d.ts +1 -0
- package/dist/esm/rendering/webgpu/compute/WebGpuComputePipeline.d.ts.map +1 -0
- package/dist/esm/rendering/webgpu/compute/WebGpuStorageBuffer.d.ts +1 -0
- package/dist/esm/rendering/webgpu/compute/WebGpuStorageBuffer.d.ts.map +1 -0
- package/dist/esm/rendering/webgpu/compute/index.d.ts +1 -0
- package/dist/esm/rendering/webgpu/compute/index.d.ts.map +1 -0
- package/dist/esm/rendering.d.ts +28 -0
- package/dist/esm/rendering.d.ts.map +1 -0
- package/dist/esm/rendering.js +22 -0
- package/dist/esm/rendering.js.map +1 -0
- package/dist/esm/resources/AbstractAssetFactory.d.ts +1 -0
- package/dist/esm/resources/AbstractAssetFactory.d.ts.map +1 -0
- package/dist/esm/resources/Asset.d.ts +1 -0
- package/dist/esm/resources/Asset.d.ts.map +1 -0
- package/dist/esm/resources/AssetDefinitions.d.ts +9 -8
- package/dist/esm/resources/AssetDefinitions.d.ts.map +1 -0
- package/dist/esm/resources/AssetFactory.d.ts +1 -0
- package/dist/esm/resources/AssetFactory.d.ts.map +1 -0
- package/dist/esm/resources/AssetManifest.d.ts +1 -0
- package/dist/esm/resources/AssetManifest.d.ts.map +1 -0
- package/dist/esm/resources/Assets.d.ts +1 -0
- package/dist/esm/resources/Assets.d.ts.map +1 -0
- package/dist/esm/resources/CacheFirstStrategy.d.ts +1 -0
- package/dist/esm/resources/CacheFirstStrategy.d.ts.map +1 -0
- package/dist/esm/resources/CacheStore.d.ts +1 -0
- package/dist/esm/resources/CacheStore.d.ts.map +1 -0
- package/dist/esm/resources/CacheStrategy.d.ts +1 -0
- package/dist/esm/resources/CacheStrategy.d.ts.map +1 -0
- package/dist/esm/resources/Database.d.ts +1 -0
- package/dist/esm/resources/Database.d.ts.map +1 -0
- package/dist/esm/resources/FactoryRegistry.d.ts +1 -0
- package/dist/esm/resources/FactoryRegistry.d.ts.map +1 -0
- package/dist/esm/resources/IndexedDbDatabase.d.ts +2 -1
- package/dist/esm/resources/IndexedDbDatabase.d.ts.map +1 -0
- package/dist/esm/resources/IndexedDbDatabase.js.map +1 -1
- package/dist/esm/resources/IndexedDbStore.d.ts +1 -0
- package/dist/esm/resources/IndexedDbStore.d.ts.map +1 -0
- package/dist/esm/resources/JsonStore.d.ts +1 -0
- package/dist/esm/resources/JsonStore.d.ts.map +1 -0
- package/dist/esm/resources/Loader.d.ts +34 -4
- package/dist/esm/resources/Loader.d.ts.map +1 -0
- package/dist/esm/resources/Loader.js +106 -69
- package/dist/esm/resources/Loader.js.map +1 -1
- package/dist/esm/resources/LoadingQueue.d.ts +2 -1
- package/dist/esm/resources/LoadingQueue.d.ts.map +1 -0
- package/dist/esm/resources/NetworkOnlyStrategy.d.ts +1 -0
- package/dist/esm/resources/NetworkOnlyStrategy.d.ts.map +1 -0
- package/dist/esm/resources/coreAssetBindings.d.ts +8 -0
- package/dist/esm/resources/coreAssetBindings.d.ts.map +1 -0
- package/dist/esm/resources/coreAssetBindings.js +151 -0
- package/dist/esm/resources/coreAssetBindings.js.map +1 -0
- package/dist/esm/resources/factories/BinaryFactory.d.ts +2 -1
- package/dist/esm/resources/factories/BinaryFactory.d.ts.map +1 -0
- package/dist/esm/resources/factories/BmFontFactory.d.ts +5 -4
- package/dist/esm/resources/factories/BmFontFactory.d.ts.map +1 -0
- package/dist/esm/resources/factories/CsvFactory.d.ts +2 -1
- package/dist/esm/resources/factories/CsvFactory.d.ts.map +1 -0
- package/dist/esm/resources/factories/FontFactory.d.ts +2 -1
- package/dist/esm/resources/factories/FontFactory.d.ts.map +1 -0
- package/dist/esm/resources/factories/ImageFactory.d.ts +2 -1
- package/dist/esm/resources/factories/ImageFactory.d.ts.map +1 -0
- package/dist/esm/resources/factories/JsonFactory.d.ts +2 -1
- package/dist/esm/resources/factories/JsonFactory.d.ts.map +1 -0
- package/dist/esm/resources/factories/MusicFactory.d.ts +4 -3
- package/dist/esm/resources/factories/MusicFactory.d.ts.map +1 -0
- package/dist/esm/resources/factories/SoundFactory.d.ts +4 -3
- package/dist/esm/resources/factories/SoundFactory.d.ts.map +1 -0
- package/dist/esm/resources/factories/SubtitleFactory.d.ts +2 -1
- package/dist/esm/resources/factories/SubtitleFactory.d.ts.map +1 -0
- package/dist/esm/resources/factories/SvgFactory.d.ts +2 -1
- package/dist/esm/resources/factories/SvgFactory.d.ts.map +1 -0
- package/dist/esm/resources/factories/TextFactory.d.ts +2 -1
- package/dist/esm/resources/factories/TextFactory.d.ts.map +1 -0
- package/dist/esm/resources/factories/TextureFactory.d.ts +4 -3
- package/dist/esm/resources/factories/TextureFactory.d.ts.map +1 -0
- package/dist/esm/resources/factories/VideoFactory.d.ts +5 -4
- package/dist/esm/resources/factories/VideoFactory.d.ts.map +1 -0
- package/dist/esm/resources/factories/WasmFactory.d.ts +2 -1
- package/dist/esm/resources/factories/WasmFactory.d.ts.map +1 -0
- package/dist/esm/resources/factories/XmlFactory.d.ts +2 -1
- package/dist/esm/resources/factories/XmlFactory.d.ts.map +1 -0
- package/dist/esm/resources/index.d.ts +16 -15
- package/dist/esm/resources/index.d.ts.map +1 -0
- package/dist/esm/resources/tokens.d.ts +1 -0
- package/dist/esm/resources/tokens.d.ts.map +1 -0
- package/dist/esm/resources/utils.d.ts +1 -0
- package/dist/esm/resources/utils.d.ts.map +1 -0
- package/dist/exo.debug.esm.js +949 -0
- package/dist/exo.debug.esm.js.map +1 -0
- package/dist/exo.esm.js +7796 -10451
- package/dist/exo.esm.js.map +1 -1
- package/package.json +85 -57
- package/dist/esm/particles/ParticleSystem.d.ts +0 -212
- package/dist/esm/particles/ParticleSystem.js +0 -573
- package/dist/esm/particles/ParticleSystem.js.map +0 -1
- package/dist/esm/particles/distributions/BoxArea.d.ts +0 -17
- package/dist/esm/particles/distributions/BoxArea.js +0 -48
- package/dist/esm/particles/distributions/BoxArea.js.map +0 -1
- package/dist/esm/particles/distributions/CircleArea.d.ts +0 -19
- package/dist/esm/particles/distributions/CircleArea.js +0 -33
- package/dist/esm/particles/distributions/CircleArea.js.map +0 -1
- package/dist/esm/particles/distributions/ColorGradient.d.ts +0 -40
- package/dist/esm/particles/distributions/ColorGradient.js +0 -72
- package/dist/esm/particles/distributions/ColorGradient.js.map +0 -1
- package/dist/esm/particles/distributions/ConeDirection.d.ts +0 -28
- package/dist/esm/particles/distributions/ConeDirection.js +0 -44
- package/dist/esm/particles/distributions/ConeDirection.js.map +0 -1
- package/dist/esm/particles/distributions/Constant.d.ts +0 -17
- package/dist/esm/particles/distributions/Constant.js +0 -35
- package/dist/esm/particles/distributions/Constant.js.map +0 -1
- package/dist/esm/particles/distributions/Curve.d.ts +0 -30
- package/dist/esm/particles/distributions/Curve.js +0 -53
- package/dist/esm/particles/distributions/Curve.js.map +0 -1
- package/dist/esm/particles/distributions/Distribution.d.ts +0 -45
- package/dist/esm/particles/distributions/LineSegment.d.ts +0 -15
- package/dist/esm/particles/distributions/LineSegment.js +0 -27
- package/dist/esm/particles/distributions/LineSegment.js.map +0 -1
- package/dist/esm/particles/distributions/Range.d.ts +0 -12
- package/dist/esm/particles/distributions/Range.js +0 -19
- package/dist/esm/particles/distributions/Range.js.map +0 -1
- package/dist/esm/particles/distributions/VectorRange.d.ts +0 -20
- package/dist/esm/particles/distributions/VectorRange.js +0 -31
- package/dist/esm/particles/distributions/VectorRange.js.map +0 -1
- package/dist/esm/particles/distributions/index.d.ts +0 -12
- package/dist/esm/particles/gpu/ParticleGpuState.d.ts +0 -57
- package/dist/esm/particles/gpu/ParticleGpuState.js +0 -535
- package/dist/esm/particles/gpu/ParticleGpuState.js.map +0 -1
- package/dist/esm/particles/index.d.ts +0 -4
- package/dist/esm/particles/modules/AlphaFadeOverLifetime.d.ts +0 -24
- package/dist/esm/particles/modules/AlphaFadeOverLifetime.js +0 -64
- package/dist/esm/particles/modules/AlphaFadeOverLifetime.js.map +0 -1
- package/dist/esm/particles/modules/ApplyForce.d.ts +0 -20
- package/dist/esm/particles/modules/ApplyForce.js +0 -48
- package/dist/esm/particles/modules/ApplyForce.js.map +0 -1
- package/dist/esm/particles/modules/AttractToPoint.d.ts +0 -27
- package/dist/esm/particles/modules/AttractToPoint.js +0 -73
- package/dist/esm/particles/modules/AttractToPoint.js.map +0 -1
- package/dist/esm/particles/modules/BurstSpawn.d.ts +0 -53
- package/dist/esm/particles/modules/BurstSpawn.js +0 -94
- package/dist/esm/particles/modules/BurstSpawn.js.map +0 -1
- package/dist/esm/particles/modules/ColorOverLifetime.d.ts +0 -22
- package/dist/esm/particles/modules/ColorOverLifetime.js +0 -65
- package/dist/esm/particles/modules/ColorOverLifetime.js.map +0 -1
- package/dist/esm/particles/modules/ColorOverSpeed.d.ts +0 -27
- package/dist/esm/particles/modules/ColorOverSpeed.js +0 -86
- package/dist/esm/particles/modules/ColorOverSpeed.js.map +0 -1
- package/dist/esm/particles/modules/DeathModule.d.ts +0 -24
- package/dist/esm/particles/modules/DeathModule.js +0 -25
- package/dist/esm/particles/modules/DeathModule.js.map +0 -1
- package/dist/esm/particles/modules/Drag.d.ts +0 -20
- package/dist/esm/particles/modules/Drag.js +0 -43
- package/dist/esm/particles/modules/Drag.js.map +0 -1
- package/dist/esm/particles/modules/OrbitalForce.d.ts +0 -28
- package/dist/esm/particles/modules/OrbitalForce.js +0 -65
- package/dist/esm/particles/modules/OrbitalForce.js.map +0 -1
- package/dist/esm/particles/modules/RateSpawn.d.ts +0 -41
- package/dist/esm/particles/modules/RateSpawn.js +0 -76
- package/dist/esm/particles/modules/RateSpawn.js.map +0 -1
- package/dist/esm/particles/modules/RepelFromPoint.d.ts +0 -24
- package/dist/esm/particles/modules/RepelFromPoint.js +0 -76
- package/dist/esm/particles/modules/RepelFromPoint.js.map +0 -1
- package/dist/esm/particles/modules/RotateOverLifetime.d.ts +0 -20
- package/dist/esm/particles/modules/RotateOverLifetime.js +0 -41
- package/dist/esm/particles/modules/RotateOverLifetime.js.map +0 -1
- package/dist/esm/particles/modules/ScaleOverLifetime.d.ts +0 -26
- package/dist/esm/particles/modules/ScaleOverLifetime.js +0 -59
- package/dist/esm/particles/modules/ScaleOverLifetime.js.map +0 -1
- package/dist/esm/particles/modules/SpawnModule.d.ts +0 -30
- package/dist/esm/particles/modules/SpawnModule.js +0 -31
- package/dist/esm/particles/modules/SpawnModule.js.map +0 -1
- package/dist/esm/particles/modules/SpawnOnDeath.d.ts +0 -24
- package/dist/esm/particles/modules/SpawnOnDeath.js +0 -47
- package/dist/esm/particles/modules/SpawnOnDeath.js.map +0 -1
- package/dist/esm/particles/modules/Turbulence.d.ts +0 -30
- package/dist/esm/particles/modules/Turbulence.js +0 -122
- package/dist/esm/particles/modules/Turbulence.js.map +0 -1
- package/dist/esm/particles/modules/UpdateModule.d.ts +0 -95
- package/dist/esm/particles/modules/UpdateModule.js +0 -66
- package/dist/esm/particles/modules/UpdateModule.js.map +0 -1
- package/dist/esm/particles/modules/VelocityOverLifetime.d.ts +0 -30
- package/dist/esm/particles/modules/VelocityOverLifetime.js +0 -84
- package/dist/esm/particles/modules/VelocityOverLifetime.js.map +0 -1
- package/dist/esm/particles/modules/WgslContribution.d.ts +0 -81
- package/dist/esm/particles/modules/WgslContribution.js +0 -34
- package/dist/esm/particles/modules/WgslContribution.js.map +0 -1
- package/dist/esm/particles/modules/index.d.ts +0 -22
- package/dist/esm/rendering/RenderTargetPass.d.ts +0 -29
- package/dist/esm/rendering/RenderTargetPass.js.map +0 -1
- package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.d.ts +0 -45
- package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.js +0 -330
- package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.js.map +0 -1
- package/dist/esm/rendering/webgl2/glsl/particle.frag.js +0 -4
- package/dist/esm/rendering/webgl2/glsl/particle.frag.js.map +0 -1
- package/dist/esm/rendering/webgl2/glsl/particle.vert.js +0 -4
- package/dist/esm/rendering/webgl2/glsl/particle.vert.js.map +0 -1
- package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.d.ts +0 -48
- package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.js +0 -556
- package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.js.map +0 -1
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import type { RenderingContext } from './RenderingContext';
|
|
2
|
+
import { RenderPass, type RenderPassOptions } from './RenderPass';
|
|
3
|
+
/**
|
|
4
|
+
* An ordered list of {@link RenderPass} steps, played once per frame against a {@link RenderingContext}.
|
|
5
|
+
*
|
|
6
|
+
* A `RenderPipeline` is **itself a `RenderPass`**, so pipelines nest freely and a disabled pipeline skips its
|
|
7
|
+
* whole subtree. It **owns** the passes added to it (exclusive ownership — a pass belongs to at most one
|
|
8
|
+
* pipeline): {@link resize} and {@link destroy} cascade to them. It never owns scene nodes or caller
|
|
9
|
+
* RenderTextures. Adding a pass that would create a direct or indirect cycle throws at add time.
|
|
10
|
+
* @advanced
|
|
11
|
+
*/
|
|
12
|
+
export declare class RenderPipeline extends RenderPass {
|
|
13
|
+
private readonly _passes;
|
|
14
|
+
private _executing;
|
|
15
|
+
private _destroyed;
|
|
16
|
+
constructor(options?: RenderPassOptions);
|
|
17
|
+
/** Number of registered passes (enabled and disabled). */
|
|
18
|
+
get size(): number;
|
|
19
|
+
/**
|
|
20
|
+
* Append a pass and take exclusive ownership of it. Throws if the pass already belongs to any pipeline, if
|
|
21
|
+
* adding it would create a direct/indirect cycle, during `execute`, or after `destroy`.
|
|
22
|
+
*/
|
|
23
|
+
addPass(pass: RenderPass): this;
|
|
24
|
+
/** Insert a pass at `index` (clamped to `[0, size]`). Same ownership / cycle / execute / destroy throws as {@link addPass}. */
|
|
25
|
+
insertPass(pass: RenderPass, index: number): this;
|
|
26
|
+
/** Remove a pass by identity and release its ownership. Returns `false` if absent. Does not destroy it. */
|
|
27
|
+
removePass(pass: RenderPass): boolean;
|
|
28
|
+
/** Remove all passes and release their ownership. Does not destroy them. The pipeline stays usable. */
|
|
29
|
+
clear(): this;
|
|
30
|
+
/** Whether `pass` is registered in this pipeline. */
|
|
31
|
+
hasPass(pass: RenderPass): boolean;
|
|
32
|
+
/** Index of `pass` in play order, or `-1` if absent. */
|
|
33
|
+
indexOf(pass: RenderPass): number;
|
|
34
|
+
/** The pass at `index` in play order, or `undefined` if out of range. */
|
|
35
|
+
at(index: number): RenderPass | undefined;
|
|
36
|
+
/** Iterate registered passes in play order. */
|
|
37
|
+
[Symbol.iterator](): IterableIterator<RenderPass>;
|
|
38
|
+
/**
|
|
39
|
+
* Play every enabled pass in order against `context`. No-op if `this.enabled === false` (a pipeline is itself a
|
|
40
|
+
* directly-executable pass, so disabling it skips its whole subtree). Not re-entrant. Throws after `destroy`.
|
|
41
|
+
*/
|
|
42
|
+
execute(context: RenderingContext): void;
|
|
43
|
+
/** Cascade `resize(width, height)` to every pass (enabled and disabled). */
|
|
44
|
+
resize(width: number, height: number): void;
|
|
45
|
+
/**
|
|
46
|
+
* Cascade `destroy()` to every pass, release their ownership, then clear the list. Idempotent. Throws during
|
|
47
|
+
* `execute` (before any teardown begins).
|
|
48
|
+
*
|
|
49
|
+
* Best-effort teardown: the pipeline is marked destroyed and detached from its passes up front, so it always
|
|
50
|
+
* ends in a single, consistent destroyed-and-empty state — every child gets a `destroy()` attempt and has its
|
|
51
|
+
* owner slot released even if an earlier child throws. If one or more children throw, the first error is
|
|
52
|
+
* re-thrown after the cascade completes.
|
|
53
|
+
*/
|
|
54
|
+
destroy(): void;
|
|
55
|
+
private _admit;
|
|
56
|
+
/** Whether `target` is reachable from this pipeline (this === target, or a nested pipeline reaches it). */
|
|
57
|
+
private _reaches;
|
|
58
|
+
private _assertLive;
|
|
59
|
+
private _assertNotExecuting;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=RenderPipeline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RenderPipeline.d.ts","sourceRoot":"","sources":["../../../src/rendering/RenderPipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAElE;;;;;;;;GAQG;AACH,qBAAa,cAAe,SAAQ,UAAU;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;IAC5C,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,UAAU,CAAS;gBAER,OAAO,CAAC,EAAE,iBAAiB;IAI9C,0DAA0D;IAC1D,IAAW,IAAI,IAAI,MAAM,CAExB;IAED;;;OAGG;IACI,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAQtC,+HAA+H;IACxH,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IASxD,2GAA2G;IACpG,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO;IAgB5C,uGAAuG;IAChG,KAAK,IAAI,IAAI;IAapB,qDAAqD;IAC9C,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO;IAIzC,wDAAwD;IACjD,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM;IAIxC,yEAAyE;IAClE,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAIhD,+CAA+C;IACxC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CAAC,UAAU,CAAC;IAIxD;;;OAGG;IACa,OAAO,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAwBxD,4EAA4E;IAC5D,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAM3D;;;;;;;;OAQG;IACa,OAAO,IAAI,IAAI;IA8B/B,OAAO,CAAC,MAAM;IAad,2GAA2G;IAC3G,OAAO,CAAC,QAAQ;IAchB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,mBAAmB;CAK5B"}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import { RenderPass } from './RenderPass.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* An ordered list of {@link RenderPass} steps, played once per frame against a {@link RenderingContext}.
|
|
5
|
+
*
|
|
6
|
+
* A `RenderPipeline` is **itself a `RenderPass`**, so pipelines nest freely and a disabled pipeline skips its
|
|
7
|
+
* whole subtree. It **owns** the passes added to it (exclusive ownership — a pass belongs to at most one
|
|
8
|
+
* pipeline): {@link resize} and {@link destroy} cascade to them. It never owns scene nodes or caller
|
|
9
|
+
* RenderTextures. Adding a pass that would create a direct or indirect cycle throws at add time.
|
|
10
|
+
* @advanced
|
|
11
|
+
*/
|
|
12
|
+
class RenderPipeline extends RenderPass {
|
|
13
|
+
_passes = [];
|
|
14
|
+
_executing = false;
|
|
15
|
+
_destroyed = false;
|
|
16
|
+
constructor(options) {
|
|
17
|
+
super(options);
|
|
18
|
+
}
|
|
19
|
+
/** Number of registered passes (enabled and disabled). */
|
|
20
|
+
get size() {
|
|
21
|
+
return this._passes.length;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Append a pass and take exclusive ownership of it. Throws if the pass already belongs to any pipeline, if
|
|
25
|
+
* adding it would create a direct/indirect cycle, during `execute`, or after `destroy`.
|
|
26
|
+
*/
|
|
27
|
+
addPass(pass) {
|
|
28
|
+
this._admit(pass);
|
|
29
|
+
this._passes.push(pass);
|
|
30
|
+
pass._pipelineOwner = this;
|
|
31
|
+
return this;
|
|
32
|
+
}
|
|
33
|
+
/** Insert a pass at `index` (clamped to `[0, size]`). Same ownership / cycle / execute / destroy throws as {@link addPass}. */
|
|
34
|
+
insertPass(pass, index) {
|
|
35
|
+
this._admit(pass);
|
|
36
|
+
const at = Math.max(0, Math.min(index, this._passes.length));
|
|
37
|
+
this._passes.splice(at, 0, pass);
|
|
38
|
+
pass._pipelineOwner = this;
|
|
39
|
+
return this;
|
|
40
|
+
}
|
|
41
|
+
/** Remove a pass by identity and release its ownership. Returns `false` if absent. Does not destroy it. */
|
|
42
|
+
removePass(pass) {
|
|
43
|
+
this._assertLive();
|
|
44
|
+
this._assertNotExecuting();
|
|
45
|
+
const index = this._passes.indexOf(pass);
|
|
46
|
+
if (index === -1) {
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
this._passes.splice(index, 1);
|
|
50
|
+
pass._pipelineOwner = null;
|
|
51
|
+
return true;
|
|
52
|
+
}
|
|
53
|
+
/** Remove all passes and release their ownership. Does not destroy them. The pipeline stays usable. */
|
|
54
|
+
clear() {
|
|
55
|
+
this._assertLive();
|
|
56
|
+
this._assertNotExecuting();
|
|
57
|
+
for (const pass of this._passes) {
|
|
58
|
+
pass._pipelineOwner = null;
|
|
59
|
+
}
|
|
60
|
+
this._passes.length = 0;
|
|
61
|
+
return this;
|
|
62
|
+
}
|
|
63
|
+
/** Whether `pass` is registered in this pipeline. */
|
|
64
|
+
hasPass(pass) {
|
|
65
|
+
return pass._pipelineOwner === this;
|
|
66
|
+
}
|
|
67
|
+
/** Index of `pass` in play order, or `-1` if absent. */
|
|
68
|
+
indexOf(pass) {
|
|
69
|
+
return this._passes.indexOf(pass);
|
|
70
|
+
}
|
|
71
|
+
/** The pass at `index` in play order, or `undefined` if out of range. */
|
|
72
|
+
at(index) {
|
|
73
|
+
return this._passes[index];
|
|
74
|
+
}
|
|
75
|
+
/** Iterate registered passes in play order. */
|
|
76
|
+
[Symbol.iterator]() {
|
|
77
|
+
return this._passes[Symbol.iterator]();
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Play every enabled pass in order against `context`. No-op if `this.enabled === false` (a pipeline is itself a
|
|
81
|
+
* directly-executable pass, so disabling it skips its whole subtree). Not re-entrant. Throws after `destroy`.
|
|
82
|
+
*/
|
|
83
|
+
execute(context) {
|
|
84
|
+
if (!this.enabled) {
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
this._assertLive();
|
|
88
|
+
if (this._executing) {
|
|
89
|
+
throw new Error('RenderPipeline.execute is not re-entrant.');
|
|
90
|
+
}
|
|
91
|
+
this._executing = true;
|
|
92
|
+
try {
|
|
93
|
+
for (const pass of this._passes) {
|
|
94
|
+
if (pass.enabled) {
|
|
95
|
+
pass.execute(context);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
finally {
|
|
100
|
+
this._executing = false;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
/** Cascade `resize(width, height)` to every pass (enabled and disabled). */
|
|
104
|
+
resize(width, height) {
|
|
105
|
+
for (const pass of this._passes) {
|
|
106
|
+
pass.resize(width, height);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Cascade `destroy()` to every pass, release their ownership, then clear the list. Idempotent. Throws during
|
|
111
|
+
* `execute` (before any teardown begins).
|
|
112
|
+
*
|
|
113
|
+
* Best-effort teardown: the pipeline is marked destroyed and detached from its passes up front, so it always
|
|
114
|
+
* ends in a single, consistent destroyed-and-empty state — every child gets a `destroy()` attempt and has its
|
|
115
|
+
* owner slot released even if an earlier child throws. If one or more children throw, the first error is
|
|
116
|
+
* re-thrown after the cascade completes.
|
|
117
|
+
*/
|
|
118
|
+
destroy() {
|
|
119
|
+
if (this._destroyed) {
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
this._assertNotExecuting();
|
|
123
|
+
// Mark destroyed and snapshot-detach the children first, so the pipeline ends in a consistent
|
|
124
|
+
// destroyed-and-empty state regardless of whether a child's destroy() throws.
|
|
125
|
+
this._destroyed = true;
|
|
126
|
+
const passes = this._passes.splice(0, this._passes.length);
|
|
127
|
+
const errors = [];
|
|
128
|
+
for (const pass of passes) {
|
|
129
|
+
// Release ownership before destroying, so a throwing child never stays attached to this pipeline.
|
|
130
|
+
pass._pipelineOwner = null;
|
|
131
|
+
try {
|
|
132
|
+
pass.destroy();
|
|
133
|
+
}
|
|
134
|
+
catch (error) {
|
|
135
|
+
errors.push(error);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
if (errors.length > 0) {
|
|
139
|
+
throw errors[0];
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
_admit(pass) {
|
|
143
|
+
this._assertLive();
|
|
144
|
+
this._assertNotExecuting();
|
|
145
|
+
if (pass._pipelineOwner !== null) {
|
|
146
|
+
throw new Error('RenderPass already belongs to a RenderPipeline; remove it from its current pipeline first.');
|
|
147
|
+
}
|
|
148
|
+
if (pass instanceof RenderPipeline && pass._reaches(this)) {
|
|
149
|
+
throw new Error('RenderPipeline cannot contain itself, directly or indirectly (cycle).');
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
/** Whether `target` is reachable from this pipeline (this === target, or a nested pipeline reaches it). */
|
|
153
|
+
_reaches(target) {
|
|
154
|
+
if (this === target) {
|
|
155
|
+
return true;
|
|
156
|
+
}
|
|
157
|
+
for (const pass of this._passes) {
|
|
158
|
+
if (pass instanceof RenderPipeline && pass._reaches(target)) {
|
|
159
|
+
return true;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
return false;
|
|
163
|
+
}
|
|
164
|
+
_assertLive() {
|
|
165
|
+
if (this._destroyed) {
|
|
166
|
+
throw new Error('RenderPipeline has been destroyed and can no longer be used.');
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
_assertNotExecuting() {
|
|
170
|
+
if (this._executing) {
|
|
171
|
+
throw new Error('RenderPipeline cannot be mutated while it is executing.');
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
export { RenderPipeline };
|
|
177
|
+
//# sourceMappingURL=RenderPipeline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RenderPipeline.js","sources":["../../../../src/rendering/RenderPipeline.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RenderStats.d.ts","sourceRoot":"","sources":["../../../src/rendering/RenderStats.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,qFAAqF;IACrF,KAAK,EAAE,MAAM,CAAC;IACd,gEAAgE;IAChE,cAAc,EAAE,MAAM,CAAC;IACvB,gEAAgE;IAChE,WAAW,EAAE,MAAM,CAAC;IACpB,kDAAkD;IAClD,SAAS,EAAE,MAAM,CAAC;IAClB,iDAAiD;IACjD,OAAO,EAAE,MAAM,CAAC;IAChB,mDAAmD;IACnD,YAAY,EAAE,MAAM,CAAC;IACrB,mDAAmD;IACnD,mBAAmB,EAAE,MAAM,CAAC;IAC5B,wDAAwD;IACxD,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;;OAMG;IACH,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,QAAO,WAUnC,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GAAI,OAAO,WAAW,KAAG,WAYrD,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Rectangle } from '
|
|
2
|
-
import { Size } from '
|
|
3
|
-
import { Vector } from '
|
|
1
|
+
import { Rectangle } from '#math/Rectangle';
|
|
2
|
+
import { Size } from '#math/Size';
|
|
3
|
+
import { Vector } from '#math/Vector';
|
|
4
4
|
import { View } from './View';
|
|
5
5
|
/**
|
|
6
6
|
* Renderable destination — either the on-screen canvas (the `root`
|
|
@@ -62,3 +62,4 @@ export declare class RenderTarget {
|
|
|
62
62
|
destroy(): void;
|
|
63
63
|
protected _touch(): void;
|
|
64
64
|
}
|
|
65
|
+
//# sourceMappingURL=RenderTarget.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RenderTarget.d.ts","sourceRoot":"","sources":["../../../src/rendering/RenderTarget.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B;;;;;;;;;GASG;AACH,qBAAa,YAAY;IACvB;;;;;;;;;;;OAWG;IACI,YAAY,UAAS;IAE5B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAU;IAChC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA0C;IAC5E,OAAO,CAAC,QAAQ,CAAK;IACrB,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC;IACtB,SAAS,CAAC,SAAS,EAAE,SAAS,CAAmB;IACjD,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC;IAC7B,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC;gBAEH,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,UAAQ;IAO9D,IAAW,IAAI,IAAI,IAAI,CAEtB;IAED,IAAW,IAAI,CAAC,IAAI,EAAE,IAAI,EAEzB;IAED,IAAW,IAAI,IAAI,IAAI,CAEtB;IAED,IAAW,IAAI,CAAC,IAAI,EAAE,IAAI,EAEzB;IAED,IAAW,KAAK,IAAI,MAAM,CAEzB;IAED,IAAW,KAAK,CAAC,KAAK,EAAE,MAAM,EAE7B;IAED,IAAW,MAAM,IAAI,MAAM,CAE1B;IAED,IAAW,MAAM,CAAC,MAAM,EAAE,MAAM,EAE/B;IAED,IAAW,IAAI,IAAI,OAAO,CAEzB;IAED,IAAW,OAAO,IAAI,MAAM,CAE3B;IAED;;;;;OAKG;IACI,kBAAkB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAMrD,wEAAwE;IACjE,qBAAqB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAMjD,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI;IAWhC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAS3C,WAAW,CAAC,IAAI,GAAE,IAAiB,GAAG,SAAS;IAM/C,cAAc,IAAI,IAAI;IAMtB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,IAAiB,GAAG,MAAM;IAOhE,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,IAAiB,GAAG,MAAM;IAOhE,OAAO,IAAI,IAAI;IAgBtB,SAAS,CAAC,MAAM,IAAI,IAAI;CAGzB"}
|
|
@@ -28,3 +28,4 @@ export interface Renderer<Runtime extends RenderBackend = RenderBackend, Target
|
|
|
28
28
|
* Supports both concrete and abstract drawable classes.
|
|
29
29
|
*/
|
|
30
30
|
export type DrawableConstructor<Target extends Drawable = Drawable> = abstract new (...args: never[]) => Target;
|
|
31
|
+
//# sourceMappingURL=Renderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Renderer.d.ts","sourceRoot":"","sources":["../../../src/rendering/Renderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE7D;;;;;;;;;;GAUG;AACH,MAAM,WAAW,QAAQ,CAAC,OAAO,SAAS,aAAa,GAAG,aAAa,EAAE,MAAM,SAAS,QAAQ,GAAG,QAAQ;IACzG,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;IAExC,sEAAsE;IACtE,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAChC,uDAAuD;IACvD,UAAU,IAAI,IAAI,CAAC;IACnB,uDAAuD;IACvD,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,gDAAgD;IAChD,KAAK,IAAI,IAAI,CAAC;CACf;AAED;;;GAGG;AACH,MAAM,MAAM,mBAAmB,CAAC,MAAM,SAAS,QAAQ,GAAG,QAAQ,IAAI,QAAQ,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,MAAM,CAAC"}
|
|
@@ -17,6 +17,7 @@ import type { DrawableConstructor, Renderer } from './Renderer';
|
|
|
17
17
|
*/
|
|
18
18
|
export declare class RendererRegistry<Runtime extends RenderBackend> {
|
|
19
19
|
private readonly _renderers;
|
|
20
|
+
private readonly _resolved;
|
|
20
21
|
private _backend;
|
|
21
22
|
/**
|
|
22
23
|
* Register a renderer for a specific drawable type.
|
|
@@ -28,6 +29,13 @@ export declare class RendererRegistry<Runtime extends RenderBackend> {
|
|
|
28
29
|
* @throws Error if a renderer is already registered for this drawable type.
|
|
29
30
|
*/
|
|
30
31
|
registerRenderer<Target extends Drawable>(drawableType: DrawableConstructor<Target>, renderer: Renderer<Runtime, Target>): void;
|
|
32
|
+
/**
|
|
33
|
+
* Atomically bind all `targets` to `renderer`.
|
|
34
|
+
* Validates every target before mutating any map entry.
|
|
35
|
+
* Clears the resolution cache exactly once after all entries are written.
|
|
36
|
+
* @internal
|
|
37
|
+
*/
|
|
38
|
+
bindRenderer(targets: readonly DrawableConstructor[], renderer: Renderer<Runtime>): void;
|
|
31
39
|
/**
|
|
32
40
|
* Iterate all registered renderers. Used by managers to dispatch
|
|
33
41
|
* lifecycle hooks (e.g. WebGPU pipeline pre-warmup) to whichever
|
|
@@ -36,8 +44,8 @@ export declare class RendererRegistry<Runtime extends RenderBackend> {
|
|
|
36
44
|
renderers(): Iterable<Renderer<Runtime>>;
|
|
37
45
|
/**
|
|
38
46
|
* Find the renderer responsible for `drawable`.
|
|
39
|
-
*
|
|
40
|
-
*
|
|
47
|
+
* Uses a first-resolution cache — after warm-up, a single Map.get.
|
|
48
|
+
* Falls back to prototype-chain walk on cache miss.
|
|
41
49
|
*
|
|
42
50
|
* @throws Error if no renderer is found for the drawable's type.
|
|
43
51
|
*/
|
|
@@ -52,6 +60,9 @@ export declare class RendererRegistry<Runtime extends RenderBackend> {
|
|
|
52
60
|
disconnect(): void;
|
|
53
61
|
/**
|
|
54
62
|
* Disconnect all registered renderers and clear the registry.
|
|
63
|
+
* Deduplicates across multi-target bindings so each shared renderer
|
|
64
|
+
* instance is disconnected and destroyed exactly once.
|
|
55
65
|
*/
|
|
56
66
|
destroy(): void;
|
|
57
67
|
}
|
|
68
|
+
//# sourceMappingURL=RendererRegistry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RendererRegistry.d.ts","sourceRoot":"","sources":["../../../src/rendering/RendererRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEhE;;;;;;;;;;;;;GAaG;AACH,qBAAa,gBAAgB,CAAC,OAAO,SAAS,aAAa;IACzD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqD;IAChF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqD;IAC/E,OAAO,CAAC,QAAQ,CAAwB;IAExC;;;;;;;;OAQG;IACI,gBAAgB,CAAC,MAAM,SAAS,QAAQ,EAAE,YAAY,EAAE,mBAAmB,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,IAAI;IAetI;;;;;OAKG;IACI,YAAY,CAAC,OAAO,EAAE,SAAS,mBAAmB,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,IAAI;IAqC/F;;;;OAIG;IACI,SAAS,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAI/C;;;;;;OAMG;IACI,OAAO,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC;IAkCrD;;OAEG;IACI,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAQtC;;OAEG;IACI,UAAU,IAAI,IAAI;IAQzB;;;;OAIG;IACI,OAAO,IAAI,IAAI;CAkBvB"}
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
*/
|
|
15
15
|
class RendererRegistry {
|
|
16
16
|
_renderers = new Map();
|
|
17
|
+
_resolved = new Map();
|
|
17
18
|
_backend = null;
|
|
18
19
|
/**
|
|
19
20
|
* Register a renderer for a specific drawable type.
|
|
@@ -31,6 +32,42 @@ class RendererRegistry {
|
|
|
31
32
|
// Widen TDrawable to Drawable for storage. Safe because the map key
|
|
32
33
|
// guarantees the correct drawable type is always paired at lookup.
|
|
33
34
|
this._renderers.set(drawableType, renderer);
|
|
35
|
+
this._resolved.clear();
|
|
36
|
+
if (this._backend !== null) {
|
|
37
|
+
renderer.connect(this._backend);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Atomically bind all `targets` to `renderer`.
|
|
42
|
+
* Validates every target before mutating any map entry.
|
|
43
|
+
* Clears the resolution cache exactly once after all entries are written.
|
|
44
|
+
* @internal
|
|
45
|
+
*/
|
|
46
|
+
bindRenderer(targets, renderer) {
|
|
47
|
+
if (targets.length === 0) {
|
|
48
|
+
throw new Error('A RendererBinding must declare at least one target.');
|
|
49
|
+
}
|
|
50
|
+
// Validate: no duplicate targets within this call
|
|
51
|
+
const seen = new Set();
|
|
52
|
+
for (const target of targets) {
|
|
53
|
+
if (seen.has(target)) {
|
|
54
|
+
throw new Error(`A RendererBinding declares the same target ${target.name} more than once.`);
|
|
55
|
+
}
|
|
56
|
+
seen.add(target);
|
|
57
|
+
}
|
|
58
|
+
// Validate: no target already registered — throw before any mutation
|
|
59
|
+
for (const target of targets) {
|
|
60
|
+
if (this._renderers.has(target)) {
|
|
61
|
+
throw new Error(`A renderer is already registered for ${target.name}.`);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
// All validation passed — atomically install all mappings
|
|
65
|
+
for (const target of targets) {
|
|
66
|
+
this._renderers.set(target, renderer);
|
|
67
|
+
}
|
|
68
|
+
// Invalidate resolution cache once
|
|
69
|
+
this._resolved.clear();
|
|
70
|
+
// Connect renderer if already connected
|
|
34
71
|
if (this._backend !== null) {
|
|
35
72
|
renderer.connect(this._backend);
|
|
36
73
|
}
|
|
@@ -45,13 +82,18 @@ class RendererRegistry {
|
|
|
45
82
|
}
|
|
46
83
|
/**
|
|
47
84
|
* Find the renderer responsible for `drawable`.
|
|
48
|
-
*
|
|
49
|
-
*
|
|
85
|
+
* Uses a first-resolution cache — after warm-up, a single Map.get.
|
|
86
|
+
* Falls back to prototype-chain walk on cache miss.
|
|
50
87
|
*
|
|
51
88
|
* @throws Error if no renderer is found for the drawable's type.
|
|
52
89
|
*/
|
|
53
90
|
resolve(drawable) {
|
|
54
|
-
|
|
91
|
+
const ctor = drawable.constructor;
|
|
92
|
+
const cached = this._resolved.get(ctor);
|
|
93
|
+
if (cached !== undefined) {
|
|
94
|
+
return cached;
|
|
95
|
+
}
|
|
96
|
+
let constructor = ctor;
|
|
55
97
|
let renderer;
|
|
56
98
|
while (constructor !== null && !renderer) {
|
|
57
99
|
renderer = this._renderers.get(constructor);
|
|
@@ -61,8 +103,11 @@ class RendererRegistry {
|
|
|
61
103
|
}
|
|
62
104
|
}
|
|
63
105
|
if (!renderer) {
|
|
64
|
-
throw new Error(`No renderer registered for ${drawable.constructor.name}. ` +
|
|
106
|
+
throw new Error(`No renderer registered for ${drawable.constructor.name}. ` +
|
|
107
|
+
'If it comes from an ExoJS extension, import that package before creating the Application, ' +
|
|
108
|
+
'or pass the extension via ApplicationOptions.extensions.');
|
|
65
109
|
}
|
|
110
|
+
this._resolved.set(ctor, renderer);
|
|
66
111
|
return renderer;
|
|
67
112
|
}
|
|
68
113
|
/**
|
|
@@ -85,15 +130,23 @@ class RendererRegistry {
|
|
|
85
130
|
}
|
|
86
131
|
/**
|
|
87
132
|
* Disconnect all registered renderers and clear the registry.
|
|
133
|
+
* Deduplicates across multi-target bindings so each shared renderer
|
|
134
|
+
* instance is disconnected and destroyed exactly once.
|
|
88
135
|
*/
|
|
89
136
|
destroy() {
|
|
90
|
-
|
|
137
|
+
const seen = new Set();
|
|
91
138
|
for (const renderer of this._renderers.values()) {
|
|
92
|
-
if (
|
|
93
|
-
|
|
139
|
+
if (!seen.has(renderer)) {
|
|
140
|
+
seen.add(renderer);
|
|
141
|
+
renderer.disconnect();
|
|
142
|
+
if ('destroy' in renderer && typeof renderer.destroy === 'function') {
|
|
143
|
+
renderer.destroy();
|
|
144
|
+
}
|
|
94
145
|
}
|
|
95
146
|
}
|
|
96
147
|
this._renderers.clear();
|
|
148
|
+
this._resolved.clear();
|
|
149
|
+
this._backend = null;
|
|
97
150
|
}
|
|
98
151
|
}
|
|
99
152
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RendererRegistry.js","sources":["../../../../src/rendering/RendererRegistry.ts"],"sourcesContent":[null],"names":[],"mappings":"AAIA;;;;;;;;;;;;;AAaG;MACU,gBAAgB,CAAA;AACV,IAAA,UAAU,GAAG,IAAI,GAAG,EAA0C;
|
|
1
|
+
{"version":3,"file":"RendererRegistry.js","sources":["../../../../src/rendering/RendererRegistry.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import type { Color } from '
|
|
2
|
-
import {
|
|
3
|
-
import { type RenderNode } from '@/rendering/RenderNode';
|
|
4
|
-
import { type RenderStats } from '@/rendering/RenderStats';
|
|
5
|
-
import { RenderTexture } from '@/rendering/texture/RenderTexture';
|
|
6
|
-
import { View } from '@/rendering/View';
|
|
1
|
+
import type { Color } from '#core/Color';
|
|
2
|
+
import { RenderTexture } from '#rendering/texture/RenderTexture';
|
|
7
3
|
import { Camera } from './Camera';
|
|
4
|
+
import { type RenderBackend } from './RenderBackend';
|
|
5
|
+
import { type RenderNode } from './RenderNode';
|
|
6
|
+
import { type RenderStats } from './RenderStats';
|
|
7
|
+
import { View } from './View';
|
|
8
8
|
export interface RenderToOptions {
|
|
9
9
|
width: number;
|
|
10
10
|
height: number;
|
|
@@ -85,3 +85,4 @@ export declare class RenderingContext {
|
|
|
85
85
|
*/
|
|
86
86
|
get backend(): RenderBackend;
|
|
87
87
|
}
|
|
88
|
+
//# sourceMappingURL=RenderingContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RenderingContext.d.ts","sourceRoot":"","sources":["../../../src/rendering/RenderingContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAIzC,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAEjE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,KAAK,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,4FAA4F;IAC5F,IAAI,CAAC,EAAE,IAAI,CAAC;CACb;AAED;;;;;;;;;;GAUG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgB;IACzC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAO;gBAEhB,OAAO,EAAE,aAAa;IAezC;;;;OAIG;IACH,IAAW,MAAM,IAAI,MAAM,CAE1B;IAED,IAAW,MAAM,CAAC,MAAM,EAAE,MAAM,EAQ/B;IAED;;;;;;;OAOG;IACH,IAAW,UAAU,IAAI,IAAI,CAE5B;IAED,qEAAqE;IACrE,IAAW,IAAI,IAAI,IAAI,CAEtB;IAED;;;OAGG;IACI,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIpC;;;OAGG;IACI,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAMlD;;;;;;OAMG;IACI,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,GAAE,aAAkB,GAAG,IAAI;IAOlE;;;;;;;;OAQG;IACI,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,eAAe,GAAG,aAAa;IA2C1E,iEAAiE;IACjE,IAAW,KAAK,IAAI,WAAW,CAE9B;IAED;;;;OAIG;IACH,IAAW,OAAO,IAAI,aAAa,CAElC;CACF"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
+
import { StencilAttachmentMode } from './pass/RenderPassDescriptor.js';
|
|
2
|
+
import { playRenderTree } from './plan/playRenderTree.js';
|
|
3
|
+
import { RenderTexture } from './texture/RenderTexture.js';
|
|
4
|
+
import { Camera } from './Camera.js';
|
|
1
5
|
import '../core/Color.js';
|
|
2
6
|
import '../core/SceneNode.js';
|
|
3
|
-
import '../core/Time.js';
|
|
4
7
|
import '../math/Size.js';
|
|
8
|
+
import '../core/Time.js';
|
|
5
9
|
import '../math/Rectangle.js';
|
|
6
|
-
import { playRenderTree } from './plan/playRenderTree.js';
|
|
7
10
|
import './plan/RenderCommand.js';
|
|
8
11
|
import './plan/RenderScope.js';
|
|
9
|
-
import { StencilAttachmentMode } from './pass/RenderPassDescriptor.js';
|
|
10
|
-
import { RenderTexture } from './texture/RenderTexture.js';
|
|
11
12
|
import './types.js';
|
|
12
13
|
import { View } from './View.js';
|
|
13
|
-
import { Camera } from './Camera.js';
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
16
|
* Owns rendering orchestration: builds, optimizes and plays the internal
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { Color } from '
|
|
2
|
-
import type { Matrix } from '
|
|
1
|
+
import type { Color } from '#core/Color';
|
|
2
|
+
import type { Matrix } from '#math/Matrix';
|
|
3
3
|
/** @internal */
|
|
4
4
|
export interface TransformBufferFrameSnapshot {
|
|
5
5
|
readonly count: number;
|
|
@@ -80,3 +80,4 @@ export declare class TransformBuffer {
|
|
|
80
80
|
private _hashFloat;
|
|
81
81
|
private _mix;
|
|
82
82
|
}
|
|
83
|
+
//# sourceMappingURL=TransformBuffer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TransformBuffer.d.ts","sourceRoot":"","sources":["../../../src/rendering/TransformBuffer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAU3C,gBAAgB;AAChB,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;GASG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,KAAK,CAAmE;IAChF,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,UAAU,CAAoB;IACtC,OAAO,CAAC,kBAAkB,CAAK;IAC/B,OAAO,CAAC,mBAAmB,CAAM;IACjC,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,kBAAkB,CAAK;IAC/B,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,oBAAoB,CAAK;IAEjC,IAAW,KAAK,IAAI,MAAM,CAEzB;IAED;;;;;OAKG;IACH,IAAW,UAAU,IAAI,MAAM,CAE9B;IAED;;;;;OAKG;IACH,IAAW,iBAAiB,IAAI,MAAM,CAErC;IAED;;;;;OAKG;IACH,IAAW,WAAW,IAAI,MAAM,CAE/B;IAED;;;;OAIG;IACH,IAAW,mBAAmB,IAAI,MAAM,CAEvC;IAED,IAAW,QAAQ,IAAI,MAAM,CAE5B;IAED,IAAW,IAAI,IAAI,YAAY,CAE9B;IAED,IAAW,OAAO,IAAI,MAAM,CAE3B;IAEM,KAAK,CAAC,aAAa,SAAI,GAAG,IAAI;IAe9B,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,MAAM;IAQ5C,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,IAAI;IAsChE;;;;;OAKG;IACI,kBAAkB,IAAI,IAAI;IAMjC;;;;OAIG;IACI,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAOvC,cAAc,CAAC,QAAQ,SAAI,GAAG,4BAA4B;IAmBjE,OAAO,CAAC,eAAe;IAmBvB,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,IAAI;CAGb"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { SceneNode } from '
|
|
2
|
-
import { Matrix } from '
|
|
3
|
-
import { ObservableSize } from '
|
|
4
|
-
import { ObservableVector } from '
|
|
5
|
-
import type { PointLike } from '
|
|
6
|
-
import { Rectangle } from '
|
|
1
|
+
import { SceneNode } from '#core/SceneNode';
|
|
2
|
+
import { Matrix } from '#math/Matrix';
|
|
3
|
+
import { ObservableSize } from '#math/ObservableSize';
|
|
4
|
+
import { ObservableVector } from '#math/ObservableVector';
|
|
5
|
+
import type { PointLike } from '#math/PointLike';
|
|
6
|
+
import { Rectangle } from '#math/Rectangle';
|
|
7
7
|
/**
|
|
8
8
|
* Dirty-flag bits for lazy {@link View} transform and bounds recalculation.
|
|
9
9
|
* @internal
|
|
@@ -190,3 +190,4 @@ export declare class View {
|
|
|
190
190
|
private _applyBoundsConstraint;
|
|
191
191
|
private _updateShake;
|
|
192
192
|
}
|
|
193
|
+
//# sourceMappingURL=View.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"View.d.ts","sourceRoot":"","sources":["../../../src/rendering/View.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { RenderingApplicationOptions } from '#core/Application';
|
|
2
|
+
import type { RendererBinding } from '#extensions/Extension';
|
|
3
|
+
/**
|
|
4
|
+
* Build the core renderer binding array for a given rendering options config.
|
|
5
|
+
* Text and BitmapText share one binding (same renderer class).
|
|
6
|
+
* Particles are in @codexo/exojs-particles, not in Core.
|
|
7
|
+
* @internal
|
|
8
|
+
*/
|
|
9
|
+
export declare function buildCoreRendererBindings(options: RenderingApplicationOptions): RendererBinding[];
|
|
10
|
+
//# sourceMappingURL=coreRendererBindings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coreRendererBindings.d.ts","sourceRoot":"","sources":["../../../src/rendering/coreRendererBindings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAe7D;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,2BAA2B,GAAG,eAAe,EAAE,CAiCjG"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { Mesh } from './mesh/Mesh.js';
|
|
2
|
+
import { Sprite } from './sprite/Sprite.js';
|
|
3
|
+
import { BitmapText } from './text/BitmapText.js';
|
|
4
|
+
import { Text } from './text/Text.js';
|
|
5
|
+
import { WebGl2MeshRenderer } from './webgl2/WebGl2MeshRenderer.js';
|
|
6
|
+
import { WebGl2SpriteRenderer } from './webgl2/WebGl2SpriteRenderer.js';
|
|
7
|
+
import { WebGl2TextRenderer } from './webgl2/WebGl2TextRenderer.js';
|
|
8
|
+
import { WebGpuMeshRenderer } from './webgpu/WebGpuMeshRenderer.js';
|
|
9
|
+
import { WebGpuSpriteRenderer } from './webgpu/WebGpuSpriteRenderer.js';
|
|
10
|
+
import { WebGpuTextRenderer } from './webgpu/WebGpuTextRenderer.js';
|
|
11
|
+
import { RenderBackendType } from './RenderBackendType.js';
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Build the core renderer binding array for a given rendering options config.
|
|
15
|
+
* Text and BitmapText share one binding (same renderer class).
|
|
16
|
+
* Particles are in @codexo/exojs-particles, not in Core.
|
|
17
|
+
* @internal
|
|
18
|
+
*/
|
|
19
|
+
function buildCoreRendererBindings(options) {
|
|
20
|
+
const spriteRendererBatchSize = options.spriteRendererBatchSize ?? 4096;
|
|
21
|
+
const spriteRenderers = {
|
|
22
|
+
[RenderBackendType.WebGl2]: () => new WebGl2SpriteRenderer(spriteRendererBatchSize),
|
|
23
|
+
[RenderBackendType.WebGpu]: () => new WebGpuSpriteRenderer(),
|
|
24
|
+
};
|
|
25
|
+
const meshRenderers = {
|
|
26
|
+
[RenderBackendType.WebGl2]: () => new WebGl2MeshRenderer(),
|
|
27
|
+
[RenderBackendType.WebGpu]: () => new WebGpuMeshRenderer(),
|
|
28
|
+
};
|
|
29
|
+
const textRenderers = {
|
|
30
|
+
[RenderBackendType.WebGl2]: () => new WebGl2TextRenderer(),
|
|
31
|
+
[RenderBackendType.WebGpu]: () => new WebGpuTextRenderer(),
|
|
32
|
+
};
|
|
33
|
+
return [
|
|
34
|
+
{
|
|
35
|
+
targets: [Sprite],
|
|
36
|
+
create: backend => spriteRenderers[backend.backendType]?.(),
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
targets: [Mesh],
|
|
40
|
+
create: backend => meshRenderers[backend.backendType]?.(),
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
// Text and BitmapText share the same renderer class — one multi-target binding.
|
|
44
|
+
targets: [Text, BitmapText],
|
|
45
|
+
create: backend => textRenderers[backend.backendType]?.(),
|
|
46
|
+
},
|
|
47
|
+
];
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export { buildCoreRendererBindings };
|
|
51
|
+
//# sourceMappingURL=coreRendererBindings.js.map
|