@codexo/exojs 0.7.11 → 0.7.13
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 +442 -0
- package/dist/esm/animation/Tween.d.ts +60 -1
- package/dist/esm/animation/Tween.js +60 -1
- package/dist/esm/animation/Tween.js.map +1 -1
- package/dist/esm/animation/TweenManager.d.ts +10 -0
- package/dist/esm/animation/TweenManager.js +10 -0
- package/dist/esm/animation/TweenManager.js.map +1 -1
- package/dist/esm/animation/types.d.ts +15 -0
- package/dist/esm/animation/types.js +6 -0
- package/dist/esm/animation/types.js.map +1 -1
- package/dist/esm/audio/AbstractMedia.d.ts +11 -0
- package/dist/esm/audio/AbstractMedia.js +10 -0
- package/dist/esm/audio/AbstractMedia.js.map +1 -1
- package/dist/esm/audio/AudioAnalyser.d.ts +21 -0
- package/dist/esm/audio/AudioAnalyser.js +16 -0
- package/dist/esm/audio/AudioAnalyser.js.map +1 -1
- package/dist/esm/audio/AudioBus.d.ts +37 -0
- package/dist/esm/audio/AudioBus.js +36 -0
- package/dist/esm/audio/AudioBus.js.map +1 -1
- package/dist/esm/audio/AudioFilter.d.ts +7 -0
- package/dist/esm/audio/AudioFilter.js +6 -0
- package/dist/esm/audio/AudioFilter.js.map +1 -1
- package/dist/esm/audio/AudioListener.d.ts +19 -0
- package/dist/esm/audio/AudioListener.js +11 -0
- package/dist/esm/audio/AudioListener.js.map +1 -1
- package/dist/esm/audio/AudioManager.d.ts +37 -0
- package/dist/esm/audio/AudioManager.js +37 -0
- package/dist/esm/audio/AudioManager.js.map +1 -1
- package/dist/esm/audio/BeatDetector.d.ts +21 -0
- package/dist/esm/audio/BeatDetector.js +21 -0
- package/dist/esm/audio/BeatDetector.js.map +1 -1
- package/dist/esm/audio/Media.d.ts +11 -0
- package/dist/esm/audio/Music.d.ts +12 -0
- package/dist/esm/audio/Music.js +12 -0
- package/dist/esm/audio/Music.js.map +1 -1
- package/dist/esm/audio/Sound.d.ts +25 -0
- package/dist/esm/audio/Sound.js +18 -0
- package/dist/esm/audio/Sound.js.map +1 -1
- package/dist/esm/audio/audio-context.d.ts +48 -0
- package/dist/esm/audio/audio-context.js +48 -5
- package/dist/esm/audio/audio-context.js.map +1 -1
- package/dist/esm/audio/filters/ChorusFilter.d.ts +5 -0
- package/dist/esm/audio/filters/ChorusFilter.js +4 -0
- package/dist/esm/audio/filters/ChorusFilter.js.map +1 -1
- package/dist/esm/audio/filters/CompressorFilter.d.ts +12 -0
- package/dist/esm/audio/filters/CompressorFilter.js +11 -0
- package/dist/esm/audio/filters/CompressorFilter.js.map +1 -1
- package/dist/esm/audio/filters/DelayFilter.d.ts +11 -0
- package/dist/esm/audio/filters/DelayFilter.js +10 -0
- package/dist/esm/audio/filters/DelayFilter.js.map +1 -1
- package/dist/esm/audio/filters/DuckingFilter.d.ts +13 -0
- package/dist/esm/audio/filters/DuckingFilter.js +12 -0
- package/dist/esm/audio/filters/DuckingFilter.js.map +1 -1
- package/dist/esm/audio/filters/EqualizerFilter.d.ts +20 -0
- package/dist/esm/audio/filters/EqualizerFilter.js +40 -0
- package/dist/esm/audio/filters/EqualizerFilter.js.map +1 -1
- package/dist/esm/audio/filters/GranularFilter.d.ts +6 -0
- package/dist/esm/audio/filters/GranularFilter.js +6 -0
- package/dist/esm/audio/filters/GranularFilter.js.map +1 -1
- package/dist/esm/audio/filters/HighpassFilter.d.ts +10 -0
- package/dist/esm/audio/filters/HighpassFilter.js +9 -0
- package/dist/esm/audio/filters/HighpassFilter.js.map +1 -1
- package/dist/esm/audio/filters/LowpassFilter.d.ts +10 -0
- package/dist/esm/audio/filters/LowpassFilter.js +9 -0
- package/dist/esm/audio/filters/LowpassFilter.js.map +1 -1
- package/dist/esm/audio/filters/PitchShiftFilter.d.ts +2 -0
- package/dist/esm/audio/filters/PitchShiftFilter.js +2 -0
- package/dist/esm/audio/filters/PitchShiftFilter.js.map +1 -1
- package/dist/esm/audio/filters/ReverbFilter.d.ts +12 -0
- package/dist/esm/audio/filters/ReverbFilter.js +11 -0
- package/dist/esm/audio/filters/ReverbFilter.js.map +1 -1
- package/dist/esm/audio/filters/VocoderFilter.d.ts +11 -0
- package/dist/esm/audio/filters/VocoderFilter.js +11 -0
- package/dist/esm/audio/filters/VocoderFilter.js.map +1 -1
- package/dist/esm/audio/filters/WorkletFilter.d.ts +6 -1
- package/dist/esm/audio/filters/WorkletFilter.js +6 -1
- package/dist/esm/audio/filters/WorkletFilter.js.map +1 -1
- package/dist/esm/core/Application.d.ts +66 -1
- package/dist/esm/core/Application.js +68 -6
- package/dist/esm/core/Application.js.map +1 -1
- package/dist/esm/core/Bounds.d.ts +23 -0
- package/dist/esm/core/Bounds.js +23 -0
- package/dist/esm/core/Bounds.js.map +1 -1
- package/dist/esm/core/Clock.d.ts +21 -0
- package/dist/esm/core/Clock.js +21 -0
- package/dist/esm/core/Clock.js.map +1 -1
- package/dist/esm/core/Color.d.ts +35 -0
- package/dist/esm/core/Color.js +35 -0
- package/dist/esm/core/Color.js.map +1 -1
- package/dist/esm/core/Scene.d.ts +76 -0
- package/dist/esm/core/Scene.js +83 -0
- package/dist/esm/core/Scene.js.map +1 -1
- package/dist/esm/core/SceneManager.d.ts +62 -0
- package/dist/esm/core/SceneManager.js +51 -2
- package/dist/esm/core/SceneManager.js.map +1 -1
- package/dist/esm/core/SceneNode.d.ts +31 -0
- package/dist/esm/core/SceneNode.js +31 -0
- package/dist/esm/core/SceneNode.js.map +1 -1
- package/dist/esm/core/Signal.d.ts +44 -0
- package/dist/esm/core/Signal.js +39 -0
- package/dist/esm/core/Signal.js.map +1 -1
- package/dist/esm/core/Time.d.ts +21 -0
- package/dist/esm/core/Time.js +21 -0
- package/dist/esm/core/Time.js.map +1 -1
- package/dist/esm/core/Timer.d.ts +7 -0
- package/dist/esm/core/Timer.js +7 -0
- package/dist/esm/core/Timer.js.map +1 -1
- package/dist/esm/core/capabilities.d.ts +12 -0
- package/dist/esm/core/capabilities.js +12 -0
- package/dist/esm/core/capabilities.js.map +1 -1
- package/dist/esm/core/types.d.ts +37 -0
- package/dist/esm/core/utils.d.ts +48 -0
- package/dist/esm/core/utils.js +48 -0
- package/dist/esm/core/utils.js.map +1 -1
- package/dist/esm/debug/BoundingBoxesLayer.d.ts +8 -0
- package/dist/esm/debug/BoundingBoxesLayer.js +8 -0
- package/dist/esm/debug/BoundingBoxesLayer.js.map +1 -1
- package/dist/esm/debug/DebugLayer.d.ts +16 -3
- package/dist/esm/debug/DebugLayer.js +11 -3
- package/dist/esm/debug/DebugLayer.js.map +1 -1
- package/dist/esm/debug/DebugOverlay.d.ts +11 -0
- package/dist/esm/debug/DebugOverlay.js +8 -2
- package/dist/esm/debug/DebugOverlay.js.map +1 -1
- package/dist/esm/debug/HitTestLayer.d.ts +9 -0
- package/dist/esm/debug/HitTestLayer.js +9 -0
- package/dist/esm/debug/HitTestLayer.js.map +1 -1
- package/dist/esm/debug/PerformanceLayer.d.ts +17 -1
- package/dist/esm/debug/PerformanceLayer.js +18 -0
- package/dist/esm/debug/PerformanceLayer.js.map +1 -1
- package/dist/esm/debug/PointerStackLayer.d.ts +8 -0
- package/dist/esm/debug/PointerStackLayer.js +11 -3
- package/dist/esm/debug/PointerStackLayer.js.map +1 -1
- package/dist/esm/index.js +6 -5
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/input/ArcadeStickGamepadMapping.d.ts +7 -0
- package/dist/esm/input/ArcadeStickGamepadMapping.js +25 -19
- package/dist/esm/input/ArcadeStickGamepadMapping.js.map +1 -1
- package/dist/esm/input/GameCubeGamepadMapping.d.ts +9 -0
- package/dist/esm/input/GameCubeGamepadMapping.js +9 -0
- package/dist/esm/input/GameCubeGamepadMapping.js.map +1 -1
- package/dist/esm/input/Gamepad.d.ts +181 -31
- package/dist/esm/input/Gamepad.js +307 -108
- package/dist/esm/input/Gamepad.js.map +1 -1
- package/dist/esm/input/GamepadAxis.d.ts +120 -0
- package/dist/esm/input/GamepadAxis.js +106 -0
- package/dist/esm/input/GamepadAxis.js.map +1 -0
- package/dist/esm/input/GamepadButton.d.ts +110 -0
- package/dist/esm/input/GamepadButton.js +99 -0
- package/dist/esm/input/GamepadButton.js.map +1 -0
- package/dist/esm/input/GamepadDefinitions.d.ts +64 -1
- package/dist/esm/input/GamepadDefinitions.js +44 -1
- package/dist/esm/input/GamepadDefinitions.js.map +1 -1
- package/dist/esm/input/GamepadMapping.d.ts +42 -8
- package/dist/esm/input/GamepadMapping.js +46 -5
- package/dist/esm/input/GamepadMapping.js.map +1 -1
- package/dist/esm/input/GamepadPromptLayouts.d.ts +35 -2
- package/dist/esm/input/GamepadPromptLayouts.js +43 -18
- package/dist/esm/input/GamepadPromptLayouts.js.map +1 -1
- package/dist/esm/input/GenericDualAnalogGamepadMapping.d.ts +13 -0
- package/dist/esm/input/GenericDualAnalogGamepadMapping.js +62 -43
- package/dist/esm/input/GenericDualAnalogGamepadMapping.js.map +1 -1
- package/dist/esm/input/GestureRecognizer.d.ts +11 -2
- package/dist/esm/input/GestureRecognizer.js +11 -2
- package/dist/esm/input/GestureRecognizer.js.map +1 -1
- package/dist/esm/input/InputBinding.d.ts +74 -0
- package/dist/esm/input/InputBinding.js +100 -0
- package/dist/esm/input/InputBinding.js.map +1 -0
- package/dist/esm/input/InputManager.d.ts +100 -21
- package/dist/esm/input/InputManager.js +248 -90
- package/dist/esm/input/InputManager.js.map +1 -1
- package/dist/esm/input/InteractionEvent.d.ts +13 -0
- package/dist/esm/input/InteractionEvent.js +8 -0
- package/dist/esm/input/InteractionEvent.js.map +1 -1
- package/dist/esm/input/InteractionManager.d.ts +34 -5
- package/dist/esm/input/InteractionManager.js +46 -17
- package/dist/esm/input/InteractionManager.js.map +1 -1
- package/dist/esm/input/JoyConLeftGamepadMapping.d.ts +17 -3
- package/dist/esm/input/JoyConLeftGamepadMapping.js +42 -3
- package/dist/esm/input/JoyConLeftGamepadMapping.js.map +1 -1
- package/dist/esm/input/JoyConRightGamepadMapping.d.ts +17 -3
- package/dist/esm/input/JoyConRightGamepadMapping.js +38 -3
- package/dist/esm/input/JoyConRightGamepadMapping.js.map +1 -1
- package/dist/esm/input/PlayStationGamepadMapping.d.ts +8 -0
- package/dist/esm/input/PlayStationGamepadMapping.js +8 -0
- package/dist/esm/input/PlayStationGamepadMapping.js.map +1 -1
- package/dist/esm/input/Pointer.d.ts +106 -71
- package/dist/esm/input/Pointer.js +93 -71
- package/dist/esm/input/Pointer.js.map +1 -1
- package/dist/esm/input/SteamControllerGamepadMapping.d.ts +8 -0
- package/dist/esm/input/SteamControllerGamepadMapping.js +8 -0
- package/dist/esm/input/SteamControllerGamepadMapping.js.map +1 -1
- package/dist/esm/input/SteamDeckGamepadMapping.d.ts +18 -0
- package/dist/esm/input/SteamDeckGamepadMapping.js +76 -0
- package/dist/esm/input/SteamDeckGamepadMapping.js.map +1 -0
- package/dist/esm/input/SwitchProGamepadMapping.d.ts +9 -0
- package/dist/esm/input/SwitchProGamepadMapping.js +9 -0
- package/dist/esm/input/SwitchProGamepadMapping.js.map +1 -1
- package/dist/esm/input/XboxGamepadMapping.d.ts +8 -0
- package/dist/esm/input/XboxGamepadMapping.js +8 -0
- package/dist/esm/input/XboxGamepadMapping.js.map +1 -1
- package/dist/esm/input/index.d.ts +7 -4
- package/dist/esm/input/types.d.ts +17 -73
- package/dist/esm/input/types.js +18 -77
- package/dist/esm/input/types.js.map +1 -1
- package/dist/esm/math/AbstractVector.d.ts +83 -0
- package/dist/esm/math/AbstractVector.js +83 -0
- package/dist/esm/math/AbstractVector.js.map +1 -1
- package/dist/esm/math/Circle.d.ts +32 -0
- package/dist/esm/math/Circle.js +34 -2
- package/dist/esm/math/Circle.js.map +1 -1
- package/dist/esm/math/CircleLike.d.ts +1 -0
- package/dist/esm/math/Collision.d.ts +39 -0
- package/dist/esm/math/Collision.js +5 -0
- package/dist/esm/math/Collision.js.map +1 -1
- package/dist/esm/math/Ellipse.d.ts +11 -0
- package/dist/esm/math/Ellipse.js +18 -2
- package/dist/esm/math/Ellipse.js.map +1 -1
- package/dist/esm/math/EllipseLike.d.ts +3 -0
- package/dist/esm/math/Flags.d.ts +31 -0
- package/dist/esm/math/Flags.js +31 -0
- package/dist/esm/math/Flags.js.map +1 -1
- package/dist/esm/math/Interval.d.ts +15 -0
- package/dist/esm/math/Interval.js +15 -0
- package/dist/esm/math/Interval.js.map +1 -1
- package/dist/esm/math/Line.d.ts +17 -1
- package/dist/esm/math/Line.js +17 -1
- package/dist/esm/math/Line.js.map +1 -1
- package/dist/esm/math/LineLike.d.ts +1 -0
- package/dist/esm/math/Matrix.d.ts +44 -3
- package/dist/esm/math/Matrix.js +44 -3
- package/dist/esm/math/Matrix.js.map +1 -1
- package/dist/esm/math/ObservableSize.d.ts +7 -0
- package/dist/esm/math/ObservableSize.js +7 -0
- package/dist/esm/math/ObservableSize.js.map +1 -1
- package/dist/esm/math/ObservableVector.d.ts +9 -0
- package/dist/esm/math/ObservableVector.js +9 -0
- package/dist/esm/math/ObservableVector.js.map +1 -1
- package/dist/esm/math/PointLike.d.ts +1 -0
- package/dist/esm/math/PolarVector.d.ts +15 -0
- package/dist/esm/math/PolarVector.js +16 -1
- package/dist/esm/math/PolarVector.js.map +1 -1
- package/dist/esm/math/Polygon.d.ts +20 -0
- package/dist/esm/math/Polygon.js +20 -0
- package/dist/esm/math/Polygon.js.map +1 -1
- package/dist/esm/math/PolygonLike.d.ts +4 -0
- package/dist/esm/math/Quadtree.d.ts +40 -3
- package/dist/esm/math/Quadtree.js +39 -3
- package/dist/esm/math/Quadtree.js.map +1 -1
- package/dist/esm/math/Random.d.ts +25 -0
- package/dist/esm/math/Random.js +25 -0
- package/dist/esm/math/Random.js.map +1 -1
- package/dist/esm/math/Rectangle.d.ts +15 -0
- package/dist/esm/math/Rectangle.js +17 -2
- package/dist/esm/math/Rectangle.js.map +1 -1
- package/dist/esm/math/RectangleLike.d.ts +1 -0
- package/dist/esm/math/Segment.d.ts +7 -0
- package/dist/esm/math/Segment.js +7 -0
- package/dist/esm/math/Segment.js.map +1 -1
- package/dist/esm/math/ShapeLike.d.ts +6 -0
- package/dist/esm/math/Size.d.ts +9 -0
- package/dist/esm/math/Size.js +9 -0
- package/dist/esm/math/Size.js.map +1 -1
- package/dist/esm/math/Vector.d.ts +16 -0
- package/dist/esm/math/Vector.js +16 -0
- package/dist/esm/math/Vector.js.map +1 -1
- package/dist/esm/math/collision-detection.d.ts +47 -1
- package/dist/esm/math/collision-detection.js +228 -17
- package/dist/esm/math/collision-detection.js.map +1 -1
- package/dist/esm/math/collision-primitives.d.ts +23 -0
- package/dist/esm/math/collision-primitives.js +23 -0
- package/dist/esm/math/collision-primitives.js.map +1 -1
- package/dist/esm/math/geometry.d.ts +42 -0
- package/dist/esm/math/geometry.js +37 -0
- package/dist/esm/math/geometry.js.map +1 -1
- package/dist/esm/math/utils.d.ts +41 -0
- package/dist/esm/math/utils.js +41 -0
- package/dist/esm/math/utils.js.map +1 -1
- package/dist/esm/particles/Particle.d.ts +37 -0
- package/dist/esm/particles/Particle.js +37 -0
- package/dist/esm/particles/Particle.js.map +1 -1
- package/dist/esm/particles/ParticleProperties.d.ts +15 -0
- package/dist/esm/particles/ParticleSystem.d.ts +69 -0
- package/dist/esm/particles/ParticleSystem.js +69 -0
- package/dist/esm/particles/ParticleSystem.js.map +1 -1
- package/dist/esm/particles/affectors/ColorAffector.d.ts +13 -0
- package/dist/esm/particles/affectors/ColorAffector.js +13 -0
- package/dist/esm/particles/affectors/ColorAffector.js.map +1 -1
- package/dist/esm/particles/affectors/ForceAffector.d.ts +11 -0
- package/dist/esm/particles/affectors/ForceAffector.js +11 -0
- package/dist/esm/particles/affectors/ForceAffector.js.map +1 -1
- package/dist/esm/particles/affectors/ParticleAffector.d.ts +13 -0
- package/dist/esm/particles/affectors/ScaleAffector.d.ts +10 -0
- package/dist/esm/particles/affectors/ScaleAffector.js +10 -0
- package/dist/esm/particles/affectors/ScaleAffector.js.map +1 -1
- package/dist/esm/particles/affectors/TorqueAffector.d.ts +11 -0
- package/dist/esm/particles/affectors/TorqueAffector.js +11 -0
- package/dist/esm/particles/affectors/TorqueAffector.js.map +1 -1
- package/dist/esm/particles/emitters/ParticleEmitter.d.ts +13 -0
- package/dist/esm/particles/emitters/ParticleOptions.d.ts +16 -0
- package/dist/esm/particles/emitters/ParticleOptions.js +16 -0
- package/dist/esm/particles/emitters/ParticleOptions.js.map +1 -1
- package/dist/esm/particles/emitters/UniversalEmitter.d.ts +23 -0
- package/dist/esm/particles/emitters/UniversalEmitter.js +23 -0
- package/dist/esm/particles/emitters/UniversalEmitter.js.map +1 -1
- package/dist/esm/rendering/CallbackRenderPass.d.ts +12 -0
- package/dist/esm/rendering/CallbackRenderPass.js +12 -0
- package/dist/esm/rendering/CallbackRenderPass.js.map +1 -1
- package/dist/esm/rendering/Container.d.ts +43 -0
- package/dist/esm/rendering/Container.js +43 -0
- package/dist/esm/rendering/Container.js.map +1 -1
- package/dist/esm/rendering/Drawable.d.ts +22 -0
- package/dist/esm/rendering/Drawable.js +22 -0
- package/dist/esm/rendering/Drawable.js.map +1 -1
- package/dist/esm/rendering/RenderBackend.d.ts +13 -0
- package/dist/esm/rendering/RenderBackendType.d.ts +4 -0
- package/dist/esm/rendering/RenderBackendType.js +4 -0
- package/dist/esm/rendering/RenderBackendType.js.map +1 -1
- package/dist/esm/rendering/RenderNode.d.ts +18 -0
- package/dist/esm/rendering/RenderNode.js +18 -0
- package/dist/esm/rendering/RenderNode.js.map +1 -1
- package/dist/esm/rendering/RenderPass.d.ts +8 -0
- package/dist/esm/rendering/RenderStats.d.ts +19 -0
- package/dist/esm/rendering/RenderStats.js +7 -0
- package/dist/esm/rendering/RenderStats.js.map +1 -1
- package/dist/esm/rendering/RenderTarget.d.ts +17 -0
- package/dist/esm/rendering/RenderTarget.js +17 -0
- package/dist/esm/rendering/RenderTarget.js.map +1 -1
- package/dist/esm/rendering/RenderTargetPass.d.ts +11 -0
- package/dist/esm/rendering/RenderTargetPass.js +7 -0
- package/dist/esm/rendering/RenderTargetPass.js.map +1 -1
- package/dist/esm/rendering/Renderer.d.ts +15 -0
- package/dist/esm/rendering/RendererRegistry.d.ts +7 -0
- package/dist/esm/rendering/RendererRegistry.js +7 -0
- package/dist/esm/rendering/RendererRegistry.js.map +1 -1
- package/dist/esm/rendering/View.d.ts +67 -2
- package/dist/esm/rendering/View.js +57 -0
- package/dist/esm/rendering/View.js.map +1 -1
- package/dist/esm/rendering/filters/BlurFilter.d.ts +9 -0
- package/dist/esm/rendering/filters/BlurFilter.js +8 -0
- package/dist/esm/rendering/filters/BlurFilter.js.map +1 -1
- package/dist/esm/rendering/filters/ColorFilter.d.ts +7 -0
- package/dist/esm/rendering/filters/ColorFilter.js +7 -0
- package/dist/esm/rendering/filters/ColorFilter.js.map +1 -1
- package/dist/esm/rendering/filters/Filter.d.ts +23 -0
- package/dist/esm/rendering/filters/Filter.js +20 -0
- package/dist/esm/rendering/filters/Filter.js.map +1 -1
- package/dist/esm/rendering/filters/WebGl2ShaderFilter.d.ts +5 -0
- package/dist/esm/rendering/filters/WebGl2ShaderFilter.js +5 -0
- package/dist/esm/rendering/filters/WebGl2ShaderFilter.js.map +1 -1
- package/dist/esm/rendering/filters/WebGpuShaderFilter.d.ts +5 -0
- package/dist/esm/rendering/filters/WebGpuShaderFilter.js +5 -0
- package/dist/esm/rendering/filters/WebGpuShaderFilter.js.map +1 -1
- package/dist/esm/rendering/mesh/Mesh.d.ts +2 -0
- package/dist/esm/rendering/mesh/Mesh.js +2 -0
- package/dist/esm/rendering/mesh/Mesh.js.map +1 -1
- package/dist/esm/rendering/primitives/Graphics.d.ts +34 -0
- package/dist/esm/rendering/primitives/Graphics.js +34 -0
- package/dist/esm/rendering/primitives/Graphics.js.map +1 -1
- package/dist/esm/rendering/shader/Shader.d.ts +36 -0
- package/dist/esm/rendering/shader/Shader.js +26 -0
- package/dist/esm/rendering/shader/Shader.js.map +1 -1
- package/dist/esm/rendering/shader/ShaderAttribute.d.ts +13 -0
- package/dist/esm/rendering/shader/ShaderAttribute.js +13 -0
- package/dist/esm/rendering/shader/ShaderAttribute.js.map +1 -1
- package/dist/esm/rendering/shader/ShaderUniform.d.ts +27 -0
- package/dist/esm/rendering/shader/ShaderUniform.js +28 -1
- package/dist/esm/rendering/shader/ShaderUniform.js.map +1 -1
- package/dist/esm/rendering/sprite/AnimatedSprite.d.ts +38 -0
- package/dist/esm/rendering/sprite/AnimatedSprite.js +36 -0
- package/dist/esm/rendering/sprite/AnimatedSprite.js.map +1 -1
- package/dist/esm/rendering/sprite/Sprite.d.ts +56 -0
- package/dist/esm/rendering/sprite/Sprite.js +56 -0
- package/dist/esm/rendering/sprite/Sprite.js.map +1 -1
- package/dist/esm/rendering/sprite/Spritesheet.d.ts +25 -0
- package/dist/esm/rendering/sprite/Spritesheet.js +20 -0
- package/dist/esm/rendering/sprite/Spritesheet.js.map +1 -1
- package/dist/esm/rendering/text/Text.d.ts +2 -0
- package/dist/esm/rendering/text/Text.js +2 -0
- package/dist/esm/rendering/text/Text.js.map +1 -1
- package/dist/esm/rendering/text/TextStyle.d.ts +29 -0
- package/dist/esm/rendering/text/TextStyle.js +24 -0
- package/dist/esm/rendering/text/TextStyle.js.map +1 -1
- package/dist/esm/rendering/text/types.d.ts +1 -0
- package/dist/esm/rendering/texture/RenderTexture.d.ts +16 -0
- package/dist/esm/rendering/texture/RenderTexture.js +16 -0
- package/dist/esm/rendering/texture/RenderTexture.js.map +1 -1
- package/dist/esm/rendering/texture/Sampler.d.ts +23 -0
- package/dist/esm/rendering/texture/Sampler.js +13 -0
- package/dist/esm/rendering/texture/Sampler.js.map +1 -1
- package/dist/esm/rendering/texture/Texture.d.ts +30 -0
- package/dist/esm/rendering/texture/Texture.js +30 -0
- package/dist/esm/rendering/texture/Texture.js.map +1 -1
- package/dist/esm/rendering/types.d.ts +29 -0
- package/dist/esm/rendering/types.js +29 -0
- package/dist/esm/rendering/types.js.map +1 -1
- package/dist/esm/rendering/utils.d.ts +20 -0
- package/dist/esm/rendering/utils.js +10 -0
- package/dist/esm/rendering/utils.js.map +1 -1
- package/dist/esm/rendering/video/Video.d.ts +35 -1
- package/dist/esm/rendering/video/Video.js +36 -2
- package/dist/esm/rendering/video/Video.js.map +1 -1
- package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.d.ts +7 -0
- package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js +7 -0
- package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts +13 -0
- package/dist/esm/rendering/webgl2/WebGl2Backend.js +13 -0
- package/dist/esm/rendering/webgl2/WebGl2Backend.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.d.ts +8 -0
- package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.js +8 -0
- package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts +35 -0
- package/dist/esm/rendering/webgpu/WebGpuBackend.js +135 -5
- package/dist/esm/rendering/webgpu/WebGpuBackend.js.map +1 -1
- package/dist/esm/resources/AbstractAssetFactory.d.ts +20 -0
- package/dist/esm/resources/AbstractAssetFactory.js +20 -0
- package/dist/esm/resources/AbstractAssetFactory.js.map +1 -1
- package/dist/esm/resources/AssetFactory.d.ts +26 -0
- package/dist/esm/resources/AssetManifest.d.ts +45 -0
- package/dist/esm/resources/AssetManifest.js +25 -0
- package/dist/esm/resources/AssetManifest.js.map +1 -1
- package/dist/esm/resources/CacheFirstStrategy.d.ts +15 -0
- package/dist/esm/resources/CacheFirstStrategy.js +19 -4
- package/dist/esm/resources/CacheFirstStrategy.js.map +1 -1
- package/dist/esm/resources/CacheStore.d.ts +23 -0
- package/dist/esm/resources/CacheStrategy.d.ts +28 -0
- package/dist/esm/resources/Database.d.ts +45 -0
- package/dist/esm/resources/FactoryRegistry.d.ts +28 -0
- package/dist/esm/resources/FactoryRegistry.js +24 -0
- package/dist/esm/resources/FactoryRegistry.js.map +1 -1
- package/dist/esm/resources/IndexedDbDatabase.d.ts +22 -1
- package/dist/esm/resources/IndexedDbDatabase.js +21 -0
- package/dist/esm/resources/IndexedDbDatabase.js.map +1 -1
- package/dist/esm/resources/IndexedDbStore.d.ts +20 -0
- package/dist/esm/resources/IndexedDbStore.js +12 -0
- package/dist/esm/resources/IndexedDbStore.js.map +1 -1
- package/dist/esm/resources/Loader.d.ts +172 -0
- package/dist/esm/resources/Loader.js +129 -37
- package/dist/esm/resources/Loader.js.map +1 -1
- package/dist/esm/resources/NetworkOnlyStrategy.d.ts +11 -0
- package/dist/esm/resources/NetworkOnlyStrategy.js +16 -3
- package/dist/esm/resources/NetworkOnlyStrategy.js.map +1 -1
- package/dist/esm/resources/factories/BinaryFactory.d.ts +13 -0
- package/dist/esm/resources/factories/BinaryFactory.js +13 -0
- package/dist/esm/resources/factories/BinaryFactory.js.map +1 -1
- package/dist/esm/resources/factories/FontFactory.d.ts +37 -0
- package/dist/esm/resources/factories/FontFactory.js +26 -0
- package/dist/esm/resources/factories/FontFactory.js.map +1 -1
- package/dist/esm/resources/factories/ImageFactory.d.ts +26 -2
- package/dist/esm/resources/factories/ImageFactory.js +19 -0
- package/dist/esm/resources/factories/ImageFactory.js.map +1 -1
- package/dist/esm/resources/factories/JsonFactory.d.ts +13 -0
- package/dist/esm/resources/factories/JsonFactory.js +13 -0
- package/dist/esm/resources/factories/JsonFactory.js.map +1 -1
- package/dist/esm/resources/factories/MusicFactory.d.ts +36 -0
- package/dist/esm/resources/factories/MusicFactory.js +44 -4
- package/dist/esm/resources/factories/MusicFactory.js.map +1 -1
- package/dist/esm/resources/factories/SoundFactory.d.ts +29 -0
- package/dist/esm/resources/factories/SoundFactory.js +18 -0
- package/dist/esm/resources/factories/SoundFactory.js.map +1 -1
- package/dist/esm/resources/factories/SvgFactory.d.ts +19 -0
- package/dist/esm/resources/factories/SvgFactory.js +19 -0
- package/dist/esm/resources/factories/SvgFactory.js.map +1 -1
- package/dist/esm/resources/factories/TextFactory.d.ts +11 -0
- package/dist/esm/resources/factories/TextFactory.js +11 -0
- package/dist/esm/resources/factories/TextFactory.js.map +1 -1
- package/dist/esm/resources/factories/TextureFactory.d.ts +27 -2
- package/dist/esm/resources/factories/TextureFactory.js +20 -0
- package/dist/esm/resources/factories/TextureFactory.js.map +1 -1
- package/dist/esm/resources/factories/VideoFactory.d.ts +37 -0
- package/dist/esm/resources/factories/VideoFactory.js +48 -5
- package/dist/esm/resources/factories/VideoFactory.js.map +1 -1
- package/dist/esm/resources/factories/VttFactory.d.ts +18 -0
- package/dist/esm/resources/factories/VttFactory.js +104 -3
- package/dist/esm/resources/factories/VttFactory.js.map +1 -1
- package/dist/esm/resources/factories/WasmFactory.d.ts +16 -0
- package/dist/esm/resources/factories/WasmFactory.js +16 -0
- package/dist/esm/resources/factories/WasmFactory.js.map +1 -1
- package/dist/esm/resources/utils.d.ts +10 -0
- package/dist/esm/resources/utils.js +10 -0
- package/dist/esm/resources/utils.js.map +1 -1
- package/dist/exo.esm.js +4673 -745
- package/dist/exo.esm.js.map +1 -1
- package/package.json +8 -8
- package/dist/esm/input/GamepadChannels.d.ts +0 -39
- package/dist/esm/input/GamepadChannels.js +0 -45
- package/dist/esm/input/GamepadChannels.js.map +0 -1
- package/dist/esm/input/GamepadControl.d.ts +0 -15
- package/dist/esm/input/GamepadControl.js +0 -29
- package/dist/esm/input/GamepadControl.js.map +0 -1
- package/dist/esm/input/Input.d.ts +0 -28
- package/dist/esm/input/Input.js +0 -68
- package/dist/esm/input/Input.js.map +0 -1
|
@@ -3,11 +3,22 @@ import type { View } from './View';
|
|
|
3
3
|
import type { RenderTarget } from './RenderTarget';
|
|
4
4
|
import type { RenderPass } from './RenderPass';
|
|
5
5
|
import type { RenderBackend } from './RenderBackend';
|
|
6
|
+
/** Configuration options for {@link RenderTargetPass}. */
|
|
6
7
|
export interface RenderTargetPassOptions {
|
|
8
|
+
/** Render target to draw into. `null` or omitted redirects output to the default framebuffer. */
|
|
7
9
|
readonly target?: RenderTarget | null;
|
|
10
|
+
/** Camera {@link View} to use while executing this pass. Falls back to the backend's active view when omitted. */
|
|
8
11
|
readonly view?: View | null;
|
|
12
|
+
/** If provided, the target is cleared to this colour before the callback runs. */
|
|
9
13
|
readonly clearColor?: Color;
|
|
10
14
|
}
|
|
15
|
+
/**
|
|
16
|
+
* A {@link RenderPass} that redirects rendering into an off-screen {@link RenderTarget}.
|
|
17
|
+
*
|
|
18
|
+
* Saves the current render target and view before executing the callback, then
|
|
19
|
+
* restores them afterwards — even if the callback throws. This makes it safe to
|
|
20
|
+
* nest passes or use in try/finally chains without manual cleanup.
|
|
21
|
+
*/
|
|
11
22
|
export declare class RenderTargetPass implements RenderPass {
|
|
12
23
|
private readonly _callback;
|
|
13
24
|
private readonly _target;
|
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A {@link RenderPass} that redirects rendering into an off-screen {@link RenderTarget}.
|
|
3
|
+
*
|
|
4
|
+
* Saves the current render target and view before executing the callback, then
|
|
5
|
+
* restores them afterwards — even if the callback throws. This makes it safe to
|
|
6
|
+
* nest passes or use in try/finally chains without manual cleanup.
|
|
7
|
+
*/
|
|
1
8
|
class RenderTargetPass {
|
|
2
9
|
_callback;
|
|
3
10
|
_target;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderTargetPass.js","sources":["../../../../src/rendering/RenderTargetPass.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RenderTargetPass.js","sources":["../../../../src/rendering/RenderTargetPass.ts"],"sourcesContent":[null],"names":[],"mappings":"AAgBA;;;;;;AAMG;MACU,gBAAgB,CAAA;AAER,IAAA,SAAS;AACT,IAAA,OAAO;AACP,IAAA,KAAK;AACL,IAAA,WAAW;IAE5B,WAAA,CACI,QAA0C,EAC1C,OAAA,GAAmC,EAAE,EAAA;AAErC,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI;QACrC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI;QACjC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,UAAU,IAAI,IAAI;IACjD;AAEO,IAAA,OAAO,CAAC,OAAsB,EAAA;AACjC,QAAA,MAAM,cAAc,GAAG,OAAO,CAAC,YAAY;AAC3C,QAAA,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI;AAEjC,QAAA,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC;AACrC,QAAA,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AAE3B,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE;AAC3B,YAAA,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC;QACnC;AAEA,QAAA,IAAI;AACA,YAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;QAC3B;gBAAU;AACN,YAAA,OAAO,CAAC,eAAe,CAAC,cAAc,CAAC;AACvC,YAAA,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC;QACjC;IACJ;AACH;;;;"}
|
|
@@ -1,11 +1,26 @@
|
|
|
1
1
|
import type { RenderBackendType } from './RenderBackendType';
|
|
2
2
|
import type { Drawable } from './Drawable';
|
|
3
3
|
import type { RenderBackend } from './RenderBackend';
|
|
4
|
+
/**
|
|
5
|
+
* Contract for a type-specific GPU renderer.
|
|
6
|
+
*
|
|
7
|
+
* One renderer instance exists per drawable type (e.g. `SpriteRenderer`,
|
|
8
|
+
* `MeshRenderer`). Renderers are registered with {@link RendererRegistry} and
|
|
9
|
+
* resolved at draw time. They manage their own GPU resources and expose a
|
|
10
|
+
* `flush` method to submit batched draw calls.
|
|
11
|
+
*
|
|
12
|
+
* @typeParam Runtime - The concrete {@link RenderBackend} the renderer targets.
|
|
13
|
+
* @typeParam Target - The {@link Drawable} subtype this renderer handles.
|
|
14
|
+
*/
|
|
4
15
|
export interface Renderer<Runtime extends RenderBackend = RenderBackend, Target extends Drawable = Drawable> {
|
|
5
16
|
readonly backendType: RenderBackendType;
|
|
17
|
+
/** Acquire GPU resources from `backend` and prepare for rendering. */
|
|
6
18
|
connect(backend: Runtime): void;
|
|
19
|
+
/** Release all GPU resources held by this renderer. */
|
|
7
20
|
disconnect(): void;
|
|
21
|
+
/** Record a single drawable into the current batch. */
|
|
8
22
|
render(drawable: Target): void;
|
|
23
|
+
/** Submit all batched draw calls to the GPU. */
|
|
9
24
|
flush(): void;
|
|
10
25
|
}
|
|
11
26
|
/**
|
|
@@ -33,6 +33,13 @@ export declare class RendererRegistry<Runtime extends RenderBackend> {
|
|
|
33
33
|
* renderers expose them.
|
|
34
34
|
*/
|
|
35
35
|
renderers(): Iterable<Renderer<Runtime, Drawable>>;
|
|
36
|
+
/**
|
|
37
|
+
* Find the renderer responsible for `drawable`.
|
|
38
|
+
* Walks the prototype chain so subclasses inherit their parent's renderer
|
|
39
|
+
* without requiring an explicit registration.
|
|
40
|
+
*
|
|
41
|
+
* @throws Error if no renderer is found for the drawable's type.
|
|
42
|
+
*/
|
|
36
43
|
resolve(drawable: Drawable): Renderer<Runtime, Drawable>;
|
|
37
44
|
/**
|
|
38
45
|
* Connect all registered renderers to the given backend.
|
|
@@ -42,6 +42,13 @@ class RendererRegistry {
|
|
|
42
42
|
renderers() {
|
|
43
43
|
return this._renderers.values();
|
|
44
44
|
}
|
|
45
|
+
/**
|
|
46
|
+
* Find the renderer responsible for `drawable`.
|
|
47
|
+
* Walks the prototype chain so subclasses inherit their parent's renderer
|
|
48
|
+
* without requiring an explicit registration.
|
|
49
|
+
*
|
|
50
|
+
* @throws Error if no renderer is found for the drawable's type.
|
|
51
|
+
*/
|
|
45
52
|
resolve(drawable) {
|
|
46
53
|
let constructor = drawable.constructor;
|
|
47
54
|
let renderer = undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RendererRegistry.js","sources":["../../../../src/rendering/RendererRegistry.ts"],"sourcesContent":[null],"names":[],"mappings":"AAIA;;;;;;;;;;;;AAYG;MACU,gBAAgB,CAAA;AAER,IAAA,UAAU,GAAG,IAAI,GAAG,EAAoD;IACjF,QAAQ,GAAmB,IAAI;AAEvC;;;;;;;;AAQG;IACI,gBAAgB,CACnB,YAAyC,EACzC,QAAmC,EAAA;QAEnC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;YACnC,MAAM,IAAI,KAAK,CAAC,CAAA,qCAAA,EAAwC,YAAY,CAAC,IAAI,CAAA,CAAA,CAAG,CAAC;QACjF;;;QAIA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,EAAE,QAAuC,CAAC;AAE1E,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE;AACvB,YAAA,QAAwC,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;QACpE;IACJ;AAEA;;;;AAIG;IACI,SAAS,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;IACnC;
|
|
1
|
+
{"version":3,"file":"RendererRegistry.js","sources":["../../../../src/rendering/RendererRegistry.ts"],"sourcesContent":[null],"names":[],"mappings":"AAIA;;;;;;;;;;;;AAYG;MACU,gBAAgB,CAAA;AAER,IAAA,UAAU,GAAG,IAAI,GAAG,EAAoD;IACjF,QAAQ,GAAmB,IAAI;AAEvC;;;;;;;;AAQG;IACI,gBAAgB,CACnB,YAAyC,EACzC,QAAmC,EAAA;QAEnC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;YACnC,MAAM,IAAI,KAAK,CAAC,CAAA,qCAAA,EAAwC,YAAY,CAAC,IAAI,CAAA,CAAA,CAAG,CAAC;QACjF;;;QAIA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,EAAE,QAAuC,CAAC;AAE1E,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE;AACvB,YAAA,QAAwC,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;QACpE;IACJ;AAEA;;;;AAIG;IACI,SAAS,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;IACnC;AAEA;;;;;;AAMG;AACI,IAAA,OAAO,CAAC,QAAkB,EAAA;AAC7B,QAAA,IAAI,WAAW,GAAG,QAAQ,CAAC,WAAyC;QACpE,IAAI,QAAQ,GAA4C,SAAS;AAEjE,QAAA,OAAO,WAAW,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE;YACtC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC;YAE3C,IAAI,CAAC,QAAQ,EAAE;gBACX,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,SAAS,CAAiD;AAE9G,gBAAA,WAAW,GAAG,SAAS,EAAE,WAAW,IAAI,IAAI;YAChD;QACJ;QAEA,IAAI,CAAC,QAAQ,EAAE;YACX,MAAM,IAAI,KAAK,CACX,CAAA,2BAAA,EAA8B,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAA,EAAA;AACrD,kBAAA,2EAA2E,CAChF;QACL;AAEA,QAAA,OAAO,QAAQ;IACnB;AAEA;;AAEG;AACI,IAAA,OAAO,CAAC,OAAgB,EAAA;AAC3B,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO;QAEvB,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE;AAC7C,YAAA,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC;QAC7B;IACJ;AAEA;;AAEG;IACI,UAAU,GAAA;QACb,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE;YAC7C,QAAQ,CAAC,UAAU,EAAE;QACzB;AAEA,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;IACxB;AAEA;;AAEG;IACI,OAAO,GAAA;QACV,IAAI,CAAC,UAAU,EAAE;QAEjB,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE;YAC7C,IAAI,SAAS,IAAI,QAAQ,IAAI,OAAO,QAAQ,CAAC,OAAO,KAAK,UAAU,EAAE;gBAChE,QAA+D,CAAC,OAAO,EAAE;YAC9E;QACJ;AAEA,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;IAC3B;AACH;;;;"}
|
|
@@ -3,6 +3,10 @@ import { Rectangle } from '@/math/Rectangle';
|
|
|
3
3
|
import { Matrix } from '@/math/Matrix';
|
|
4
4
|
import { ObservableSize } from '@/math/ObservableSize';
|
|
5
5
|
import { SceneNode } from '@/core/SceneNode';
|
|
6
|
+
/**
|
|
7
|
+
* Dirty-flag bits for lazy {@link View} transform and bounds recalculation.
|
|
8
|
+
* @internal
|
|
9
|
+
*/
|
|
6
10
|
export declare enum ViewFlags {
|
|
7
11
|
None = 0,
|
|
8
12
|
Translation = 1,
|
|
@@ -15,19 +19,36 @@ export declare enum ViewFlags {
|
|
|
15
19
|
TextureCoords = 64,
|
|
16
20
|
VertexTint = 128
|
|
17
21
|
}
|
|
22
|
+
/** A target that a {@link View} can track — either a {@link SceneNode} or any `{x, y}` position object. */
|
|
18
23
|
export type ViewFollowTarget = SceneNode | {
|
|
19
24
|
x: number;
|
|
20
25
|
y: number;
|
|
21
26
|
} | null;
|
|
27
|
+
/** Options for {@link View.follow}. */
|
|
22
28
|
export interface ViewFollowOptions {
|
|
29
|
+
/** Interpolation factor in [0, 1]. `1` snaps instantly; lower values smooth the camera. Defaults to `1`. */
|
|
23
30
|
lerp?: number;
|
|
31
|
+
/** Horizontal offset in world units applied after following the target. */
|
|
24
32
|
offsetX?: number;
|
|
33
|
+
/** Vertical offset in world units applied after following the target. */
|
|
25
34
|
offsetY?: number;
|
|
26
35
|
}
|
|
36
|
+
/** Options for {@link View.shake}. */
|
|
27
37
|
export interface ViewShakeOptions {
|
|
38
|
+
/** Oscillation frequency in Hz. Higher values produce more rapid shaking. Defaults to `16`. */
|
|
28
39
|
frequency?: number;
|
|
40
|
+
/** When `true` the amplitude decays linearly to zero over the shake duration. Defaults to `true`. */
|
|
29
41
|
decay?: boolean;
|
|
30
42
|
}
|
|
43
|
+
/**
|
|
44
|
+
* 2D camera that defines what region of the world is visible on screen.
|
|
45
|
+
*
|
|
46
|
+
* Maintains a center position, a visible area size, a rotation, and an optional
|
|
47
|
+
* zoom level. Provides lazy-evaluated world-to-clip and clip-to-world transform
|
|
48
|
+
* matrices, a follow-target system for tracking scene nodes, and a procedural
|
|
49
|
+
* screen-shake effect. Call {@link update} once per frame to advance follow and
|
|
50
|
+
* shake animations.
|
|
51
|
+
*/
|
|
31
52
|
export declare class View {
|
|
32
53
|
private readonly _center;
|
|
33
54
|
private readonly _size;
|
|
@@ -69,30 +90,74 @@ export declare class View {
|
|
|
69
90
|
set rotation(rotation: number);
|
|
70
91
|
get viewport(): Rectangle;
|
|
71
92
|
set viewport(viewport: Rectangle);
|
|
93
|
+
/**
|
|
94
|
+
* Monotonically increasing counter incremented whenever the view's transform
|
|
95
|
+
* is invalidated. Backends use this to detect when to re-upload the projection matrix.
|
|
96
|
+
*/
|
|
72
97
|
get updateId(): number;
|
|
73
98
|
get zoomLevel(): number;
|
|
74
99
|
setCenter(x: number, y: number): this;
|
|
100
|
+
/**
|
|
101
|
+
* Resize the view to the given dimensions and reset zoom to `1`.
|
|
102
|
+
* Use this when the canvas or window is resized.
|
|
103
|
+
*/
|
|
75
104
|
resize(width: number, height: number): this;
|
|
76
105
|
setRotation(degrees: number): this;
|
|
77
106
|
move(x: number, y: number): this;
|
|
78
107
|
zoom(factor: number): this;
|
|
108
|
+
/**
|
|
109
|
+
* Set an absolute zoom level.
|
|
110
|
+
* A zoom of `2` halves the visible area; `0.5` doubles it.
|
|
111
|
+
* Values are clamped to a minimum of `0.0001` to prevent division by zero.
|
|
112
|
+
*/
|
|
79
113
|
setZoom(zoom: number): this;
|
|
80
114
|
zoomIn(amount?: number): this;
|
|
81
115
|
zoomOut(amount?: number): this;
|
|
116
|
+
/**
|
|
117
|
+
* Track a scene node or world position each frame.
|
|
118
|
+
* The view center is interpolated towards the target using the `lerp` factor.
|
|
119
|
+
* Call {@link clearFollow} to stop tracking.
|
|
120
|
+
*/
|
|
82
121
|
follow(target: ViewFollowTarget, options?: ViewFollowOptions): this;
|
|
83
122
|
clearFollow(): this;
|
|
123
|
+
/**
|
|
124
|
+
* Constrain the camera center so the visible area never extends outside `bounds`.
|
|
125
|
+
* When the view is larger than the constraint rectangle the camera is clamped to
|
|
126
|
+
* the geometric centre of the rectangle. Pass `null` to remove the constraint.
|
|
127
|
+
*/
|
|
84
128
|
setBounds(bounds: Rectangle | null): this;
|
|
85
129
|
clearBounds(): this;
|
|
130
|
+
/**
|
|
131
|
+
* Start a procedural camera shake effect.
|
|
132
|
+
* The shake applies a sinusoidal offset to the view's center position, then
|
|
133
|
+
* stops automatically when `durationMs` elapses. Call {@link stopShake} to
|
|
134
|
+
* cancel early.
|
|
135
|
+
*
|
|
136
|
+
* @param intensity - Maximum pixel displacement at peak amplitude.
|
|
137
|
+
* @param durationMs - How long the shake lasts in milliseconds.
|
|
138
|
+
*/
|
|
86
139
|
shake(intensity: number, durationMs: number, options?: ViewShakeOptions): this;
|
|
87
140
|
stopShake(): this;
|
|
88
141
|
update(deltaMilliseconds: number): this;
|
|
89
142
|
rotate(degrees: number): this;
|
|
90
143
|
reset(centerX: number, centerY: number, width: number, height: number): this;
|
|
144
|
+
/**
|
|
145
|
+
* Return the cached world-to-clip projection matrix, recalculating it if dirty.
|
|
146
|
+
* The returned matrix is owned by this view — do not store a reference across frames.
|
|
147
|
+
*/
|
|
91
148
|
getTransform(): Matrix;
|
|
92
|
-
updateTransform(): this;
|
|
149
|
+
protected updateTransform(): this;
|
|
150
|
+
/**
|
|
151
|
+
* Return the cached clip-to-world inverse matrix, recalculating it if dirty.
|
|
152
|
+
* Use this to convert screen-space coordinates (e.g. mouse position) to world space.
|
|
153
|
+
*/
|
|
93
154
|
getInverseTransform(): Matrix;
|
|
155
|
+
/**
|
|
156
|
+
* Return the world-space bounding rectangle of the currently visible area, recalculating if dirty.
|
|
157
|
+
* Used for frustum culling by {@link Drawable.render}.
|
|
158
|
+
*/
|
|
94
159
|
getBounds(): Rectangle;
|
|
95
|
-
updateBounds(): this;
|
|
160
|
+
protected updateBounds(): this;
|
|
96
161
|
destroy(): void;
|
|
97
162
|
private _setDirty;
|
|
98
163
|
private _setPositionDirty;
|
|
@@ -7,6 +7,10 @@ import { Bounds } from '../core/Bounds.js';
|
|
|
7
7
|
import { Flags } from '../math/Flags.js';
|
|
8
8
|
import { SceneNode } from '../core/SceneNode.js';
|
|
9
9
|
|
|
10
|
+
/**
|
|
11
|
+
* Dirty-flag bits for lazy {@link View} transform and bounds recalculation.
|
|
12
|
+
* @internal
|
|
13
|
+
*/
|
|
10
14
|
var ViewFlags;
|
|
11
15
|
(function (ViewFlags) {
|
|
12
16
|
ViewFlags[ViewFlags["None"] = 0] = "None";
|
|
@@ -20,6 +24,15 @@ var ViewFlags;
|
|
|
20
24
|
ViewFlags[ViewFlags["TextureCoords"] = 64] = "TextureCoords";
|
|
21
25
|
ViewFlags[ViewFlags["VertexTint"] = 128] = "VertexTint";
|
|
22
26
|
})(ViewFlags || (ViewFlags = {}));
|
|
27
|
+
/**
|
|
28
|
+
* 2D camera that defines what region of the world is visible on screen.
|
|
29
|
+
*
|
|
30
|
+
* Maintains a center position, a visible area size, a rotation, and an optional
|
|
31
|
+
* zoom level. Provides lazy-evaluated world-to-clip and clip-to-world transform
|
|
32
|
+
* matrices, a follow-target system for tracking scene nodes, and a procedural
|
|
33
|
+
* screen-shake effect. Call {@link update} once per frame to advance follow and
|
|
34
|
+
* shake animations.
|
|
35
|
+
*/
|
|
23
36
|
class View {
|
|
24
37
|
_center;
|
|
25
38
|
_size;
|
|
@@ -94,6 +107,10 @@ class View {
|
|
|
94
107
|
this._setDirty();
|
|
95
108
|
}
|
|
96
109
|
}
|
|
110
|
+
/**
|
|
111
|
+
* Monotonically increasing counter incremented whenever the view's transform
|
|
112
|
+
* is invalidated. Backends use this to detect when to re-upload the projection matrix.
|
|
113
|
+
*/
|
|
97
114
|
get updateId() {
|
|
98
115
|
return this._updateId;
|
|
99
116
|
}
|
|
@@ -104,6 +121,10 @@ class View {
|
|
|
104
121
|
this._center.set(x, y);
|
|
105
122
|
return this;
|
|
106
123
|
}
|
|
124
|
+
/**
|
|
125
|
+
* Resize the view to the given dimensions and reset zoom to `1`.
|
|
126
|
+
* Use this when the canvas or window is resized.
|
|
127
|
+
*/
|
|
107
128
|
resize(width, height) {
|
|
108
129
|
this._zoomBaseWidth = width;
|
|
109
130
|
this._zoomBaseHeight = height;
|
|
@@ -127,6 +148,11 @@ class View {
|
|
|
127
148
|
this.resize(this._size.width * factor, this._size.height * factor);
|
|
128
149
|
return this;
|
|
129
150
|
}
|
|
151
|
+
/**
|
|
152
|
+
* Set an absolute zoom level.
|
|
153
|
+
* A zoom of `2` halves the visible area; `0.5` doubles it.
|
|
154
|
+
* Values are clamped to a minimum of `0.0001` to prevent division by zero.
|
|
155
|
+
*/
|
|
130
156
|
setZoom(zoom) {
|
|
131
157
|
const normalizedZoom = Math.max(0.0001, zoom);
|
|
132
158
|
this._zoomLevel = normalizedZoom;
|
|
@@ -139,6 +165,11 @@ class View {
|
|
|
139
165
|
zoomOut(amount = 0.1) {
|
|
140
166
|
return this.setZoom(Math.max(0.0001, this._zoomLevel - amount));
|
|
141
167
|
}
|
|
168
|
+
/**
|
|
169
|
+
* Track a scene node or world position each frame.
|
|
170
|
+
* The view center is interpolated towards the target using the `lerp` factor.
|
|
171
|
+
* Call {@link clearFollow} to stop tracking.
|
|
172
|
+
*/
|
|
142
173
|
follow(target, options = {}) {
|
|
143
174
|
this._followTarget = target;
|
|
144
175
|
this._followLerp = clamp(options.lerp ?? 1, 0, 1);
|
|
@@ -153,6 +184,11 @@ class View {
|
|
|
153
184
|
this._followOffsetY = 0;
|
|
154
185
|
return this;
|
|
155
186
|
}
|
|
187
|
+
/**
|
|
188
|
+
* Constrain the camera center so the visible area never extends outside `bounds`.
|
|
189
|
+
* When the view is larger than the constraint rectangle the camera is clamped to
|
|
190
|
+
* the geometric centre of the rectangle. Pass `null` to remove the constraint.
|
|
191
|
+
*/
|
|
156
192
|
setBounds(bounds) {
|
|
157
193
|
if (bounds === null) {
|
|
158
194
|
if (this._boundsConstraint) {
|
|
@@ -173,6 +209,15 @@ class View {
|
|
|
173
209
|
clearBounds() {
|
|
174
210
|
return this.setBounds(null);
|
|
175
211
|
}
|
|
212
|
+
/**
|
|
213
|
+
* Start a procedural camera shake effect.
|
|
214
|
+
* The shake applies a sinusoidal offset to the view's center position, then
|
|
215
|
+
* stops automatically when `durationMs` elapses. Call {@link stopShake} to
|
|
216
|
+
* cancel early.
|
|
217
|
+
*
|
|
218
|
+
* @param intensity - Maximum pixel displacement at peak amplitude.
|
|
219
|
+
* @param durationMs - How long the shake lasts in milliseconds.
|
|
220
|
+
*/
|
|
176
221
|
shake(intensity, durationMs, options = {}) {
|
|
177
222
|
this._shakeIntensity = Math.max(0, intensity);
|
|
178
223
|
this._shakeDurationMs = Math.max(0, durationMs);
|
|
@@ -220,6 +265,10 @@ class View {
|
|
|
220
265
|
this._flags.push(ViewFlags.Transform);
|
|
221
266
|
return this;
|
|
222
267
|
}
|
|
268
|
+
/**
|
|
269
|
+
* Return the cached world-to-clip projection matrix, recalculating it if dirty.
|
|
270
|
+
* The returned matrix is owned by this view — do not store a reference across frames.
|
|
271
|
+
*/
|
|
223
272
|
getTransform() {
|
|
224
273
|
if (this._flags.has(ViewFlags.Transform)) {
|
|
225
274
|
this.updateTransform();
|
|
@@ -246,6 +295,10 @@ class View {
|
|
|
246
295
|
this._transform.y = (x * -this._transform.c) - (y * this._transform.d) + (-y * centerY);
|
|
247
296
|
return this;
|
|
248
297
|
}
|
|
298
|
+
/**
|
|
299
|
+
* Return the cached clip-to-world inverse matrix, recalculating it if dirty.
|
|
300
|
+
* Use this to convert screen-space coordinates (e.g. mouse position) to world space.
|
|
301
|
+
*/
|
|
249
302
|
getInverseTransform() {
|
|
250
303
|
if (this._flags.has(ViewFlags.TransformInverse)) {
|
|
251
304
|
this.getTransform()
|
|
@@ -254,6 +307,10 @@ class View {
|
|
|
254
307
|
}
|
|
255
308
|
return this._inverseTransform;
|
|
256
309
|
}
|
|
310
|
+
/**
|
|
311
|
+
* Return the world-space bounding rectangle of the currently visible area, recalculating if dirty.
|
|
312
|
+
* Used for frustum culling by {@link Drawable.render}.
|
|
313
|
+
*/
|
|
257
314
|
getBounds() {
|
|
258
315
|
if (this._flags.has(ViewFlags.BoundingBox)) {
|
|
259
316
|
this.updateBounds();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"View.js","sources":["../../../../src/rendering/View.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"View.js","sources":["../../../../src/rendering/View.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,19 @@
|
|
|
1
1
|
import type { RenderTexture } from '@/rendering/texture/RenderTexture';
|
|
2
2
|
import type { RenderBackend } from '@/rendering/RenderBackend';
|
|
3
3
|
import { Filter } from './Filter';
|
|
4
|
+
/** Construction-time options for a {@link BlurFilter}. */
|
|
4
5
|
export interface BlurFilterOptions {
|
|
5
6
|
readonly radius?: number;
|
|
6
7
|
readonly quality?: number;
|
|
7
8
|
}
|
|
9
|
+
/**
|
|
10
|
+
* Box-blur {@link Filter} implemented as multiple additive sprite passes.
|
|
11
|
+
*
|
|
12
|
+
* The blur is approximated by rendering the input texture `quality * 2 + 1`
|
|
13
|
+
* times offset symmetrically along each axis by up to ±`radius` pixels and
|
|
14
|
+
* blending them additively. Higher `quality` values add more samples and
|
|
15
|
+
* produce a smoother result at the cost of additional draw calls.
|
|
16
|
+
*/
|
|
8
17
|
export declare class BlurFilter extends Filter {
|
|
9
18
|
private readonly _sprite;
|
|
10
19
|
private readonly _sampleTint;
|
|
@@ -4,6 +4,14 @@ import { Sprite } from '../sprite/Sprite.js';
|
|
|
4
4
|
import { RenderTargetPass } from '../RenderTargetPass.js';
|
|
5
5
|
import { Filter } from './Filter.js';
|
|
6
6
|
|
|
7
|
+
/**
|
|
8
|
+
* Box-blur {@link Filter} implemented as multiple additive sprite passes.
|
|
9
|
+
*
|
|
10
|
+
* The blur is approximated by rendering the input texture `quality * 2 + 1`
|
|
11
|
+
* times offset symmetrically along each axis by up to ±`radius` pixels and
|
|
12
|
+
* blending them additively. Higher `quality` values add more samples and
|
|
13
|
+
* produce a smoother result at the cost of additional draw calls.
|
|
14
|
+
*/
|
|
7
15
|
class BlurFilter extends Filter {
|
|
8
16
|
_sprite = new Sprite(null);
|
|
9
17
|
_sampleTint = Color.white.clone();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BlurFilter.js","sources":["../../../../../src/rendering/filters/BlurFilter.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"BlurFilter.js","sources":["../../../../../src/rendering/filters/BlurFilter.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,13 @@ import { Color } from '@/core/Color';
|
|
|
2
2
|
import type { RenderTexture } from '@/rendering/texture/RenderTexture';
|
|
3
3
|
import type { RenderBackend } from '@/rendering/RenderBackend';
|
|
4
4
|
import { Filter } from './Filter';
|
|
5
|
+
/**
|
|
6
|
+
* A {@link Filter} that multiplies the input texture by a solid {@link Color}.
|
|
7
|
+
*
|
|
8
|
+
* Useful for tinting, fade-to-black/white, flash effects, and
|
|
9
|
+
* colour-grading passes. The `color` property can be mutated at runtime
|
|
10
|
+
* without recreating the filter.
|
|
11
|
+
*/
|
|
5
12
|
export declare class ColorFilter extends Filter {
|
|
6
13
|
private readonly _color;
|
|
7
14
|
private readonly _sprite;
|
|
@@ -4,6 +4,13 @@ import { Sprite } from '../sprite/Sprite.js';
|
|
|
4
4
|
import { RenderTargetPass } from '../RenderTargetPass.js';
|
|
5
5
|
import { Filter } from './Filter.js';
|
|
6
6
|
|
|
7
|
+
/**
|
|
8
|
+
* A {@link Filter} that multiplies the input texture by a solid {@link Color}.
|
|
9
|
+
*
|
|
10
|
+
* Useful for tinting, fade-to-black/white, flash effects, and
|
|
11
|
+
* colour-grading passes. The `color` property can be mutated at runtime
|
|
12
|
+
* without recreating the filter.
|
|
13
|
+
*/
|
|
7
14
|
class ColorFilter extends Filter {
|
|
8
15
|
_color;
|
|
9
16
|
_sprite = new Sprite(null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColorFilter.js","sources":["../../../../../src/rendering/filters/ColorFilter.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"ColorFilter.js","sources":["../../../../../src/rendering/filters/ColorFilter.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAQA;;;;;;AAMG;AACG,MAAO,WAAY,SAAQ,MAAM,CAAA;AAElB,IAAA,MAAM;AACN,IAAA,OAAO,GAAW,IAAI,MAAM,CAAC,IAAI,CAAC;IAEnD,WAAA,CAAmB,KAAA,GAAe,KAAK,CAAC,KAAK,EAAA;AACzC,QAAA,KAAK,EAAE;AAEP,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE;IAC/B;AAEA,IAAA,IAAW,KAAK,GAAA;QACZ,OAAO,IAAI,CAAC,MAAM;IACtB;AAEO,IAAA,KAAK,CAAC,OAAsB,EAAE,KAAoB,EAAE,MAAqB,EAAA;AAC5E,QAAA,IAAI,CAAC;aACA,UAAU,CAAC,KAAK;AAChB,aAAA,YAAY,CAAC,UAAU,CAAC,MAAM;AAC9B,aAAA,OAAO,CAAC,IAAI,CAAC,MAAM;AACnB,aAAA,WAAW,CAAC,CAAC,EAAE,CAAC;aAChB,WAAW,CAAC,CAAC;AACb,aAAA,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;QAEnB,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK;QACjC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM;AAEnC,QAAA,OAAO,CAAC,OAAO,CAAC,IAAI,gBAAgB,CAChC,MAAK;AACD,YAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;AAChC,QAAA,CAAC,EACD;AACI,YAAA,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,UAAU,EAAE,KAAK,CAAC,gBAAgB;AACrC,SAAA,CACJ,CAAC;IACN;IAEgB,OAAO,GAAA;AACnB,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;AACtB,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;IACzB;AACH;;;;"}
|
|
@@ -1,5 +1,28 @@
|
|
|
1
1
|
import type { RenderTexture } from '@/rendering/texture/RenderTexture';
|
|
2
2
|
import type { RenderBackend } from '@/rendering/RenderBackend';
|
|
3
|
+
/**
|
|
4
|
+
* Abstract base class for post-process filters applied to a drawable's
|
|
5
|
+
* render output.
|
|
6
|
+
*
|
|
7
|
+
* Filters are rendered into a temporary {@link RenderTexture} (the `output`)
|
|
8
|
+
* that is composited back onto the scene after all filters in the chain have
|
|
9
|
+
* been applied. Subclasses implement {@link apply} to run their shader pass.
|
|
10
|
+
* Stock implementations: {@link BlurFilter}, {@link ColorFilter}.
|
|
11
|
+
* User-supplied GLSL/WGSL shaders: {@link WebGl2ShaderFilter},
|
|
12
|
+
* {@link WebGpuShaderFilter}.
|
|
13
|
+
*/
|
|
3
14
|
export declare abstract class Filter {
|
|
15
|
+
/**
|
|
16
|
+
* Execute one filter pass: sample from `input`, write the result to
|
|
17
|
+
* `output`. Both textures are the same dimensions as the filtered drawable's
|
|
18
|
+
* bounding box.
|
|
19
|
+
*/
|
|
4
20
|
abstract apply(backend: RenderBackend, input: RenderTexture, output: RenderTexture): void;
|
|
21
|
+
/**
|
|
22
|
+
* Release any GPU-side resources held by this filter (uniform buffers,
|
|
23
|
+
* pipelines, intermediate textures). Default is a no-op for stateless
|
|
24
|
+
* filters; subclasses with state ({@link BlurFilter}, {@link ColorFilter})
|
|
25
|
+
* override.
|
|
26
|
+
*/
|
|
27
|
+
destroy(): void;
|
|
5
28
|
}
|
|
@@ -1,4 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Abstract base class for post-process filters applied to a drawable's
|
|
3
|
+
* render output.
|
|
4
|
+
*
|
|
5
|
+
* Filters are rendered into a temporary {@link RenderTexture} (the `output`)
|
|
6
|
+
* that is composited back onto the scene after all filters in the chain have
|
|
7
|
+
* been applied. Subclasses implement {@link apply} to run their shader pass.
|
|
8
|
+
* Stock implementations: {@link BlurFilter}, {@link ColorFilter}.
|
|
9
|
+
* User-supplied GLSL/WGSL shaders: {@link WebGl2ShaderFilter},
|
|
10
|
+
* {@link WebGpuShaderFilter}.
|
|
11
|
+
*/
|
|
1
12
|
class Filter {
|
|
13
|
+
/**
|
|
14
|
+
* Release any GPU-side resources held by this filter (uniform buffers,
|
|
15
|
+
* pipelines, intermediate textures). Default is a no-op for stateless
|
|
16
|
+
* filters; subclasses with state ({@link BlurFilter}, {@link ColorFilter})
|
|
17
|
+
* override.
|
|
18
|
+
*/
|
|
19
|
+
destroy() {
|
|
20
|
+
// no-op — subclasses with GPU state override
|
|
21
|
+
}
|
|
2
22
|
}
|
|
3
23
|
|
|
4
24
|
export { Filter };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Filter.js","sources":["../../../../../src/rendering/filters/Filter.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Filter.js","sources":["../../../../../src/rendering/filters/Filter.ts"],"sourcesContent":[null],"names":[],"mappings":"AAGA;;;;;;;;;;AAUG;MACmB,MAAM,CAAA;AAYxB;;;;;AAKG;IACI,OAAO,GAAA;;IAEd;AACH;;;;"}
|
|
@@ -96,6 +96,11 @@ export declare class WebGl2ShaderFilter extends Filter {
|
|
|
96
96
|
private _shader;
|
|
97
97
|
private _connection;
|
|
98
98
|
constructor(options: WebGl2ShaderFilterOptions);
|
|
99
|
+
/**
|
|
100
|
+
* Execute the GLSL shader pass: compile the program on first call, bind
|
|
101
|
+
* uniforms, and render the input texture into `output`. Throws if the
|
|
102
|
+
* active backend is WebGPU — use {@link WebGpuShaderFilter} on WebGPU.
|
|
103
|
+
*/
|
|
99
104
|
apply(backend: RenderBackend, input: RenderTexture, output: RenderTexture): void;
|
|
100
105
|
destroy(): void;
|
|
101
106
|
private _ensureConnected;
|
|
@@ -101,6 +101,11 @@ class WebGl2ShaderFilter extends Filter {
|
|
|
101
101
|
this._vertexSource = options.vertexSource ?? defaultVertexSource;
|
|
102
102
|
this.uniforms = { ...(options.uniforms ?? {}) };
|
|
103
103
|
}
|
|
104
|
+
/**
|
|
105
|
+
* Execute the GLSL shader pass: compile the program on first call, bind
|
|
106
|
+
* uniforms, and render the input texture into `output`. Throws if the
|
|
107
|
+
* active backend is WebGPU — use {@link WebGpuShaderFilter} on WebGPU.
|
|
108
|
+
*/
|
|
104
109
|
apply(backend, input, output) {
|
|
105
110
|
if (backend.backendType === RenderBackendType.WebGpu) {
|
|
106
111
|
throw new Error('WebGl2ShaderFilter requires the WebGL2 backend. Use WebGpuShaderFilter on WebGPU.');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebGl2ShaderFilter.js","sources":["../../../../../src/rendering/filters/WebGl2ShaderFilter.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;;AAyEA;;;AAGG;AACH,MAAM,mBAAmB,GAAG,CAAA;;;;;;;;CAQ3B;AAED;;;;;;;;;AASG;AACH,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC;AAClC,IAAA,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;AACZ,IAAA,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;AACX,IAAA,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACX,IAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACb,CAAA,CAAC;AAEF;AACA,MAAM,YAAY,GAAG,EAAE;AAQvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCG;AACG,MAAO,kBAAmB,SAAQ,MAAM,CAAA;AAE1C;;;;;;AAMG;AACa,IAAA,QAAQ;AAEP,IAAA,eAAe;AACf,IAAA,aAAa;IAEtB,OAAO,GAAkB,IAAI;IAC7B,WAAW,GAA4B,IAAI;AAEnD,IAAA,WAAA,CAAmB,OAAkC,EAAA;AACjD,QAAA,KAAK,EAAE;AAEP,QAAA,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE;AACzB,YAAA,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC;QACzF;AAEA,QAAA,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,KAAK,KAAK;QACjD,IAAI,CAAC,eAAe,GAAG;AACnB,cAAE,4BAA4B,CAAC,OAAO,CAAC,cAAc;AACrD,cAAE,OAAO,CAAC,cAAc;QAC5B,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,YAAY,IAAI,mBAAmB;AAChE,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,IAAI,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE;IACnD;
|
|
1
|
+
{"version":3,"file":"WebGl2ShaderFilter.js","sources":["../../../../../src/rendering/filters/WebGl2ShaderFilter.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|