@codexo/exojs 0.7.11 → 0.7.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +108 -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 +63 -0
- package/dist/esm/core/Application.js +61 -0
- package/dist/esm/core/Application.js.map +1 -1
- package/dist/esm/core/Bounds.d.ts +23 -0
- package/dist/esm/core/Bounds.js +23 -0
- package/dist/esm/core/Bounds.js.map +1 -1
- package/dist/esm/core/Clock.d.ts +21 -0
- package/dist/esm/core/Clock.js +21 -0
- package/dist/esm/core/Clock.js.map +1 -1
- package/dist/esm/core/Color.d.ts +35 -0
- package/dist/esm/core/Color.js +35 -0
- package/dist/esm/core/Color.js.map +1 -1
- package/dist/esm/core/Scene.d.ts +46 -0
- package/dist/esm/core/Scene.js +27 -0
- package/dist/esm/core/Scene.js.map +1 -1
- package/dist/esm/core/SceneManager.d.ts +62 -0
- package/dist/esm/core/SceneManager.js +49 -0
- package/dist/esm/core/SceneManager.js.map +1 -1
- package/dist/esm/core/SceneNode.d.ts +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 +6 -0
- 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 +10 -2
- package/dist/esm/debug/PointerStackLayer.js.map +1 -1
- package/dist/esm/index.js +2 -2
- package/dist/esm/input/ArcadeStickGamepadMapping.d.ts +7 -0
- package/dist/esm/input/ArcadeStickGamepadMapping.js +7 -0
- package/dist/esm/input/ArcadeStickGamepadMapping.js.map +1 -1
- package/dist/esm/input/GameCubeGamepadMapping.d.ts +9 -0
- package/dist/esm/input/GameCubeGamepadMapping.js +9 -0
- package/dist/esm/input/GameCubeGamepadMapping.js.map +1 -1
- package/dist/esm/input/Gamepad.d.ts +48 -0
- package/dist/esm/input/Gamepad.js +43 -0
- package/dist/esm/input/Gamepad.js.map +1 -1
- package/dist/esm/input/GamepadChannels.d.ts +8 -0
- package/dist/esm/input/GamepadChannels.js +8 -0
- package/dist/esm/input/GamepadChannels.js.map +1 -1
- package/dist/esm/input/GamepadControl.d.ts +18 -0
- package/dist/esm/input/GamepadControl.js +13 -0
- package/dist/esm/input/GamepadControl.js.map +1 -1
- package/dist/esm/input/GamepadDefinitions.d.ts +64 -1
- package/dist/esm/input/GamepadDefinitions.js +40 -1
- package/dist/esm/input/GamepadDefinitions.js.map +1 -1
- package/dist/esm/input/GamepadMapping.d.ts +32 -2
- package/dist/esm/input/GamepadMapping.js +24 -0
- package/dist/esm/input/GamepadMapping.js.map +1 -1
- package/dist/esm/input/GamepadPromptLayouts.d.ts +32 -1
- package/dist/esm/input/GamepadPromptLayouts.js +25 -1
- package/dist/esm/input/GamepadPromptLayouts.js.map +1 -1
- package/dist/esm/input/GenericDualAnalogGamepadMapping.d.ts +10 -0
- package/dist/esm/input/GenericDualAnalogGamepadMapping.js +10 -0
- package/dist/esm/input/GenericDualAnalogGamepadMapping.js.map +1 -1
- package/dist/esm/input/GestureRecognizer.d.ts +11 -2
- package/dist/esm/input/GestureRecognizer.js +11 -2
- package/dist/esm/input/GestureRecognizer.js.map +1 -1
- package/dist/esm/input/Input.d.ts +24 -0
- package/dist/esm/input/Input.js +22 -0
- package/dist/esm/input/Input.js.map +1 -1
- package/dist/esm/input/InputManager.d.ts +33 -0
- package/dist/esm/input/InputManager.js +33 -0
- 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 +33 -4
- package/dist/esm/input/InteractionManager.js +33 -4
- package/dist/esm/input/InteractionManager.js.map +1 -1
- package/dist/esm/input/JoyConLeftGamepadMapping.d.ts +9 -0
- package/dist/esm/input/JoyConLeftGamepadMapping.js +9 -0
- package/dist/esm/input/JoyConLeftGamepadMapping.js.map +1 -1
- package/dist/esm/input/JoyConRightGamepadMapping.d.ts +9 -0
- package/dist/esm/input/JoyConRightGamepadMapping.js +9 -0
- package/dist/esm/input/JoyConRightGamepadMapping.js.map +1 -1
- package/dist/esm/input/PlayStationGamepadMapping.d.ts +8 -0
- package/dist/esm/input/PlayStationGamepadMapping.js +8 -0
- package/dist/esm/input/PlayStationGamepadMapping.js.map +1 -1
- package/dist/esm/input/Pointer.d.ts +22 -0
- package/dist/esm/input/Pointer.js +22 -0
- package/dist/esm/input/Pointer.js.map +1 -1
- package/dist/esm/input/SteamControllerGamepadMapping.d.ts +8 -0
- package/dist/esm/input/SteamControllerGamepadMapping.js +8 -0
- package/dist/esm/input/SteamControllerGamepadMapping.js.map +1 -1
- package/dist/esm/input/SwitchProGamepadMapping.d.ts +9 -0
- package/dist/esm/input/SwitchProGamepadMapping.js +9 -0
- package/dist/esm/input/SwitchProGamepadMapping.js.map +1 -1
- package/dist/esm/input/XboxGamepadMapping.d.ts +8 -0
- package/dist/esm/input/XboxGamepadMapping.js +8 -0
- package/dist/esm/input/XboxGamepadMapping.js.map +1 -1
- package/dist/esm/input/types.d.ts +20 -0
- package/dist/esm/input/types.js +20 -0
- package/dist/esm/input/types.js.map +1 -1
- package/dist/esm/math/AbstractVector.d.ts +83 -0
- package/dist/esm/math/AbstractVector.js +83 -0
- package/dist/esm/math/AbstractVector.js.map +1 -1
- package/dist/esm/math/Circle.d.ts +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 +12 -0
- package/dist/esm/resources/CacheFirstStrategy.js +12 -0
- package/dist/esm/resources/CacheFirstStrategy.js.map +1 -1
- package/dist/esm/resources/CacheStore.d.ts +23 -0
- package/dist/esm/resources/CacheStrategy.d.ts +20 -0
- package/dist/esm/resources/Database.d.ts +45 -0
- package/dist/esm/resources/FactoryRegistry.d.ts +28 -0
- package/dist/esm/resources/FactoryRegistry.js +24 -0
- package/dist/esm/resources/FactoryRegistry.js.map +1 -1
- package/dist/esm/resources/IndexedDbDatabase.d.ts +22 -1
- package/dist/esm/resources/IndexedDbDatabase.js +21 -0
- package/dist/esm/resources/IndexedDbDatabase.js.map +1 -1
- package/dist/esm/resources/IndexedDbStore.d.ts +20 -0
- package/dist/esm/resources/IndexedDbStore.js +12 -0
- package/dist/esm/resources/IndexedDbStore.js.map +1 -1
- package/dist/esm/resources/Loader.d.ts +167 -0
- package/dist/esm/resources/Loader.js +110 -0
- package/dist/esm/resources/Loader.js.map +1 -1
- package/dist/esm/resources/NetworkOnlyStrategy.d.ts +8 -0
- package/dist/esm/resources/NetworkOnlyStrategy.js +8 -0
- package/dist/esm/resources/NetworkOnlyStrategy.js.map +1 -1
- package/dist/esm/resources/factories/BinaryFactory.d.ts +13 -0
- package/dist/esm/resources/factories/BinaryFactory.js +13 -0
- package/dist/esm/resources/factories/BinaryFactory.js.map +1 -1
- package/dist/esm/resources/factories/FontFactory.d.ts +37 -0
- package/dist/esm/resources/factories/FontFactory.js +26 -0
- package/dist/esm/resources/factories/FontFactory.js.map +1 -1
- package/dist/esm/resources/factories/ImageFactory.d.ts +24 -0
- package/dist/esm/resources/factories/ImageFactory.js +19 -0
- package/dist/esm/resources/factories/ImageFactory.js.map +1 -1
- package/dist/esm/resources/factories/JsonFactory.d.ts +13 -0
- package/dist/esm/resources/factories/JsonFactory.js +13 -0
- package/dist/esm/resources/factories/JsonFactory.js.map +1 -1
- package/dist/esm/resources/factories/MusicFactory.d.ts +36 -0
- package/dist/esm/resources/factories/MusicFactory.js +44 -4
- package/dist/esm/resources/factories/MusicFactory.js.map +1 -1
- package/dist/esm/resources/factories/SoundFactory.d.ts +29 -0
- package/dist/esm/resources/factories/SoundFactory.js +18 -0
- package/dist/esm/resources/factories/SoundFactory.js.map +1 -1
- package/dist/esm/resources/factories/SvgFactory.d.ts +19 -0
- package/dist/esm/resources/factories/SvgFactory.js +19 -0
- package/dist/esm/resources/factories/SvgFactory.js.map +1 -1
- package/dist/esm/resources/factories/TextFactory.d.ts +11 -0
- package/dist/esm/resources/factories/TextFactory.js +11 -0
- package/dist/esm/resources/factories/TextFactory.js.map +1 -1
- package/dist/esm/resources/factories/TextureFactory.d.ts +25 -0
- package/dist/esm/resources/factories/TextureFactory.js +20 -0
- package/dist/esm/resources/factories/TextureFactory.js.map +1 -1
- package/dist/esm/resources/factories/VideoFactory.d.ts +37 -0
- package/dist/esm/resources/factories/VideoFactory.js +48 -5
- package/dist/esm/resources/factories/VideoFactory.js.map +1 -1
- package/dist/esm/resources/factories/VttFactory.d.ts +18 -0
- package/dist/esm/resources/factories/VttFactory.js +24 -0
- package/dist/esm/resources/factories/VttFactory.js.map +1 -1
- package/dist/esm/resources/factories/WasmFactory.d.ts +16 -0
- package/dist/esm/resources/factories/WasmFactory.js +16 -0
- package/dist/esm/resources/factories/WasmFactory.js.map +1 -1
- package/dist/esm/resources/utils.d.ts +10 -0
- package/dist/esm/resources/utils.js +10 -0
- package/dist/esm/resources/utils.js.map +1 -1
- package/dist/exo.esm.js +3392 -59
- package/dist/exo.esm.js.map +1 -1
- package/package.json +7 -8
|
@@ -4,6 +4,17 @@ import { Size } from '../../math/Size.js';
|
|
|
4
4
|
import { createCanvas } from '../utils.js';
|
|
5
5
|
import { getTextureSourceSize } from '../../core/utils.js';
|
|
6
6
|
|
|
7
|
+
/**
|
|
8
|
+
* A static GPU texture sourced from an image, canvas, or video element.
|
|
9
|
+
*
|
|
10
|
+
* Holds the pixel source and sampling parameters ({@link ScaleModes}, {@link WrapModes},
|
|
11
|
+
* mip generation, alpha premultiplication). A `version` counter is incremented on every
|
|
12
|
+
* mutation so backends can detect stale GPU uploads without polling.
|
|
13
|
+
*
|
|
14
|
+
* Static helpers {@link Texture.black}, {@link Texture.white}, and {@link Texture.empty}
|
|
15
|
+
* provide ready-made placeholder textures. Default sampler options are configurable via
|
|
16
|
+
* {@link Texture.defaultSamplerOptions}.
|
|
17
|
+
*/
|
|
7
18
|
class Texture {
|
|
8
19
|
static _black = null;
|
|
9
20
|
static _white = null;
|
|
@@ -101,12 +112,26 @@ class Texture {
|
|
|
101
112
|
set flipY(flipY) {
|
|
102
113
|
this._flipY = flipY;
|
|
103
114
|
}
|
|
115
|
+
/**
|
|
116
|
+
* Whether both dimensions are powers of two.
|
|
117
|
+
* Non-power-of-two textures may have limited wrap-mode support on some hardware.
|
|
118
|
+
*/
|
|
104
119
|
get powerOfTwo() {
|
|
105
120
|
return isPowerOfTwo(this.width) && isPowerOfTwo(this.height);
|
|
106
121
|
}
|
|
122
|
+
/**
|
|
123
|
+
* Monotonically increasing version counter.
|
|
124
|
+
* Incremented by any mutation that requires a GPU re-upload (source change,
|
|
125
|
+
* size change, or sampler parameter change). Backends compare this value to
|
|
126
|
+
* their cached version to decide whether to re-upload the texture.
|
|
127
|
+
*/
|
|
107
128
|
get version() {
|
|
108
129
|
return this._version;
|
|
109
130
|
}
|
|
131
|
+
/**
|
|
132
|
+
* Register a callback to be invoked just before this texture is destroyed.
|
|
133
|
+
* Useful for backends to release their GPU-side texture objects.
|
|
134
|
+
*/
|
|
110
135
|
addDestroyListener(listener) {
|
|
111
136
|
this._destroyListeners.add(listener);
|
|
112
137
|
return this;
|
|
@@ -143,6 +168,11 @@ class Texture {
|
|
|
143
168
|
}
|
|
144
169
|
return this;
|
|
145
170
|
}
|
|
171
|
+
/**
|
|
172
|
+
* Refresh the size from the current source and bump the version.
|
|
173
|
+
* Call after mutating the source's pixel data in place (e.g. drawing to a canvas)
|
|
174
|
+
* to notify backends that a re-upload is needed.
|
|
175
|
+
*/
|
|
146
176
|
updateSource() {
|
|
147
177
|
const { width, height } = getTextureSourceSize(this._source);
|
|
148
178
|
this.setSize(width, height);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Texture.js","sources":["../../../../../src/rendering/texture/Texture.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"Texture.js","sources":["../../../../../src/rendering/texture/Texture.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAQA;;;;;;;;;;AAUG;MACU,OAAO,CAAA;AACR,IAAA,OAAO,MAAM,GAAmB,IAAI;AACpC,IAAA,OAAO,MAAM,GAAmB,IAAI;IAErC,OAAO,qBAAqB,GAAmB;QAClD,SAAS,EAAE,UAAU,CAAC,MAAM;QAC5B,QAAQ,EAAE,SAAS,CAAC,WAAW;AAC/B,QAAA,gBAAgB,EAAE,IAAI;AACtB,QAAA,cAAc,EAAE,IAAI;AACpB,QAAA,KAAK,EAAE,KAAK;KACf;IAEM,OAAgB,KAAK,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;AAEzC,IAAA,WAAW,KAAK,GAAA;AACnB,QAAA,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,EAAE;AACzB,YAAA,OAAO,CAAC,MAAM,GAAG,IAAI,OAAO,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;QACrE;QAEA,OAAO,OAAO,CAAC,MAAM;IACzB;AAEO,IAAA,WAAW,KAAK,GAAA;AACnB,QAAA,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,EAAE;AACzB,YAAA,OAAO,CAAC,MAAM,GAAG,IAAI,OAAO,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;QACrE;QAEA,OAAO,OAAO,CAAC,MAAM;IACzB;IAEQ,QAAQ,GAAG,CAAC;IACZ,OAAO,GAAkB,IAAI;IAC7B,KAAK,GAAS,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;AACnB,IAAA,iBAAiB,GAAoB,IAAI,GAAG,EAAc;AACnE,IAAA,UAAU;AACV,IAAA,SAAS;IACT,iBAAiB,GAAG,KAAK;IACzB,eAAe,GAAG,KAAK;IACvB,MAAM,GAAG,KAAK;IAEtB,WAAA,CAAmB,MAAA,GAAwB,IAAI,EAAE,OAAiC,EAAA;QAE9E,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,EAAE,cAAc,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,qBAAqB,EAAE,GAAG,OAAO,EAAE;AAEzH,QAAA,IAAI,CAAC,UAAU,GAAG,SAAS;AAC3B,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ;AACzB,QAAA,IAAI,CAAC,iBAAiB,GAAG,gBAAgB;AACzC,QAAA,IAAI,CAAC,eAAe,GAAG,cAAc;AACrC,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AAEnB,QAAA,IAAI,MAAM,KAAK,IAAI,EAAE;AACjB,YAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;QAC1B;IACJ;AAEA,IAAA,IAAW,MAAM,GAAA;QACb,OAAO,IAAI,CAAC,OAAO;IACvB;IAEA,IAAW,MAAM,CAAC,MAAqB,EAAA;AACnC,QAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;IAC1B;AAEA,IAAA,IAAW,IAAI,GAAA;QACX,OAAO,IAAI,CAAC,KAAK;IACrB;IAEA,IAAW,IAAI,CAAC,IAAU,EAAA;QACtB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC;IACzC;AAEA,IAAA,IAAW,KAAK,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK;IAC3B;IAEA,IAAW,KAAK,CAAC,KAAa,EAAA;QAC1B,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC;IACpC;AAEA,IAAA,IAAW,MAAM,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM;IAC5B;IAEA,IAAW,MAAM,CAAC,MAAc,EAAA;QAC5B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC;IACpC;AAEA,IAAA,IAAW,SAAS,GAAA;QAChB,OAAO,IAAI,CAAC,UAAU;IAC1B;IAEA,IAAW,SAAS,CAAC,SAAqB,EAAA;AACtC,QAAA,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;IAChC;AAEA,IAAA,IAAW,QAAQ,GAAA;QACf,OAAO,IAAI,CAAC,SAAS;IACzB;IAEA,IAAW,QAAQ,CAAC,QAAmB,EAAA;AACnC,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;IAC9B;AAEA,IAAA,IAAW,gBAAgB,GAAA;QACvB,OAAO,IAAI,CAAC,iBAAiB;IACjC;IAEA,IAAW,gBAAgB,CAAC,gBAAyB,EAAA;AACjD,QAAA,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC;IAC9C;AAEA,IAAA,IAAW,cAAc,GAAA;QACrB,OAAO,IAAI,CAAC,eAAe;IAC/B;IAEA,IAAW,cAAc,CAAC,cAAuB,EAAA;AAC7C,QAAA,IAAI,CAAC,eAAe,GAAG,cAAc;IACzC;AAEA,IAAA,IAAW,KAAK,GAAA;QACZ,OAAO,IAAI,CAAC,MAAM;IACtB;IAEA,IAAW,KAAK,CAAC,KAAc,EAAA;AAC3B,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;IACvB;AAEA;;;AAGG;AACH,IAAA,IAAW,UAAU,GAAA;AACjB,QAAA,OAAO,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;IAChE;AAEA;;;;;AAKG;AACH,IAAA,IAAW,OAAO,GAAA;QACd,OAAO,IAAI,CAAC,QAAQ;IACxB;AAEA;;;AAGG;AACI,IAAA,kBAAkB,CAAC,QAAoB,EAAA;AAC1C,QAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC;AAEpC,QAAA,OAAO,IAAI;IACf;AAEO,IAAA,qBAAqB,CAAC,QAAoB,EAAA;AAC7C,QAAA,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC;AAEvC,QAAA,OAAO,IAAI;IACf;AAEO,IAAA,YAAY,CAAC,SAAqB,EAAA;AACrC,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE;AAC/B,YAAA,IAAI,CAAC,UAAU,GAAG,SAAS;YAC3B,IAAI,CAAC,MAAM,EAAE;QACjB;AAEA,QAAA,OAAO,IAAI;IACf;AAEO,IAAA,WAAW,CAAC,QAAmB,EAAA;AAClC,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE;AAC7B,YAAA,IAAI,CAAC,SAAS,GAAG,QAAQ;YACzB,IAAI,CAAC,MAAM,EAAE;QACjB;AAEA,QAAA,OAAO,IAAI;IACf;AAEO,IAAA,mBAAmB,CAAC,gBAAyB,EAAA;AAChD,QAAA,IAAI,IAAI,CAAC,iBAAiB,KAAK,gBAAgB,EAAE;AAC7C,YAAA,IAAI,CAAC,iBAAiB,GAAG,gBAAgB;YACzC,IAAI,CAAC,MAAM,EAAE;QACjB;AAEA,QAAA,OAAO,IAAI;IACf;AAEO,IAAA,SAAS,CAAC,MAAqB,EAAA;AAClC,QAAA,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM,EAAE;AACzB,YAAA,IAAI,CAAC,OAAO,GAAG,MAAM;YACrB,IAAI,CAAC,YAAY,EAAE;QACvB;AAEA,QAAA,OAAO,IAAI;IACf;AAEA;;;;AAIG;IACI,YAAY,GAAA;AACf,QAAA,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC;AAE5D,QAAA,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;QAC3B,IAAI,CAAC,MAAM,EAAE;AAEb,QAAA,OAAO,IAAI;IACf;IAEO,OAAO,CAAC,KAAa,EAAE,MAAc,EAAA;AACxC,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE;YACvC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC;YAC7B,IAAI,CAAC,MAAM,EAAE;QACjB;AAEA,QAAA,OAAO,IAAI;IACf;IAEO,OAAO,GAAA;AACV,QAAA,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE;AACvD,YAAA,QAAQ,EAAE;QACd;AAEA,QAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE;AAC9B,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;AACpB,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;IACvB;IAEQ,MAAM,GAAA;QACV,IAAI,CAAC,QAAQ,EAAE;IACnB;;;;;"}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compositing blend modes applied when drawing a {@link Drawable} over the current render target.
|
|
3
|
+
* Values map to backend-specific blend-equation presets.
|
|
4
|
+
*/
|
|
1
5
|
export declare enum BlendModes {
|
|
2
6
|
Normal = 0,
|
|
3
7
|
Additive = 1,
|
|
@@ -5,6 +9,11 @@ export declare enum BlendModes {
|
|
|
5
9
|
Multiply = 3,
|
|
6
10
|
Screen = 4
|
|
7
11
|
}
|
|
12
|
+
/**
|
|
13
|
+
* Texture magnification and minification filter modes.
|
|
14
|
+
* Values are WebGL2 GLenum constants and are passed directly to the GPU sampler.
|
|
15
|
+
* Mipmap variants require {@link Texture.generateMipMap} to be enabled.
|
|
16
|
+
*/
|
|
8
17
|
export declare enum ScaleModes {
|
|
9
18
|
Nearest = 9728,
|
|
10
19
|
Linear = 9729,
|
|
@@ -13,11 +22,19 @@ export declare enum ScaleModes {
|
|
|
13
22
|
NearestMipmapLinear = 9986,
|
|
14
23
|
LinearMipmapLinear = 9987
|
|
15
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* Texture coordinate wrap behaviour when UV values fall outside [0, 1].
|
|
27
|
+
* Values are WebGL2 GLenum constants passed directly to the GPU sampler.
|
|
28
|
+
*/
|
|
16
29
|
export declare enum WrapModes {
|
|
17
30
|
Repeat = 10497,
|
|
18
31
|
ClampToEdge = 33071,
|
|
19
32
|
MirroredRepeat = 33648
|
|
20
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* GPU primitive topology used when issuing draw calls.
|
|
36
|
+
* Values are WebGL2 GLenum constants (e.g. `gl.TRIANGLES`).
|
|
37
|
+
*/
|
|
21
38
|
export declare enum RenderingPrimitives {
|
|
22
39
|
Points = 0,
|
|
23
40
|
Lines = 1,
|
|
@@ -27,6 +44,10 @@ export declare enum RenderingPrimitives {
|
|
|
27
44
|
TriangleStrip = 5,
|
|
28
45
|
TriangleFan = 6
|
|
29
46
|
}
|
|
47
|
+
/**
|
|
48
|
+
* GPU buffer binding targets.
|
|
49
|
+
* Values are WebGL2 GLenum constants used when calling `gl.bindBuffer`.
|
|
50
|
+
*/
|
|
30
51
|
export declare enum BufferTypes {
|
|
31
52
|
ArrayBuffer = 34962,
|
|
32
53
|
ElementArrayBuffer = 34963,
|
|
@@ -37,6 +58,10 @@ export declare enum BufferTypes {
|
|
|
37
58
|
PixelPackBuffer = 35051,
|
|
38
59
|
PixelUnpackBuffer = 35052
|
|
39
60
|
}
|
|
61
|
+
/**
|
|
62
|
+
* Hints describing expected buffer access pattern, allowing the driver to optimise allocation.
|
|
63
|
+
* Values are WebGL2 GLenum constants used when calling `gl.bufferData`.
|
|
64
|
+
*/
|
|
40
65
|
export declare enum BufferUsage {
|
|
41
66
|
StaticDraw = 35044,
|
|
42
67
|
StaticRead = 35045,
|
|
@@ -48,6 +73,10 @@ export declare enum BufferUsage {
|
|
|
48
73
|
StreamRead = 35041,
|
|
49
74
|
StreamCopy = 35042
|
|
50
75
|
}
|
|
76
|
+
/**
|
|
77
|
+
* GLSL primitive type tokens used to describe {@link ShaderAttribute} and {@link ShaderUniform} data types.
|
|
78
|
+
* Values are WebGL2 GLenum constants returned by `gl.getActiveAttrib` / `gl.getActiveUniform`.
|
|
79
|
+
*/
|
|
51
80
|
export declare enum ShaderPrimitives {
|
|
52
81
|
Int = 5124,
|
|
53
82
|
IntVec2 = 35667,
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compositing blend modes applied when drawing a {@link Drawable} over the current render target.
|
|
3
|
+
* Values map to backend-specific blend-equation presets.
|
|
4
|
+
*/
|
|
1
5
|
var BlendModes;
|
|
2
6
|
(function (BlendModes) {
|
|
3
7
|
BlendModes[BlendModes["Normal"] = 0] = "Normal";
|
|
@@ -6,6 +10,11 @@ var BlendModes;
|
|
|
6
10
|
BlendModes[BlendModes["Multiply"] = 3] = "Multiply";
|
|
7
11
|
BlendModes[BlendModes["Screen"] = 4] = "Screen";
|
|
8
12
|
})(BlendModes || (BlendModes = {}));
|
|
13
|
+
/**
|
|
14
|
+
* Texture magnification and minification filter modes.
|
|
15
|
+
* Values are WebGL2 GLenum constants and are passed directly to the GPU sampler.
|
|
16
|
+
* Mipmap variants require {@link Texture.generateMipMap} to be enabled.
|
|
17
|
+
*/
|
|
9
18
|
var ScaleModes;
|
|
10
19
|
(function (ScaleModes) {
|
|
11
20
|
ScaleModes[ScaleModes["Nearest"] = 9728] = "Nearest";
|
|
@@ -15,12 +24,20 @@ var ScaleModes;
|
|
|
15
24
|
ScaleModes[ScaleModes["NearestMipmapLinear"] = 9986] = "NearestMipmapLinear";
|
|
16
25
|
ScaleModes[ScaleModes["LinearMipmapLinear"] = 9987] = "LinearMipmapLinear";
|
|
17
26
|
})(ScaleModes || (ScaleModes = {}));
|
|
27
|
+
/**
|
|
28
|
+
* Texture coordinate wrap behaviour when UV values fall outside [0, 1].
|
|
29
|
+
* Values are WebGL2 GLenum constants passed directly to the GPU sampler.
|
|
30
|
+
*/
|
|
18
31
|
var WrapModes;
|
|
19
32
|
(function (WrapModes) {
|
|
20
33
|
WrapModes[WrapModes["Repeat"] = 10497] = "Repeat";
|
|
21
34
|
WrapModes[WrapModes["ClampToEdge"] = 33071] = "ClampToEdge";
|
|
22
35
|
WrapModes[WrapModes["MirroredRepeat"] = 33648] = "MirroredRepeat";
|
|
23
36
|
})(WrapModes || (WrapModes = {}));
|
|
37
|
+
/**
|
|
38
|
+
* GPU primitive topology used when issuing draw calls.
|
|
39
|
+
* Values are WebGL2 GLenum constants (e.g. `gl.TRIANGLES`).
|
|
40
|
+
*/
|
|
24
41
|
var RenderingPrimitives;
|
|
25
42
|
(function (RenderingPrimitives) {
|
|
26
43
|
RenderingPrimitives[RenderingPrimitives["Points"] = 0] = "Points";
|
|
@@ -31,6 +48,10 @@ var RenderingPrimitives;
|
|
|
31
48
|
RenderingPrimitives[RenderingPrimitives["TriangleStrip"] = 5] = "TriangleStrip";
|
|
32
49
|
RenderingPrimitives[RenderingPrimitives["TriangleFan"] = 6] = "TriangleFan";
|
|
33
50
|
})(RenderingPrimitives || (RenderingPrimitives = {}));
|
|
51
|
+
/**
|
|
52
|
+
* GPU buffer binding targets.
|
|
53
|
+
* Values are WebGL2 GLenum constants used when calling `gl.bindBuffer`.
|
|
54
|
+
*/
|
|
34
55
|
var BufferTypes;
|
|
35
56
|
(function (BufferTypes) {
|
|
36
57
|
BufferTypes[BufferTypes["ArrayBuffer"] = 34962] = "ArrayBuffer";
|
|
@@ -42,6 +63,10 @@ var BufferTypes;
|
|
|
42
63
|
BufferTypes[BufferTypes["PixelPackBuffer"] = 35051] = "PixelPackBuffer";
|
|
43
64
|
BufferTypes[BufferTypes["PixelUnpackBuffer"] = 35052] = "PixelUnpackBuffer";
|
|
44
65
|
})(BufferTypes || (BufferTypes = {}));
|
|
66
|
+
/**
|
|
67
|
+
* Hints describing expected buffer access pattern, allowing the driver to optimise allocation.
|
|
68
|
+
* Values are WebGL2 GLenum constants used when calling `gl.bufferData`.
|
|
69
|
+
*/
|
|
45
70
|
var BufferUsage;
|
|
46
71
|
(function (BufferUsage) {
|
|
47
72
|
BufferUsage[BufferUsage["StaticDraw"] = 35044] = "StaticDraw";
|
|
@@ -54,6 +79,10 @@ var BufferUsage;
|
|
|
54
79
|
BufferUsage[BufferUsage["StreamRead"] = 35041] = "StreamRead";
|
|
55
80
|
BufferUsage[BufferUsage["StreamCopy"] = 35042] = "StreamCopy";
|
|
56
81
|
})(BufferUsage || (BufferUsage = {}));
|
|
82
|
+
/**
|
|
83
|
+
* GLSL primitive type tokens used to describe {@link ShaderAttribute} and {@link ShaderUniform} data types.
|
|
84
|
+
* Values are WebGL2 GLenum constants returned by `gl.getActiveAttrib` / `gl.getActiveUniform`.
|
|
85
|
+
*/
|
|
57
86
|
// @eslint-ignore
|
|
58
87
|
var ShaderPrimitives;
|
|
59
88
|
(function (ShaderPrimitives) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sources":["../../../../src/rendering/types.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sources":["../../../../src/rendering/types.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generate a `Uint16Array` of indices for `size` axis-aligned quads.
|
|
3
|
+
* Each quad is split into two triangles using vertex order `0-1-2, 0-2-3`,
|
|
4
|
+
* producing six indices per quad. Use with an interleaved vertex buffer where
|
|
5
|
+
* every four vertices form one quad.
|
|
6
|
+
*/
|
|
1
7
|
export declare const createQuadIndices: (size: number) => Uint16Array;
|
|
8
|
+
/** Options for {@link createCanvas}. All fields are optional. */
|
|
2
9
|
export interface CreateCanvasOptions {
|
|
10
|
+
/** Existing canvas element to reuse instead of creating a new one. */
|
|
3
11
|
canvas?: HTMLCanvasElement;
|
|
12
|
+
/** 2D fill colour string applied to the entire canvas surface. Defaults to `'#6495ed'`. */
|
|
4
13
|
fillStyle?: string;
|
|
14
|
+
/** Canvas pixel width. Defaults to `10`. */
|
|
5
15
|
width?: number;
|
|
16
|
+
/** Canvas pixel height. Defaults to `10`. */
|
|
6
17
|
height?: number;
|
|
7
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* Create or reuse an `HTMLCanvasElement` filled with a solid colour.
|
|
21
|
+
* Used internally to produce placeholder textures (e.g. {@link Texture.black}, {@link Texture.white}).
|
|
22
|
+
*/
|
|
8
23
|
export declare const createCanvas: (options?: CreateCanvasOptions) => HTMLCanvasElement;
|
|
24
|
+
/**
|
|
25
|
+
* Measure the line height of a CSS font string in pixels.
|
|
26
|
+
* Results are cached by font string so repeated calls for the same font are cheap.
|
|
27
|
+
* Uses a temporary DOM element to derive the true rendered height including leading.
|
|
28
|
+
*/
|
|
9
29
|
export declare const determineFontHeight: (font: string) => number;
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generate a `Uint16Array` of indices for `size` axis-aligned quads.
|
|
3
|
+
* Each quad is split into two triangles using vertex order `0-1-2, 0-2-3`,
|
|
4
|
+
* producing six indices per quad. Use with an interleaved vertex buffer where
|
|
5
|
+
* every four vertices form one quad.
|
|
6
|
+
*/
|
|
1
7
|
const createQuadIndices = (size) => {
|
|
2
8
|
const data = new Uint16Array(size * 6);
|
|
3
9
|
const len = data.length;
|
|
@@ -11,6 +17,10 @@ const createQuadIndices = (size) => {
|
|
|
11
17
|
}
|
|
12
18
|
return data;
|
|
13
19
|
};
|
|
20
|
+
/**
|
|
21
|
+
* Create or reuse an `HTMLCanvasElement` filled with a solid colour.
|
|
22
|
+
* Used internally to produce placeholder textures (e.g. {@link Texture.black}, {@link Texture.white}).
|
|
23
|
+
*/
|
|
14
24
|
const createCanvas = (options = {}) => {
|
|
15
25
|
const { canvas, fillStyle, width, height } = options;
|
|
16
26
|
const newCanvas = canvas ?? document.createElement('canvas');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../../../../src/rendering/utils.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../../src/rendering/utils.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;;;;;AAKG;AACI,MAAM,iBAAiB,GAAG,CAAC,IAAY,KAAiB;IAC3D,MAAM,IAAI,GAAG,IAAI,WAAW,CAAC,IAAI,GAAG,CAAC,CAAC;AACtC,IAAA,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM;IAEvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,IAAI,CAAC,EAAE;AACtD,QAAA,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM;QAChB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC;QACxB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC;AACxB,QAAA,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM;QACpB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC;QACxB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC;IAC5B;AAEA,IAAA,OAAO,IAAI;AACf;AAcA;;;AAGG;MACU,YAAY,GAAG,CAAC,OAAA,GAA+B,EAAE,KAAuB;IACjF,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO;IAEpD,MAAM,SAAS,GAAG,MAAM,IAAI,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;IAC5D,MAAM,OAAO,GAAG,SAAS,CAAC,UAAU,CAAC,IAAI,CAA6B;AAEtE,IAAA,SAAS,CAAC,KAAK,GAAG,KAAK,IAAI,EAAE;AAC7B,IAAA,SAAS,CAAC,MAAM,GAAG,MAAM,IAAI,EAAE;AAE/B,IAAA,OAAO,CAAC,SAAS,GAAG,SAAS,IAAI,SAAS;AAC1C,IAAA,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC;AAEzD,IAAA,OAAO,SAAS;AACpB;;;;"}
|
|
@@ -5,6 +5,16 @@ import type { RenderBackend } from '../RenderBackend';
|
|
|
5
5
|
import type { SamplerOptions } from '../texture/Sampler';
|
|
6
6
|
import type { Media } from '@/audio/Media';
|
|
7
7
|
import type { AudioBus } from '@/audio/AudioBus';
|
|
8
|
+
/**
|
|
9
|
+
* Renders an `HTMLVideoElement` as a live texture on a {@link Sprite}.
|
|
10
|
+
*
|
|
11
|
+
* `Video` wraps a video element, manages playback (play/pause/stop/seek,
|
|
12
|
+
* volume, loop, playback rate), and keeps the underlying {@link Texture}
|
|
13
|
+
* in sync with the decoded video frame stream via
|
|
14
|
+
* `requestVideoFrameCallback` (falling back to `currentTime` polling on
|
|
15
|
+
* browsers that lack it). Audio is routed through the Web Audio API gain
|
|
16
|
+
* node and can be directed to any {@link AudioBus}.
|
|
17
|
+
*/
|
|
8
18
|
export declare class Video extends Sprite implements Media {
|
|
9
19
|
readonly onStart: Signal<[]>;
|
|
10
20
|
readonly onStop: Signal<[]>;
|
|
@@ -25,6 +35,10 @@ export declare class Video extends Sprite implements Media {
|
|
|
25
35
|
constructor(videoElement: HTMLVideoElement, playbackOptions?: Partial<PlaybackOptions>, samplerOptions?: Partial<SamplerOptions>);
|
|
26
36
|
get videoElement(): HTMLVideoElement;
|
|
27
37
|
get duration(): number;
|
|
38
|
+
/**
|
|
39
|
+
* Current playback progress in the range [0, 1), computed as
|
|
40
|
+
* `(currentTime % duration) / duration`. Wraps for looping video.
|
|
41
|
+
*/
|
|
28
42
|
get progress(): number;
|
|
29
43
|
get volume(): number;
|
|
30
44
|
set volume(value: number);
|
|
@@ -40,13 +54,23 @@ export declare class Video extends Sprite implements Media {
|
|
|
40
54
|
set paused(paused: boolean);
|
|
41
55
|
get playing(): boolean;
|
|
42
56
|
set playing(playing: boolean);
|
|
57
|
+
/**
|
|
58
|
+
* The Web Audio `GainNode` for this video's audio stream, or `null` when
|
|
59
|
+
* the audio context has not yet been initialized. Connect an analyser node
|
|
60
|
+
* here for audio-reactive visuals.
|
|
61
|
+
*/
|
|
43
62
|
get analyserTarget(): AudioNode | null;
|
|
44
63
|
get bus(): AudioBus;
|
|
45
64
|
set bus(bus: AudioBus);
|
|
65
|
+
/** Start video playback. Dispatches `onStart` if the video was paused. Applies `options` before playing. */
|
|
46
66
|
play(options?: Partial<PlaybackOptions>): this;
|
|
67
|
+
/** Pause video playback. Dispatches `onStop` if the video was playing. */
|
|
47
68
|
pause(options?: Partial<PlaybackOptions>): this;
|
|
69
|
+
/** Pause and seek to the start of the video. */
|
|
48
70
|
stop(options?: Partial<PlaybackOptions>): this;
|
|
71
|
+
/** Toggle between play and pause. */
|
|
49
72
|
toggle(options?: Partial<PlaybackOptions>): this;
|
|
73
|
+
/** Apply a partial set of playback options (volume, loop, playbackRate, time, muted) to the video element. */
|
|
50
74
|
applyOptions(options?: Partial<PlaybackOptions>): this;
|
|
51
75
|
setVolume(value: number): this;
|
|
52
76
|
setLoop(loop: boolean): this;
|
|
@@ -54,7 +78,17 @@ export declare class Video extends Sprite implements Media {
|
|
|
54
78
|
getTime(): number;
|
|
55
79
|
setTime(time: number): this;
|
|
56
80
|
setMuted(muted: boolean): this;
|
|
81
|
+
/**
|
|
82
|
+
* Mark the texture dirty when the video frame has advanced, then upload
|
|
83
|
+
* the latest video frame and delegate rendering to {@link Sprite.render}.
|
|
84
|
+
* @internal
|
|
85
|
+
*/
|
|
57
86
|
render(backend: RenderBackend): this;
|
|
87
|
+
/**
|
|
88
|
+
* Upload the current video frame to the GPU texture if the frame is dirty
|
|
89
|
+
* and the video dimensions are known. Called automatically by `render`;
|
|
90
|
+
* also safe to call manually when the video is paused on a specific frame.
|
|
91
|
+
*/
|
|
58
92
|
updateTexture(): this;
|
|
59
93
|
destroy(): void;
|
|
60
94
|
private _onVideoMetadataUpdated;
|
|
@@ -62,5 +96,5 @@ export declare class Video extends Sprite implements Media {
|
|
|
62
96
|
private _markTextureDirtyIfPlaybackAdvanced;
|
|
63
97
|
private _requestVideoFrameCallback;
|
|
64
98
|
private _cancelVideoFrameCallback;
|
|
65
|
-
private setupWithAudioContext;
|
|
99
|
+
private readonly setupWithAudioContext;
|
|
66
100
|
}
|
|
@@ -6,6 +6,16 @@ import { isAudioContextReady, getAudioContext, onAudioContextReady } from '../..
|
|
|
6
6
|
import { getAudioManager } from '../../audio/AudioManager.js';
|
|
7
7
|
import { Rectangle } from '../../math/Rectangle.js';
|
|
8
8
|
|
|
9
|
+
/**
|
|
10
|
+
* Renders an `HTMLVideoElement` as a live texture on a {@link Sprite}.
|
|
11
|
+
*
|
|
12
|
+
* `Video` wraps a video element, manages playback (play/pause/stop/seek,
|
|
13
|
+
* volume, loop, playback rate), and keeps the underlying {@link Texture}
|
|
14
|
+
* in sync with the decoded video frame stream via
|
|
15
|
+
* `requestVideoFrameCallback` (falling back to `currentTime` polling on
|
|
16
|
+
* browsers that lack it). Audio is routed through the Web Audio API gain
|
|
17
|
+
* node and can be directed to any {@link AudioBus}.
|
|
18
|
+
*/
|
|
9
19
|
class Video extends Sprite {
|
|
10
20
|
onStart = new Signal();
|
|
11
21
|
onStop = new Signal();
|
|
@@ -58,6 +68,10 @@ class Video extends Sprite {
|
|
|
58
68
|
get duration() {
|
|
59
69
|
return this._duration;
|
|
60
70
|
}
|
|
71
|
+
/**
|
|
72
|
+
* Current playback progress in the range [0, 1), computed as
|
|
73
|
+
* `(currentTime % duration) / duration`. Wraps for looping video.
|
|
74
|
+
*/
|
|
61
75
|
get progress() {
|
|
62
76
|
const elapsed = this.currentTime, duration = this.duration;
|
|
63
77
|
return ((elapsed % duration) / duration);
|
|
@@ -114,6 +128,11 @@ class Video extends Sprite {
|
|
|
114
128
|
this.pause();
|
|
115
129
|
}
|
|
116
130
|
}
|
|
131
|
+
/**
|
|
132
|
+
* The Web Audio `GainNode` for this video's audio stream, or `null` when
|
|
133
|
+
* the audio context has not yet been initialized. Connect an analyser node
|
|
134
|
+
* here for audio-reactive visuals.
|
|
135
|
+
*/
|
|
117
136
|
get analyserTarget() {
|
|
118
137
|
return this._audioSetup?.gainNode ?? null;
|
|
119
138
|
}
|
|
@@ -137,6 +156,7 @@ class Video extends Sprite {
|
|
|
137
156
|
}
|
|
138
157
|
}
|
|
139
158
|
}
|
|
159
|
+
/** Start video playback. Dispatches `onStart` if the video was paused. Applies `options` before playing. */
|
|
140
160
|
play(options) {
|
|
141
161
|
if (options) {
|
|
142
162
|
this.applyOptions(options);
|
|
@@ -147,6 +167,7 @@ class Video extends Sprite {
|
|
|
147
167
|
}
|
|
148
168
|
return this;
|
|
149
169
|
}
|
|
170
|
+
/** Pause video playback. Dispatches `onStop` if the video was playing. */
|
|
150
171
|
pause(options) {
|
|
151
172
|
if (options) {
|
|
152
173
|
this.applyOptions(options);
|
|
@@ -157,14 +178,17 @@ class Video extends Sprite {
|
|
|
157
178
|
}
|
|
158
179
|
return this;
|
|
159
180
|
}
|
|
181
|
+
/** Pause and seek to the start of the video. */
|
|
160
182
|
stop(options) {
|
|
161
183
|
this.pause(options);
|
|
162
184
|
this.currentTime = 0;
|
|
163
185
|
return this;
|
|
164
186
|
}
|
|
187
|
+
/** Toggle between play and pause. */
|
|
165
188
|
toggle(options) {
|
|
166
189
|
return this.paused ? this.play(options) : this.pause(options);
|
|
167
190
|
}
|
|
191
|
+
/** Apply a partial set of playback options (volume, loop, playbackRate, time, muted) to the video element. */
|
|
168
192
|
applyOptions(options = {}) {
|
|
169
193
|
const { volume, loop, playbackRate, time, muted } = options;
|
|
170
194
|
if (volume !== undefined) {
|
|
@@ -228,6 +252,11 @@ class Video extends Sprite {
|
|
|
228
252
|
}
|
|
229
253
|
return this;
|
|
230
254
|
}
|
|
255
|
+
/**
|
|
256
|
+
* Mark the texture dirty when the video frame has advanced, then upload
|
|
257
|
+
* the latest video frame and delegate rendering to {@link Sprite.render}.
|
|
258
|
+
* @internal
|
|
259
|
+
*/
|
|
231
260
|
render(backend) {
|
|
232
261
|
if (this.visible) {
|
|
233
262
|
this._markTextureDirtyIfPlaybackAdvanced();
|
|
@@ -236,6 +265,11 @@ class Video extends Sprite {
|
|
|
236
265
|
}
|
|
237
266
|
return this;
|
|
238
267
|
}
|
|
268
|
+
/**
|
|
269
|
+
* Upload the current video frame to the GPU texture if the frame is dirty
|
|
270
|
+
* and the video dimensions are known. Called automatically by `render`;
|
|
271
|
+
* also safe to call manually when the video is paused on a specific frame.
|
|
272
|
+
*/
|
|
239
273
|
updateTexture() {
|
|
240
274
|
const texture = this.texture;
|
|
241
275
|
if (!texture || !this._videoElement) {
|
|
@@ -301,7 +335,7 @@ class Video extends Sprite {
|
|
|
301
335
|
frameCallbackVideo.cancelVideoFrameCallback(this._videoFrameCallbackHandle);
|
|
302
336
|
this._videoFrameCallbackHandle = null;
|
|
303
337
|
}
|
|
304
|
-
setupWithAudioContext(audioContext) {
|
|
338
|
+
setupWithAudioContext = (audioContext) => {
|
|
305
339
|
const gainNode = audioContext.createGain();
|
|
306
340
|
gainNode.gain.setTargetAtTime(this.muted ? 0 : this.volume, audioContext.currentTime, 0.01);
|
|
307
341
|
const inputNode = this.bus._getInputNode();
|
|
@@ -314,7 +348,7 @@ class Video extends Sprite {
|
|
|
314
348
|
const sourceNode = audioContext.createMediaElementSource(this._videoElement);
|
|
315
349
|
sourceNode.connect(gainNode);
|
|
316
350
|
this._audioSetup = { audioContext, gainNode, sourceNode };
|
|
317
|
-
}
|
|
351
|
+
};
|
|
318
352
|
}
|
|
319
353
|
|
|
320
354
|
export { Video };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Video.js","sources":["../../../../../src/rendering/video/Video.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;
|
|
1
|
+
{"version":3,"file":"Video.js","sources":["../../../../../src/rendering/video/Video.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,13 @@ interface RendererConnection {
|
|
|
17
17
|
readonly buffers: Map<WebGl2RenderBuffer, ManagedBufferState>;
|
|
18
18
|
readonly vaoHandle: WebGLVertexArrayObject;
|
|
19
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* Specialization of {@link AbstractWebGl2Renderer} for renderers that
|
|
22
|
+
* batch many drawables of the same type into one or two GPU draw calls
|
|
23
|
+
* (sprite batches, particle batches). Subclasses fill the shared vertex
|
|
24
|
+
* + index buffers and call `flush()` either when the buffer is full or
|
|
25
|
+
* when the active batched renderer changes.
|
|
26
|
+
*/
|
|
20
27
|
export declare abstract class AbstractWebGl2BatchedRenderer extends AbstractWebGl2Renderer<Drawable> {
|
|
21
28
|
protected readonly attributeCount: number;
|
|
22
29
|
protected readonly batchSize: number;
|
|
@@ -5,6 +5,13 @@ import { WebGl2RenderBuffer } from './WebGl2RenderBuffer.js';
|
|
|
5
5
|
import { createQuadIndices } from '../utils.js';
|
|
6
6
|
import { BufferTypes, BufferUsage } from '../types.js';
|
|
7
7
|
|
|
8
|
+
/**
|
|
9
|
+
* Specialization of {@link AbstractWebGl2Renderer} for renderers that
|
|
10
|
+
* batch many drawables of the same type into one or two GPU draw calls
|
|
11
|
+
* (sprite batches, particle batches). Subclasses fill the shared vertex
|
|
12
|
+
* + index buffers and call `flush()` either when the buffer is full or
|
|
13
|
+
* when the active batched renderer changes.
|
|
14
|
+
*/
|
|
8
15
|
class AbstractWebGl2BatchedRenderer extends AbstractWebGl2Renderer {
|
|
9
16
|
attributeCount;
|
|
10
17
|
batchSize;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractWebGl2BatchedRenderer.js","sources":["../../../../../src/rendering/webgl2/AbstractWebGl2BatchedRenderer.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;
|
|
1
|
+
{"version":3,"file":"AbstractWebGl2BatchedRenderer.js","sources":["../../../../../src/rendering/webgl2/AbstractWebGl2BatchedRenderer.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,19 @@ import type { WebGl2VertexArrayObject } from './WebGl2VertexArrayObject';
|
|
|
15
15
|
import type { View } from '../View';
|
|
16
16
|
import type { Application } from '@/core/Application';
|
|
17
17
|
import type { RenderStats } from '../RenderStats';
|
|
18
|
+
/**
|
|
19
|
+
* WebGL 2.0 implementation of {@link RenderBackend}. Manages the GL
|
|
20
|
+
* context, texture and framebuffer caches keyed by user-side
|
|
21
|
+
* {@link Texture}/{@link RenderTexture} identity, the active VAO, shader
|
|
22
|
+
* program, blend mode, and scissor stack. Dispatches to per-drawable
|
|
23
|
+
* renderers ({@link WebGl2SpriteRenderer}, {@link WebGl2MeshRenderer},
|
|
24
|
+
* {@link WebGl2ParticleRenderer}) registered in the {@link RendererRegistry}.
|
|
25
|
+
*
|
|
26
|
+
* Emits {@link WebGl2Backend.onContextLost} / {@link WebGl2Backend.onContextRestored}
|
|
27
|
+
* Signals when the browser loses or regains the GL context. The browser
|
|
28
|
+
* recreates the context automatically; renderers reconnect their
|
|
29
|
+
* GPU-side state as needed on the next draw.
|
|
30
|
+
*/
|
|
18
31
|
export declare class WebGl2Backend implements RenderBackend {
|
|
19
32
|
readonly backendType = RenderBackendType.WebGl2;
|
|
20
33
|
readonly rendererRegistry: RendererRegistry<WebGl2Backend>;
|