@codexo/exojs 0.12.0 → 0.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +258 -6
- package/README.md +80 -63
- package/dist/esm/animation/Tween.js +1 -1
- package/dist/esm/animation/Tween.js.map +1 -1
- package/dist/esm/animation/TweenManager.d.ts +9 -5
- package/dist/esm/animation/TweenManager.d.ts.map +1 -1
- package/dist/esm/animation/TweenManager.js +14 -8
- package/dist/esm/animation/TweenManager.js.map +1 -1
- package/dist/esm/animation/index.d.ts +6 -4
- package/dist/esm/animation/index.d.ts.map +1 -1
- package/dist/esm/audio/AudioBus.d.ts +12 -12
- package/dist/esm/audio/AudioBus.js +29 -29
- package/dist/esm/audio/AudioEffect.d.ts +18 -0
- package/dist/esm/audio/AudioEffect.d.ts.map +1 -0
- package/dist/esm/audio/AudioEffect.js +16 -0
- package/dist/esm/audio/AudioEffect.js.map +1 -0
- package/dist/esm/audio/AudioGenerator.d.ts +91 -0
- package/dist/esm/audio/AudioGenerator.d.ts.map +1 -0
- package/dist/esm/audio/AudioGenerator.js +165 -0
- package/dist/esm/audio/AudioGenerator.js.map +1 -0
- package/dist/esm/audio/AudioGeneratorVoice.d.ts +52 -0
- package/dist/esm/audio/AudioGeneratorVoice.d.ts.map +1 -0
- package/dist/esm/audio/AudioGeneratorVoice.js +141 -0
- package/dist/esm/audio/AudioGeneratorVoice.js.map +1 -0
- package/dist/esm/audio/AudioInput.d.ts +39 -0
- package/dist/esm/audio/AudioInput.d.ts.map +1 -0
- package/dist/esm/audio/AudioInput.js +53 -0
- package/dist/esm/audio/AudioInput.js.map +1 -0
- package/dist/esm/audio/AudioManager.d.ts +72 -34
- package/dist/esm/audio/AudioManager.d.ts.map +1 -1
- package/dist/esm/audio/AudioManager.js +97 -51
- package/dist/esm/audio/AudioManager.js.map +1 -1
- package/dist/esm/audio/AudioStream.d.ts +49 -0
- package/dist/esm/audio/AudioStream.d.ts.map +1 -0
- package/dist/esm/audio/AudioStream.js +109 -0
- package/dist/esm/audio/AudioStream.js.map +1 -0
- package/dist/esm/audio/AudioStreamVoice.d.ts +61 -0
- package/dist/esm/audio/AudioStreamVoice.d.ts.map +1 -0
- package/dist/esm/audio/AudioStreamVoice.js +137 -0
- package/dist/esm/audio/AudioStreamVoice.js.map +1 -0
- package/dist/esm/audio/BaseVoice.d.ts +111 -0
- package/dist/esm/audio/BaseVoice.d.ts.map +1 -0
- package/dist/esm/audio/BaseVoice.js +298 -0
- package/dist/esm/audio/BaseVoice.js.map +1 -0
- package/dist/esm/audio/BiquadEffect.d.ts +53 -0
- package/dist/esm/audio/BiquadEffect.d.ts.map +1 -0
- package/dist/esm/audio/BiquadEffect.js +110 -0
- package/dist/esm/audio/BiquadEffect.js.map +1 -0
- package/dist/esm/audio/InputVoice.d.ts +41 -0
- package/dist/esm/audio/InputVoice.d.ts.map +1 -0
- package/dist/esm/audio/InputVoice.js +85 -0
- package/dist/esm/audio/InputVoice.js.map +1 -0
- package/dist/esm/audio/NoopVoice.d.ts +29 -0
- package/dist/esm/audio/NoopVoice.d.ts.map +1 -0
- package/dist/esm/audio/NoopVoice.js +52 -0
- package/dist/esm/audio/NoopVoice.js.map +1 -0
- package/dist/esm/audio/Playable.d.ts +135 -0
- package/dist/esm/audio/Playable.d.ts.map +1 -0
- package/dist/esm/audio/Sound.d.ts +64 -69
- package/dist/esm/audio/Sound.d.ts.map +1 -1
- package/dist/esm/audio/Sound.js +176 -377
- package/dist/esm/audio/Sound.js.map +1 -1
- package/dist/esm/audio/SoundVoice.d.ts +63 -0
- package/dist/esm/audio/SoundVoice.d.ts.map +1 -0
- package/dist/esm/audio/SoundVoice.js +168 -0
- package/dist/esm/audio/SoundVoice.js.map +1 -0
- package/dist/esm/audio/{filters/WorkletFilter.d.ts → WorkletEffect.d.ts} +3 -3
- package/dist/esm/audio/WorkletEffect.d.ts.map +1 -0
- package/dist/esm/audio/{filters/WorkletFilter.js → WorkletEffect.js} +6 -6
- package/dist/esm/audio/WorkletEffect.js.map +1 -0
- package/dist/esm/audio/audio-context.js +1 -1
- package/dist/esm/audio/audio-context.js.map +1 -1
- package/dist/esm/audio/crossFade.d.ts +22 -13
- package/dist/esm/audio/crossFade.d.ts.map +1 -1
- package/dist/esm/audio/crossFade.js +21 -13
- package/dist/esm/audio/crossFade.js.map +1 -1
- package/dist/esm/audio/filters/HighpassFilter.d.ts +2 -2
- package/dist/esm/audio/filters/HighpassFilter.js +2 -2
- package/dist/esm/audio/filters/LowpassFilter.d.ts +2 -2
- package/dist/esm/audio/filters/LowpassFilter.js +2 -2
- package/dist/esm/audio/filters/index.d.ts +0 -10
- package/dist/esm/audio/filters/index.d.ts.map +1 -1
- package/dist/esm/audio/index.d.ts +13 -15
- package/dist/esm/audio/index.d.ts.map +1 -1
- package/dist/esm/core/Application.d.ts +127 -10
- package/dist/esm/core/Application.d.ts.map +1 -1
- package/dist/esm/core/Application.js +226 -25
- package/dist/esm/core/Application.js.map +1 -1
- package/dist/esm/core/BuildInfo.js +2 -2
- package/dist/esm/core/Color.d.ts +6 -4
- package/dist/esm/core/Color.d.ts.map +1 -1
- package/dist/esm/core/Color.js +19 -15
- package/dist/esm/core/Color.js.map +1 -1
- package/dist/esm/core/DisposalScope.d.ts +50 -0
- package/dist/esm/core/DisposalScope.d.ts.map +1 -0
- package/dist/esm/core/DisposalScope.js +86 -0
- package/dist/esm/core/DisposalScope.js.map +1 -0
- package/dist/esm/core/Perf.d.ts +10 -22
- package/dist/esm/core/Perf.d.ts.map +1 -1
- package/dist/esm/core/Perf.js +15 -8
- package/dist/esm/core/Perf.js.map +1 -1
- package/dist/esm/core/Registry.d.ts +64 -0
- package/dist/esm/core/Registry.d.ts.map +1 -0
- package/dist/esm/core/Registry.js +79 -0
- package/dist/esm/core/Registry.js.map +1 -0
- package/dist/esm/core/Scene.d.ts +69 -21
- package/dist/esm/core/Scene.d.ts.map +1 -1
- package/dist/esm/core/Scene.js +109 -16
- package/dist/esm/core/Scene.js.map +1 -1
- package/dist/esm/core/SceneManager.d.ts +22 -60
- package/dist/esm/core/SceneManager.d.ts.map +1 -1
- package/dist/esm/core/SceneManager.js +68 -153
- package/dist/esm/core/SceneManager.js.map +1 -1
- package/dist/esm/core/SceneNode.d.ts +43 -2
- package/dist/esm/core/SceneNode.d.ts.map +1 -1
- package/dist/esm/core/SceneNode.js +101 -12
- package/dist/esm/core/SceneNode.js.map +1 -1
- package/dist/esm/core/Signal.js.map +1 -1
- package/dist/esm/core/Stage.d.ts +42 -0
- package/dist/esm/core/Stage.d.ts.map +1 -0
- package/dist/esm/core/System.d.ts +22 -0
- package/dist/esm/core/System.d.ts.map +1 -0
- package/dist/esm/core/SystemRegistry.d.ts +35 -0
- package/dist/esm/core/SystemRegistry.d.ts.map +1 -0
- package/dist/esm/core/SystemRegistry.js +104 -0
- package/dist/esm/core/SystemRegistry.js.map +1 -0
- package/dist/esm/core/Time.d.ts +15 -0
- package/dist/esm/core/Time.d.ts.map +1 -1
- package/dist/esm/core/Time.js +25 -0
- package/dist/esm/core/Time.js.map +1 -1
- package/dist/esm/core/dev.d.ts +9 -4
- package/dist/esm/core/dev.d.ts.map +1 -1
- package/dist/esm/core/dev.js +5 -0
- package/dist/esm/core/dev.js.map +1 -1
- package/dist/esm/core/index.d.ts +26 -15
- package/dist/esm/core/index.d.ts.map +1 -1
- package/dist/esm/core/letterbox.d.ts +25 -0
- package/dist/esm/core/letterbox.d.ts.map +1 -0
- package/dist/esm/core/letterbox.js +26 -0
- package/dist/esm/core/letterbox.js.map +1 -0
- package/dist/esm/core/serialization/NodeSerializer.d.ts +71 -0
- package/dist/esm/core/serialization/NodeSerializer.d.ts.map +1 -0
- package/dist/esm/core/serialization/Prefab.d.ts +49 -0
- package/dist/esm/core/serialization/Prefab.d.ts.map +1 -0
- package/dist/esm/core/serialization/Prefab.js +61 -0
- package/dist/esm/core/serialization/Prefab.js.map +1 -0
- package/dist/esm/core/serialization/SerializationRegistry.d.ts +95 -0
- package/dist/esm/core/serialization/SerializationRegistry.d.ts.map +1 -0
- package/dist/esm/core/serialization/SerializationRegistry.js +108 -0
- package/dist/esm/core/serialization/SerializationRegistry.js.map +1 -0
- package/dist/esm/core/serialization/commonFields.d.ts +20 -0
- package/dist/esm/core/serialization/commonFields.d.ts.map +1 -0
- package/dist/esm/core/serialization/commonFields.js +149 -0
- package/dist/esm/core/serialization/commonFields.js.map +1 -0
- package/dist/esm/core/serialization/coreSerializers.d.ts +9 -0
- package/dist/esm/core/serialization/coreSerializers.d.ts.map +1 -0
- package/dist/esm/core/serialization/coreSerializers.js +101 -0
- package/dist/esm/core/serialization/coreSerializers.js.map +1 -0
- package/dist/esm/core/serialization/index.d.ts +6 -0
- package/dist/esm/core/serialization/index.d.ts.map +1 -0
- package/dist/esm/core/serialization/read.d.ts +65 -0
- package/dist/esm/core/serialization/read.d.ts.map +1 -0
- package/dist/esm/core/serialization/read.js +48 -0
- package/dist/esm/core/serialization/read.js.map +1 -0
- package/dist/esm/core/serialization/renderingSerializers.d.ts +7 -0
- package/dist/esm/core/serialization/renderingSerializers.d.ts.map +1 -0
- package/dist/esm/core/serialization/renderingSerializers.js +311 -0
- package/dist/esm/core/serialization/renderingSerializers.js.map +1 -0
- package/dist/esm/core/serialization/serialize.d.ts +56 -0
- package/dist/esm/core/serialization/serialize.d.ts.map +1 -0
- package/dist/esm/core/serialization/serialize.js +144 -0
- package/dist/esm/core/serialization/serialize.js.map +1 -0
- package/dist/esm/core/serialization/serializerHelpers.d.ts +46 -0
- package/dist/esm/core/serialization/serializerHelpers.d.ts.map +1 -0
- package/dist/esm/core/serialization/serializerHelpers.js +161 -0
- package/dist/esm/core/serialization/serializerHelpers.js.map +1 -0
- package/dist/esm/core/serialization/types.d.ts +49 -0
- package/dist/esm/core/serialization/types.d.ts.map +1 -0
- package/dist/esm/core/serialization/types.js +9 -0
- package/dist/esm/core/serialization/types.js.map +1 -0
- package/dist/esm/core/serialization/uiSerializers.d.ts +7 -0
- package/dist/esm/core/serialization/uiSerializers.d.ts.map +1 -0
- package/dist/esm/core/serialization/uiSerializers.js +206 -0
- package/dist/esm/core/serialization/uiSerializers.js.map +1 -0
- package/dist/esm/core/types.d.ts +1 -1
- package/dist/esm/core/types.d.ts.map +1 -1
- package/dist/esm/core/utils.d.ts +1 -16
- package/dist/esm/core/utils.d.ts.map +1 -1
- package/dist/esm/core/utils.js +2 -100
- package/dist/esm/core/utils.js.map +1 -1
- package/dist/esm/debug/PerformanceLayer.js +8 -9
- package/dist/esm/debug/PerformanceLayer.js.map +1 -1
- package/dist/esm/debug/PointerStackLayer.d.ts.map +1 -1
- package/dist/esm/debug/PointerStackLayer.js +9 -6
- package/dist/esm/debug/PointerStackLayer.js.map +1 -1
- package/dist/esm/debug/RenderPassInspectorLayer.d.ts.map +1 -1
- package/dist/esm/debug/RenderPassInspectorLayer.js +19 -12
- package/dist/esm/debug/RenderPassInspectorLayer.js.map +1 -1
- package/dist/esm/extensions/Extension.d.ts +78 -11
- package/dist/esm/extensions/Extension.d.ts.map +1 -1
- package/dist/esm/extensions/ExtensionRegistry.d.ts.map +1 -1
- package/dist/esm/extensions/ExtensionRegistry.js.map +1 -1
- package/dist/esm/extensions/materialize.d.ts +9 -1
- package/dist/esm/extensions/materialize.d.ts.map +1 -1
- package/dist/esm/extensions/materialize.js +17 -2
- package/dist/esm/extensions/materialize.js.map +1 -1
- package/dist/esm/extensions/snapshot.d.ts +14 -3
- package/dist/esm/extensions/snapshot.d.ts.map +1 -1
- package/dist/esm/extensions/snapshot.js +51 -14
- package/dist/esm/extensions/snapshot.js.map +1 -1
- package/dist/esm/index.d.ts +2 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +37 -54
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/input/FocusManager.d.ts +59 -0
- package/dist/esm/input/FocusManager.d.ts.map +1 -0
- package/dist/esm/input/FocusManager.js +175 -0
- package/dist/esm/input/FocusManager.js.map +1 -0
- package/dist/esm/input/Gamepad.d.ts.map +1 -1
- package/dist/esm/input/Gamepad.js +8 -4
- package/dist/esm/input/Gamepad.js.map +1 -1
- package/dist/esm/input/GamepadAxis.js +2 -2
- package/dist/esm/input/GamepadDefinitions.d.ts.map +1 -1
- package/dist/esm/input/GamepadDefinitions.js +6 -2
- package/dist/esm/input/GamepadDefinitions.js.map +1 -1
- package/dist/esm/input/GestureRecognizer.d.ts +1 -2
- package/dist/esm/input/GestureRecognizer.d.ts.map +1 -1
- package/dist/esm/input/GestureRecognizer.js +1 -3
- package/dist/esm/input/GestureRecognizer.js.map +1 -1
- package/dist/esm/input/InputBinding.js +3 -3
- package/dist/esm/input/InputBinding.js.map +1 -1
- package/dist/esm/input/InputManager.d.ts +7 -2
- package/dist/esm/input/InputManager.d.ts.map +1 -1
- package/dist/esm/input/InputManager.js +35 -21
- package/dist/esm/input/InputManager.js.map +1 -1
- package/dist/esm/input/InteractionManager.d.ts +67 -2
- package/dist/esm/input/InteractionManager.d.ts.map +1 -1
- package/dist/esm/input/InteractionManager.js +165 -41
- package/dist/esm/input/InteractionManager.js.map +1 -1
- package/dist/esm/input/KeyEvent.d.ts +25 -0
- package/dist/esm/input/KeyEvent.d.ts.map +1 -0
- package/dist/esm/input/KeyEvent.js +32 -0
- package/dist/esm/input/KeyEvent.js.map +1 -0
- package/dist/esm/input/Pointer.d.ts +21 -4
- package/dist/esm/input/Pointer.d.ts.map +1 -1
- package/dist/esm/input/Pointer.js +54 -15
- package/dist/esm/input/Pointer.js.map +1 -1
- package/dist/esm/input/index.d.ts +3 -1
- package/dist/esm/input/index.d.ts.map +1 -1
- package/dist/esm/math/AbstractVector.d.ts.map +1 -1
- package/dist/esm/math/AbstractVector.js +7 -2
- package/dist/esm/math/AbstractVector.js.map +1 -1
- package/dist/esm/math/Circle.d.ts.map +1 -1
- package/dist/esm/math/Circle.js +5 -1
- package/dist/esm/math/Circle.js.map +1 -1
- package/dist/esm/math/Line.d.ts +1 -1
- package/dist/esm/math/Line.d.ts.map +1 -1
- package/dist/esm/math/Line.js +1 -1
- package/dist/esm/math/Line.js.map +1 -1
- package/dist/esm/math/Matrix.d.ts.map +1 -1
- package/dist/esm/math/Matrix.js +6 -1
- package/dist/esm/math/Matrix.js.map +1 -1
- package/dist/esm/math/ObservableVector.d.ts +26 -8
- package/dist/esm/math/ObservableVector.d.ts.map +1 -1
- package/dist/esm/math/ObservableVector.js +24 -16
- package/dist/esm/math/ObservableVector.js.map +1 -1
- package/dist/esm/math/Polygon.d.ts +5 -0
- package/dist/esm/math/Polygon.d.ts.map +1 -1
- package/dist/esm/math/Polygon.js +27 -3
- package/dist/esm/math/Polygon.js.map +1 -1
- package/dist/esm/math/Random.d.ts +9 -9
- package/dist/esm/math/Random.d.ts.map +1 -1
- package/dist/esm/math/Random.js +46 -46
- package/dist/esm/math/Random.js.map +1 -1
- package/dist/esm/math/Rectangle.d.ts +11 -4
- package/dist/esm/math/Rectangle.d.ts.map +1 -1
- package/dist/esm/math/Rectangle.js +12 -6
- package/dist/esm/math/Rectangle.js.map +1 -1
- package/dist/esm/math/Vector.d.ts +1 -1
- package/dist/esm/math/Vector.d.ts.map +1 -1
- package/dist/esm/math/Vector.js +1 -1
- package/dist/esm/math/Vector.js.map +1 -1
- package/dist/esm/math/collision-detection.d.ts +42 -0
- package/dist/esm/math/collision-detection.d.ts.map +1 -1
- package/dist/esm/math/collision-detection.js +54 -4
- package/dist/esm/math/collision-detection.js.map +1 -1
- package/dist/esm/math/collision-primitives.d.ts.map +1 -1
- package/dist/esm/math/collision-primitives.js +4 -0
- package/dist/esm/math/collision-primitives.js.map +1 -1
- package/dist/esm/math/geometry.d.ts +26 -0
- package/dist/esm/math/geometry.d.ts.map +1 -1
- package/dist/esm/math/geometry.js +89 -2
- package/dist/esm/math/geometry.js.map +1 -1
- package/dist/esm/math/index.d.ts +7 -5
- package/dist/esm/math/index.d.ts.map +1 -1
- package/dist/esm/math/swept-collision.d.ts +13 -0
- package/dist/esm/math/swept-collision.d.ts.map +1 -1
- package/dist/esm/math/swept-collision.js +15 -1
- package/dist/esm/math/swept-collision.js.map +1 -1
- package/dist/esm/math/triangulate.d.ts.map +1 -1
- package/dist/esm/math/triangulate.js +9 -1
- package/dist/esm/math/triangulate.js.map +1 -1
- package/dist/esm/math/utils.d.ts +20 -0
- package/dist/esm/math/utils.d.ts.map +1 -1
- package/dist/esm/math/utils.js +18 -15
- package/dist/esm/math/utils.js.map +1 -1
- package/dist/esm/renderer-sdk.d.ts +2 -0
- package/dist/esm/renderer-sdk.d.ts.map +1 -1
- package/dist/esm/{rendering.js → renderer-sdk.js} +1 -1
- package/dist/esm/renderer-sdk.js.map +1 -0
- package/dist/esm/rendering/CallbackRenderPass.js +1 -1
- package/dist/esm/rendering/CallbackRenderPass.js.map +1 -1
- package/dist/esm/rendering/Container.d.ts +3 -0
- package/dist/esm/rendering/Container.d.ts.map +1 -1
- package/dist/esm/rendering/Container.js +28 -5
- package/dist/esm/rendering/Container.js.map +1 -1
- package/dist/esm/rendering/Drawable.d.ts +47 -0
- package/dist/esm/rendering/Drawable.d.ts.map +1 -1
- package/dist/esm/rendering/Drawable.js +88 -0
- package/dist/esm/rendering/Drawable.js.map +1 -1
- package/dist/esm/rendering/GpuResourceAccountant.d.ts +65 -0
- package/dist/esm/rendering/GpuResourceAccountant.d.ts.map +1 -0
- package/dist/esm/rendering/GpuResourceAccountant.js +130 -0
- package/dist/esm/rendering/GpuResourceAccountant.js.map +1 -0
- package/dist/esm/rendering/RenderBackend.d.ts +15 -1
- package/dist/esm/rendering/RenderBackend.d.ts.map +1 -1
- package/dist/esm/rendering/RenderBatch.d.ts +55 -0
- package/dist/esm/rendering/RenderBatch.d.ts.map +1 -0
- package/dist/esm/rendering/RenderBatch.js +107 -0
- package/dist/esm/rendering/RenderBatch.js.map +1 -0
- package/dist/esm/rendering/RenderNode.d.ts +50 -10
- package/dist/esm/rendering/RenderNode.d.ts.map +1 -1
- package/dist/esm/rendering/RenderNode.js +113 -20
- package/dist/esm/rendering/RenderNode.js.map +1 -1
- package/dist/esm/rendering/RenderNodePass.js +2 -2
- package/dist/esm/rendering/RenderNodePass.js.map +1 -1
- package/dist/esm/rendering/RenderStats.d.ts +39 -0
- package/dist/esm/rendering/RenderStats.d.ts.map +1 -1
- package/dist/esm/rendering/RenderStats.js +14 -0
- package/dist/esm/rendering/RenderStats.js.map +1 -1
- package/dist/esm/rendering/RendererRegistry.d.ts.map +1 -1
- package/dist/esm/rendering/RendererRegistry.js +20 -23
- package/dist/esm/rendering/RendererRegistry.js.map +1 -1
- package/dist/esm/rendering/RenderingContext.d.ts +88 -4
- package/dist/esm/rendering/RenderingContext.d.ts.map +1 -1
- package/dist/esm/rendering/RenderingContext.js +107 -5
- package/dist/esm/rendering/RenderingContext.js.map +1 -1
- package/dist/esm/rendering/TransformBuffer.d.ts.map +1 -1
- package/dist/esm/rendering/TransformBuffer.js +2 -0
- package/dist/esm/rendering/TransformBuffer.js.map +1 -1
- package/dist/esm/rendering/View.d.ts +47 -15
- package/dist/esm/rendering/View.d.ts.map +1 -1
- package/dist/esm/rendering/View.js +44 -27
- package/dist/esm/rendering/View.js.map +1 -1
- package/dist/esm/rendering/coreRendererBindings.d.ts.map +1 -1
- package/dist/esm/rendering/coreRendererBindings.js +22 -0
- package/dist/esm/rendering/coreRendererBindings.js.map +1 -1
- package/dist/esm/rendering/filters/WebGpuShaderFilter.d.ts.map +1 -1
- package/dist/esm/rendering/filters/WebGpuShaderFilter.js +3 -1
- package/dist/esm/rendering/filters/WebGpuShaderFilter.js.map +1 -1
- package/dist/esm/rendering/geometry/Geometry.d.ts.map +1 -1
- package/dist/esm/rendering/geometry/Geometry.js +4 -2
- package/dist/esm/rendering/geometry/Geometry.js.map +1 -1
- package/dist/esm/rendering/gradient/Gradient.d.ts.map +1 -1
- package/dist/esm/rendering/gradient/Gradient.js +7 -2
- package/dist/esm/rendering/gradient/Gradient.js.map +1 -1
- package/dist/esm/rendering/material/MaterialKey.d.ts.map +1 -1
- package/dist/esm/rendering/material/MaterialKey.js +2 -0
- package/dist/esm/rendering/material/MaterialKey.js.map +1 -1
- package/dist/esm/rendering/material/ShaderSource.js +6 -0
- package/dist/esm/rendering/material/ShaderSource.js.map +1 -1
- package/dist/esm/rendering/mesh/ImmediateMesh.d.ts +48 -0
- package/dist/esm/rendering/mesh/ImmediateMesh.d.ts.map +1 -0
- package/dist/esm/rendering/mesh/ImmediateMesh.js +85 -0
- package/dist/esm/rendering/mesh/ImmediateMesh.js.map +1 -0
- package/dist/esm/rendering/mesh/Mesh.d.ts +29 -6
- package/dist/esm/rendering/mesh/Mesh.d.ts.map +1 -1
- package/dist/esm/rendering/mesh/Mesh.js +40 -13
- package/dist/esm/rendering/mesh/Mesh.js.map +1 -1
- package/dist/esm/rendering/pixelSnap.d.ts +219 -0
- package/dist/esm/rendering/pixelSnap.d.ts.map +1 -0
- package/dist/esm/rendering/pixelSnap.js +187 -0
- package/dist/esm/rendering/pixelSnap.js.map +1 -0
- package/dist/esm/rendering/plan/RenderCommand.d.ts +31 -9
- package/dist/esm/rendering/plan/RenderCommand.d.ts.map +1 -1
- package/dist/esm/rendering/plan/RenderCommand.js +23 -21
- package/dist/esm/rendering/plan/RenderCommand.js.map +1 -1
- package/dist/esm/rendering/plan/RenderEffectExecutor.d.ts.map +1 -1
- package/dist/esm/rendering/plan/RenderEffectExecutor.js +1 -0
- package/dist/esm/rendering/plan/RenderEffectExecutor.js.map +1 -1
- package/dist/esm/rendering/plan/RenderInstruction.d.ts +7 -37
- package/dist/esm/rendering/plan/RenderInstruction.d.ts.map +1 -1
- package/dist/esm/rendering/plan/RenderPlanBuilder.d.ts +17 -2
- package/dist/esm/rendering/plan/RenderPlanBuilder.d.ts.map +1 -1
- package/dist/esm/rendering/plan/RenderPlanBuilder.js +132 -46
- package/dist/esm/rendering/plan/RenderPlanBuilder.js.map +1 -1
- package/dist/esm/rendering/plan/RenderPlanOptimizer.d.ts.map +1 -1
- package/dist/esm/rendering/plan/RenderPlanOptimizer.js +31 -4
- package/dist/esm/rendering/plan/RenderPlanOptimizer.js.map +1 -1
- package/dist/esm/rendering/plan/RenderPlanPlayer.d.ts.map +1 -1
- package/dist/esm/rendering/plan/RenderPlanPlayer.js +70 -13
- package/dist/esm/rendering/plan/RenderPlanPlayer.js.map +1 -1
- package/dist/esm/rendering/plan/RenderScope.d.ts +16 -10
- package/dist/esm/rendering/plan/RenderScope.d.ts.map +1 -1
- package/dist/esm/rendering/primitives/Graphics.d.ts +6 -0
- package/dist/esm/rendering/primitives/Graphics.d.ts.map +1 -1
- package/dist/esm/rendering/primitives/Graphics.js +17 -1
- package/dist/esm/rendering/primitives/Graphics.js.map +1 -1
- package/dist/esm/rendering/{index.d.ts → public.d.ts} +13 -30
- package/dist/esm/rendering/public.d.ts.map +1 -0
- package/dist/esm/rendering/shader/ShaderAttribute.d.ts.map +1 -1
- package/dist/esm/rendering/shader/ShaderAttribute.js +2 -0
- package/dist/esm/rendering/shader/ShaderAttribute.js.map +1 -1
- package/dist/esm/rendering/sprite/AnimatedSprite.d.ts +11 -0
- package/dist/esm/rendering/sprite/AnimatedSprite.d.ts.map +1 -1
- package/dist/esm/rendering/sprite/AnimatedSprite.js +24 -2
- package/dist/esm/rendering/sprite/AnimatedSprite.js.map +1 -1
- package/dist/esm/rendering/sprite/NineSliceSprite.d.ts +69 -0
- package/dist/esm/rendering/sprite/NineSliceSprite.d.ts.map +1 -0
- package/dist/esm/rendering/sprite/NineSliceSprite.js +206 -0
- package/dist/esm/rendering/sprite/NineSliceSprite.js.map +1 -0
- package/dist/esm/rendering/sprite/RepeatingSprite.d.ts +120 -0
- package/dist/esm/rendering/sprite/RepeatingSprite.d.ts.map +1 -0
- package/dist/esm/rendering/sprite/RepeatingSprite.js +277 -0
- package/dist/esm/rendering/sprite/RepeatingSprite.js.map +1 -0
- package/dist/esm/rendering/sprite/Sprite.d.ts +13 -0
- package/dist/esm/rendering/sprite/Sprite.d.ts.map +1 -1
- package/dist/esm/rendering/sprite/Sprite.js +53 -3
- package/dist/esm/rendering/sprite/Sprite.js.map +1 -1
- package/dist/esm/rendering/sprite/nineSlice.d.ts +53 -0
- package/dist/esm/rendering/sprite/nineSlice.d.ts.map +1 -0
- package/dist/esm/rendering/sprite/nineSlice.js +334 -0
- package/dist/esm/rendering/sprite/nineSlice.js.map +1 -0
- package/dist/esm/rendering/sprite/repeatingSpritePlan.d.ts +57 -0
- package/dist/esm/rendering/sprite/repeatingSpritePlan.d.ts.map +1 -0
- package/dist/esm/rendering/sprite/repeatingSpritePlan.js +156 -0
- package/dist/esm/rendering/sprite/repeatingSpritePlan.js.map +1 -0
- package/dist/esm/rendering/text/BitmapText.d.ts +2 -0
- package/dist/esm/rendering/text/BitmapText.d.ts.map +1 -1
- package/dist/esm/rendering/text/BitmapText.js +4 -0
- package/dist/esm/rendering/text/BitmapText.js.map +1 -1
- package/dist/esm/rendering/text/GlyphAtlas.d.ts.map +1 -1
- package/dist/esm/rendering/text/GlyphAtlas.js +2 -1
- package/dist/esm/rendering/text/GlyphAtlas.js.map +1 -1
- package/dist/esm/rendering/text/GlyphAtlasPool.d.ts +8 -1
- package/dist/esm/rendering/text/GlyphAtlasPool.d.ts.map +1 -1
- package/dist/esm/rendering/text/GlyphAtlasPool.js +9 -12
- package/dist/esm/rendering/text/GlyphAtlasPool.js.map +1 -1
- package/dist/esm/rendering/text/GlyphSdf.d.ts.map +1 -1
- package/dist/esm/rendering/text/GlyphSdf.js +5 -1
- package/dist/esm/rendering/text/GlyphSdf.js.map +1 -1
- package/dist/esm/rendering/text/HTMLText.d.ts.map +1 -1
- package/dist/esm/rendering/text/HTMLText.js +1 -0
- package/dist/esm/rendering/text/HTMLText.js.map +1 -1
- package/dist/esm/rendering/text/Text.d.ts +17 -6
- package/dist/esm/rendering/text/Text.d.ts.map +1 -1
- package/dist/esm/rendering/text/Text.js +7 -12
- package/dist/esm/rendering/text/Text.js.map +1 -1
- package/dist/esm/rendering/text/TextLayout.d.ts.map +1 -1
- package/dist/esm/rendering/text/TextLayout.js +4 -18
- package/dist/esm/rendering/text/TextLayout.js.map +1 -1
- package/dist/esm/rendering/texture/DataTexture.js +2 -2
- package/dist/esm/rendering/texture/DataTexture.js.map +1 -1
- package/dist/esm/rendering/texture/Texture.d.ts +6 -0
- package/dist/esm/rendering/texture/Texture.d.ts.map +1 -1
- package/dist/esm/rendering/texture/Texture.js +8 -0
- package/dist/esm/rendering/texture/Texture.js.map +1 -1
- package/dist/esm/rendering/texture/TextureRegion.d.ts +100 -0
- package/dist/esm/rendering/texture/TextureRegion.d.ts.map +1 -0
- package/dist/esm/rendering/texture/TextureRegion.js +144 -0
- package/dist/esm/rendering/texture/TextureRegion.js.map +1 -0
- package/dist/esm/rendering/texture/repeat.d.ts +96 -0
- package/dist/esm/rendering/texture/repeat.d.ts.map +1 -0
- package/dist/esm/rendering/texture/repeat.js +158 -0
- package/dist/esm/rendering/texture/repeat.js.map +1 -0
- package/dist/esm/rendering/types.d.ts +11 -0
- package/dist/esm/rendering/types.d.ts.map +1 -1
- package/dist/esm/rendering/types.js +11 -0
- package/dist/esm/rendering/types.js.map +1 -1
- package/dist/esm/rendering/video/Video.d.ts +7 -3
- package/dist/esm/rendering/video/Video.d.ts.map +1 -1
- package/dist/esm/rendering/video/Video.js +7 -3
- package/dist/esm/rendering/video/Video.js.map +1 -1
- package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.d.ts.map +1 -1
- package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js +2 -2
- package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts +41 -2
- package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2Backend.js +137 -8
- package/dist/esm/rendering/webgl2/WebGl2Backend.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.d.ts.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.js +2 -2
- package/dist/esm/rendering/webgl2/WebGl2MaskCompositor.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.d.ts +17 -0
- package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.d.ts.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.js +122 -38
- package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2NineSliceSpriteRenderer.d.ts +32 -0
- package/dist/esm/rendering/webgl2/WebGl2NineSliceSpriteRenderer.d.ts.map +1 -0
- package/dist/esm/rendering/webgl2/WebGl2NineSliceSpriteRenderer.js +309 -0
- package/dist/esm/rendering/webgl2/WebGl2NineSliceSpriteRenderer.js.map +1 -0
- package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.d.ts +16 -1
- package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.d.ts.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.js +32 -1
- package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2RepeatingSpriteRenderer.d.ts +49 -0
- package/dist/esm/rendering/webgl2/WebGl2RepeatingSpriteRenderer.d.ts.map +1 -0
- package/dist/esm/rendering/webgl2/WebGl2RepeatingSpriteRenderer.js +539 -0
- package/dist/esm/rendering/webgl2/WebGl2RepeatingSpriteRenderer.js.map +1 -0
- package/dist/esm/rendering/webgl2/WebGl2ShaderBlock.d.ts.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2ShaderBlock.js +14 -3
- package/dist/esm/rendering/webgl2/WebGl2ShaderBlock.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2ShaderMappings.js +3 -3
- package/dist/esm/rendering/webgl2/WebGl2ShaderMappings.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2ShaderProgram.d.ts.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2ShaderProgram.js +11 -2
- package/dist/esm/rendering/webgl2/WebGl2ShaderProgram.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.d.ts +9 -0
- package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.d.ts.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js +29 -4
- package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2StencilClipper.d.ts.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2StencilClipper.js +3 -2
- package/dist/esm/rendering/webgl2/WebGl2StencilClipper.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2TextRenderer.d.ts.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js +10 -4
- package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts +39 -3
- package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuBackend.js +120 -12
- package/dist/esm/rendering/webgpu/WebGpuBackend.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuBlendState.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuBlendState.js +3 -0
- package/dist/esm/rendering/webgpu/WebGpuBlendState.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.d.ts +13 -0
- package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js +102 -24
- package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.d.ts +36 -0
- package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.d.ts.map +1 -0
- package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.js +363 -0
- package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.js.map +1 -0
- package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.d.ts +52 -0
- package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.d.ts.map +1 -0
- package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.js +566 -0
- package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.js.map +1 -0
- package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts +9 -0
- package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js +30 -6
- package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuStencilClipper.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuStencilClipper.js +1 -0
- package/dist/esm/rendering/webgpu/WebGpuStencilClipper.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuTextRenderer.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js +19 -7
- package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuTransformStorage.d.ts +16 -4
- package/dist/esm/rendering/webgpu/WebGpuTransformStorage.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js +26 -6
- package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js.map +1 -1
- package/dist/esm/rendering/webgpu/compute/WebGpuComputePipeline.js +1 -1
- package/dist/esm/rendering/webgpu/compute/WebGpuComputePipeline.js.map +1 -1
- package/dist/esm/rendering/webgpu/compute/WebGpuStorageBuffer.d.ts +7 -0
- package/dist/esm/rendering/webgpu/compute/WebGpuStorageBuffer.d.ts.map +1 -1
- package/dist/esm/rendering/webgpu/compute/WebGpuStorageBuffer.js +8 -0
- package/dist/esm/rendering/webgpu/compute/WebGpuStorageBuffer.js.map +1 -1
- package/dist/esm/resources/Asset.d.ts +1 -1
- package/dist/esm/resources/Asset.d.ts.map +1 -1
- package/dist/esm/resources/Asset.js +0 -2
- package/dist/esm/resources/Asset.js.map +1 -1
- package/dist/esm/resources/AssetContainer.d.ts +75 -0
- package/dist/esm/resources/AssetContainer.d.ts.map +1 -0
- package/dist/esm/resources/AssetContainer.js +100 -0
- package/dist/esm/resources/AssetContainer.js.map +1 -0
- package/dist/esm/resources/AssetDefinitions.d.ts +3 -3
- package/dist/esm/resources/AssetDefinitions.d.ts.map +1 -1
- package/dist/esm/resources/Assets.d.ts.map +1 -1
- package/dist/esm/resources/Assets.js +0 -1
- package/dist/esm/resources/Assets.js.map +1 -1
- package/dist/esm/resources/FactoryRegistry.d.ts.map +1 -1
- package/dist/esm/resources/FactoryRegistry.js +14 -23
- package/dist/esm/resources/FactoryRegistry.js.map +1 -1
- package/dist/esm/resources/IndexedDbDatabase.d.ts.map +1 -1
- package/dist/esm/resources/IndexedDbDatabase.js +8 -1
- package/dist/esm/resources/IndexedDbDatabase.js.map +1 -1
- package/dist/esm/resources/IndexedDbKeyValueStore.d.ts +37 -0
- package/dist/esm/resources/IndexedDbKeyValueStore.d.ts.map +1 -0
- package/dist/esm/resources/IndexedDbKeyValueStore.js +58 -0
- package/dist/esm/resources/IndexedDbKeyValueStore.js.map +1 -0
- package/dist/esm/resources/KeyValueStore.d.ts +31 -0
- package/dist/esm/resources/KeyValueStore.d.ts.map +1 -0
- package/dist/esm/resources/Loader.d.ts +78 -10
- package/dist/esm/resources/Loader.d.ts.map +1 -1
- package/dist/esm/resources/Loader.js +119 -15
- package/dist/esm/resources/Loader.js.map +1 -1
- package/dist/esm/resources/MemoryStore.d.ts +17 -0
- package/dist/esm/resources/MemoryStore.d.ts.map +1 -0
- package/dist/esm/resources/MemoryStore.js +30 -0
- package/dist/esm/resources/MemoryStore.js.map +1 -0
- package/dist/esm/resources/WebStorageStore.d.ts +40 -0
- package/dist/esm/resources/WebStorageStore.d.ts.map +1 -0
- package/dist/esm/resources/WebStorageStore.js +84 -0
- package/dist/esm/resources/WebStorageStore.js.map +1 -0
- package/dist/esm/resources/coreAssetBindings.d.ts.map +1 -1
- package/dist/esm/resources/coreAssetBindings.js +16 -5
- package/dist/esm/resources/coreAssetBindings.js.map +1 -1
- package/dist/esm/resources/factories/BmFontFactory.js +4 -4
- package/dist/esm/resources/factories/BmFontFactory.js.map +1 -1
- package/dist/esm/resources/factories/MusicFactory.d.ts +9 -9
- package/dist/esm/resources/factories/MusicFactory.d.ts.map +1 -1
- package/dist/esm/resources/factories/MusicFactory.js +7 -7
- package/dist/esm/resources/factories/MusicFactory.js.map +1 -1
- package/dist/esm/resources/factories/SoundFactory.js +2 -2
- package/dist/esm/resources/factories/SoundFactory.js.map +1 -1
- package/dist/esm/resources/factories/SubtitleFactory.d.ts +11 -1
- package/dist/esm/resources/factories/SubtitleFactory.d.ts.map +1 -1
- package/dist/esm/resources/factories/SubtitleFactory.js +13 -9
- package/dist/esm/resources/factories/SubtitleFactory.js.map +1 -1
- package/dist/esm/resources/index.d.ts +51 -34
- package/dist/esm/resources/index.d.ts.map +1 -1
- package/dist/esm/resources/utils.js +4 -4
- package/dist/esm/resources/utils.js.map +1 -1
- package/dist/esm/ui/Button.d.ts +54 -0
- package/dist/esm/ui/Button.d.ts.map +1 -0
- package/dist/esm/ui/Button.js +139 -0
- package/dist/esm/ui/Button.js.map +1 -0
- package/dist/esm/ui/Label.d.ts +17 -0
- package/dist/esm/ui/Label.d.ts.map +1 -0
- package/dist/esm/ui/Label.js +37 -0
- package/dist/esm/ui/Label.js.map +1 -0
- package/dist/esm/ui/Panel.d.ts +38 -0
- package/dist/esm/ui/Panel.d.ts.map +1 -0
- package/dist/esm/ui/Panel.js +61 -0
- package/dist/esm/ui/Panel.js.map +1 -0
- package/dist/esm/ui/ProgressBar.d.ts +37 -0
- package/dist/esm/ui/ProgressBar.d.ts.map +1 -0
- package/dist/esm/ui/ProgressBar.js +76 -0
- package/dist/esm/ui/ProgressBar.js.map +1 -0
- package/dist/esm/ui/Stack.d.ts +34 -0
- package/dist/esm/ui/Stack.d.ts.map +1 -0
- package/dist/esm/ui/Stack.js +69 -0
- package/dist/esm/ui/Stack.js.map +1 -0
- package/dist/esm/ui/UIRoot.d.ts +31 -0
- package/dist/esm/ui/UIRoot.d.ts.map +1 -0
- package/dist/esm/ui/UIRoot.js +49 -0
- package/dist/esm/ui/UIRoot.js.map +1 -0
- package/dist/esm/ui/Widget.d.ts +45 -0
- package/dist/esm/ui/Widget.d.ts.map +1 -0
- package/dist/esm/ui/Widget.js +113 -0
- package/dist/esm/ui/Widget.js.map +1 -0
- package/dist/esm/ui/index.d.ts +13 -0
- package/dist/esm/ui/index.d.ts.map +1 -0
- package/dist/exo.debug.esm.js +1 -948
- package/dist/exo.debug.esm.js.map +1 -1
- package/dist/exo.esm.js +1 -37555
- package/dist/exo.esm.js.map +1 -1
- package/package.json +31 -13
- package/dist/esm/audio/AbstractMedia.d.ts +0 -75
- package/dist/esm/audio/AbstractMedia.d.ts.map +0 -1
- package/dist/esm/audio/AbstractMedia.js +0 -179
- package/dist/esm/audio/AbstractMedia.js.map +0 -1
- package/dist/esm/audio/AudioAnalyser.d.ts +0 -128
- package/dist/esm/audio/AudioAnalyser.d.ts.map +0 -1
- package/dist/esm/audio/AudioAnalyser.js +0 -473
- package/dist/esm/audio/AudioAnalyser.js.map +0 -1
- package/dist/esm/audio/AudioFilter.d.ts +0 -17
- package/dist/esm/audio/AudioFilter.d.ts.map +0 -1
- package/dist/esm/audio/AudioFilter.js +0 -15
- package/dist/esm/audio/AudioFilter.js.map +0 -1
- package/dist/esm/audio/BeatDetector.d.ts +0 -207
- package/dist/esm/audio/BeatDetector.d.ts.map +0 -1
- package/dist/esm/audio/BeatDetector.js +0 -424
- package/dist/esm/audio/BeatDetector.js.map +0 -1
- package/dist/esm/audio/Media.d.ts +0 -37
- package/dist/esm/audio/Media.d.ts.map +0 -1
- package/dist/esm/audio/Music.d.ts +0 -42
- package/dist/esm/audio/Music.d.ts.map +0 -1
- package/dist/esm/audio/Music.js +0 -164
- package/dist/esm/audio/Music.js.map +0 -1
- package/dist/esm/audio/OscillatorSound.d.ts +0 -100
- package/dist/esm/audio/OscillatorSound.d.ts.map +0 -1
- package/dist/esm/audio/OscillatorSound.js +0 -346
- package/dist/esm/audio/OscillatorSound.js.map +0 -1
- package/dist/esm/audio/dsp/fft.d.ts +0 -23
- package/dist/esm/audio/dsp/fft.d.ts.map +0 -1
- package/dist/esm/audio/dsp/mel.d.ts +0 -44
- package/dist/esm/audio/dsp/mel.d.ts.map +0 -1
- package/dist/esm/audio/dsp/mel.js +0 -70
- package/dist/esm/audio/dsp/mel.js.map +0 -1
- package/dist/esm/audio/dsp/tempogram.d.ts +0 -52
- package/dist/esm/audio/dsp/tempogram.d.ts.map +0 -1
- package/dist/esm/audio/filters/ChorusFilter.d.ts +0 -54
- package/dist/esm/audio/filters/ChorusFilter.d.ts.map +0 -1
- package/dist/esm/audio/filters/ChorusFilter.js +0 -155
- package/dist/esm/audio/filters/ChorusFilter.js.map +0 -1
- package/dist/esm/audio/filters/CompressorFilter.d.ts +0 -54
- package/dist/esm/audio/filters/CompressorFilter.d.ts.map +0 -1
- package/dist/esm/audio/filters/CompressorFilter.js +0 -123
- package/dist/esm/audio/filters/CompressorFilter.js.map +0 -1
- package/dist/esm/audio/filters/DelayFilter.d.ts +0 -36
- package/dist/esm/audio/filters/DelayFilter.d.ts.map +0 -1
- package/dist/esm/audio/filters/DelayFilter.js +0 -114
- package/dist/esm/audio/filters/DelayFilter.js.map +0 -1
- package/dist/esm/audio/filters/DuckingFilter.d.ts +0 -45
- package/dist/esm/audio/filters/DuckingFilter.d.ts.map +0 -1
- package/dist/esm/audio/filters/DuckingFilter.js +0 -172
- package/dist/esm/audio/filters/DuckingFilter.js.map +0 -1
- package/dist/esm/audio/filters/EqualizerFilter.d.ts +0 -51
- package/dist/esm/audio/filters/EqualizerFilter.d.ts.map +0 -1
- package/dist/esm/audio/filters/EqualizerFilter.js +0 -138
- package/dist/esm/audio/filters/EqualizerFilter.js.map +0 -1
- package/dist/esm/audio/filters/GranularFilter.d.ts +0 -63
- package/dist/esm/audio/filters/GranularFilter.d.ts.map +0 -1
- package/dist/esm/audio/filters/GranularFilter.js +0 -107
- package/dist/esm/audio/filters/GranularFilter.js.map +0 -1
- package/dist/esm/audio/filters/PitchShiftFilter.d.ts +0 -45
- package/dist/esm/audio/filters/PitchShiftFilter.d.ts.map +0 -1
- package/dist/esm/audio/filters/PitchShiftFilter.js +0 -66
- package/dist/esm/audio/filters/PitchShiftFilter.js.map +0 -1
- package/dist/esm/audio/filters/ReverbFilter.d.ts +0 -38
- package/dist/esm/audio/filters/ReverbFilter.d.ts.map +0 -1
- package/dist/esm/audio/filters/ReverbFilter.js +0 -122
- package/dist/esm/audio/filters/ReverbFilter.js.map +0 -1
- package/dist/esm/audio/filters/VocoderFilter.d.ts +0 -50
- package/dist/esm/audio/filters/VocoderFilter.d.ts.map +0 -1
- package/dist/esm/audio/filters/VocoderFilter.js +0 -94
- package/dist/esm/audio/filters/VocoderFilter.js.map +0 -1
- package/dist/esm/audio/filters/WorkletFilter.d.ts.map +0 -1
- package/dist/esm/audio/filters/WorkletFilter.js.map +0 -1
- package/dist/esm/audio/worklets/beat-detector.worklet.d.ts +0 -2
- package/dist/esm/audio/worklets/beat-detector.worklet.d.ts.map +0 -1
- package/dist/esm/audio/worklets/beat-detector.worklet.js +0 -647
- package/dist/esm/audio/worklets/beat-detector.worklet.js.map +0 -1
- package/dist/esm/audio/worklets/granular.worklet.d.ts +0 -2
- package/dist/esm/audio/worklets/granular.worklet.d.ts.map +0 -1
- package/dist/esm/audio/worklets/granular.worklet.js +0 -89
- package/dist/esm/audio/worklets/granular.worklet.js.map +0 -1
- package/dist/esm/audio/worklets/pitch-shift.worklet.d.ts +0 -2
- package/dist/esm/audio/worklets/pitch-shift.worklet.d.ts.map +0 -1
- package/dist/esm/audio/worklets/pitch-shift.worklet.js +0 -74
- package/dist/esm/audio/worklets/pitch-shift.worklet.js.map +0 -1
- package/dist/esm/audio/worklets/vocoder.worklet.d.ts +0 -2
- package/dist/esm/audio/worklets/vocoder.worklet.d.ts.map +0 -1
- package/dist/esm/audio/worklets/vocoder.worklet.js +0 -92
- package/dist/esm/audio/worklets/vocoder.worklet.js.map +0 -1
- package/dist/esm/input/internal/interactionManagerRegistry.d.ts +0 -10
- package/dist/esm/input/internal/interactionManagerRegistry.d.ts.map +0 -1
- package/dist/esm/input/internal/interactionManagerRegistry.js +0 -10
- package/dist/esm/input/internal/interactionManagerRegistry.js.map +0 -1
- package/dist/esm/rendering/index.d.ts.map +0 -1
- package/dist/esm/rendering/plan/RenderInstruction.js +0 -45
- package/dist/esm/rendering/plan/RenderInstruction.js.map +0 -1
- package/dist/esm/rendering.d.ts +0 -28
- package/dist/esm/rendering.d.ts.map +0 -1
- package/dist/esm/rendering.js.map +0 -1
- package/dist/esm/resources/JsonStore.d.ts +0 -19
- package/dist/esm/resources/JsonStore.d.ts.map +0 -1
- package/dist/esm/resources/JsonStore.js +0 -62
- package/dist/esm/resources/JsonStore.js.map +0 -1
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { Color } from '../core/Color.js';
|
|
2
|
+
import { Matrix } from '../math/Matrix.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Explicit instanced draw submission: **one** {@link Geometry} + {@link MeshMaterial}
|
|
6
|
+
* drawn **once** with **N** per-instance `(transform, tint)` pairs — the general
|
|
7
|
+
* form of the engine's mesh-instancing model, surfaced for data-driven rendering
|
|
8
|
+
* (thousands of tiles, bullets, grass blades, procedural items as a single draw).
|
|
9
|
+
*
|
|
10
|
+
* Build it up with {@link add}, hand it to {@link RenderingContext.drawBatch},
|
|
11
|
+
* and {@link clear} it to reuse the same instance across frames without
|
|
12
|
+
* reallocating — the per-instance transform/tint storage grows on demand and is
|
|
13
|
+
* retained across `clear()`, so a steady-state batch allocates nothing.
|
|
14
|
+
*
|
|
15
|
+
* Each {@link add} **copies** the transform and tint into internal storage, so
|
|
16
|
+
* the caller may mutate or reuse the passed `Matrix`/`Color` immediately
|
|
17
|
+
* afterwards without affecting the batch.
|
|
18
|
+
*
|
|
19
|
+
* This is the explicit instanced submission path — distinct from the internal
|
|
20
|
+
* automatic sprite batcher: every instance shares the one geometry and material,
|
|
21
|
+
* and the whole batch is a single instanced draw call.
|
|
22
|
+
* @stable
|
|
23
|
+
*/
|
|
24
|
+
class RenderBatch {
|
|
25
|
+
/** The geometry every instance in this batch draws. */
|
|
26
|
+
geometry;
|
|
27
|
+
/** The shared mesh material, or `null` for the default mesh material. */
|
|
28
|
+
material;
|
|
29
|
+
// Per-instance storage grows with `add` and is reused after `clear` — only the
|
|
30
|
+
// logical `_count` resets, the pooled Matrix/Color instances are kept.
|
|
31
|
+
_transforms = [];
|
|
32
|
+
_tints = [];
|
|
33
|
+
_count = 0;
|
|
34
|
+
constructor(geometry, material = null) {
|
|
35
|
+
// The batch uploads its geometry to the GPU once and caches it by identity,
|
|
36
|
+
// so the geometry must be static (the default). dynamic/stream geometry has
|
|
37
|
+
// no persistent GPU buffer and is rejected.
|
|
38
|
+
if (geometry.usage !== 'static') {
|
|
39
|
+
throw new Error(`RenderBatch requires geometry with usage='static' (got '${geometry.usage}').`);
|
|
40
|
+
}
|
|
41
|
+
// v1 renders batches with the default mesh material; a custom material is not
|
|
42
|
+
// yet supported on the instanced path. The parameter is accepted (and stored)
|
|
43
|
+
// for the forthcoming custom-material batch support.
|
|
44
|
+
if (material !== null && material.target !== 'mesh') {
|
|
45
|
+
throw new Error(`RenderBatch material must target 'mesh' (got '${String(material.target)}').`);
|
|
46
|
+
}
|
|
47
|
+
this.geometry = geometry;
|
|
48
|
+
this.material = material;
|
|
49
|
+
}
|
|
50
|
+
/** Number of instances currently in the batch. */
|
|
51
|
+
get count() {
|
|
52
|
+
return this._count;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Append one instance. `transform` is the instance's world matrix (taken as
|
|
56
|
+
* the raw `a,b,c,d,tx,ty`), `tint` modulates the geometry's vertex colors
|
|
57
|
+
* (defaults to white). Both are copied into the batch.
|
|
58
|
+
*/
|
|
59
|
+
add(transform, tint = null) {
|
|
60
|
+
let matrix = this._transforms[this._count];
|
|
61
|
+
if (matrix === undefined) {
|
|
62
|
+
matrix = new Matrix();
|
|
63
|
+
this._transforms[this._count] = matrix;
|
|
64
|
+
}
|
|
65
|
+
matrix.copy(transform);
|
|
66
|
+
let color = this._tints[this._count];
|
|
67
|
+
if (color === undefined) {
|
|
68
|
+
color = new Color();
|
|
69
|
+
this._tints[this._count] = color;
|
|
70
|
+
}
|
|
71
|
+
color.copy(tint ?? Color.white);
|
|
72
|
+
this._count++;
|
|
73
|
+
return this;
|
|
74
|
+
}
|
|
75
|
+
/** Reset to zero instances for reuse, retaining the pooled storage. */
|
|
76
|
+
clear() {
|
|
77
|
+
this._count = 0;
|
|
78
|
+
return this;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Release the pooled per-instance storage. After this the batch must not be
|
|
82
|
+
* reused. The {@link geometry} and {@link material} are owned by the caller and
|
|
83
|
+
* are not destroyed.
|
|
84
|
+
*/
|
|
85
|
+
destroy() {
|
|
86
|
+
for (const matrix of this._transforms) {
|
|
87
|
+
matrix.destroy();
|
|
88
|
+
}
|
|
89
|
+
for (const color of this._tints) {
|
|
90
|
+
color.destroy();
|
|
91
|
+
}
|
|
92
|
+
this._transforms.length = 0;
|
|
93
|
+
this._tints.length = 0;
|
|
94
|
+
this._count = 0;
|
|
95
|
+
}
|
|
96
|
+
/** Pooled per-instance transforms; only the first {@link count} are valid. @internal */
|
|
97
|
+
get _instanceTransforms() {
|
|
98
|
+
return this._transforms;
|
|
99
|
+
}
|
|
100
|
+
/** Pooled per-instance tints; only the first {@link count} are valid. @internal */
|
|
101
|
+
get _instanceTints() {
|
|
102
|
+
return this._tints;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
export { RenderBatch };
|
|
107
|
+
//# sourceMappingURL=RenderBatch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RenderBatch.js","sources":["../../../../src/rendering/RenderBatch.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAKA;;;;;;;;;;;;;;;;;;;AAmBG;MACU,WAAW,CAAA;;AAEN,IAAA,QAAQ;;AAGR,IAAA,QAAQ;;;IAIP,WAAW,GAAa,EAAE;IAC1B,MAAM,GAAY,EAAE;IAC7B,MAAM,GAAG,CAAC;IAElB,WAAA,CAAmB,QAAkB,EAAE,QAAA,GAAgC,IAAI,EAAA;;;;AAIzE,QAAA,IAAI,QAAQ,CAAC,KAAK,KAAK,QAAQ,EAAE;YAC/B,MAAM,IAAI,KAAK,CAAC,CAAA,wDAAA,EAA2D,QAAQ,CAAC,KAAK,CAAA,GAAA,CAAK,CAAC;QACjG;;;;QAKA,IAAI,QAAQ,KAAK,IAAI,IAAK,QAAQ,CAAC,MAAiB,KAAK,MAAM,EAAE;AAC/D,YAAA,MAAM,IAAI,KAAK,CAAC,CAAA,8CAAA,EAAiD,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA,GAAA,CAAK,CAAC;QAChG;AAEA,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;AACxB,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;IAC1B;;AAGA,IAAA,IAAW,KAAK,GAAA;QACd,OAAO,IAAI,CAAC,MAAM;IACpB;AAEA;;;;AAIG;AACI,IAAA,GAAG,CAAC,SAAiB,EAAE,IAAA,GAAqB,IAAI,EAAA;QACrD,IAAI,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC;AAE1C,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AACxB,YAAA,MAAM,GAAG,IAAI,MAAM,EAAE;YACrB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,MAAM;QACxC;AAEA,QAAA,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;QAEtB,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;AAEpC,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AACvB,YAAA,KAAK,GAAG,IAAI,KAAK,EAAE;YACnB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK;QAClC;QAEA,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC;QAE/B,IAAI,CAAC,MAAM,EAAE;AAEb,QAAA,OAAO,IAAI;IACb;;IAGO,KAAK,GAAA;AACV,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC;AAEf,QAAA,OAAO,IAAI;IACb;AAEA;;;;AAIG;IACI,OAAO,GAAA;AACZ,QAAA,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,WAAW,EAAE;YACrC,MAAM,CAAC,OAAO,EAAE;QAClB;AAEA,QAAA,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE;YAC/B,KAAK,CAAC,OAAO,EAAE;QACjB;AAEA,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;AAC3B,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;AACtB,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC;IACjB;;AAGA,IAAA,IAAW,mBAAmB,GAAA;QAC5B,OAAO,IAAI,CAAC,WAAW;IACzB;;AAGA,IAAA,IAAW,cAAc,GAAA;QACvB,OAAO,IAAI,CAAC,MAAM;IACpB;AACD;;;;"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { Color } from '#core/Color';
|
|
2
2
|
import { SceneNode } from '#core/SceneNode';
|
|
3
3
|
import { Signal } from '#core/Signal';
|
|
4
|
-
import type { InteractionEvent } from '#input/InteractionEvent';
|
|
4
|
+
import type { InteractionEvent, InteractionEventType } from '#input/InteractionEvent';
|
|
5
|
+
import type { KeyEvent } from '#input/KeyEvent';
|
|
5
6
|
import { Rectangle } from '#math/Rectangle';
|
|
6
7
|
import type { Filter } from '#rendering/filters/Filter';
|
|
7
8
|
import type { Geometry } from '#rendering/geometry/Geometry';
|
|
@@ -117,18 +118,57 @@ export declare abstract class RenderNode extends SceneNode {
|
|
|
117
118
|
* @default null
|
|
118
119
|
*/
|
|
119
120
|
clipShape: Rectangle | Geometry | null;
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
121
|
+
private _signals;
|
|
122
|
+
get onPointerDown(): Signal<[InteractionEvent]>;
|
|
123
|
+
get onPointerUp(): Signal<[InteractionEvent]>;
|
|
124
|
+
get onPointerMove(): Signal<[InteractionEvent]>;
|
|
125
|
+
get onPointerOver(): Signal<[InteractionEvent]>;
|
|
126
|
+
get onPointerOut(): Signal<[InteractionEvent]>;
|
|
127
|
+
get onPointerTap(): Signal<[InteractionEvent]>;
|
|
126
128
|
/** Fired once when a drag gesture begins on this node. Does not bubble. */
|
|
127
|
-
|
|
129
|
+
get onDragStart(): Signal<[InteractionEvent]>;
|
|
128
130
|
/** Fired on every pointer-move while this node is being dragged. Does not bubble. */
|
|
129
|
-
|
|
131
|
+
get onDrag(): Signal<[InteractionEvent]>;
|
|
130
132
|
/** Fired when the drag gesture ends (pointer-up or cancel). Does not bubble. */
|
|
131
|
-
|
|
133
|
+
get onDragEnd(): Signal<[InteractionEvent]>;
|
|
134
|
+
private _interactionSignal;
|
|
135
|
+
/** @internal — the signal for `type`, or `null` if never materialized (used by the dispatch peek). */
|
|
136
|
+
_peekInteractionSignal(type: InteractionEventType): Signal<[InteractionEvent]> | null;
|
|
137
|
+
/**
|
|
138
|
+
* When `true`, this node can receive keyboard focus — via {@link focus},
|
|
139
|
+
* Tab traversal, or `app.focus.focus(node)` — and is delivered key events
|
|
140
|
+
* through {@link onKeyDown} / {@link onKeyUp} while focused.
|
|
141
|
+
*
|
|
142
|
+
* @default false
|
|
143
|
+
*/
|
|
144
|
+
focusable: boolean;
|
|
145
|
+
/**
|
|
146
|
+
* Tab-traversal order among focusable nodes in the same focus scope. Lower
|
|
147
|
+
* values are visited first; equal values keep document (tree) order.
|
|
148
|
+
*
|
|
149
|
+
* @default 0
|
|
150
|
+
*/
|
|
151
|
+
tabIndex: number;
|
|
152
|
+
private _onFocus;
|
|
153
|
+
private _onBlur;
|
|
154
|
+
private _onKeyDown;
|
|
155
|
+
private _onKeyUp;
|
|
156
|
+
/** Fired when this node gains keyboard focus. */
|
|
157
|
+
get onFocus(): Signal<[RenderNode]>;
|
|
158
|
+
/** Fired when this node loses keyboard focus. */
|
|
159
|
+
get onBlur(): Signal<[RenderNode]>;
|
|
160
|
+
/** Fired for each key pressed while this node holds focus. */
|
|
161
|
+
get onKeyDown(): Signal<[KeyEvent]>;
|
|
162
|
+
/** Fired for each key released while this node holds focus. */
|
|
163
|
+
get onKeyUp(): Signal<[KeyEvent]>;
|
|
164
|
+
/** @internal — the focus/blur signal if materialized, else `null` (dispatch peek). */
|
|
165
|
+
_peekFocusSignal(type: 'focus' | 'blur'): Signal<[RenderNode]> | null;
|
|
166
|
+
/** @internal — the keydown/keyup signal if materialized, else `null` (dispatch peek). */
|
|
167
|
+
_peekKeySignal(type: 'keydown' | 'keyup'): Signal<[KeyEvent]> | null;
|
|
168
|
+
/** Request keyboard focus for this node through its owning focus service. */
|
|
169
|
+
focus(): this;
|
|
170
|
+
/** Release keyboard focus from this node if it currently holds it. */
|
|
171
|
+
blur(): this;
|
|
132
172
|
private readonly _filters;
|
|
133
173
|
private readonly _cacheBounds;
|
|
134
174
|
private _cacheSprite;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderNode.d.ts","sourceRoot":"","sources":["../../../src/rendering/RenderNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"RenderNode.d.ts","sourceRoot":"","sources":["../../../src/rendering/RenderNode.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { Color } from '../core/Color.js';
|
|
2
2
|
import { SceneNode } from '../core/SceneNode.js';
|
|
3
3
|
import { Signal } from '../core/Signal.js';
|
|
4
|
-
import { getActiveInteractionManager } from '../input/internal/interactionManagerRegistry.js';
|
|
5
4
|
import { Rectangle } from '../math/Rectangle.js';
|
|
6
5
|
import { playRenderTree } from './plan/playRenderTree.js';
|
|
7
6
|
import './plan/RenderCommand.js';
|
|
@@ -41,7 +40,7 @@ class RenderNode extends SceneNode {
|
|
|
41
40
|
return;
|
|
42
41
|
}
|
|
43
42
|
this._interactive = value;
|
|
44
|
-
|
|
43
|
+
this._stage?.interaction._notifyInteractiveChanged(this, value);
|
|
45
44
|
}
|
|
46
45
|
/**
|
|
47
46
|
* When `true` and `interactive` is also `true`, this node will be
|
|
@@ -91,18 +90,109 @@ class RenderNode extends SceneNode {
|
|
|
91
90
|
* @default null
|
|
92
91
|
*/
|
|
93
92
|
clipShape = null;
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
93
|
+
// Interaction signals are lazily materialized: a non-interactive node (the
|
|
94
|
+
// common case) allocates none. The dispatch path uses _peekInteractionSignal,
|
|
95
|
+
// so firing never materializes a signal that has no listener.
|
|
96
|
+
_signals = null;
|
|
97
|
+
get onPointerDown() {
|
|
98
|
+
return this._interactionSignal('pointerdown');
|
|
99
|
+
}
|
|
100
|
+
get onPointerUp() {
|
|
101
|
+
return this._interactionSignal('pointerup');
|
|
102
|
+
}
|
|
103
|
+
get onPointerMove() {
|
|
104
|
+
return this._interactionSignal('pointermove');
|
|
105
|
+
}
|
|
106
|
+
get onPointerOver() {
|
|
107
|
+
return this._interactionSignal('pointerover');
|
|
108
|
+
}
|
|
109
|
+
get onPointerOut() {
|
|
110
|
+
return this._interactionSignal('pointerout');
|
|
111
|
+
}
|
|
112
|
+
get onPointerTap() {
|
|
113
|
+
return this._interactionSignal('pointertap');
|
|
114
|
+
}
|
|
100
115
|
/** Fired once when a drag gesture begins on this node. Does not bubble. */
|
|
101
|
-
onDragStart
|
|
116
|
+
get onDragStart() {
|
|
117
|
+
return this._interactionSignal('dragstart');
|
|
118
|
+
}
|
|
102
119
|
/** Fired on every pointer-move while this node is being dragged. Does not bubble. */
|
|
103
|
-
onDrag
|
|
120
|
+
get onDrag() {
|
|
121
|
+
return this._interactionSignal('drag');
|
|
122
|
+
}
|
|
104
123
|
/** Fired when the drag gesture ends (pointer-up or cancel). Does not bubble. */
|
|
105
|
-
onDragEnd
|
|
124
|
+
get onDragEnd() {
|
|
125
|
+
return this._interactionSignal('dragend');
|
|
126
|
+
}
|
|
127
|
+
_interactionSignal(type) {
|
|
128
|
+
const signals = (this._signals ??= new Map());
|
|
129
|
+
let signal = signals.get(type);
|
|
130
|
+
if (signal === undefined) {
|
|
131
|
+
signal = new Signal();
|
|
132
|
+
signals.set(type, signal);
|
|
133
|
+
}
|
|
134
|
+
return signal;
|
|
135
|
+
}
|
|
136
|
+
/** @internal — the signal for `type`, or `null` if never materialized (used by the dispatch peek). */
|
|
137
|
+
_peekInteractionSignal(type) {
|
|
138
|
+
return this._signals?.get(type) ?? null;
|
|
139
|
+
}
|
|
140
|
+
// Focus & keyboard. Like the interaction signals these are lazily
|
|
141
|
+
// materialized — a node that never participates in focus allocates none.
|
|
142
|
+
// Routed by FocusManager (app.focus / stage.focus) to the focused node.
|
|
143
|
+
/**
|
|
144
|
+
* When `true`, this node can receive keyboard focus — via {@link focus},
|
|
145
|
+
* Tab traversal, or `app.focus.focus(node)` — and is delivered key events
|
|
146
|
+
* through {@link onKeyDown} / {@link onKeyUp} while focused.
|
|
147
|
+
*
|
|
148
|
+
* @default false
|
|
149
|
+
*/
|
|
150
|
+
focusable = false;
|
|
151
|
+
/**
|
|
152
|
+
* Tab-traversal order among focusable nodes in the same focus scope. Lower
|
|
153
|
+
* values are visited first; equal values keep document (tree) order.
|
|
154
|
+
*
|
|
155
|
+
* @default 0
|
|
156
|
+
*/
|
|
157
|
+
tabIndex = 0;
|
|
158
|
+
_onFocus = null;
|
|
159
|
+
_onBlur = null;
|
|
160
|
+
_onKeyDown = null;
|
|
161
|
+
_onKeyUp = null;
|
|
162
|
+
/** Fired when this node gains keyboard focus. */
|
|
163
|
+
get onFocus() {
|
|
164
|
+
return (this._onFocus ??= new Signal());
|
|
165
|
+
}
|
|
166
|
+
/** Fired when this node loses keyboard focus. */
|
|
167
|
+
get onBlur() {
|
|
168
|
+
return (this._onBlur ??= new Signal());
|
|
169
|
+
}
|
|
170
|
+
/** Fired for each key pressed while this node holds focus. */
|
|
171
|
+
get onKeyDown() {
|
|
172
|
+
return (this._onKeyDown ??= new Signal());
|
|
173
|
+
}
|
|
174
|
+
/** Fired for each key released while this node holds focus. */
|
|
175
|
+
get onKeyUp() {
|
|
176
|
+
return (this._onKeyUp ??= new Signal());
|
|
177
|
+
}
|
|
178
|
+
/** @internal — the focus/blur signal if materialized, else `null` (dispatch peek). */
|
|
179
|
+
_peekFocusSignal(type) {
|
|
180
|
+
return type === 'focus' ? this._onFocus : this._onBlur;
|
|
181
|
+
}
|
|
182
|
+
/** @internal — the keydown/keyup signal if materialized, else `null` (dispatch peek). */
|
|
183
|
+
_peekKeySignal(type) {
|
|
184
|
+
return type === 'keydown' ? this._onKeyDown : this._onKeyUp;
|
|
185
|
+
}
|
|
186
|
+
/** Request keyboard focus for this node through its owning focus service. */
|
|
187
|
+
focus() {
|
|
188
|
+
this._stage?.focus.focus(this);
|
|
189
|
+
return this;
|
|
190
|
+
}
|
|
191
|
+
/** Release keyboard focus from this node if it currently holds it. */
|
|
192
|
+
blur() {
|
|
193
|
+
this._stage?.focus.blur(this);
|
|
194
|
+
return this;
|
|
195
|
+
}
|
|
106
196
|
_filters = [];
|
|
107
197
|
_cacheBounds = new Rectangle();
|
|
108
198
|
_cacheSprite = null;
|
|
@@ -269,15 +359,18 @@ class RenderNode extends SceneNode {
|
|
|
269
359
|
}
|
|
270
360
|
this._filters.length = 0;
|
|
271
361
|
this._mask = null;
|
|
272
|
-
this.
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
this.
|
|
280
|
-
this.
|
|
362
|
+
if (this._signals !== null) {
|
|
363
|
+
for (const signal of this._signals.values()) {
|
|
364
|
+
signal.destroy();
|
|
365
|
+
}
|
|
366
|
+
this._signals.clear();
|
|
367
|
+
this._signals = null;
|
|
368
|
+
}
|
|
369
|
+
this._onFocus?.destroy();
|
|
370
|
+
this._onBlur?.destroy();
|
|
371
|
+
this._onKeyDown?.destroy();
|
|
372
|
+
this._onKeyUp?.destroy();
|
|
373
|
+
this._onFocus = this._onBlur = this._onKeyDown = this._onKeyUp = null;
|
|
281
374
|
}
|
|
282
375
|
_renderContentToTexture(backend, target, left, top, width, height, renderContent) {
|
|
283
376
|
if (this._captureView === null) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderNode.js","sources":["../../../../src/rendering/RenderNode.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RenderNode.js","sources":["../../../../src/rendering/RenderNode.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -22,13 +22,13 @@ class RenderNodePass extends RenderPass {
|
|
|
22
22
|
this._node = node;
|
|
23
23
|
this._target = options?.target ?? null;
|
|
24
24
|
this._clear = options?.clear ?? null;
|
|
25
|
-
this._renderOptions = { view: options
|
|
25
|
+
this._renderOptions = options?.view !== undefined ? { view: options.view } : {};
|
|
26
26
|
this._redirect =
|
|
27
27
|
this._target !== null
|
|
28
28
|
? new BackendTargetPass(backend => playRenderTree(this._node, backend), {
|
|
29
29
|
target: this._target,
|
|
30
30
|
view: options?.view ?? this._target.view,
|
|
31
|
-
clearColor: this._clear
|
|
31
|
+
...(this._clear !== null && { clearColor: this._clear }),
|
|
32
32
|
})
|
|
33
33
|
: null;
|
|
34
34
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderNodePass.js","sources":["../../../../src/rendering/RenderNodePass.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAwBA;;;;;;;;AAQG;AACG,MAAO,cAAe,SAAQ,UAAU,CAAA;AAC3B,IAAA,KAAK;AACL,IAAA,OAAO;AACP,IAAA,MAAM;AACN,IAAA,cAAc;AACd,IAAA,SAAS;IAE1B,WAAA,CAAmB,IAAgB,EAAE,OAA+B,EAAA;QAClE,KAAK,CAAC,OAAO,CAAC;AAEd,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,EAAE,MAAM,IAAI,IAAI;QACtC,IAAI,CAAC,MAAM,GAAG,OAAO,EAAE,KAAK,IAAI,IAAI;QACpC,IAAI,CAAC,cAAc,GAAG,EAAE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"RenderNodePass.js","sources":["../../../../src/rendering/RenderNodePass.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAwBA;;;;;;;;AAQG;AACG,MAAO,cAAe,SAAQ,UAAU,CAAA;AAC3B,IAAA,KAAK;AACL,IAAA,OAAO;AACP,IAAA,MAAM;AACN,IAAA,cAAc;AACd,IAAA,SAAS;IAE1B,WAAA,CAAmB,IAAgB,EAAE,OAA+B,EAAA;QAClE,KAAK,CAAC,OAAO,CAAC;AAEd,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,EAAE,MAAM,IAAI,IAAI;QACtC,IAAI,CAAC,MAAM,GAAG,OAAO,EAAE,KAAK,IAAI,IAAI;QACpC,IAAI,CAAC,cAAc,GAAG,OAAO,EAAE,IAAI,KAAK,SAAS,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE;AAC/E,QAAA,IAAI,CAAC,SAAS;YACZ,IAAI,CAAC,OAAO,KAAK;AACf,kBAAE,IAAI,iBAAiB,CAAC,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE;oBACpE,MAAM,EAAE,IAAI,CAAC,OAAO;oBACpB,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI;AACxC,oBAAA,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;iBACzD;kBACD,IAAI;IACZ;AAEgB,IAAA,OAAO,CAAC,OAAyB,EAAA;AAC/C,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE;YAC3B,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;YAEvC;QACF;AAEA,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE;YACxB,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;QACpC;QAEA,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC;IACjD;AACD;;;;"}
|
|
@@ -28,6 +28,40 @@ export interface RenderStats {
|
|
|
28
28
|
* time from the clamped simulation delta passed to update recipients.
|
|
29
29
|
*/
|
|
30
30
|
rawFrameDeltaMs: number;
|
|
31
|
+
/**
|
|
32
|
+
* Estimated bytes of live GPU memory: the sum over all resident textures
|
|
33
|
+
* (`width · height · bytesPerPixel`, including mip chains) plus all resident
|
|
34
|
+
* GPU buffers (`byteLength`). The GPU exposes no VRAM query, so the engine
|
|
35
|
+
* books every allocation and free itself; this is an upper-bound estimate of
|
|
36
|
+
* the engine-owned footprint, not a driver figure.
|
|
37
|
+
*
|
|
38
|
+
* Unlike the other counters this is a **running total**, not a per-frame
|
|
39
|
+
* accumulator: it is **not** zeroed by {@link resetRenderStats} — live
|
|
40
|
+
* resources outlive frames. It rises when textures/buffers are created and
|
|
41
|
+
* falls when they are destroyed.
|
|
42
|
+
*/
|
|
43
|
+
gpuMemoryBytes: number;
|
|
44
|
+
/**
|
|
45
|
+
* Bytes of content-texture pixel data uploaded CPU → GPU this frame
|
|
46
|
+
* (`texSubImage2D` / `texImage2D` pixel uploads on WebGL2; `writeTexture` on
|
|
47
|
+
* WebGPU). Per-frame accumulator; a static frame that re-uploads nothing
|
|
48
|
+
* reports 0.
|
|
49
|
+
*/
|
|
50
|
+
textureUploadBytes: number;
|
|
51
|
+
/**
|
|
52
|
+
* Bytes of buffer data uploaded CPU → GPU this frame (vertex / index /
|
|
53
|
+
* transform-storage writes). Per-frame accumulator.
|
|
54
|
+
*/
|
|
55
|
+
bufferUploadBytes: number;
|
|
56
|
+
/**
|
|
57
|
+
* Bytes read back GPU → CPU this frame (e.g. `mapAsync` of a storage buffer,
|
|
58
|
+
* render-texture readback). Practically 0 in the 2D render path today; the
|
|
59
|
+
* counter exists so readback paths (screenshots, GPU picking, particle
|
|
60
|
+
* compute) are accounted for when present. Per-frame accumulator.
|
|
61
|
+
*/
|
|
62
|
+
downloadBytes: number;
|
|
63
|
+
/** Number of GPU → CPU readback operations issued this frame. Per-frame accumulator. */
|
|
64
|
+
downloadCount: number;
|
|
31
65
|
}
|
|
32
66
|
/**
|
|
33
67
|
* Allocate a zeroed {@link RenderStats} object for the first frame.
|
|
@@ -36,6 +70,11 @@ export declare const createRenderStats: () => RenderStats;
|
|
|
36
70
|
/**
|
|
37
71
|
* Advance the frame counter and zero all per-frame accumulators in place.
|
|
38
72
|
* Call once at the start of each render tick before recording new data.
|
|
73
|
+
*
|
|
74
|
+
* Note: {@link RenderStats.gpuMemoryBytes} is intentionally **not** reset here.
|
|
75
|
+
* It is a running total of live GPU resources owned by the backend's resource
|
|
76
|
+
* accountant, which persists across frames; zeroing it each tick would make it
|
|
77
|
+
* read 0 after the first frame.
|
|
39
78
|
*/
|
|
40
79
|
export declare const resetRenderStats: (stats: RenderStats) => RenderStats;
|
|
41
80
|
//# sourceMappingURL=RenderStats.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderStats.d.ts","sourceRoot":"","sources":["../../../src/rendering/RenderStats.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,qFAAqF;IACrF,KAAK,EAAE,MAAM,CAAC;IACd,gEAAgE;IAChE,cAAc,EAAE,MAAM,CAAC;IACvB,gEAAgE;IAChE,WAAW,EAAE,MAAM,CAAC;IACpB,kDAAkD;IAClD,SAAS,EAAE,MAAM,CAAC;IAClB,iDAAiD;IACjD,OAAO,EAAE,MAAM,CAAC;IAChB,mDAAmD;IACnD,YAAY,EAAE,MAAM,CAAC;IACrB,mDAAmD;IACnD,mBAAmB,EAAE,MAAM,CAAC;IAC5B,wDAAwD;IACxD,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;;OAMG;IACH,eAAe,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"RenderStats.d.ts","sourceRoot":"","sources":["../../../src/rendering/RenderStats.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,qFAAqF;IACrF,KAAK,EAAE,MAAM,CAAC;IACd,gEAAgE;IAChE,cAAc,EAAE,MAAM,CAAC;IACvB,gEAAgE;IAChE,WAAW,EAAE,MAAM,CAAC;IACpB,kDAAkD;IAClD,SAAS,EAAE,MAAM,CAAC;IAClB,iDAAiD;IACjD,OAAO,EAAE,MAAM,CAAC;IAChB,mDAAmD;IACnD,YAAY,EAAE,MAAM,CAAC;IACrB,mDAAmD;IACnD,mBAAmB,EAAE,MAAM,CAAC;IAC5B,wDAAwD;IACxD,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;;OAMG;IACH,eAAe,EAAE,MAAM,CAAC;IACxB;;;;;;;;;;;OAWG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB;;;;;OAKG;IACH,kBAAkB,EAAE,MAAM,CAAC;IAC3B;;;OAGG;IACH,iBAAiB,EAAE,MAAM,CAAC;IAC1B;;;;;OAKG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB,wFAAwF;IACxF,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,QAAO,WAenC,CAAC;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,GAAI,OAAO,WAAW,KAAG,WAgBrD,CAAC"}
|
|
@@ -11,10 +11,20 @@ const createRenderStats = () => ({
|
|
|
11
11
|
renderTargetChanges: 0,
|
|
12
12
|
frameTimeMs: 0,
|
|
13
13
|
rawFrameDeltaMs: 0,
|
|
14
|
+
gpuMemoryBytes: 0,
|
|
15
|
+
textureUploadBytes: 0,
|
|
16
|
+
bufferUploadBytes: 0,
|
|
17
|
+
downloadBytes: 0,
|
|
18
|
+
downloadCount: 0,
|
|
14
19
|
});
|
|
15
20
|
/**
|
|
16
21
|
* Advance the frame counter and zero all per-frame accumulators in place.
|
|
17
22
|
* Call once at the start of each render tick before recording new data.
|
|
23
|
+
*
|
|
24
|
+
* Note: {@link RenderStats.gpuMemoryBytes} is intentionally **not** reset here.
|
|
25
|
+
* It is a running total of live GPU resources owned by the backend's resource
|
|
26
|
+
* accountant, which persists across frames; zeroing it each tick would make it
|
|
27
|
+
* read 0 after the first frame.
|
|
18
28
|
*/
|
|
19
29
|
const resetRenderStats = (stats) => {
|
|
20
30
|
stats.frame++;
|
|
@@ -26,6 +36,10 @@ const resetRenderStats = (stats) => {
|
|
|
26
36
|
stats.renderTargetChanges = 0;
|
|
27
37
|
stats.frameTimeMs = 0;
|
|
28
38
|
stats.rawFrameDeltaMs = 0;
|
|
39
|
+
stats.textureUploadBytes = 0;
|
|
40
|
+
stats.bufferUploadBytes = 0;
|
|
41
|
+
stats.downloadBytes = 0;
|
|
42
|
+
stats.downloadCount = 0;
|
|
29
43
|
return stats;
|
|
30
44
|
};
|
|
31
45
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderStats.js","sources":["../../../../src/rendering/RenderStats.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RenderStats.js","sources":["../../../../src/rendering/RenderStats.ts"],"sourcesContent":[null],"names":[],"mappings":"AAkEA;;AAEG;AACI,MAAM,iBAAiB,GAAG,OAAoB;AACnD,IAAA,KAAK,EAAE,CAAC;AACR,IAAA,cAAc,EAAE,CAAC;AACjB,IAAA,WAAW,EAAE,CAAC;AACd,IAAA,SAAS,EAAE,CAAC;AACZ,IAAA,OAAO,EAAE,CAAC;AACV,IAAA,YAAY,EAAE,CAAC;AACf,IAAA,mBAAmB,EAAE,CAAC;AACtB,IAAA,WAAW,EAAE,CAAC;AACd,IAAA,eAAe,EAAE,CAAC;AAClB,IAAA,cAAc,EAAE,CAAC;AACjB,IAAA,kBAAkB,EAAE,CAAC;AACrB,IAAA,iBAAiB,EAAE,CAAC;AACpB,IAAA,aAAa,EAAE,CAAC;AAChB,IAAA,aAAa,EAAE,CAAC;AACjB,CAAA;AAED;;;;;;;;AAQG;AACI,MAAM,gBAAgB,GAAG,CAAC,KAAkB,KAAiB;IAClE,KAAK,CAAC,KAAK,EAAE;AACb,IAAA,KAAK,CAAC,cAAc,GAAG,CAAC;AACxB,IAAA,KAAK,CAAC,WAAW,GAAG,CAAC;AACrB,IAAA,KAAK,CAAC,SAAS,GAAG,CAAC;AACnB,IAAA,KAAK,CAAC,OAAO,GAAG,CAAC;AACjB,IAAA,KAAK,CAAC,YAAY,GAAG,CAAC;AACtB,IAAA,KAAK,CAAC,mBAAmB,GAAG,CAAC;AAC7B,IAAA,KAAK,CAAC,WAAW,GAAG,CAAC;AACrB,IAAA,KAAK,CAAC,eAAe,GAAG,CAAC;AACzB,IAAA,KAAK,CAAC,kBAAkB,GAAG,CAAC;AAC5B,IAAA,KAAK,CAAC,iBAAiB,GAAG,CAAC;AAC3B,IAAA,KAAK,CAAC,aAAa,GAAG,CAAC;AACvB,IAAA,KAAK,CAAC,aAAa,GAAG,CAAC;AAEvB,IAAA,OAAO,KAAK;AACd;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RendererRegistry.d.ts","sourceRoot":"","sources":["../../../src/rendering/RendererRegistry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RendererRegistry.d.ts","sourceRoot":"","sources":["../../../src/rendering/RendererRegistry.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAShE;;;;;;;;;;;;;GAaG;AACH,qBAAa,gBAAgB,CAAC,OAAO,SAAS,aAAa;IACzD,OAAO,CAAC,QAAQ,CAAC,UAAU,CASxB;IACH,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqD;IAC/E,OAAO,CAAC,QAAQ,CAAwB;IAExC;;;;;;;;OAQG;IACI,gBAAgB,CAAC,MAAM,SAAS,QAAQ,EAAE,YAAY,EAAE,mBAAmB,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,IAAI;IAetI;;;;;OAKG;IACI,YAAY,CAAC,OAAO,EAAE,SAAS,mBAAmB,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,IAAI;IAqC/F;;;;OAIG;IACI,SAAS,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAI/C;;;;;;OAMG;IACI,OAAO,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC;IAuBrD;;OAEG;IACI,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAQtC;;OAEG;IACI,UAAU,IAAI,IAAI;IAQzB;;;;OAIG;IACI,OAAO,IAAI,IAAI;CAKvB"}
|
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
import { Registry } from '../core/Registry.js';
|
|
2
|
+
|
|
3
|
+
/** Climbs one step up the prototype chain, returning the parent constructor. */
|
|
4
|
+
const parentConstructor = (type) => {
|
|
5
|
+
const prototype = Object.getPrototypeOf(type.prototype);
|
|
6
|
+
return prototype?.constructor ?? null;
|
|
7
|
+
};
|
|
1
8
|
/**
|
|
2
9
|
* Instance-based renderer registry.
|
|
3
10
|
*
|
|
@@ -13,7 +20,15 @@
|
|
|
13
20
|
* @advanced
|
|
14
21
|
*/
|
|
15
22
|
class RendererRegistry {
|
|
16
|
-
_renderers = new
|
|
23
|
+
_renderers = new Registry({
|
|
24
|
+
walk: parentConstructor,
|
|
25
|
+
dispose: renderer => {
|
|
26
|
+
renderer.disconnect();
|
|
27
|
+
if ('destroy' in renderer && typeof renderer.destroy === 'function') {
|
|
28
|
+
renderer.destroy();
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
});
|
|
17
32
|
_resolved = new Map();
|
|
18
33
|
_backend = null;
|
|
19
34
|
/**
|
|
@@ -26,7 +41,7 @@ class RendererRegistry {
|
|
|
26
41
|
* @throws Error if a renderer is already registered for this drawable type.
|
|
27
42
|
*/
|
|
28
43
|
registerRenderer(drawableType, renderer) {
|
|
29
|
-
if (this._renderers.
|
|
44
|
+
if (this._renderers.hasOwn(drawableType)) {
|
|
30
45
|
throw new Error(`A renderer is already registered for ${drawableType.name}.`);
|
|
31
46
|
}
|
|
32
47
|
// Widen TDrawable to Drawable for storage. Safe because the map key
|
|
@@ -57,7 +72,7 @@ class RendererRegistry {
|
|
|
57
72
|
}
|
|
58
73
|
// Validate: no target already registered — throw before any mutation
|
|
59
74
|
for (const target of targets) {
|
|
60
|
-
if (this._renderers.
|
|
75
|
+
if (this._renderers.hasOwn(target)) {
|
|
61
76
|
throw new Error(`A renderer is already registered for ${target.name}.`);
|
|
62
77
|
}
|
|
63
78
|
}
|
|
@@ -93,15 +108,7 @@ class RendererRegistry {
|
|
|
93
108
|
if (cached !== undefined) {
|
|
94
109
|
return cached;
|
|
95
110
|
}
|
|
96
|
-
|
|
97
|
-
let renderer;
|
|
98
|
-
while (constructor !== null && !renderer) {
|
|
99
|
-
renderer = this._renderers.get(constructor);
|
|
100
|
-
if (!renderer) {
|
|
101
|
-
const prototype = Object.getPrototypeOf(constructor.prototype);
|
|
102
|
-
constructor = prototype?.constructor ?? null;
|
|
103
|
-
}
|
|
104
|
-
}
|
|
111
|
+
const renderer = this._renderers.resolve(ctor);
|
|
105
112
|
if (!renderer) {
|
|
106
113
|
throw new Error(`No renderer registered for ${drawable.constructor.name}. ` +
|
|
107
114
|
'If it comes from an ExoJS extension, import that package before creating the Application, ' +
|
|
@@ -134,17 +141,7 @@ class RendererRegistry {
|
|
|
134
141
|
* instance is disconnected and destroyed exactly once.
|
|
135
142
|
*/
|
|
136
143
|
destroy() {
|
|
137
|
-
|
|
138
|
-
for (const renderer of this._renderers.values()) {
|
|
139
|
-
if (!seen.has(renderer)) {
|
|
140
|
-
seen.add(renderer);
|
|
141
|
-
renderer.disconnect();
|
|
142
|
-
if ('destroy' in renderer && typeof renderer.destroy === 'function') {
|
|
143
|
-
renderer.destroy();
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
this._renderers.clear();
|
|
144
|
+
this._renderers.destroy();
|
|
148
145
|
this._resolved.clear();
|
|
149
146
|
this._backend = null;
|
|
150
147
|
}
|