@codexo/exojs 0.8.4 → 0.10.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 +99 -0
- package/README.md +34 -13
- package/dist/esm/animation/Tween.d.ts +20 -3
- package/dist/esm/animation/Tween.js +16 -8
- package/dist/esm/animation/Tween.js.map +1 -1
- package/dist/esm/animation/TweenManager.d.ts +16 -1
- package/dist/esm/animation/TweenManager.js +27 -2
- package/dist/esm/animation/TweenManager.js.map +1 -1
- package/dist/esm/audio/AudioAnalyser.d.ts +2 -0
- package/dist/esm/audio/AudioAnalyser.js +24 -9
- package/dist/esm/audio/AudioAnalyser.js.map +1 -1
- package/dist/esm/audio/AudioBus.d.ts +1 -0
- package/dist/esm/audio/AudioBus.js +8 -4
- package/dist/esm/audio/AudioBus.js.map +1 -1
- package/dist/esm/audio/AudioListener.d.ts +1 -0
- package/dist/esm/audio/AudioListener.js +7 -5
- package/dist/esm/audio/AudioListener.js.map +1 -1
- package/dist/esm/audio/AudioManager.d.ts +8 -2
- package/dist/esm/audio/AudioManager.js +14 -1
- package/dist/esm/audio/AudioManager.js.map +1 -1
- package/dist/esm/audio/BeatDetector.d.ts +2 -0
- package/dist/esm/audio/BeatDetector.js +27 -661
- package/dist/esm/audio/BeatDetector.js.map +1 -1
- package/dist/esm/audio/Music.d.ts +1 -0
- package/dist/esm/audio/Music.js +7 -3
- package/dist/esm/audio/Music.js.map +1 -1
- package/dist/esm/audio/OscillatorSound.d.ts +1 -0
- package/dist/esm/audio/OscillatorSound.js +7 -3
- package/dist/esm/audio/OscillatorSound.js.map +1 -1
- package/dist/esm/audio/Sound.d.ts +1 -0
- package/dist/esm/audio/Sound.js +7 -3
- package/dist/esm/audio/Sound.js.map +1 -1
- package/dist/esm/audio/audio-context.d.ts +2 -2
- package/dist/esm/audio/audio-context.js +4 -4
- package/dist/esm/audio/audio-context.js.map +1 -1
- package/dist/esm/audio/filters/ChorusFilter.d.ts +1 -0
- package/dist/esm/audio/filters/ChorusFilter.js +7 -3
- package/dist/esm/audio/filters/ChorusFilter.js.map +1 -1
- package/dist/esm/audio/filters/CompressorFilter.d.ts +1 -0
- package/dist/esm/audio/filters/CompressorFilter.js +7 -3
- package/dist/esm/audio/filters/CompressorFilter.js.map +1 -1
- package/dist/esm/audio/filters/DelayFilter.d.ts +1 -0
- package/dist/esm/audio/filters/DelayFilter.js +7 -3
- package/dist/esm/audio/filters/DelayFilter.js.map +1 -1
- package/dist/esm/audio/filters/EqualizerFilter.d.ts +1 -0
- package/dist/esm/audio/filters/EqualizerFilter.js +7 -3
- package/dist/esm/audio/filters/EqualizerFilter.js.map +1 -1
- package/dist/esm/audio/filters/GranularFilter.js +1 -86
- package/dist/esm/audio/filters/GranularFilter.js.map +1 -1
- package/dist/esm/audio/filters/HighpassFilter.d.ts +1 -0
- package/dist/esm/audio/filters/HighpassFilter.js +7 -3
- package/dist/esm/audio/filters/HighpassFilter.js.map +1 -1
- package/dist/esm/audio/filters/LowpassFilter.d.ts +1 -0
- package/dist/esm/audio/filters/LowpassFilter.js +7 -3
- package/dist/esm/audio/filters/LowpassFilter.js.map +1 -1
- package/dist/esm/audio/filters/PitchShiftFilter.js +1 -71
- package/dist/esm/audio/filters/PitchShiftFilter.js.map +1 -1
- package/dist/esm/audio/filters/ReverbFilter.d.ts +1 -0
- package/dist/esm/audio/filters/ReverbFilter.js +7 -3
- package/dist/esm/audio/filters/ReverbFilter.js.map +1 -1
- package/dist/esm/audio/filters/VocoderFilter.js +1 -89
- package/dist/esm/audio/filters/VocoderFilter.js.map +1 -1
- package/dist/esm/audio/filters/WorkletFilter.d.ts +2 -0
- package/dist/esm/audio/filters/WorkletFilter.js +10 -5
- package/dist/esm/audio/filters/WorkletFilter.js.map +1 -1
- package/dist/esm/audio/index.d.ts +15 -10
- package/dist/esm/audio/worklet/registerWorklet.d.ts +1 -1
- package/dist/esm/audio/worklet/registerWorklet.js +2 -2
- package/dist/esm/audio/worklet/registerWorklet.js.map +1 -1
- package/dist/esm/audio/worklets/beat-detector.worklet.d.ts +1 -0
- package/dist/esm/audio/worklets/beat-detector.worklet.js +647 -0
- package/dist/esm/audio/worklets/beat-detector.worklet.js.map +1 -0
- package/dist/esm/audio/worklets/granular.worklet.d.ts +1 -0
- package/dist/esm/audio/worklets/granular.worklet.js +89 -0
- package/dist/esm/audio/worklets/granular.worklet.js.map +1 -0
- package/dist/esm/audio/worklets/pitch-shift.worklet.d.ts +1 -0
- package/dist/esm/audio/worklets/pitch-shift.worklet.js +74 -0
- package/dist/esm/audio/worklets/pitch-shift.worklet.js.map +1 -0
- package/dist/esm/audio/worklets/vocoder.worklet.d.ts +1 -0
- package/dist/esm/audio/worklets/vocoder.worklet.js +92 -0
- package/dist/esm/audio/worklets/vocoder.worklet.js.map +1 -0
- package/dist/esm/core/Application.d.ts +86 -29
- package/dist/esm/core/Application.js +157 -47
- package/dist/esm/core/Application.js.map +1 -1
- package/dist/esm/core/Color.d.ts +0 -8
- package/dist/esm/core/Color.js +0 -24
- package/dist/esm/core/Color.js.map +1 -1
- package/dist/esm/core/Perf.d.ts +23 -0
- package/dist/esm/core/Perf.js +49 -0
- package/dist/esm/core/Perf.js.map +1 -0
- package/dist/esm/core/Scene.d.ts +40 -80
- package/dist/esm/core/Scene.js +63 -43
- package/dist/esm/core/Scene.js.map +1 -1
- package/dist/esm/core/SceneManager.d.ts +11 -25
- package/dist/esm/core/SceneManager.js +37 -100
- package/dist/esm/core/SceneManager.js.map +1 -1
- package/dist/esm/core/SceneNode.d.ts +28 -17
- package/dist/esm/core/SceneNode.js +66 -42
- package/dist/esm/core/SceneNode.js.map +1 -1
- package/dist/esm/core/Signal.d.ts +24 -28
- package/dist/esm/core/Signal.js +64 -50
- package/dist/esm/core/Signal.js.map +1 -1
- package/dist/esm/core/Timer.d.ts +1 -0
- package/dist/esm/core/Timer.js +3 -0
- package/dist/esm/core/Timer.js.map +1 -1
- package/dist/esm/core/capabilities.d.ts +2 -0
- package/dist/esm/core/capabilities.js +15 -0
- package/dist/esm/core/capabilities.js.map +1 -1
- package/dist/esm/core/index.d.ts +1 -0
- package/dist/esm/core/types.d.ts +1 -1
- package/dist/esm/core/utils.d.ts +12 -0
- package/dist/esm/core/utils.js +18 -1
- package/dist/esm/core/utils.js.map +1 -1
- package/dist/esm/debug/BoundingBoxesLayer.js +1 -1
- package/dist/esm/debug/BoundingBoxesLayer.js.map +1 -1
- package/dist/esm/debug/HitTestLayer.js +1 -1
- package/dist/esm/debug/HitTestLayer.js.map +1 -1
- package/dist/esm/debug/PerformanceLayer.js +1 -2
- package/dist/esm/debug/PerformanceLayer.js.map +1 -1
- package/dist/esm/debug/PointerStackLayer.js +1 -2
- package/dist/esm/debug/PointerStackLayer.js.map +1 -1
- package/dist/esm/debug/RenderPassInspectorLayer.js +1 -2
- package/dist/esm/debug/RenderPassInspectorLayer.js.map +1 -1
- package/dist/esm/index.js +37 -10
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/input/InputManager.d.ts +1 -0
- package/dist/esm/input/InputManager.js +30 -3
- package/dist/esm/input/InputManager.js.map +1 -1
- package/dist/esm/input/InteractionManager.d.ts +5 -2
- package/dist/esm/input/InteractionManager.js +29 -18
- package/dist/esm/input/InteractionManager.js.map +1 -1
- package/dist/esm/input/Pointer.js +3 -2
- package/dist/esm/input/Pointer.js.map +1 -1
- package/dist/esm/input/internal/interactionManagerRegistry.d.ts +9 -0
- package/dist/esm/input/internal/interactionManagerRegistry.js +10 -0
- package/dist/esm/input/internal/interactionManagerRegistry.js.map +1 -0
- package/dist/esm/math/AbstractVector.d.ts +1 -7
- package/dist/esm/math/AbstractVector.js +6 -20
- package/dist/esm/math/AbstractVector.js.map +1 -1
- package/dist/esm/math/Circle.js +0 -2
- package/dist/esm/math/Circle.js.map +1 -1
- package/dist/esm/math/Collision.d.ts +9 -3
- package/dist/esm/math/Ellipse.d.ts +2 -5
- package/dist/esm/math/Ellipse.js +10 -7
- package/dist/esm/math/Ellipse.js.map +1 -1
- package/dist/esm/math/ObservableVector.d.ts +1 -1
- package/dist/esm/math/ObservableVector.js +3 -3
- package/dist/esm/math/ObservableVector.js.map +1 -1
- package/dist/esm/math/Polygon.d.ts +0 -2
- package/dist/esm/math/Polygon.js +1 -9
- package/dist/esm/math/Polygon.js.map +1 -1
- package/dist/esm/math/Rectangle.js +0 -2
- package/dist/esm/math/Rectangle.js.map +1 -1
- package/dist/esm/math/collision-detection.d.ts +19 -4
- package/dist/esm/math/collision-detection.js +61 -4
- package/dist/esm/math/collision-detection.js.map +1 -1
- package/dist/esm/math/swept-collision.d.ts +16 -12
- package/dist/esm/math/swept-collision.js +109 -19
- package/dist/esm/math/swept-collision.js.map +1 -1
- package/dist/esm/particles/ParticleSystem.d.ts +8 -5
- package/dist/esm/particles/ParticleSystem.js +10 -6
- package/dist/esm/particles/ParticleSystem.js.map +1 -1
- package/dist/esm/particles/distributions/{Gradient.d.ts → ColorGradient.d.ts} +5 -5
- package/dist/esm/particles/distributions/{Gradient.js → ColorGradient.js} +5 -5
- package/dist/esm/particles/distributions/ColorGradient.js.map +1 -0
- package/dist/esm/particles/distributions/Distribution.d.ts +2 -2
- package/dist/esm/particles/distributions/index.d.ts +2 -2
- package/dist/esm/particles/gpu/ParticleGpuState.js +1 -1
- package/dist/esm/particles/index.d.ts +1 -0
- package/dist/esm/particles/modules/ColorOverLifetime.d.ts +3 -3
- package/dist/esm/particles/modules/ColorOverLifetime.js.map +1 -1
- package/dist/esm/particles/modules/ColorOverSpeed.d.ts +3 -3
- package/dist/esm/particles/modules/ColorOverSpeed.js.map +1 -1
- package/dist/esm/particles/modules/UpdateModule.d.ts +2 -2
- package/dist/esm/particles/modules/UpdateModule.js +1 -1
- package/dist/esm/particles/modules/WgslContribution.d.ts +2 -2
- package/dist/esm/rendering/CallbackRenderPass.d.ts +1 -0
- package/dist/esm/rendering/CallbackRenderPass.js +1 -0
- package/dist/esm/rendering/CallbackRenderPass.js.map +1 -1
- package/dist/esm/rendering/Camera.d.ts +33 -0
- package/dist/esm/rendering/Camera.js +38 -0
- package/dist/esm/rendering/Camera.js.map +1 -0
- package/dist/esm/rendering/Container.d.ts +7 -25
- package/dist/esm/rendering/Container.js +25 -87
- package/dist/esm/rendering/Container.js.map +1 -1
- package/dist/esm/rendering/Drawable.d.ts +8 -10
- package/dist/esm/rendering/Drawable.js +12 -20
- package/dist/esm/rendering/Drawable.js.map +1 -1
- package/dist/esm/rendering/RenderBackend.d.ts +19 -0
- package/dist/esm/rendering/RenderNode.d.ts +82 -11
- package/dist/esm/rendering/RenderNode.js +133 -163
- package/dist/esm/rendering/RenderNode.js.map +1 -1
- package/dist/esm/rendering/RenderPass.d.ts +1 -0
- package/dist/esm/rendering/RenderStats.d.ts +9 -0
- package/dist/esm/rendering/RenderStats.js +2 -0
- package/dist/esm/rendering/RenderStats.js.map +1 -1
- package/dist/esm/rendering/RenderTarget.d.ts +13 -0
- package/dist/esm/rendering/RenderTarget.js +13 -0
- package/dist/esm/rendering/RenderTarget.js.map +1 -1
- package/dist/esm/rendering/RenderTargetPass.js +17 -0
- package/dist/esm/rendering/RenderTargetPass.js.map +1 -1
- package/dist/esm/rendering/RendererRegistry.d.ts +1 -0
- package/dist/esm/rendering/RendererRegistry.js +1 -0
- package/dist/esm/rendering/RendererRegistry.js.map +1 -1
- package/dist/esm/rendering/RenderingContext.d.ts +87 -0
- package/dist/esm/rendering/RenderingContext.js +157 -0
- package/dist/esm/rendering/RenderingContext.js.map +1 -0
- package/dist/esm/rendering/TransformBuffer.d.ts +38 -0
- package/dist/esm/rendering/TransformBuffer.js +116 -0
- package/dist/esm/rendering/TransformBuffer.js.map +1 -0
- package/dist/esm/rendering/View.d.ts +23 -0
- package/dist/esm/rendering/View.js +42 -0
- package/dist/esm/rendering/View.js.map +1 -1
- package/dist/esm/rendering/filters/WebGpuShaderFilter.js +5 -12
- package/dist/esm/rendering/filters/WebGpuShaderFilter.js.map +1 -1
- package/dist/esm/rendering/geometry/Geometry.d.ts +40 -0
- package/dist/esm/rendering/geometry/Geometry.js +228 -0
- package/dist/esm/rendering/geometry/Geometry.js.map +1 -0
- package/dist/esm/rendering/geometry/GeometryAttribute.d.ts +32 -0
- package/dist/esm/rendering/geometry/QuadGeometry.d.ts +5 -0
- package/dist/esm/rendering/gradient/Gradient.d.ts +34 -0
- package/dist/esm/rendering/gradient/Gradient.js +114 -0
- package/dist/esm/rendering/gradient/Gradient.js.map +1 -0
- package/dist/esm/rendering/gradient/LinearGradient.d.ts +10 -0
- package/dist/esm/rendering/gradient/LinearGradient.js +26 -0
- package/dist/esm/rendering/gradient/LinearGradient.js.map +1 -0
- package/dist/esm/rendering/gradient/RadialGradient.d.ts +10 -0
- package/dist/esm/rendering/gradient/RadialGradient.js +25 -0
- package/dist/esm/rendering/gradient/RadialGradient.js.map +1 -0
- package/dist/esm/rendering/index.d.ts +103 -59
- package/dist/esm/rendering/material/Material.d.ts +114 -0
- package/dist/esm/rendering/material/Material.js +111 -0
- package/dist/esm/rendering/material/Material.js.map +1 -0
- package/dist/esm/rendering/material/MaterialKey.d.ts +18 -0
- package/dist/esm/rendering/material/MaterialKey.js +82 -0
- package/dist/esm/rendering/material/MaterialKey.js.map +1 -0
- package/dist/esm/rendering/material/MeshMaterial.d.ts +16 -0
- package/dist/esm/rendering/material/MeshMaterial.js +21 -0
- package/dist/esm/rendering/material/MeshMaterial.js.map +1 -0
- package/dist/esm/rendering/{mesh/MeshShader.d.ts → material/ShaderSource.d.ts} +30 -62
- package/dist/esm/rendering/{mesh/MeshShader.js → material/ShaderSource.js} +36 -62
- package/dist/esm/rendering/material/ShaderSource.js.map +1 -0
- package/dist/esm/rendering/material/SpriteMaterial.d.ts +15 -0
- package/dist/esm/rendering/material/SpriteMaterial.js +20 -0
- package/dist/esm/rendering/material/SpriteMaterial.js.map +1 -0
- package/dist/esm/rendering/mesh/Mesh.d.ts +29 -12
- package/dist/esm/rendering/mesh/Mesh.js +123 -4
- package/dist/esm/rendering/mesh/Mesh.js.map +1 -1
- package/dist/esm/rendering/pass/RenderPassCoordinator.d.ts +63 -0
- package/dist/esm/rendering/pass/RenderPassDescriptor.d.ts +48 -0
- package/dist/esm/rendering/pass/RenderPassDescriptor.js +16 -0
- package/dist/esm/rendering/pass/RenderPassDescriptor.js.map +1 -0
- package/dist/esm/rendering/plan/RenderCommand.d.ts +67 -0
- package/dist/esm/rendering/plan/RenderCommand.js +94 -0
- package/dist/esm/rendering/plan/RenderCommand.js.map +1 -0
- package/dist/esm/rendering/plan/RenderEffectExecutor.d.ts +10 -0
- package/dist/esm/rendering/plan/RenderEffectExecutor.js +159 -0
- package/dist/esm/rendering/plan/RenderEffectExecutor.js.map +1 -0
- package/dist/esm/rendering/plan/RenderPlan.d.ts +23 -0
- package/dist/esm/rendering/plan/RenderPlan.js +12 -0
- package/dist/esm/rendering/plan/RenderPlan.js.map +1 -0
- package/dist/esm/rendering/plan/RenderPlanBuilder.d.ts +31 -0
- package/dist/esm/rendering/plan/RenderPlanBuilder.js +242 -0
- package/dist/esm/rendering/plan/RenderPlanBuilder.js.map +1 -0
- package/dist/esm/rendering/plan/RenderPlanOptimizer.d.ts +10 -0
- package/dist/esm/rendering/plan/RenderPlanOptimizer.js +180 -0
- package/dist/esm/rendering/plan/RenderPlanOptimizer.js.map +1 -0
- package/dist/esm/rendering/plan/RenderPlanPlayer.d.ts +9 -0
- package/dist/esm/rendering/plan/RenderPlanPlayer.js +56 -0
- package/dist/esm/rendering/plan/RenderPlanPlayer.js.map +1 -0
- package/dist/esm/rendering/plan/RenderScope.d.ts +70 -0
- package/dist/esm/rendering/plan/RenderScope.js +16 -0
- package/dist/esm/rendering/plan/RenderScope.js.map +1 -0
- package/dist/esm/rendering/plan/playRenderTree.d.ts +4 -0
- package/dist/esm/rendering/plan/playRenderTree.js +19 -0
- package/dist/esm/rendering/plan/playRenderTree.js.map +1 -0
- package/dist/esm/rendering/shader/Shader.d.ts +1 -0
- package/dist/esm/rendering/shader/Shader.js +1 -0
- package/dist/esm/rendering/shader/Shader.js.map +1 -1
- package/dist/esm/rendering/shader/ShaderUniform.d.ts +1 -0
- package/dist/esm/rendering/shader/ShaderUniform.js +1 -0
- package/dist/esm/rendering/shader/ShaderUniform.js.map +1 -1
- package/dist/esm/rendering/sprite/Sprite.d.ts +25 -3
- package/dist/esm/rendering/sprite/Sprite.js +48 -15
- package/dist/esm/rendering/sprite/Sprite.js.map +1 -1
- package/dist/esm/rendering/sprite/spriteMaterialSources.d.ts +36 -0
- package/dist/esm/rendering/sprite/spriteMaterialSources.js +128 -0
- package/dist/esm/rendering/sprite/spriteMaterialSources.js.map +1 -0
- package/dist/esm/rendering/text/AbstractText.d.ts +36 -0
- package/dist/esm/rendering/text/AbstractText.js +49 -0
- package/dist/esm/rendering/text/AbstractText.js.map +1 -0
- package/dist/esm/rendering/text/BitmapText.d.ts +97 -0
- package/dist/esm/rendering/text/BitmapText.js +220 -0
- package/dist/esm/rendering/text/BitmapText.js.map +1 -0
- package/dist/esm/rendering/text/BmFont.d.ts +50 -0
- package/dist/esm/rendering/text/BmFont.js +24 -0
- package/dist/esm/rendering/text/BmFont.js.map +1 -0
- package/dist/esm/rendering/text/GlyphAtlas.d.ts +104 -0
- package/dist/esm/rendering/text/GlyphAtlas.js +347 -0
- package/dist/esm/rendering/text/GlyphAtlas.js.map +1 -0
- package/dist/esm/rendering/text/GlyphAtlasPool.d.ts +40 -0
- package/dist/esm/rendering/text/GlyphAtlasPool.js +67 -0
- package/dist/esm/rendering/text/GlyphAtlasPool.js.map +1 -0
- package/dist/esm/rendering/text/GlyphSdf.d.ts +92 -0
- package/dist/esm/rendering/text/GlyphSdf.js +220 -0
- package/dist/esm/rendering/text/GlyphSdf.js.map +1 -0
- package/dist/esm/rendering/text/HTMLText.d.ts +107 -0
- package/dist/esm/rendering/text/HTMLText.js +284 -0
- package/dist/esm/rendering/text/HTMLText.js.map +1 -0
- package/dist/esm/rendering/text/LayoutOptions.d.ts +30 -0
- package/dist/esm/rendering/text/Text.d.ts +89 -20
- package/dist/esm/rendering/text/Text.js +176 -101
- package/dist/esm/rendering/text/Text.js.map +1 -1
- package/dist/esm/rendering/text/TextLayout.d.ts +20 -8
- package/dist/esm/rendering/text/TextLayout.js +234 -25
- package/dist/esm/rendering/text/TextLayout.js.map +1 -1
- package/dist/esm/rendering/text/TextStyle.d.ts +154 -87
- package/dist/esm/rendering/text/TextStyle.js +257 -203
- package/dist/esm/rendering/text/TextStyle.js.map +1 -1
- package/dist/esm/rendering/text/types.d.ts +73 -13
- package/dist/esm/rendering/texture/DataTexture.d.ts +5 -0
- package/dist/esm/rendering/texture/DataTexture.js +7 -0
- package/dist/esm/rendering/texture/DataTexture.js.map +1 -1
- package/dist/esm/rendering/texture/Texture.d.ts +1 -0
- package/dist/esm/rendering/texture/Texture.js +1 -0
- package/dist/esm/rendering/texture/Texture.js.map +1 -1
- package/dist/esm/rendering/types.d.ts +3 -1
- package/dist/esm/rendering/types.js +2 -0
- package/dist/esm/rendering/types.js.map +1 -1
- package/dist/esm/rendering/video/Video.d.ts +5 -8
- package/dist/esm/rendering/video/Video.js +12 -13
- package/dist/esm/rendering/video/Video.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts +40 -0
- package/dist/esm/rendering/webgl2/WebGl2Backend.js +344 -27
- package/dist/esm/rendering/webgl2/WebGl2Backend.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.d.ts +22 -2
- package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.js +404 -112
- package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2PassCoordinator.d.ts +57 -0
- package/dist/esm/rendering/webgl2/WebGl2PassCoordinator.js +79 -0
- package/dist/esm/rendering/webgl2/WebGl2PassCoordinator.js.map +1 -0
- package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.d.ts +12 -0
- package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js +214 -58
- package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js.map +1 -1
- package/dist/esm/rendering/webgl2/WebGl2StencilClipper.d.ts +34 -0
- package/dist/esm/rendering/webgl2/WebGl2StencilClipper.js +169 -0
- package/dist/esm/rendering/webgl2/WebGl2StencilClipper.js.map +1 -0
- package/dist/esm/rendering/webgl2/WebGl2TextRenderer.d.ts +56 -0
- package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js +486 -0
- package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js.map +1 -0
- package/dist/esm/rendering/webgl2/glsl/mesh.frag.js +1 -1
- package/dist/esm/rendering/webgl2/glsl/mesh.vert.js +1 -1
- package/dist/esm/rendering/webgl2/glsl/stencil-clip.frag.js +4 -0
- package/dist/esm/rendering/webgl2/glsl/stencil-clip.frag.js.map +1 -0
- package/dist/esm/rendering/webgl2/glsl/stencil-clip.vert.js +4 -0
- package/dist/esm/rendering/webgl2/glsl/stencil-clip.vert.js.map +1 -0
- package/dist/esm/rendering/webgl2/glsl/text-color.frag.js +4 -0
- package/dist/esm/rendering/webgl2/glsl/text-color.frag.js.map +1 -0
- package/dist/esm/rendering/webgl2/glsl/text-msdf.frag.js +4 -0
- package/dist/esm/rendering/webgl2/glsl/text-msdf.frag.js.map +1 -0
- package/dist/esm/rendering/webgl2/glsl/text-sdf.frag.js +4 -0
- package/dist/esm/rendering/webgl2/glsl/text-sdf.frag.js.map +1 -0
- package/dist/esm/rendering/webgl2/glsl/text.vert.js +4 -0
- package/dist/esm/rendering/webgl2/glsl/text.vert.js.map +1 -0
- package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts +50 -0
- package/dist/esm/rendering/webgpu/WebGpuBackend.js +151 -27
- package/dist/esm/rendering/webgpu/WebGpuBackend.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuBlendState.js +26 -0
- package/dist/esm/rendering/webgpu/WebGpuBlendState.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.js +22 -17
- package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.d.ts +26 -2
- package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js +511 -89
- package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.js +13 -17
- package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.d.ts +141 -0
- package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.js +270 -0
- package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.js.map +1 -0
- package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts +16 -0
- package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js +344 -27
- package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js.map +1 -1
- package/dist/esm/rendering/webgpu/WebGpuStencilClipper.d.ts +57 -0
- package/dist/esm/rendering/webgpu/WebGpuStencilClipper.js +257 -0
- package/dist/esm/rendering/webgpu/WebGpuStencilClipper.js.map +1 -0
- package/dist/esm/rendering/webgpu/WebGpuStencilState.d.ts +14 -0
- package/dist/esm/rendering/webgpu/WebGpuStencilState.js +36 -0
- package/dist/esm/rendering/webgpu/WebGpuStencilState.js.map +1 -0
- package/dist/esm/rendering/webgpu/WebGpuTextRenderer.d.ts +70 -0
- package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js +775 -0
- package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js.map +1 -0
- package/dist/esm/rendering/webgpu/WebGpuTransformStorage.d.ts +16 -0
- package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js +57 -0
- package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js.map +1 -0
- package/dist/esm/rendering/webgpu/compute/WebGpuComputePipeline.js +96 -0
- package/dist/esm/rendering/webgpu/compute/WebGpuComputePipeline.js.map +1 -0
- package/dist/esm/rendering/webgpu/compute/WebGpuStorageBuffer.js +68 -0
- package/dist/esm/rendering/webgpu/compute/WebGpuStorageBuffer.js.map +1 -0
- package/dist/esm/resources/Asset.d.ts +23 -0
- package/dist/esm/resources/Asset.js +23 -0
- package/dist/esm/resources/Asset.js.map +1 -0
- package/dist/esm/resources/AssetDefinitions.d.ts +137 -0
- package/dist/esm/resources/Assets.d.ts +35 -0
- package/dist/esm/resources/Assets.js +32 -0
- package/dist/esm/resources/Assets.js.map +1 -0
- package/dist/esm/resources/IndexedDbDatabase.js +17 -1
- package/dist/esm/resources/IndexedDbDatabase.js.map +1 -1
- package/dist/esm/resources/IndexedDbStore.js +17 -1
- package/dist/esm/resources/IndexedDbStore.js.map +1 -1
- package/dist/esm/resources/JsonStore.d.ts +18 -0
- package/dist/esm/resources/JsonStore.js +62 -0
- package/dist/esm/resources/JsonStore.js.map +1 -0
- package/dist/esm/resources/Loader.d.ts +244 -18
- package/dist/esm/resources/Loader.js +456 -50
- package/dist/esm/resources/Loader.js.map +1 -1
- package/dist/esm/resources/LoadingQueue.d.ts +28 -0
- package/dist/esm/resources/LoadingQueue.js +59 -0
- package/dist/esm/resources/LoadingQueue.js.map +1 -0
- package/dist/esm/resources/factories/BmFontFactory.d.ts +25 -0
- package/dist/esm/resources/factories/BmFontFactory.js +96 -0
- package/dist/esm/resources/factories/BmFontFactory.js.map +1 -0
- package/dist/esm/resources/factories/CsvFactory.d.ts +35 -0
- package/dist/esm/resources/factories/CsvFactory.js +87 -0
- package/dist/esm/resources/factories/CsvFactory.js.map +1 -0
- package/dist/esm/resources/factories/ImageFactory.d.ts +14 -8
- package/dist/esm/resources/factories/ImageFactory.js +13 -6
- package/dist/esm/resources/factories/ImageFactory.js.map +1 -1
- package/dist/esm/resources/factories/MusicFactory.d.ts +8 -2
- package/dist/esm/resources/factories/MusicFactory.js +25 -14
- package/dist/esm/resources/factories/MusicFactory.js.map +1 -1
- package/dist/esm/resources/factories/SoundFactory.d.ts +2 -2
- package/dist/esm/resources/factories/SoundFactory.js.map +1 -1
- package/dist/esm/resources/factories/SubtitleFactory.d.ts +28 -0
- package/dist/esm/resources/factories/SubtitleFactory.js +203 -0
- package/dist/esm/resources/factories/SubtitleFactory.js.map +1 -0
- package/dist/esm/resources/factories/SvgFactory.d.ts +18 -1
- package/dist/esm/resources/factories/SvgFactory.js +21 -2
- package/dist/esm/resources/factories/SvgFactory.js.map +1 -1
- package/dist/esm/resources/factories/TextureFactory.d.ts +4 -4
- package/dist/esm/resources/factories/TextureFactory.js +8 -4
- package/dist/esm/resources/factories/TextureFactory.js.map +1 -1
- package/dist/esm/resources/factories/VideoFactory.d.ts +8 -2
- package/dist/esm/resources/factories/VideoFactory.js +27 -20
- package/dist/esm/resources/factories/VideoFactory.js.map +1 -1
- package/dist/esm/resources/factories/XmlFactory.d.ts +24 -0
- package/dist/esm/resources/factories/XmlFactory.js +37 -0
- package/dist/esm/resources/factories/XmlFactory.js.map +1 -0
- package/dist/esm/resources/index.d.ts +9 -1
- package/dist/esm/resources/tokens.d.ts +49 -3
- package/dist/esm/resources/tokens.js +50 -4
- package/dist/esm/resources/tokens.js.map +1 -1
- package/dist/exo.esm.js +15382 -8078
- package/dist/exo.esm.js.map +1 -1
- package/package.json +34 -16
- package/dist/esm/input/interaction-hooks.d.ts +0 -34
- package/dist/esm/input/interaction-hooks.js +0 -35
- package/dist/esm/input/interaction-hooks.js.map +0 -1
- package/dist/esm/particles/distributions/Gradient.js.map +0 -1
- package/dist/esm/rendering/mesh/MeshShader.js.map +0 -1
- package/dist/esm/rendering/text/DynamicGlyphAtlas.d.ts +0 -33
- package/dist/esm/rendering/text/DynamicGlyphAtlas.js +0 -134
- package/dist/esm/rendering/text/DynamicGlyphAtlas.js.map +0 -1
- package/dist/esm/rendering/text/atlas-singleton.d.ts +0 -7
- package/dist/esm/rendering/text/atlas-singleton.js +0 -17
- package/dist/esm/rendering/text/atlas-singleton.js.map +0 -1
- package/dist/esm/resources/factories/VttFactory.d.ts +0 -24
- package/dist/esm/resources/factories/VttFactory.js +0 -158
- package/dist/esm/resources/factories/VttFactory.js.map +0 -1
- package/dist/esm/vendor/webgl-debug.js +0 -1160
- package/dist/esm/vendor/webgl-debug.js.map +0 -1
|
@@ -14,20 +14,20 @@ const compareT = (a, b) => a.t - b.t;
|
|
|
14
14
|
* that write into a `Uint32Array` instance buffer.
|
|
15
15
|
*
|
|
16
16
|
* @example
|
|
17
|
-
* const fire = new
|
|
17
|
+
* const fire = new ColorGradient([
|
|
18
18
|
* { t: 0, color: new Color(1, 1, 1, 1) }, // white
|
|
19
19
|
* { t: 0.3, color: new Color(1, 0.7, 0.1, 1) }, // orange
|
|
20
20
|
* { t: 0.7, color: new Color(0.4, 0.1, 0, 0.6) },
|
|
21
21
|
* { t: 1, color: new Color(0, 0, 0, 0) }, // transparent black
|
|
22
22
|
* ]);
|
|
23
23
|
*/
|
|
24
|
-
class
|
|
24
|
+
class ColorGradient {
|
|
25
25
|
_keys;
|
|
26
26
|
_scratch = new Color();
|
|
27
27
|
_lastSegment = 0;
|
|
28
28
|
constructor(keys) {
|
|
29
29
|
if (keys.length === 0) {
|
|
30
|
-
throw new Error('
|
|
30
|
+
throw new Error('ColorGradient requires at least one keyframe.');
|
|
31
31
|
}
|
|
32
32
|
this._keys = [...keys].map(k => ({ t: k.t, color: k.color.clone() })).sort(compareT);
|
|
33
33
|
}
|
|
@@ -68,5 +68,5 @@ class Gradient {
|
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
70
|
|
|
71
|
-
export {
|
|
72
|
-
//# sourceMappingURL=
|
|
71
|
+
export { ColorGradient };
|
|
72
|
+
//# sourceMappingURL=ColorGradient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ColorGradient.js","sources":["../../../../../src/particles/distributions/ColorGradient.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
* @example
|
|
17
17
|
* const lifetime = new Range(0.5, 1.5); // seconds, uniform
|
|
18
18
|
* const velocity = new VectorRange(-50, 50, -200, -100);
|
|
19
|
-
* const tint = new
|
|
19
|
+
* const tint = new ColorGradient([
|
|
20
20
|
* { t: 0, color: Color.white },
|
|
21
21
|
* { t: 0.7, color: Color.yellow },
|
|
22
22
|
* { t: 1, color: Color.transparent },
|
|
@@ -34,7 +34,7 @@ export interface Distribution<T> {
|
|
|
34
34
|
/**
|
|
35
35
|
* Lifetime-parameterised function that produces a deterministic `T` for a
|
|
36
36
|
* given lifetime ratio `t` in `[0, 1]`. Used by per-frame update modules
|
|
37
|
-
* that interpolate over particle lifetime — `ColorOverLifetime` (
|
|
37
|
+
* that interpolate over particle lifetime — `ColorOverLifetime` (ColorGradient),
|
|
38
38
|
* `ScaleOverLifetime` (Curve), etc.
|
|
39
39
|
*
|
|
40
40
|
* Mutable-target rule: same as {@link Distribution} — pass your own scratch
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
export { BoxArea } from './BoxArea';
|
|
2
2
|
export { CircleArea } from './CircleArea';
|
|
3
|
+
export type { ColorGradientKey } from './ColorGradient';
|
|
4
|
+
export { ColorGradient } from './ColorGradient';
|
|
3
5
|
export { ConeDirection } from './ConeDirection';
|
|
4
6
|
export { Constant } from './Constant';
|
|
5
7
|
export type { CurveKey } from './Curve';
|
|
6
8
|
export { Curve } from './Curve';
|
|
7
9
|
export type { Distribution, LifetimeFunction } from './Distribution';
|
|
8
|
-
export type { GradientKey } from './Gradient';
|
|
9
|
-
export { Gradient } from './Gradient';
|
|
10
10
|
export { LineSegment } from './LineSegment';
|
|
11
11
|
export { Range } from './Range';
|
|
12
12
|
export { VectorRange } from './VectorRange';
|
|
@@ -14,7 +14,7 @@ import { wgslUniformByteSize } from '../modules/WgslContribution.js';
|
|
|
14
14
|
* - **One uniform buffer** for frame UVs — `array<vec4<f32>, N>` where N
|
|
15
15
|
* is the system's frame count (or 1 when no atlas is declared). Each
|
|
16
16
|
* vec4 is `(uvMinX, uvMinY, uvMaxX, uvMaxY)` already flipY-adjusted.
|
|
17
|
-
* - **N 1D textures** for modules that use lookup tables (Curve /
|
|
17
|
+
* - **N 1D textures** for modules that use lookup tables (Curve / ColorGradient).
|
|
18
18
|
* - **Composite compute pipeline** built once at construction by
|
|
19
19
|
* concatenating the integration step + every registered module body +
|
|
20
20
|
* the pack-instances step into a single shader.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ColorGradient } from '@/particles/distributions/ColorGradient';
|
|
2
2
|
import type { ParticleSystem } from '@/particles/ParticleSystem';
|
|
3
3
|
import { UpdateModule } from './UpdateModule';
|
|
4
4
|
import type { WgslContribution } from './WgslContribution';
|
|
@@ -12,8 +12,8 @@ import type { WgslContribution } from './WgslContribution';
|
|
|
12
12
|
* and sampled with linear filtering on the GPU.
|
|
13
13
|
*/
|
|
14
14
|
export declare class ColorOverLifetime extends UpdateModule {
|
|
15
|
-
gradient:
|
|
16
|
-
constructor(gradient:
|
|
15
|
+
gradient: ColorGradient;
|
|
16
|
+
constructor(gradient: ColorGradient);
|
|
17
17
|
apply(system: ParticleSystem, _dt: number): void;
|
|
18
18
|
wgsl(): WgslContribution;
|
|
19
19
|
uploadTextures(device: GPUDevice, textures: ReadonlyMap<string, GPUTexture>): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColorOverLifetime.js","sources":["../../../../../src/particles/modules/ColorOverLifetime.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAAA;AASA,MAAM,UAAU,GAAG,GAAG;AAEtB;;;;;;;;AAQG;AACG,MAAO,iBAAkB,SAAQ,YAAY,CAAA;AAC1C,IAAA,QAAQ;AAEf,IAAA,WAAA,CAAmB,
|
|
1
|
+
{"version":3,"file":"ColorOverLifetime.js","sources":["../../../../../src/particles/modules/ColorOverLifetime.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAAA;AASA,MAAM,UAAU,GAAG,GAAG;AAEtB;;;;;;;;AAQG;AACG,MAAO,iBAAkB,SAAQ,YAAY,CAAA;AAC1C,IAAA,QAAQ;AAEf,IAAA,WAAA,CAAmB,QAAuB,EAAA;AACxC,QAAA,KAAK,EAAE;AACP,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;IAC1B;IAEgB,KAAK,CAAC,MAAsB,EAAE,GAAW,EAAA;QACvD,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,MAAM;AACtD,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ;AAE9B,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;YAClC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;YAElC,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;QACrC;IACF;IAEgB,IAAI,GAAA;QAClB,OAAO;AACL,YAAA,GAAG,EAAE,mBAAmB;YACxB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;AACtD,YAAA,IAAI,EAAE;;;;;;;;AAQC,YAAA,CAAA;SACR;IACH;IAEgB,cAAc,CAAC,MAAiB,EAAE,QAAyC,EAAA;QACzF,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC;AAExC,QAAA,IAAI,OAAO,KAAK,SAAS,EAAE;YACzB;QACF;QAEA,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,UAAU,GAAG,CAAC,CAAC;AAC3C,QAAA,MAAM,OAAO,GAAG,IAAI,KAAK,EAAE;AAE3B,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE;YACnC,MAAM,CAAC,GAAG,CAAC,IAAI,UAAU,GAAG,CAAC,CAAC;YAE9B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC;AAElC,YAAA,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;YAEf,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,GAAG;YAC7B,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,GAAG;YAC7B,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,GAAG;AAC7B,YAAA,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG;QAC7C;AAEA,QAAA,MAAM,CAAC,KAAK,CAAC,YAAY,CACvB,EAAE,OAAO,EAAE,EACX,IAAI,CAAC,MAAM,EACX,EAAE,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,UAAU,GAAG,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,EAC3D,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,EAAE,kBAAkB,EAAE,CAAC,EAAE,CACxD;IACH;AACD;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ColorGradient } from '@/particles/distributions/ColorGradient';
|
|
2
2
|
import type { ParticleSystem } from '@/particles/ParticleSystem';
|
|
3
3
|
import { UpdateModule } from './UpdateModule';
|
|
4
4
|
import type { WgslContribution } from './WgslContribution';
|
|
@@ -16,10 +16,10 @@ import type { WgslContribution } from './WgslContribution';
|
|
|
16
16
|
* keep alpha controlled by lifetime.
|
|
17
17
|
*/
|
|
18
18
|
export declare class ColorOverSpeed extends UpdateModule {
|
|
19
|
-
gradient:
|
|
19
|
+
gradient: ColorGradient;
|
|
20
20
|
minSpeed: number;
|
|
21
21
|
maxSpeed: number;
|
|
22
|
-
constructor(gradient:
|
|
22
|
+
constructor(gradient: ColorGradient, minSpeed: number, maxSpeed: number);
|
|
23
23
|
apply(system: ParticleSystem, _dt: number): void;
|
|
24
24
|
wgsl(): WgslContribution;
|
|
25
25
|
writeUniforms(view: DataView, offset: number): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColorOverSpeed.js","sources":["../../../../../src/particles/modules/ColorOverSpeed.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAAA;AASA,MAAM,UAAU,GAAG,GAAG;AAEtB;;;;;;;;;;;;AAYG;AACG,MAAO,cAAe,SAAQ,YAAY,CAAA;AACvC,IAAA,QAAQ;AACR,IAAA,QAAQ;AACR,IAAA,QAAQ;AAEf,IAAA,WAAA,CAAmB,
|
|
1
|
+
{"version":3,"file":"ColorOverSpeed.js","sources":["../../../../../src/particles/modules/ColorOverSpeed.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@ import type { WgslContribution } from './WgslContribution';
|
|
|
10
10
|
* WebGPU backends), additionally implement {@link wgsl} and
|
|
11
11
|
* {@link writeUniforms}. Modules that declare a {@link WgslContribution}
|
|
12
12
|
* may also opt to declare a 1D texture binding via the `textures` field
|
|
13
|
-
* (used by `Curve` / `
|
|
13
|
+
* (used by `Curve` / `ColorGradient`-driven modules) — in which case
|
|
14
14
|
* {@link uploadTextures} runs once at compile time to upload the data.
|
|
15
15
|
*
|
|
16
16
|
* Implementation pattern (CPU-only module):
|
|
@@ -82,7 +82,7 @@ export declare abstract class UpdateModule {
|
|
|
82
82
|
*/
|
|
83
83
|
writeUniforms?(view: DataView, byteOffset: number, dt: number): void;
|
|
84
84
|
/**
|
|
85
|
-
* Upload texture data (Curve/
|
|
85
|
+
* Upload texture data (Curve/ColorGradient lookup tables) to the GPU at
|
|
86
86
|
* compile time. Receives the GPUDevice and a map of texture bindings
|
|
87
87
|
* keyed by the `name` in {@link WgslContribution.textures}. Called once
|
|
88
88
|
* after pipeline creation.
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* WebGPU backends), additionally implement {@link wgsl} and
|
|
9
9
|
* {@link writeUniforms}. Modules that declare a {@link WgslContribution}
|
|
10
10
|
* may also opt to declare a 1D texture binding via the `textures` field
|
|
11
|
-
* (used by `Curve` / `
|
|
11
|
+
* (used by `Curve` / `ColorGradient`-driven modules) — in which case
|
|
12
12
|
* {@link uploadTextures} runs once at compile time to upload the data.
|
|
13
13
|
*
|
|
14
14
|
* Implementation pattern (CPU-only module):
|
|
@@ -17,11 +17,11 @@ export interface WgslUniformField {
|
|
|
17
17
|
name: string;
|
|
18
18
|
type: WgslPrimitive;
|
|
19
19
|
}
|
|
20
|
-
/** A 1D texture binding (used by Curve /
|
|
20
|
+
/** A 1D texture binding (used by Curve / ColorGradient lookups). */
|
|
21
21
|
export interface WgslTextureBinding {
|
|
22
22
|
/** Field name within the module — referenced in WGSL as `u_${moduleKey}_${name}`. */
|
|
23
23
|
name: string;
|
|
24
|
-
/** WGSL texture format. `r32float` for Curve, `rgba8unorm` for
|
|
24
|
+
/** WGSL texture format. `r32float` for Curve, `rgba8unorm` for ColorGradient. */
|
|
25
25
|
format: 'r32float' | 'rgba8unorm';
|
|
26
26
|
}
|
|
27
27
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CallbackRenderPass.js","sources":["../../../../src/rendering/CallbackRenderPass.ts"],"sourcesContent":[null],"names":[],"mappings":"AAGA
|
|
1
|
+
{"version":3,"file":"CallbackRenderPass.js","sources":["../../../../src/rendering/CallbackRenderPass.ts"],"sourcesContent":[null],"names":[],"mappings":"AAGA;;;;;;;;;;;;AAYG;MACU,kBAAkB,CAAA;AACZ,IAAA,SAAS;AAE1B,IAAA,WAAA,CAAmB,QAA0C,EAAA;AAC3D,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ;IAC3B;AAEO,IAAA,OAAO,CAAC,OAAsB,EAAA;AACnC,QAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;IACzB;AACD;;;;"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { Rectangle } from '@/math/Rectangle';
|
|
2
|
+
import { View } from '@/rendering/View';
|
|
3
|
+
export interface CameraOptions {
|
|
4
|
+
center?: {
|
|
5
|
+
x: number;
|
|
6
|
+
y: number;
|
|
7
|
+
};
|
|
8
|
+
size?: {
|
|
9
|
+
width: number;
|
|
10
|
+
height: number;
|
|
11
|
+
};
|
|
12
|
+
viewport?: Rectangle;
|
|
13
|
+
rotation?: number;
|
|
14
|
+
zoom?: number;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* User-facing camera abstraction. Extends {@link View} with ergonomic
|
|
18
|
+
* construction defaults. Use as the default camera owned by
|
|
19
|
+
* {@link RenderingContext} or pass custom instances to
|
|
20
|
+
* `context.render(node, { view: myCamera })`.
|
|
21
|
+
*
|
|
22
|
+
* ```ts
|
|
23
|
+
* const cam = new Camera({ center: { x: 50, y: 50 }, size: { width: 800, height: 600 } });
|
|
24
|
+
* ```
|
|
25
|
+
*
|
|
26
|
+
* Defaults: center `(0, 0)`, size `{ width: 0, height: 0 }`, full viewport
|
|
27
|
+
* `(0, 0, 1, 1)`, rotation `0`, zoom `1`.
|
|
28
|
+
*
|
|
29
|
+
* @stable
|
|
30
|
+
*/
|
|
31
|
+
export declare class Camera extends View {
|
|
32
|
+
constructor(options?: CameraOptions);
|
|
33
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { View } from './View.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* User-facing camera abstraction. Extends {@link View} with ergonomic
|
|
5
|
+
* construction defaults. Use as the default camera owned by
|
|
6
|
+
* {@link RenderingContext} or pass custom instances to
|
|
7
|
+
* `context.render(node, { view: myCamera })`.
|
|
8
|
+
*
|
|
9
|
+
* ```ts
|
|
10
|
+
* const cam = new Camera({ center: { x: 50, y: 50 }, size: { width: 800, height: 600 } });
|
|
11
|
+
* ```
|
|
12
|
+
*
|
|
13
|
+
* Defaults: center `(0, 0)`, size `{ width: 0, height: 0 }`, full viewport
|
|
14
|
+
* `(0, 0, 1, 1)`, rotation `0`, zoom `1`.
|
|
15
|
+
*
|
|
16
|
+
* @stable
|
|
17
|
+
*/
|
|
18
|
+
class Camera extends View {
|
|
19
|
+
constructor(options = {}) {
|
|
20
|
+
const centerX = options.center?.x ?? 0;
|
|
21
|
+
const centerY = options.center?.y ?? 0;
|
|
22
|
+
const width = options.size?.width ?? 0;
|
|
23
|
+
const height = options.size?.height ?? 0;
|
|
24
|
+
super(centerX, centerY, width, height);
|
|
25
|
+
if (options.viewport) {
|
|
26
|
+
this.viewport = options.viewport;
|
|
27
|
+
}
|
|
28
|
+
if (options.rotation && options.rotation !== 0) {
|
|
29
|
+
this.rotation = options.rotation;
|
|
30
|
+
}
|
|
31
|
+
if (options.zoom !== undefined && options.zoom !== 1) {
|
|
32
|
+
this.setZoom(options.zoom);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export { Camera };
|
|
38
|
+
//# sourceMappingURL=Camera.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Camera.js","sources":["../../../../src/rendering/Camera.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAWA;;;;;;;;;;;;;;AAcG;AACG,MAAO,MAAO,SAAQ,IAAI,CAAA;AAC9B,IAAA,WAAA,CAAmB,UAAyB,EAAE,EAAA;QAC5C,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC;QACtC,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC;QACtC,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC;QACtC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC;QAExC,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC;AAEtC,QAAA,IAAI,OAAO,CAAC,QAAQ,EAAE;AACpB,YAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ;QAClC;QAEA,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,KAAK,CAAC,EAAE;AAC9C,YAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ;QAClC;AAEA,QAAA,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE;AACpD,YAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;QAC5B;IACF;AACD;;;;"}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { RenderPlanBuilder } from './plan/RenderPlanBuilder';
|
|
2
2
|
import { RenderNode } from './RenderNode';
|
|
3
3
|
/**
|
|
4
4
|
* Scene-graph node that owns child {@link RenderNode}s. Renders its
|
|
5
|
-
* subtree in document order
|
|
6
|
-
*
|
|
7
|
-
* enabled.
|
|
5
|
+
* subtree in document order with local `zIndex` ordering resolved inside
|
|
6
|
+
* the internal render plan at playback time.
|
|
8
7
|
*
|
|
9
8
|
* Bounds aggregate the local bounds + every visible child's bounds, so
|
|
10
|
-
* `container.
|
|
9
|
+
* `container.getBounds()` always returns the smallest axis-aligned rectangle
|
|
11
10
|
* containing the subtree. Width/height accessors derive from the bounds
|
|
12
11
|
* (× `scale`) and writing to them rescales `scale` to fit.
|
|
13
12
|
*
|
|
@@ -17,21 +16,11 @@ import { RenderNode } from './RenderNode';
|
|
|
17
16
|
*
|
|
18
17
|
* Subclassed by {@link Sprite}, {@link Mesh}, {@link Graphics}, {@link Text},
|
|
19
18
|
* etc. — the base `Container` is a non-drawing grouping node.
|
|
19
|
+
* @stable
|
|
20
20
|
*/
|
|
21
21
|
export declare class Container extends RenderNode {
|
|
22
22
|
private readonly _children;
|
|
23
|
-
private _sortableChildren;
|
|
24
|
-
private _sortDirty;
|
|
25
|
-
private _nextChildOrder;
|
|
26
23
|
get children(): RenderNode[];
|
|
27
|
-
/**
|
|
28
|
-
* When `true`, children are re-sorted by `zIndex` (ascending; ties
|
|
29
|
-
* broken by add-order) before each render. Disabled by default to
|
|
30
|
-
* avoid the per-frame sort cost; enable on the few containers where
|
|
31
|
-
* z-ordering matters.
|
|
32
|
-
*/
|
|
33
|
-
get sortableChildren(): boolean;
|
|
34
|
-
set sortableChildren(sortableChildren: boolean);
|
|
35
24
|
get width(): number;
|
|
36
25
|
set width(value: number);
|
|
37
26
|
get height(): number;
|
|
@@ -63,17 +52,10 @@ export declare class Container extends RenderNode {
|
|
|
63
52
|
* the entire child list. Throws if the range is invalid.
|
|
64
53
|
*/
|
|
65
54
|
removeChildren(begin?: number, end?: number): this;
|
|
66
|
-
|
|
55
|
+
/** @internal */
|
|
56
|
+
protected _collectContent(builder: RenderPlanBuilder): void;
|
|
67
57
|
contains(x: number, y: number): boolean;
|
|
68
58
|
protected _invalidateChildrenTransform(): void;
|
|
69
59
|
updateBounds(): this;
|
|
70
60
|
destroy(): void;
|
|
71
|
-
/**
|
|
72
|
-
* Flag the child list as needing a re-sort before next render. Called
|
|
73
|
-
* automatically by `addChild*`, `removeChild*`, `swapChildren`, and
|
|
74
|
-
* `setChildIndex`; expose for callers that mutate `zIndex` directly.
|
|
75
|
-
*/
|
|
76
|
-
markSortDirty(): this;
|
|
77
|
-
sortChildren(): this;
|
|
78
|
-
private _sortChildrenIfNeeded;
|
|
79
61
|
}
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
import { removeArrayItems } from '../core/utils.js';
|
|
2
|
-
import {
|
|
2
|
+
import { getActiveInteractionManager } from '../input/internal/interactionManagerRegistry.js';
|
|
3
3
|
import { RenderNode } from './RenderNode.js';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* Scene-graph node that owns child {@link RenderNode}s. Renders its
|
|
7
|
-
* subtree in document order
|
|
8
|
-
*
|
|
9
|
-
* enabled.
|
|
7
|
+
* subtree in document order with local `zIndex` ordering resolved inside
|
|
8
|
+
* the internal render plan at playback time.
|
|
10
9
|
*
|
|
11
10
|
* Bounds aggregate the local bounds + every visible child's bounds, so
|
|
12
|
-
* `container.
|
|
11
|
+
* `container.getBounds()` always returns the smallest axis-aligned rectangle
|
|
13
12
|
* containing the subtree. Width/height accessors derive from the bounds
|
|
14
13
|
* (× `scale`) and writing to them rescales `scale` to fit.
|
|
15
14
|
*
|
|
@@ -19,41 +18,24 @@ import { RenderNode } from './RenderNode.js';
|
|
|
19
18
|
*
|
|
20
19
|
* Subclassed by {@link Sprite}, {@link Mesh}, {@link Graphics}, {@link Text},
|
|
21
20
|
* etc. — the base `Container` is a non-drawing grouping node.
|
|
21
|
+
* @stable
|
|
22
22
|
*/
|
|
23
23
|
class Container extends RenderNode {
|
|
24
24
|
_children = [];
|
|
25
|
-
_sortableChildren = false;
|
|
26
|
-
_sortDirty = false;
|
|
27
|
-
_nextChildOrder = 0;
|
|
28
25
|
get children() {
|
|
29
26
|
return this._children;
|
|
30
27
|
}
|
|
31
|
-
/**
|
|
32
|
-
* When `true`, children are re-sorted by `zIndex` (ascending; ties
|
|
33
|
-
* broken by add-order) before each render. Disabled by default to
|
|
34
|
-
* avoid the per-frame sort cost; enable on the few containers where
|
|
35
|
-
* z-ordering matters.
|
|
36
|
-
*/
|
|
37
|
-
get sortableChildren() {
|
|
38
|
-
return this._sortableChildren;
|
|
39
|
-
}
|
|
40
|
-
set sortableChildren(sortableChildren) {
|
|
41
|
-
if (this._sortableChildren !== sortableChildren) {
|
|
42
|
-
this._sortableChildren = sortableChildren;
|
|
43
|
-
this._sortDirty = sortableChildren;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
28
|
get width() {
|
|
47
|
-
return Math.abs(this.scale.x) * this.
|
|
29
|
+
return Math.abs(this.scale.x) * this.getBounds().width;
|
|
48
30
|
}
|
|
49
31
|
set width(value) {
|
|
50
|
-
this.scale.x = value / this.
|
|
32
|
+
this.scale.x = value / this.getBounds().width;
|
|
51
33
|
}
|
|
52
34
|
get height() {
|
|
53
|
-
return Math.abs(this.scale.y) * this.
|
|
35
|
+
return Math.abs(this.scale.y) * this.getBounds().height;
|
|
54
36
|
}
|
|
55
37
|
set height(value) {
|
|
56
|
-
this.scale.y = value / this.
|
|
38
|
+
this.scale.y = value / this.getBounds().height;
|
|
57
39
|
}
|
|
58
40
|
get left() {
|
|
59
41
|
return this.x - this.width * this.origin.x;
|
|
@@ -89,17 +71,15 @@ class Container extends RenderNode {
|
|
|
89
71
|
if (child === this) {
|
|
90
72
|
return this;
|
|
91
73
|
}
|
|
92
|
-
if (child.
|
|
93
|
-
child.
|
|
74
|
+
if (child.parent) {
|
|
75
|
+
child.parent.removeChild(child);
|
|
94
76
|
}
|
|
95
|
-
child.
|
|
96
|
-
child.setChildOrder(this._nextChildOrder++);
|
|
77
|
+
child.parent = this;
|
|
97
78
|
this._children.splice(index, 0, child);
|
|
98
|
-
this.markSortDirty();
|
|
99
79
|
this.invalidateCache();
|
|
100
80
|
child._invalidateSubtreeTransform();
|
|
101
81
|
this._invalidateBoundsCascade();
|
|
102
|
-
|
|
82
|
+
getActiveInteractionManager()?._notifyNodeAdded(child);
|
|
103
83
|
return this;
|
|
104
84
|
}
|
|
105
85
|
swapChildren(firstChild, secondChild) {
|
|
@@ -108,7 +88,6 @@ class Container extends RenderNode {
|
|
|
108
88
|
const secondIndex = this.getChildIndex(secondChild);
|
|
109
89
|
this._children[firstIndex] = secondChild;
|
|
110
90
|
this._children[secondIndex] = firstChild;
|
|
111
|
-
this.markSortDirty();
|
|
112
91
|
this.invalidateCache();
|
|
113
92
|
}
|
|
114
93
|
return this;
|
|
@@ -126,7 +105,6 @@ class Container extends RenderNode {
|
|
|
126
105
|
}
|
|
127
106
|
removeArrayItems(this._children, this.getChildIndex(child), 1);
|
|
128
107
|
this._children.splice(index, 0, child);
|
|
129
|
-
this.markSortDirty();
|
|
130
108
|
this.invalidateCache();
|
|
131
109
|
return this;
|
|
132
110
|
}
|
|
@@ -147,14 +125,13 @@ class Container extends RenderNode {
|
|
|
147
125
|
removeChildAt(index) {
|
|
148
126
|
const child = this._children[index];
|
|
149
127
|
removeArrayItems(this._children, index, 1);
|
|
150
|
-
if (child?.
|
|
128
|
+
if (child?.parent === this) {
|
|
151
129
|
// Cascade bounds up BEFORE clearing parent so the walk reaches this node.
|
|
152
130
|
this._invalidateBoundsCascade();
|
|
153
|
-
child.
|
|
131
|
+
child.parent = null;
|
|
154
132
|
child._invalidateSubtreeTransform();
|
|
155
|
-
|
|
133
|
+
getActiveInteractionManager()?._notifyNodeRemoved(child);
|
|
156
134
|
}
|
|
157
|
-
this.markSortDirty();
|
|
158
135
|
this.invalidateCache();
|
|
159
136
|
return this;
|
|
160
137
|
}
|
|
@@ -173,32 +150,24 @@ class Container extends RenderNode {
|
|
|
173
150
|
}
|
|
174
151
|
for (let i = begin; i < end; i++) {
|
|
175
152
|
const child = this._children[i];
|
|
176
|
-
if (child?.
|
|
177
|
-
child.
|
|
153
|
+
if (child?.parent === this) {
|
|
154
|
+
child.parent = null;
|
|
178
155
|
child._invalidateSubtreeTransform();
|
|
179
|
-
|
|
156
|
+
getActiveInteractionManager()?._notifyNodeRemoved(child);
|
|
180
157
|
}
|
|
181
158
|
}
|
|
182
159
|
removeArrayItems(this._children, begin, range);
|
|
183
|
-
this.markSortDirty();
|
|
184
160
|
this.invalidateCache();
|
|
185
161
|
return this;
|
|
186
162
|
}
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
163
|
+
/** @internal */
|
|
164
|
+
_collectContent(builder) {
|
|
165
|
+
if (this._children.length === 0) {
|
|
166
|
+
return;
|
|
190
167
|
}
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
return this;
|
|
168
|
+
for (let index = 0; index < this._children.length; index++) {
|
|
169
|
+
this._children[index]._collect(builder, index);
|
|
194
170
|
}
|
|
195
|
-
this.renderVisualContent(backend, () => {
|
|
196
|
-
this._sortChildrenIfNeeded();
|
|
197
|
-
for (const child of this._children) {
|
|
198
|
-
child.render(backend);
|
|
199
|
-
}
|
|
200
|
-
});
|
|
201
|
-
return this;
|
|
202
171
|
}
|
|
203
172
|
contains(x, y) {
|
|
204
173
|
return this._children.some(child => child.contains(x, y));
|
|
@@ -221,37 +190,6 @@ class Container extends RenderNode {
|
|
|
221
190
|
this.removeChildren();
|
|
222
191
|
super.destroy();
|
|
223
192
|
}
|
|
224
|
-
/**
|
|
225
|
-
* Flag the child list as needing a re-sort before next render. Called
|
|
226
|
-
* automatically by `addChild*`, `removeChild*`, `swapChildren`, and
|
|
227
|
-
* `setChildIndex`; expose for callers that mutate `zIndex` directly.
|
|
228
|
-
*/
|
|
229
|
-
markSortDirty() {
|
|
230
|
-
if (this._sortableChildren) {
|
|
231
|
-
this._sortDirty = true;
|
|
232
|
-
}
|
|
233
|
-
return this;
|
|
234
|
-
}
|
|
235
|
-
sortChildren() {
|
|
236
|
-
if (!this._sortableChildren || !this._sortDirty || this._children.length <= 1) {
|
|
237
|
-
this._sortDirty = false;
|
|
238
|
-
return this;
|
|
239
|
-
}
|
|
240
|
-
this._children.sort((left, right) => {
|
|
241
|
-
if (left.zIndex === right.zIndex) {
|
|
242
|
-
return left.childOrder - right.childOrder;
|
|
243
|
-
}
|
|
244
|
-
return left.zIndex - right.zIndex;
|
|
245
|
-
});
|
|
246
|
-
this._sortDirty = false;
|
|
247
|
-
this.invalidateCache();
|
|
248
|
-
return this;
|
|
249
|
-
}
|
|
250
|
-
_sortChildrenIfNeeded() {
|
|
251
|
-
if (this._sortableChildren && this._sortDirty) {
|
|
252
|
-
this.sortChildren();
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
193
|
}
|
|
256
194
|
|
|
257
195
|
export { Container };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Container.js","sources":["../../../../src/rendering/Container.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAMA;;;;;;;;;;;;;;;;;AAiBG;AACG,MAAO,SAAU,SAAQ,UAAU,CAAA;IACtB,SAAS,GAAiB,EAAE;
|
|
1
|
+
{"version":3,"file":"Container.js","sources":["../../../../src/rendering/Container.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAMA;;;;;;;;;;;;;;;;;AAiBG;AACG,MAAO,SAAU,SAAQ,UAAU,CAAA;IACtB,SAAS,GAAiB,EAAE;AAE7C,IAAA,IAAW,QAAQ,GAAA;QACjB,OAAO,IAAI,CAAC,SAAS;IACvB;AAEA,IAAA,IAAW,KAAK,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,KAAK;IACxD;IAEA,IAAW,KAAK,CAAC,KAAa,EAAA;AAC5B,QAAA,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,KAAK;IAC/C;AAEA,IAAA,IAAW,MAAM,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM;IACzD;IAEA,IAAW,MAAM,CAAC,KAAa,EAAA;AAC7B,QAAA,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM;IAChD;AAEA,IAAA,IAAW,IAAI,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5C;AAEA,IAAA,IAAW,GAAG,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7C;AAEA,IAAA,IAAW,KAAK,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5C;AAEA,IAAA,IAAW,MAAM,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7C;AAEA;;;AAGG;IACI,QAAQ,CAAC,GAAG,QAAsB,EAAA;AACvC,QAAA,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE;YAC5B,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;QAC/C;AAEA,QAAA,OAAO,IAAI;IACb;AAEA;;;;AAIG;IACI,UAAU,CAAC,KAAiB,EAAE,KAAa,EAAA;AAChD,QAAA,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;AAC9C,YAAA,MAAM,IAAI,KAAK,CAAC,CAAA,UAAA,EAAa,KAAK,CAAA,kBAAA,EAAqB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAA,CAAE,CAAC;QACjF;AAEA,QAAA,IAAI,KAAK,KAAK,IAAI,EAAE;AAClB,YAAA,OAAO,IAAI;QACb;AAEA,QAAA,IAAI,KAAK,CAAC,MAAM,EAAE;AAChB,YAAA,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC;QACjC;AAEA,QAAA,KAAK,CAAC,MAAM,GAAG,IAAI;QACnB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC;QACtC,IAAI,CAAC,eAAe,EAAE;QAEtB,KAAK,CAAC,2BAA2B,EAAE;QACnC,IAAI,CAAC,wBAAwB,EAAE;AAE/B,QAAA,2BAA2B,EAAE,EAAE,gBAAgB,CAAC,KAAK,CAAC;AAEtD,QAAA,OAAO,IAAI;IACb;IAEO,YAAY,CAAC,UAAsB,EAAE,WAAuB,EAAA;AACjE,QAAA,IAAI,UAAU,KAAK,WAAW,EAAE;YAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;YACjD,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;AAEnD,YAAA,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,WAAW;AACxC,YAAA,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,UAAU;YACxC,IAAI,CAAC,eAAe,EAAE;QACxB;AAEA,QAAA,OAAO,IAAI;IACb;AAEO,IAAA,aAAa,CAAC,KAAiB,EAAA;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC;AAE3C,QAAA,IAAI,KAAK,KAAK,EAAE,EAAE;AAChB,YAAA,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC;QAC9D;AAEA,QAAA,OAAO,KAAK;IACd;IAEO,aAAa,CAAC,KAAiB,EAAE,KAAa,EAAA;AACnD,QAAA,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;AAC/C,YAAA,MAAM,IAAI,KAAK,CAAC,CAAA,UAAA,EAAa,KAAK,CAAA,kBAAA,EAAqB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAA,CAAE,CAAC;QACjF;AAEA,QAAA,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAE9D,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC;QACtC,IAAI,CAAC,eAAe,EAAE;AAEtB,QAAA,OAAO,IAAI;IACb;AAEO,IAAA,UAAU,CAAC,KAAa,EAAA;AAC7B,QAAA,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;AAC/C,YAAA,MAAM,IAAI,KAAK,CAAC,sBAAsB,KAAK,CAAA,iBAAA,CAAmB,CAAC;QACjE;AAEA,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IAC9B;;AAGO,IAAA,WAAW,CAAC,KAAiB,EAAA;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC;AAE3C,QAAA,IAAI,KAAK,KAAK,EAAE,EAAE;AAChB,YAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;QAC3B;AAEA,QAAA,OAAO,IAAI;IACb;AAEO,IAAA,aAAa,CAAC,KAAa,EAAA;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QAEnC,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;AAE1C,QAAA,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,EAAE;;YAE1B,IAAI,CAAC,wBAAwB,EAAE;AAC/B,YAAA,KAAK,CAAC,MAAM,GAAG,IAAI;YACnB,KAAK,CAAC,2BAA2B,EAAE;AACnC,YAAA,2BAA2B,EAAE,EAAE,kBAAkB,CAAC,KAAK,CAAC;QAC1D;QAEA,IAAI,CAAC,eAAe,EAAE;AAEtB,QAAA,OAAO,IAAI;IACb;AAEA;;;AAGG;IACI,cAAc,CAAC,KAAK,GAAG,CAAC,EAAE,MAAc,IAAI,CAAC,SAAS,CAAC,MAAM,EAAA;AAClE,QAAA,MAAM,KAAK,GAAG,GAAG,GAAG,KAAK;QAEzB,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,GAAG,EAAE;AAC5B,YAAA,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC;QAC7D;;AAGA,QAAA,IAAI,KAAK,GAAG,CAAC,EAAE;YACb,IAAI,CAAC,wBAAwB,EAAE;QACjC;AAEA,QAAA,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;YAChC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;AAE/B,YAAA,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,EAAE;AAC1B,gBAAA,KAAK,CAAC,MAAM,GAAG,IAAI;gBACnB,KAAK,CAAC,2BAA2B,EAAE;AACnC,gBAAA,2BAA2B,EAAE,EAAE,kBAAkB,CAAC,KAAK,CAAC;YAC1D;QACF;QAEA,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC;QAC9C,IAAI,CAAC,eAAe,EAAE;AAEtB,QAAA,OAAO,IAAI;IACb;;AAGmB,IAAA,eAAe,CAAC,OAA0B,EAAA;QAC3D,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;YAC/B;QACF;AAEA,QAAA,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;AAC1D,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;QAChD;IACF;IAEgB,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAA;AAC3C,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3D;IAEmB,4BAA4B,GAAA;AAC7C,QAAA,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE;YAClC,KAAK,CAAC,2BAA2B,EAAE;QACrC;IACF;IAEgB,YAAY,GAAA;AAC1B,QAAA,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAE9E,QAAA,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE;AAClC,YAAA,IAAI,KAAK,CAAC,OAAO,EAAE;gBACjB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YACzC;QACF;AAEA,QAAA,OAAO,IAAI;IACb;IAEgB,OAAO,GAAA;QACrB,IAAI,CAAC,cAAc,EAAE;QAErB,KAAK,CAAC,OAAO,EAAE;IACjB;AACD;;;;"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { Color } from '@/core/Color';
|
|
2
2
|
import { BlendModes } from '@/rendering/types';
|
|
3
|
-
import type {
|
|
3
|
+
import type { RenderPlanBuilder } from './plan/RenderPlanBuilder';
|
|
4
4
|
import { RenderNode } from './RenderNode';
|
|
5
5
|
/**
|
|
6
6
|
* Base class for every renderable scene object.
|
|
7
7
|
*
|
|
8
|
-
* Extends {@link RenderNode} with a per-object tint colour and blend mode
|
|
9
|
-
* and implements the default view-frustum culling logic in {@link render}.
|
|
8
|
+
* Extends {@link RenderNode} with a per-object tint colour and blend mode.
|
|
10
9
|
* Concrete drawable types (sprites, meshes, text, etc.) extend this class
|
|
11
10
|
* and are paired with a matching {@link Renderer} via {@link RendererRegistry}.
|
|
12
11
|
*/
|
|
@@ -27,12 +26,11 @@ export declare class Drawable extends RenderNode {
|
|
|
27
26
|
* Invalidates the render cache when the blend mode actually changes.
|
|
28
27
|
*/
|
|
29
28
|
setBlendMode(blendMode: BlendModes): this;
|
|
30
|
-
/**
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
render(backend: RenderBackend): this;
|
|
29
|
+
/** @internal */
|
|
30
|
+
protected _collectContent(builder: RenderPlanBuilder): void;
|
|
31
|
+
/** @internal */
|
|
32
|
+
_isDrawableForRenderPlan(): boolean;
|
|
33
|
+
/** @internal */
|
|
34
|
+
_renderPlanGetBlendMode(): BlendModes;
|
|
37
35
|
destroy(): void;
|
|
38
36
|
}
|