@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RendererRegistry.js","sources":["../../../../src/rendering/RendererRegistry.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RendererRegistry.js","sources":["../../../../src/rendering/RendererRegistry.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
import type { Color } from '#core/Color';
|
|
2
|
+
import type { System } from '#core/System';
|
|
3
|
+
import type { Time } from '#core/Time';
|
|
4
|
+
import type { Matrix } from '#math/Matrix';
|
|
5
|
+
import type { Geometry } from '#rendering/geometry/Geometry';
|
|
6
|
+
import type { MeshMaterial } from '#rendering/material/MeshMaterial';
|
|
2
7
|
import { RenderTexture } from '#rendering/texture/RenderTexture';
|
|
3
8
|
import { Camera } from './Camera';
|
|
4
9
|
import { type RenderBackend } from './RenderBackend';
|
|
10
|
+
import { type RenderBatch } from './RenderBatch';
|
|
5
11
|
import { type RenderNode } from './RenderNode';
|
|
6
12
|
import { type RenderStats } from './RenderStats';
|
|
7
13
|
import { View } from './View';
|
|
@@ -14,6 +20,24 @@ export interface RenderOptions {
|
|
|
14
20
|
/** Override the view used for this render call. Defaults to the context's active camera. */
|
|
15
21
|
view?: View;
|
|
16
22
|
}
|
|
23
|
+
/** Options for {@link RenderingContext.drawGeometry}. */
|
|
24
|
+
export interface DrawGeometryOptions {
|
|
25
|
+
/**
|
|
26
|
+
* Custom look (shader / uniforms / textures / blend mode) for this draw. Must
|
|
27
|
+
* target `'mesh'`. Defaults to the standard mesh material (vertex colors,
|
|
28
|
+
* optional texture), so an untextured colored geometry needs no material.
|
|
29
|
+
*/
|
|
30
|
+
material?: MeshMaterial;
|
|
31
|
+
/** Tint multiplied into the geometry's vertex colors. Defaults to white (no tint). */
|
|
32
|
+
tint?: Color;
|
|
33
|
+
/** Override the view used for this draw. Defaults to the context's active camera. */
|
|
34
|
+
view?: View;
|
|
35
|
+
}
|
|
36
|
+
/** Options for {@link RenderingContext.drawBatch}. */
|
|
37
|
+
export interface DrawBatchOptions {
|
|
38
|
+
/** Override the view used for this draw. Defaults to the context's active camera. */
|
|
39
|
+
view?: View;
|
|
40
|
+
}
|
|
17
41
|
/**
|
|
18
42
|
* Owns rendering orchestration: builds, optimizes and plays the internal
|
|
19
43
|
* RenderPlan for a RenderNode subtree, manages render-target/view state for
|
|
@@ -25,10 +49,16 @@ export interface RenderOptions {
|
|
|
25
49
|
* context.renderTo(node, opts) // into an off-screen RenderTexture
|
|
26
50
|
* @stable
|
|
27
51
|
*/
|
|
28
|
-
export declare class RenderingContext {
|
|
52
|
+
export declare class RenderingContext implements System {
|
|
53
|
+
/** App-systems tick band — rendering last (camera + render-plan prep). @internal */
|
|
54
|
+
readonly order = 500;
|
|
29
55
|
private readonly _backend;
|
|
30
56
|
private _camera;
|
|
31
57
|
private readonly _screenView;
|
|
58
|
+
/** Lazily-created pooled drawable reused by every {@link drawGeometry} call. */
|
|
59
|
+
private _immediateMesh;
|
|
60
|
+
/** Lazily-created pooled geometry/look source reused by every {@link drawBatch} call. */
|
|
61
|
+
private _batchMesh;
|
|
32
62
|
constructor(backend: RenderBackend);
|
|
33
63
|
/**
|
|
34
64
|
* The active camera. Defaults to a camera that matches the initial
|
|
@@ -49,10 +79,17 @@ export declare class RenderingContext {
|
|
|
49
79
|
/** Backward-compatible alias — returns the active {@link camera}. */
|
|
50
80
|
get view(): View;
|
|
51
81
|
/**
|
|
52
|
-
* Advance follow, shake, and bounds-constraint animations on the
|
|
53
|
-
*
|
|
82
|
+
* Advance follow, shake, and bounds-constraint animations on the active
|
|
83
|
+
* camera. Ticked once per frame via {@link Application.systems}.
|
|
84
|
+
*/
|
|
85
|
+
update(delta: Time): void;
|
|
86
|
+
/**
|
|
87
|
+
* Destroy the resources this context owns — the active {@link Camera} and the
|
|
88
|
+
* screen-space {@link View}. The {@link RenderBackend} is owned by the
|
|
89
|
+
* Application and destroyed separately.
|
|
90
|
+
* @internal — invoked via Application.systems on teardown.
|
|
54
91
|
*/
|
|
55
|
-
|
|
92
|
+
destroy(): void;
|
|
56
93
|
/**
|
|
57
94
|
* Resize the camera and screen view to match new canvas dimensions.
|
|
58
95
|
* Preserves the camera's center and zoom; only the visible area size changes.
|
|
@@ -76,6 +113,53 @@ export declare class RenderingContext {
|
|
|
76
113
|
* rendering state is undisturbed.
|
|
77
114
|
*/
|
|
78
115
|
renderTo(node: RenderNode, options: RenderToOptions): RenderTexture;
|
|
116
|
+
/**
|
|
117
|
+
* Immediately draw a single {@link Geometry} with `transform` as its world
|
|
118
|
+
* matrix — no retained {@link RenderNode} required. Useful for procedural or
|
|
119
|
+
* data-driven shapes that would be wasteful to wrap in a node.
|
|
120
|
+
*
|
|
121
|
+
* The draw is submitted through the mesh renderer and flushed at once, so it
|
|
122
|
+
* lands in call order relative to the surrounding {@link render} calls: a
|
|
123
|
+
* `drawGeometry` issued after a layer's `render` draws on top of it. All
|
|
124
|
+
* output is presented at the frame-end backend flush, as usual.
|
|
125
|
+
*
|
|
126
|
+
* `transform` is taken as the raw world matrix (`a, b, c, d, tx, ty`),
|
|
127
|
+
* bypassing the position / rotation / scale / origin composition a node would
|
|
128
|
+
* apply — build it with {@link Matrix} directly. The geometry must use the
|
|
129
|
+
* `triangle-list` topology and the standard mesh attribute layout (position,
|
|
130
|
+
* optional texcoord and color); custom per-vertex attributes are dropped.
|
|
131
|
+
*
|
|
132
|
+
* This is the single-draw convenience of the immediate API: each call is its
|
|
133
|
+
* own flush and draw call, and the geometry is repacked every call, so it is
|
|
134
|
+
* best for a handful of draws. An instanced batch path for drawing many like
|
|
135
|
+
* items as one upload + one draw follows in a later release.
|
|
136
|
+
*
|
|
137
|
+
* @param geometry Source geometry (interleaved vertex data + layout).
|
|
138
|
+
* @param transform World matrix applied to the geometry's local vertices.
|
|
139
|
+
* @param options Optional {@link DrawGeometryOptions.material material},
|
|
140
|
+
* {@link DrawGeometryOptions.tint tint}, and
|
|
141
|
+
* {@link DrawGeometryOptions.view view}.
|
|
142
|
+
*/
|
|
143
|
+
drawGeometry(geometry: Geometry, transform: Matrix, options?: DrawGeometryOptions): void;
|
|
144
|
+
/**
|
|
145
|
+
* Immediately draw an instanced {@link RenderBatch} — one geometry + material
|
|
146
|
+
* drawn once with the batch's N per-instance `(transform, tint)` pairs as a
|
|
147
|
+
* single instanced draw call. This is the high-throughput immediate path: use
|
|
148
|
+
* it for many like items (tiles, bullets, procedural instances) where
|
|
149
|
+
* {@link drawGeometry} would issue one draw call each.
|
|
150
|
+
*
|
|
151
|
+
* Like {@link drawGeometry}, the batch is flushed at once and lands in call
|
|
152
|
+
* order relative to the surrounding {@link render} calls. An empty batch is a
|
|
153
|
+
* no-op.
|
|
154
|
+
*
|
|
155
|
+
* v1 renders with the default mesh material (per-instance tint over the
|
|
156
|
+
* geometry's vertex colors); a custom {@link RenderBatch.material} is not yet
|
|
157
|
+
* supported on the instanced path.
|
|
158
|
+
*
|
|
159
|
+
* @param batch The instanced submission (geometry + per-instance transforms/tints).
|
|
160
|
+
* @param options Optional {@link DrawBatchOptions.view view} override.
|
|
161
|
+
*/
|
|
162
|
+
drawBatch(batch: RenderBatch, options?: DrawBatchOptions): void;
|
|
79
163
|
/** Per-frame render counters. Convenience over backend.stats. */
|
|
80
164
|
get stats(): RenderStats;
|
|
81
165
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderingContext.d.ts","sourceRoot":"","sources":["../../../src/rendering/RenderingContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"RenderingContext.d.ts","sourceRoot":"","sources":["../../../src/rendering/RenderingContext.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
+
import { ImmediateMesh } from './mesh/ImmediateMesh.js';
|
|
1
2
|
import { StencilAttachmentMode } from './pass/RenderPassDescriptor.js';
|
|
2
3
|
import { playRenderTree } from './plan/playRenderTree.js';
|
|
3
4
|
import { RenderTexture } from './texture/RenderTexture.js';
|
|
4
5
|
import { Camera } from './Camera.js';
|
|
5
6
|
import '../core/Color.js';
|
|
7
|
+
import '../math/Matrix.js';
|
|
6
8
|
import '../core/SceneNode.js';
|
|
7
9
|
import '../math/Size.js';
|
|
8
|
-
import '../core/Time.js';
|
|
9
10
|
import '../math/Rectangle.js';
|
|
10
11
|
import './plan/RenderCommand.js';
|
|
11
12
|
import './plan/RenderScope.js';
|
|
@@ -24,9 +25,15 @@ import { View } from './View.js';
|
|
|
24
25
|
* @stable
|
|
25
26
|
*/
|
|
26
27
|
class RenderingContext {
|
|
28
|
+
/** App-systems tick band — rendering last (camera + render-plan prep). @internal */
|
|
29
|
+
order = 500;
|
|
27
30
|
_backend;
|
|
28
31
|
_camera;
|
|
29
32
|
_screenView;
|
|
33
|
+
/** Lazily-created pooled drawable reused by every {@link drawGeometry} call. */
|
|
34
|
+
_immediateMesh = null;
|
|
35
|
+
/** Lazily-created pooled geometry/look source reused by every {@link drawBatch} call. */
|
|
36
|
+
_batchMesh = null;
|
|
30
37
|
constructor(backend) {
|
|
31
38
|
this._backend = backend;
|
|
32
39
|
const viewWidth = backend.view?.width ?? 0;
|
|
@@ -70,11 +77,25 @@ class RenderingContext {
|
|
|
70
77
|
return this._camera;
|
|
71
78
|
}
|
|
72
79
|
/**
|
|
73
|
-
* Advance follow, shake, and bounds-constraint animations on the
|
|
74
|
-
*
|
|
80
|
+
* Advance follow, shake, and bounds-constraint animations on the active
|
|
81
|
+
* camera. Ticked once per frame via {@link Application.systems}.
|
|
75
82
|
*/
|
|
76
|
-
update(
|
|
77
|
-
this._camera.update(
|
|
83
|
+
update(delta) {
|
|
84
|
+
this._camera.update(delta.milliseconds);
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Destroy the resources this context owns — the active {@link Camera} and the
|
|
88
|
+
* screen-space {@link View}. The {@link RenderBackend} is owned by the
|
|
89
|
+
* Application and destroyed separately.
|
|
90
|
+
* @internal — invoked via Application.systems on teardown.
|
|
91
|
+
*/
|
|
92
|
+
destroy() {
|
|
93
|
+
this._camera.destroy();
|
|
94
|
+
this._screenView.destroy();
|
|
95
|
+
this._immediateMesh?.destroy();
|
|
96
|
+
this._immediateMesh = null;
|
|
97
|
+
this._batchMesh?.destroy();
|
|
98
|
+
this._batchMesh = null;
|
|
78
99
|
}
|
|
79
100
|
/**
|
|
80
101
|
* Resize the camera and screen view to match new canvas dimensions.
|
|
@@ -139,6 +160,87 @@ class RenderingContext {
|
|
|
139
160
|
}
|
|
140
161
|
return target;
|
|
141
162
|
}
|
|
163
|
+
/**
|
|
164
|
+
* Immediately draw a single {@link Geometry} with `transform` as its world
|
|
165
|
+
* matrix — no retained {@link RenderNode} required. Useful for procedural or
|
|
166
|
+
* data-driven shapes that would be wasteful to wrap in a node.
|
|
167
|
+
*
|
|
168
|
+
* The draw is submitted through the mesh renderer and flushed at once, so it
|
|
169
|
+
* lands in call order relative to the surrounding {@link render} calls: a
|
|
170
|
+
* `drawGeometry` issued after a layer's `render` draws on top of it. All
|
|
171
|
+
* output is presented at the frame-end backend flush, as usual.
|
|
172
|
+
*
|
|
173
|
+
* `transform` is taken as the raw world matrix (`a, b, c, d, tx, ty`),
|
|
174
|
+
* bypassing the position / rotation / scale / origin composition a node would
|
|
175
|
+
* apply — build it with {@link Matrix} directly. The geometry must use the
|
|
176
|
+
* `triangle-list` topology and the standard mesh attribute layout (position,
|
|
177
|
+
* optional texcoord and color); custom per-vertex attributes are dropped.
|
|
178
|
+
*
|
|
179
|
+
* This is the single-draw convenience of the immediate API: each call is its
|
|
180
|
+
* own flush and draw call, and the geometry is repacked every call, so it is
|
|
181
|
+
* best for a handful of draws. An instanced batch path for drawing many like
|
|
182
|
+
* items as one upload + one draw follows in a later release.
|
|
183
|
+
*
|
|
184
|
+
* @param geometry Source geometry (interleaved vertex data + layout).
|
|
185
|
+
* @param transform World matrix applied to the geometry's local vertices.
|
|
186
|
+
* @param options Optional {@link DrawGeometryOptions.material material},
|
|
187
|
+
* {@link DrawGeometryOptions.tint tint}, and
|
|
188
|
+
* {@link DrawGeometryOptions.view view}.
|
|
189
|
+
*/
|
|
190
|
+
drawGeometry(geometry, transform, options = {}) {
|
|
191
|
+
const material = options.material ?? null;
|
|
192
|
+
// Defensive guard for JS callers; the MeshMaterial type already enforces
|
|
193
|
+
// this for TypeScript callers (its `target` is the literal 'mesh').
|
|
194
|
+
if (material !== null && material.target !== 'mesh') {
|
|
195
|
+
throw new Error(`drawGeometry material must target 'mesh' (got '${String(material.target)}').`);
|
|
196
|
+
}
|
|
197
|
+
const view = options.view ?? this._camera;
|
|
198
|
+
const mesh = (this._immediateMesh ??= new ImmediateMesh());
|
|
199
|
+
// Set the view first: this flushes whatever renderer a prior render() /
|
|
200
|
+
// drawGeometry left pending, so the shared transform buffer is free for this
|
|
201
|
+
// draw's synthetic slot and the pooled mesh is safe to reconfigure. The
|
|
202
|
+
// immediate flush below then keeps a later drawGeometry from observing this
|
|
203
|
+
// pooled mesh through a still-deferred draw.
|
|
204
|
+
this._backend.setView(view);
|
|
205
|
+
mesh.configure(geometry, transform, material, options.tint ?? null);
|
|
206
|
+
this._backend.draw(mesh);
|
|
207
|
+
this._backend.flush();
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Immediately draw an instanced {@link RenderBatch} — one geometry + material
|
|
211
|
+
* drawn once with the batch's N per-instance `(transform, tint)` pairs as a
|
|
212
|
+
* single instanced draw call. This is the high-throughput immediate path: use
|
|
213
|
+
* it for many like items (tiles, bullets, procedural instances) where
|
|
214
|
+
* {@link drawGeometry} would issue one draw call each.
|
|
215
|
+
*
|
|
216
|
+
* Like {@link drawGeometry}, the batch is flushed at once and lands in call
|
|
217
|
+
* order relative to the surrounding {@link render} calls. An empty batch is a
|
|
218
|
+
* no-op.
|
|
219
|
+
*
|
|
220
|
+
* v1 renders with the default mesh material (per-instance tint over the
|
|
221
|
+
* geometry's vertex colors); a custom {@link RenderBatch.material} is not yet
|
|
222
|
+
* supported on the instanced path.
|
|
223
|
+
*
|
|
224
|
+
* @param batch The instanced submission (geometry + per-instance transforms/tints).
|
|
225
|
+
* @param options Optional {@link DrawBatchOptions.view view} override.
|
|
226
|
+
*/
|
|
227
|
+
drawBatch(batch, options = {}) {
|
|
228
|
+
if (batch.material !== null) {
|
|
229
|
+
throw new Error('drawBatch custom materials are not supported yet — v1 renders batches with the default mesh material.');
|
|
230
|
+
}
|
|
231
|
+
if (batch.count === 0) {
|
|
232
|
+
return;
|
|
233
|
+
}
|
|
234
|
+
const view = options.view ?? this._camera;
|
|
235
|
+
const mesh = (this._batchMesh ??= new ImmediateMesh());
|
|
236
|
+
// Set the view first (flushing any renderer left pending), configure the
|
|
237
|
+
// pooled geometry/look source, then submit a single instanced draw over the
|
|
238
|
+
// batch's per-instance transforms/tints and flush it immediately.
|
|
239
|
+
this._backend.setView(view);
|
|
240
|
+
mesh.configureBatchSource(batch.geometry, batch.material);
|
|
241
|
+
this._backend.drawInstanced(mesh, batch._instanceTransforms, batch._instanceTints, batch.count);
|
|
242
|
+
this._backend.flush();
|
|
243
|
+
}
|
|
142
244
|
/** Per-frame render counters. Convenience over backend.stats. */
|
|
143
245
|
get stats() {
|
|
144
246
|
return this._backend.stats;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderingContext.js","sources":["../../../../src/rendering/RenderingContext.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RenderingContext.js","sources":["../../../../src/rendering/RenderingContext.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TransformBuffer.d.ts","sourceRoot":"","sources":["../../../src/rendering/TransformBuffer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAU3C,gBAAgB;AAChB,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;GASG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,KAAK,CAAmE;IAChF,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,UAAU,CAAoB;IACtC,OAAO,CAAC,kBAAkB,CAAK;IAC/B,OAAO,CAAC,mBAAmB,CAAM;IACjC,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,kBAAkB,CAAK;IAC/B,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,oBAAoB,CAAK;IAEjC,IAAW,KAAK,IAAI,MAAM,CAEzB;IAED;;;;;OAKG;IACH,IAAW,UAAU,IAAI,MAAM,CAE9B;IAED;;;;;OAKG;IACH,IAAW,iBAAiB,IAAI,MAAM,CAErC;IAED;;;;;OAKG;IACH,IAAW,WAAW,IAAI,MAAM,CAE/B;IAED;;;;OAIG;IACH,IAAW,mBAAmB,IAAI,MAAM,CAEvC;IAED,IAAW,QAAQ,IAAI,MAAM,CAE5B;IAED,IAAW,IAAI,IAAI,YAAY,CAE9B;IAED,IAAW,OAAO,IAAI,MAAM,CAE3B;IAEM,KAAK,CAAC,aAAa,SAAI,GAAG,IAAI;IAe9B,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,MAAM;IAQ5C,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"TransformBuffer.d.ts","sourceRoot":"","sources":["../../../src/rendering/TransformBuffer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAU3C,gBAAgB;AAChB,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;GASG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,KAAK,CAAmE;IAChF,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,UAAU,CAAoB;IACtC,OAAO,CAAC,kBAAkB,CAAK;IAC/B,OAAO,CAAC,mBAAmB,CAAM;IACjC,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,kBAAkB,CAAK;IAC/B,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,oBAAoB,CAAK;IAEjC,IAAW,KAAK,IAAI,MAAM,CAEzB;IAED;;;;;OAKG;IACH,IAAW,UAAU,IAAI,MAAM,CAE9B;IAED;;;;;OAKG;IACH,IAAW,iBAAiB,IAAI,MAAM,CAErC;IAED;;;;;OAKG;IACH,IAAW,WAAW,IAAI,MAAM,CAE/B;IAED;;;;OAIG;IACH,IAAW,mBAAmB,IAAI,MAAM,CAEvC;IAED,IAAW,QAAQ,IAAI,MAAM,CAE5B;IAED,IAAW,IAAI,IAAI,YAAY,CAE9B;IAED,IAAW,OAAO,IAAI,MAAM,CAE3B;IAEM,KAAK,CAAC,aAAa,SAAI,GAAG,IAAI;IAe9B,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,MAAM;IAQ5C,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,IAAI;IAuChE;;;;;OAKG;IACI,kBAAkB,IAAI,IAAI;IAMjC;;;;OAIG;IACI,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAOvC,cAAc,CAAC,QAAQ,SAAI,GAAG,4BAA4B;IAmBjE,OAAO,CAAC,eAAe;IAmBvB,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,IAAI;CAGb"}
|
|
@@ -113,6 +113,7 @@ class TransformBuffer {
|
|
|
113
113
|
}
|
|
114
114
|
this._frameHash = this._mix(this._frameHash, slot);
|
|
115
115
|
for (let i = 0; i < floatsPerSlot; i++) {
|
|
116
|
+
// In-bounds: offset..offset+floatsPerSlot-1 is the just-written slot.
|
|
116
117
|
this._frameHash = this._mix(this._frameHash, this._hashFloat(data[offset + i]));
|
|
117
118
|
}
|
|
118
119
|
this._writeCount++;
|
|
@@ -169,6 +170,7 @@ class TransformBuffer {
|
|
|
169
170
|
}
|
|
170
171
|
_hashFloat(value) {
|
|
171
172
|
hashFloatScratch[0] = value;
|
|
173
|
+
// hashUintScratch is a 1-element view aliasing hashFloatScratch.
|
|
172
174
|
return hashUintScratch[0] >>> 0;
|
|
173
175
|
}
|
|
174
176
|
_mix(hash, value) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TransformBuffer.js","sources":["../../../../src/rendering/TransformBuffer.ts"],"sourcesContent":[null],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"TransformBuffer.js","sources":["../../../../src/rendering/TransformBuffer.ts"],"sourcesContent":[null],"names":[],"mappings":"AAGA,MAAM,aAAa,GAAG,EAAE;AACxB,MAAM,eAAe,GAAG,EAAE;AAC1B,MAAM,SAAS,GAAG,UAAU;AAC5B,MAAM,UAAU,GAAG,UAAU;AAE7B,MAAM,gBAAgB,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC;AAC5C,MAAM,eAAe,GAAG,IAAI,WAAW,CAAC,gBAAgB,CAAC,MAAM,CAAC;AAUhE;;;;;;;;;AASG;MACU,eAAe,CAAA;IAClB,KAAK,GAAiB,IAAI,YAAY,CAAC,eAAe,GAAG,aAAa,CAAC;IACvE,MAAM,GAAG,CAAC;IACV,QAAQ,GAAG,CAAC;AACZ,IAAA,UAAU,GAAG,UAAU,KAAK,CAAC;IAC7B,kBAAkB,GAAG,CAAC;IACtB,mBAAmB,GAAG,EAAE;IACxB,WAAW,GAAG,CAAC;IACf,kBAAkB,GAAG,CAAC;IACtB,YAAY,GAAG,CAAC;IAChB,oBAAoB,GAAG,CAAC;AAEhC,IAAA,IAAW,KAAK,GAAA;QACd,OAAO,IAAI,CAAC,MAAM;IACpB;AAEA;;;;;AAKG;AACH,IAAA,IAAW,UAAU,GAAA;QACnB,OAAO,IAAI,CAAC,WAAW;IACzB;AAEA;;;;;AAKG;AACH,IAAA,IAAW,iBAAiB,GAAA;QAC1B,OAAO,IAAI,CAAC,kBAAkB;IAChC;AAEA;;;;;AAKG;AACH,IAAA,IAAW,WAAW,GAAA;QACpB,OAAO,IAAI,CAAC,YAAY;IAC1B;AAEA;;;;AAIG;AACH,IAAA,IAAW,mBAAmB,GAAA;QAC5B,OAAO,IAAI,CAAC,oBAAoB;IAClC;AAEA,IAAA,IAAW,QAAQ,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,aAAa;IAC1C;AAEA,IAAA,IAAW,IAAI,GAAA;QACb,OAAO,IAAI,CAAC,KAAK;IACnB;AAEA,IAAA,IAAW,OAAO,GAAA;QAChB,OAAO,IAAI,CAAC,QAAQ;IACtB;IAEO,KAAK,CAAC,aAAa,GAAG,CAAC,EAAA;AAC5B,QAAA,IAAI,aAAa,GAAG,CAAC,EAAE;AACrB,YAAA,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC;QACrC;AAEA,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC;AACf,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU,KAAK,CAAC;AAClC,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC;AACpB,QAAA,IAAI,CAAC,kBAAkB,GAAG,CAAC;AAC3B,QAAA,IAAI,CAAC,YAAY,GAAG,CAAC;AACrB,QAAA,IAAI,CAAC,oBAAoB,GAAG,CAAC;AAE7B,QAAA,OAAO,IAAI;IACb;IAEO,IAAI,CAAC,SAAiB,EAAE,IAAW,EAAA;AACxC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM;QAExB,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC;AAEjC,QAAA,OAAO,IAAI;IACb;AAEO,IAAA,KAAK,CAAC,IAAY,EAAE,SAAiB,EAAE,IAAW,EAAA;AACvD,QAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE;AACvC,YAAA,MAAM,IAAI,KAAK,CAAC,4DAA4D,IAAI,CAAA,EAAA,CAAI,CAAC;QACvF;AAEA,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,GAAG,CAAC,CAAC;AAE9B,QAAA,MAAM,MAAM,GAAG,IAAI,GAAG,aAAa;AACnC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK;QAEvB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;AAC9B,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC;AACpB,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC;QACpB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG;QAC/B,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG;QAC/B,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG;QAChC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;AAE1B,QAAA,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE;AACvB,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC;QACxB;AAEA,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC;AAElD,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE;;YAEtC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,CAAC;QAClF;QAEA,IAAI,CAAC,WAAW,EAAE;AAElB,QAAA,OAAO,IAAI;IACb;AAEA;;;;;AAKG;IACI,kBAAkB,GAAA;QACvB,IAAI,CAAC,kBAAkB,EAAE;AAEzB,QAAA,OAAO,IAAI;IACb;AAEA;;;;AAIG;AACI,IAAA,YAAY,CAAC,WAAmB,EAAA;QACrC,IAAI,CAAC,YAAY,EAAE;AACnB,QAAA,IAAI,CAAC,oBAAoB,IAAI,WAAW;AAExC,QAAA,OAAO,IAAI;IACb;IAEO,cAAc,CAAC,QAAQ,GAAG,CAAC,EAAA;AAChC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC;AAC7C,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC;AAC9C,QAAA,MAAM,OAAO,GAAG,IAAI,KAAK,IAAI,CAAC,kBAAkB,IAAI,KAAK,KAAK,IAAI,CAAC,mBAAmB;QAEtF,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,QAAQ,EAAE;AACf,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI;AAC9B,YAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK;QAClC;QAEA,OAAO;YACL,KAAK;YACL,IAAI;YACJ,OAAO;YACP,OAAO,EAAE,IAAI,CAAC,QAAQ;SACvB;IACH;AAEQ,IAAA,eAAe,CAAC,aAAqB,EAAA;AAC3C,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ;AAE7B,QAAA,IAAI,aAAa,IAAI,OAAO,EAAE;YAC5B;QACF;QAEA,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,eAAe,CAAC;AAE7C,QAAA,OAAO,IAAI,GAAG,aAAa,EAAE;YAC3B,IAAI,IAAI,CAAC;QACX;QAEA,MAAM,QAAQ,GAAG,IAAI,YAAY,CAAC,IAAI,GAAG,aAAa,CAAC;AAEvD,QAAA,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,QAAQ;IACvB;AAEQ,IAAA,UAAU,CAAC,KAAa,EAAA;AAC9B,QAAA,gBAAgB,CAAC,CAAC,CAAC,GAAG,KAAK;;AAG3B,QAAA,OAAO,eAAe,CAAC,CAAC,CAAE,KAAK,CAAC;IAClC;IAEQ,IAAI,CAAC,IAAY,EAAE,KAAa,EAAA;AACtC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,KAAK,MAAM,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC;IACzD;AACD;;;;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { SceneNode } from '#core/SceneNode';
|
|
2
2
|
import { Matrix } from '#math/Matrix';
|
|
3
3
|
import { ObservableSize } from '#math/ObservableSize';
|
|
4
|
-
import { ObservableVector } from '#math/ObservableVector';
|
|
4
|
+
import { ObservableVector, type ObservableVectorOwner } from '#math/ObservableVector';
|
|
5
5
|
import type { PointLike } from '#math/PointLike';
|
|
6
6
|
import { Rectangle } from '#math/Rectangle';
|
|
7
7
|
/**
|
|
@@ -51,7 +51,7 @@ export interface ViewShakeOptions {
|
|
|
51
51
|
* shake animations.
|
|
52
52
|
* @stable
|
|
53
53
|
*/
|
|
54
|
-
export declare class View {
|
|
54
|
+
export declare class View implements ObservableVectorOwner {
|
|
55
55
|
private readonly _center;
|
|
56
56
|
private readonly _size;
|
|
57
57
|
private readonly _viewport;
|
|
@@ -80,6 +80,13 @@ export declare class View {
|
|
|
80
80
|
private _shakeOffsetY;
|
|
81
81
|
private _updateId;
|
|
82
82
|
constructor(centerX: number, centerY: number, width: number, height: number);
|
|
83
|
+
/**
|
|
84
|
+
* Receives change notifications from the reactive `_center` vector and marks
|
|
85
|
+
* the view transform stale. (`_size` is an {@link ObservableSize}, which still
|
|
86
|
+
* carries its own callback.)
|
|
87
|
+
* @internal
|
|
88
|
+
*/
|
|
89
|
+
_onObservableChange(): void;
|
|
83
90
|
get center(): ObservableVector;
|
|
84
91
|
set center(center: ObservableVector);
|
|
85
92
|
get size(): ObservableSize;
|
|
@@ -155,24 +162,49 @@ export declare class View {
|
|
|
155
162
|
*/
|
|
156
163
|
getInverseTransform(): Matrix;
|
|
157
164
|
/**
|
|
158
|
-
* Convert a
|
|
159
|
-
*
|
|
160
|
-
*
|
|
165
|
+
* Convert a logical/design-space pixel coordinate to a world-space position.
|
|
166
|
+
*
|
|
167
|
+
* The 2-argument form treats `(x, y)` as coordinates in the view's own
|
|
168
|
+
* design space (`0..view.width` × `0..view.height`) — the same space as
|
|
169
|
+
* {@link Pointer.x}/{@link Pointer.y} and node positions — and applies only
|
|
170
|
+
* the inverse camera transform. The viewport rectangle is intentionally
|
|
171
|
+
* ignored, because design-space input already lives inside the camera's
|
|
172
|
+
* projection (any letterbox offset was removed upstream when the pointer was
|
|
173
|
+
* mapped). At the default centered camera this is the identity.
|
|
161
174
|
*
|
|
162
|
-
* @param
|
|
163
|
-
* @param
|
|
164
|
-
|
|
165
|
-
|
|
175
|
+
* @param x - X coordinate in design/logical pixels (`0..view.width`).
|
|
176
|
+
* @param y - Y coordinate in design/logical pixels (`0..view.height`).
|
|
177
|
+
*/
|
|
178
|
+
screenToWorld(x: number, y: number): PointLike;
|
|
179
|
+
/**
|
|
180
|
+
* Convert a raw canvas backing-store pixel coordinate to a world-space
|
|
181
|
+
* position. Accounts for the view's viewport rectangle, so it works
|
|
182
|
+
* correctly in multi-view / split-screen and letterboxed setups.
|
|
183
|
+
*
|
|
184
|
+
* @param screenX - X pixel relative to the canvas top-left corner.
|
|
185
|
+
* @param screenY - Y pixel relative to the canvas top-left corner.
|
|
186
|
+
* @param canvasWidth - Canvas backing-store width in pixels (`app.canvas.width`).
|
|
187
|
+
* @param canvasHeight - Canvas backing-store height in pixels (`app.canvas.height`).
|
|
166
188
|
*/
|
|
167
189
|
screenToWorld(screenX: number, screenY: number, canvasWidth: number, canvasHeight: number): PointLike;
|
|
168
190
|
/**
|
|
169
|
-
* Convert a world-space position to
|
|
170
|
-
*
|
|
191
|
+
* Convert a world-space position to logical/design-space pixel coordinates
|
|
192
|
+
* (`0..view.width` × `0..view.height`). Inverse of the 2-argument
|
|
193
|
+
* {@link screenToWorld}; the viewport is ignored. At the default centered
|
|
194
|
+
* camera this is the identity.
|
|
195
|
+
*
|
|
196
|
+
* @param worldX - World X coordinate.
|
|
197
|
+
* @param worldY - World Y coordinate.
|
|
198
|
+
*/
|
|
199
|
+
worldToScreen(worldX: number, worldY: number): PointLike;
|
|
200
|
+
/**
|
|
201
|
+
* Convert a world-space position to raw canvas backing-store pixel
|
|
202
|
+
* coordinates. Accounts for the view's viewport rectangle.
|
|
171
203
|
*
|
|
172
|
-
* @param worldX
|
|
173
|
-
* @param worldY
|
|
174
|
-
* @param canvasWidth
|
|
175
|
-
* @param canvasHeight - Canvas height in pixels (
|
|
204
|
+
* @param worldX - World X coordinate.
|
|
205
|
+
* @param worldY - World Y coordinate.
|
|
206
|
+
* @param canvasWidth - Canvas backing-store width in pixels (`app.canvas.width`).
|
|
207
|
+
* @param canvasHeight - Canvas backing-store height in pixels (`app.canvas.height`).
|
|
176
208
|
*/
|
|
177
209
|
worldToScreen(worldX: number, worldY: number, canvasWidth: number, canvasHeight: number): PointLike;
|
|
178
210
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"View.d.ts","sourceRoot":"","sources":["../../../src/rendering/View.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"View.d.ts","sourceRoot":"","sources":["../../../src/rendering/View.ts"],"names":[],"mappings":"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"}
|
|
@@ -63,12 +63,21 @@ class View {
|
|
|
63
63
|
_shakeOffsetY = 0;
|
|
64
64
|
_updateId = 0;
|
|
65
65
|
constructor(centerX, centerY, width, height) {
|
|
66
|
-
this._center = new ObservableVector(this
|
|
66
|
+
this._center = new ObservableVector(this, 0, centerX, centerY);
|
|
67
67
|
this._size = new ObservableSize(this._setScalingDirty.bind(this), width, height);
|
|
68
68
|
this._zoomBaseWidth = width;
|
|
69
69
|
this._zoomBaseHeight = height;
|
|
70
70
|
this._flags.push(ViewFlags.Transform, ViewFlags.TransformInverse, ViewFlags.BoundingBox);
|
|
71
71
|
}
|
|
72
|
+
/**
|
|
73
|
+
* Receives change notifications from the reactive `_center` vector and marks
|
|
74
|
+
* the view transform stale. (`_size` is an {@link ObservableSize}, which still
|
|
75
|
+
* carries its own callback.)
|
|
76
|
+
* @internal
|
|
77
|
+
*/
|
|
78
|
+
_onObservableChange() {
|
|
79
|
+
this._setPositionDirty();
|
|
80
|
+
}
|
|
72
81
|
get center() {
|
|
73
82
|
return this._center;
|
|
74
83
|
}
|
|
@@ -308,40 +317,48 @@ class View {
|
|
|
308
317
|
}
|
|
309
318
|
return this._inverseTransform;
|
|
310
319
|
}
|
|
311
|
-
/**
|
|
312
|
-
* Convert a canvas pixel coordinate to a world-space position for this view.
|
|
313
|
-
* Accounts for the view's viewport rectangle, so it works correctly in
|
|
314
|
-
* multi-view / split-screen setups.
|
|
315
|
-
*
|
|
316
|
-
* @param screenX - X pixel relative to the canvas top-left corner.
|
|
317
|
-
* @param screenY - Y pixel relative to the canvas top-left corner.
|
|
318
|
-
* @param canvasWidth - Canvas width in pixels (e.g. `app.canvas.width`).
|
|
319
|
-
* @param canvasHeight - Canvas height in pixels (e.g. `app.canvas.height`).
|
|
320
|
-
*/
|
|
321
320
|
screenToWorld(screenX, screenY, canvasWidth, canvasHeight) {
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
321
|
+
let clipX;
|
|
322
|
+
let clipY;
|
|
323
|
+
if (canvasWidth === undefined || canvasHeight === undefined) {
|
|
324
|
+
const w = this.width || 1;
|
|
325
|
+
const h = this.height || 1;
|
|
326
|
+
clipX = (screenX / w) * 2 - 1;
|
|
327
|
+
clipY = 1 - (screenY / h) * 2;
|
|
328
|
+
}
|
|
329
|
+
else {
|
|
330
|
+
const vw = this._viewport.width * canvasWidth;
|
|
331
|
+
const vh = this._viewport.height * canvasHeight;
|
|
332
|
+
clipX = ((screenX - this._viewport.x * canvasWidth) / vw) * 2 - 1;
|
|
333
|
+
clipY = 1 - ((screenY - this._viewport.y * canvasHeight) / vh) * 2;
|
|
334
|
+
}
|
|
335
|
+
// Solve the forward transform `clip = M · world` directly for `world`,
|
|
336
|
+
// including the translation, so this is an exact inverse of worldToScreen
|
|
337
|
+
// (returns absolute world coordinates, identity at the default centered
|
|
338
|
+
// camera). Inlined 2×2 solve — a det guard + no Matrix allocation on this
|
|
339
|
+
// pointer-mapping path; equivalent to `transformInverse(getTransform())`.
|
|
340
|
+
const m = this.getTransform();
|
|
341
|
+
const det = m.a * m.d - m.b * m.c;
|
|
342
|
+
if (det === 0) {
|
|
343
|
+
return { x: 0, y: 0 };
|
|
344
|
+
}
|
|
345
|
+
const dx = clipX - m.x;
|
|
346
|
+
const dy = clipY - m.y;
|
|
327
347
|
return {
|
|
328
|
-
x:
|
|
329
|
-
y:
|
|
348
|
+
x: (dx * m.d - dy * m.b) / det,
|
|
349
|
+
y: (dy * m.a - dx * m.c) / det,
|
|
330
350
|
};
|
|
331
351
|
}
|
|
332
|
-
/**
|
|
333
|
-
* Convert a world-space position to canvas pixel coordinates for this view.
|
|
334
|
-
* Accounts for the view's viewport rectangle.
|
|
335
|
-
*
|
|
336
|
-
* @param worldX - World X coordinate.
|
|
337
|
-
* @param worldY - World Y coordinate.
|
|
338
|
-
* @param canvasWidth - Canvas width in pixels (e.g. `app.canvas.width`).
|
|
339
|
-
* @param canvasHeight - Canvas height in pixels (e.g. `app.canvas.height`).
|
|
340
|
-
*/
|
|
341
352
|
worldToScreen(worldX, worldY, canvasWidth, canvasHeight) {
|
|
342
353
|
const m = this.getTransform();
|
|
343
354
|
const clipX = m.a * worldX + m.b * worldY + m.x;
|
|
344
355
|
const clipY = m.c * worldX + m.d * worldY + m.y;
|
|
356
|
+
if (canvasWidth === undefined || canvasHeight === undefined) {
|
|
357
|
+
return {
|
|
358
|
+
x: ((clipX + 1) / 2) * this.width,
|
|
359
|
+
y: ((1 - clipY) / 2) * this.height,
|
|
360
|
+
};
|
|
361
|
+
}
|
|
345
362
|
const vx = this._viewport.x * canvasWidth;
|
|
346
363
|
const vy = this._viewport.y * canvasHeight;
|
|
347
364
|
return {
|