@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
|
@@ -32,6 +32,7 @@ var ViewFlags;
|
|
|
32
32
|
* matrices, a follow-target system for tracking scene nodes, and a procedural
|
|
33
33
|
* screen-shake effect. Call {@link update} once per frame to advance follow and
|
|
34
34
|
* shake animations.
|
|
35
|
+
* @stable
|
|
35
36
|
*/
|
|
36
37
|
class View {
|
|
37
38
|
_center;
|
|
@@ -307,6 +308,47 @@ class View {
|
|
|
307
308
|
}
|
|
308
309
|
return this._inverseTransform;
|
|
309
310
|
}
|
|
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
|
+
screenToWorld(screenX, screenY, canvasWidth, canvasHeight) {
|
|
322
|
+
const vw = this._viewport.width * canvasWidth;
|
|
323
|
+
const vh = this._viewport.height * canvasHeight;
|
|
324
|
+
const clipX = ((screenX - this._viewport.x * canvasWidth) / vw) * 2 - 1;
|
|
325
|
+
const clipY = 1 - ((screenY - this._viewport.y * canvasHeight) / vh) * 2;
|
|
326
|
+
const inv = this.getInverseTransform();
|
|
327
|
+
return {
|
|
328
|
+
x: inv.a * clipX + inv.b * clipY + inv.x,
|
|
329
|
+
y: inv.c * clipX + inv.d * clipY + inv.y,
|
|
330
|
+
};
|
|
331
|
+
}
|
|
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
|
+
worldToScreen(worldX, worldY, canvasWidth, canvasHeight) {
|
|
342
|
+
const m = this.getTransform();
|
|
343
|
+
const clipX = m.a * worldX + m.b * worldY + m.x;
|
|
344
|
+
const clipY = m.c * worldX + m.d * worldY + m.y;
|
|
345
|
+
const vx = this._viewport.x * canvasWidth;
|
|
346
|
+
const vy = this._viewport.y * canvasHeight;
|
|
347
|
+
return {
|
|
348
|
+
x: vx + ((clipX + 1) / 2) * this._viewport.width * canvasWidth,
|
|
349
|
+
y: vy + ((1 - clipY) / 2) * this._viewport.height * canvasHeight,
|
|
350
|
+
};
|
|
351
|
+
}
|
|
310
352
|
/**
|
|
311
353
|
* Return the world-space bounding rectangle of the currently visible area, recalculating if dirty.
|
|
312
354
|
* Used for frustum culling by {@link Drawable.render}.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"View.js","sources":["../../../../src/rendering/View.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"View.js","sources":["../../../../src/rendering/View.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -144,24 +144,17 @@ class WebGpuShaderFilter extends Filter {
|
|
|
144
144
|
// ---- Build user bind group (group 1) ----
|
|
145
145
|
const userBindGroup = this._buildUserBindGroup(gpu, conn);
|
|
146
146
|
// ---- Encode render pass ----
|
|
147
|
-
//
|
|
148
|
-
//
|
|
149
|
-
//
|
|
150
|
-
const
|
|
151
|
-
const encoder = device2.createCommandEncoder({ label: 'WebGpuShaderFilter' });
|
|
152
|
-
const pass = encoder.beginRenderPass({
|
|
153
|
-
colorAttachments: [gpu.createColorAttachment()],
|
|
154
|
-
label: 'WebGpuShaderFilter pass',
|
|
155
|
-
});
|
|
156
|
-
gpu.stats.renderPasses++;
|
|
147
|
+
// The coordinator owns the GPU pass (it runs inside the surrounding
|
|
148
|
+
// RenderTargetPass child pass, so load/clear is already resolved to
|
|
149
|
+
// a clear of the output target) and ends + submits it below.
|
|
150
|
+
const pass = gpu._passCoordinator.acquirePass().pass;
|
|
157
151
|
pass.setPipeline(conn.pipeline);
|
|
158
152
|
pass.setVertexBuffer(0, conn.vertexBuffer);
|
|
159
153
|
pass.setBindGroup(0, autoBindGroup);
|
|
160
154
|
pass.setBindGroup(1, userBindGroup);
|
|
161
155
|
pass.draw(4);
|
|
162
156
|
gpu.stats.drawCalls++;
|
|
163
|
-
|
|
164
|
-
gpu.submit(encoder.finish());
|
|
157
|
+
gpu._passCoordinator.endPass();
|
|
165
158
|
}, {
|
|
166
159
|
target: output,
|
|
167
160
|
view: output.view,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebGpuShaderFilter.js","sources":["../../../../../src/rendering/filters/WebGpuShaderFilter.ts"],"sourcesContent":[null],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"WebGpuShaderFilter.js","sources":["../../../../../src/rendering/filters/WebGpuShaderFilter.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Rectangle } from '@/math/Rectangle';
|
|
2
|
+
import type { GeometryAttribute, GeometryOptions, GeometryUsage, Topology } from './GeometryAttribute';
|
|
3
|
+
/**
|
|
4
|
+
* Non-renderable geometry data object used by advanced rendering paths.
|
|
5
|
+
*
|
|
6
|
+
* Geometry owns only vertex/index data and its layout metadata; it is not a
|
|
7
|
+
* scene node, has no transform state, and cannot render itself.
|
|
8
|
+
* @advanced
|
|
9
|
+
*/
|
|
10
|
+
export declare class Geometry {
|
|
11
|
+
readonly attributes: readonly GeometryAttribute[];
|
|
12
|
+
readonly stride: number;
|
|
13
|
+
readonly topology: Topology;
|
|
14
|
+
readonly usage: GeometryUsage;
|
|
15
|
+
readonly indices: Uint16Array | Uint32Array | null;
|
|
16
|
+
vertexData: Float32Array | ArrayBuffer;
|
|
17
|
+
private _version;
|
|
18
|
+
private _localBounds;
|
|
19
|
+
private _localBoundsDirty;
|
|
20
|
+
private readonly _positionAttribute;
|
|
21
|
+
private readonly _disposeCallbacks;
|
|
22
|
+
constructor(options: GeometryOptions);
|
|
23
|
+
get vertexCount(): number;
|
|
24
|
+
get indexCount(): number;
|
|
25
|
+
get version(): number;
|
|
26
|
+
get id(): number;
|
|
27
|
+
/** Mark vertex data as mutated in place so backends can re-upload GPU buffers. */
|
|
28
|
+
invalidate(): this;
|
|
29
|
+
/** Return local-space bounds; when `out` is provided it is populated and returned. */
|
|
30
|
+
getLocalBounds(out?: Rectangle): Rectangle;
|
|
31
|
+
/** Force local-space AABB recomputation from the current position attribute data. */
|
|
32
|
+
recomputeLocalBounds(): this;
|
|
33
|
+
/** Release backend-owned resources associated with this geometry instance. */
|
|
34
|
+
destroy(): void;
|
|
35
|
+
/**
|
|
36
|
+
* Internal backend hook used to register per-geometry cleanup callbacks.
|
|
37
|
+
* @internal
|
|
38
|
+
*/
|
|
39
|
+
_onDispose(callback: () => void): void;
|
|
40
|
+
}
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
import { Rectangle } from '../../math/Rectangle.js';
|
|
2
|
+
|
|
3
|
+
const attributeTypeByteSizes = {
|
|
4
|
+
f32: 4,
|
|
5
|
+
u8: 1,
|
|
6
|
+
u16: 2,
|
|
7
|
+
u32: 4,
|
|
8
|
+
i32: 4,
|
|
9
|
+
};
|
|
10
|
+
const validTopologies = new Set(['triangle-list', 'triangle-strip']);
|
|
11
|
+
const validUsages = new Set(['static', 'dynamic', 'stream']);
|
|
12
|
+
const positionAttributeNames = new Set(['a_position', 'position']);
|
|
13
|
+
const geometryIds = new WeakMap();
|
|
14
|
+
let nextGeometryId = 1;
|
|
15
|
+
const getOrCreateGeometryId = (geometry) => {
|
|
16
|
+
const cached = geometryIds.get(geometry);
|
|
17
|
+
if (cached !== undefined) {
|
|
18
|
+
return cached;
|
|
19
|
+
}
|
|
20
|
+
const id = nextGeometryId++;
|
|
21
|
+
geometryIds.set(geometry, id);
|
|
22
|
+
return id;
|
|
23
|
+
};
|
|
24
|
+
const getVertexCount = (vertexData, stride) => {
|
|
25
|
+
const { byteLength } = vertexData;
|
|
26
|
+
if (byteLength % stride !== 0) {
|
|
27
|
+
throw new Error(`Geometry vertexData byteLength ${byteLength} must be divisible by stride ${stride}.`);
|
|
28
|
+
}
|
|
29
|
+
return byteLength / stride;
|
|
30
|
+
};
|
|
31
|
+
const readComponent = (view, type, offset, normalized) => {
|
|
32
|
+
switch (type) {
|
|
33
|
+
case 'f32':
|
|
34
|
+
return view.getFloat32(offset, true);
|
|
35
|
+
case 'u8': {
|
|
36
|
+
const value = view.getUint8(offset);
|
|
37
|
+
return normalized ? value / 255 : value;
|
|
38
|
+
}
|
|
39
|
+
case 'u16': {
|
|
40
|
+
const value = view.getUint16(offset, true);
|
|
41
|
+
return normalized ? value / 65535 : value;
|
|
42
|
+
}
|
|
43
|
+
case 'u32': {
|
|
44
|
+
const value = view.getUint32(offset, true);
|
|
45
|
+
return normalized ? value / 4294967295 : value;
|
|
46
|
+
}
|
|
47
|
+
case 'i32': {
|
|
48
|
+
const value = view.getInt32(offset, true);
|
|
49
|
+
return normalized ? Math.max(value / 2147483647, -1) : value;
|
|
50
|
+
}
|
|
51
|
+
default:
|
|
52
|
+
return 0;
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
const cloneAttributes = (attributes) => {
|
|
56
|
+
return attributes.map(attribute => ({ ...attribute }));
|
|
57
|
+
};
|
|
58
|
+
const resolvePositionAttribute = (attributes) => {
|
|
59
|
+
const directMatch = attributes.find(attribute => positionAttributeNames.has(attribute.name));
|
|
60
|
+
if (directMatch) {
|
|
61
|
+
return directMatch;
|
|
62
|
+
}
|
|
63
|
+
const fuzzyMatch = attributes.find(attribute => attribute.name.toLowerCase().includes('position'));
|
|
64
|
+
if (fuzzyMatch) {
|
|
65
|
+
return fuzzyMatch;
|
|
66
|
+
}
|
|
67
|
+
throw new Error('Geometry requires a position attribute named `a_position` or `position`.');
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* Non-renderable geometry data object used by advanced rendering paths.
|
|
71
|
+
*
|
|
72
|
+
* Geometry owns only vertex/index data and its layout metadata; it is not a
|
|
73
|
+
* scene node, has no transform state, and cannot render itself.
|
|
74
|
+
* @advanced
|
|
75
|
+
*/
|
|
76
|
+
class Geometry {
|
|
77
|
+
attributes;
|
|
78
|
+
stride;
|
|
79
|
+
topology;
|
|
80
|
+
usage;
|
|
81
|
+
indices;
|
|
82
|
+
vertexData;
|
|
83
|
+
_version = 0;
|
|
84
|
+
_localBounds = new Rectangle();
|
|
85
|
+
_localBoundsDirty = true;
|
|
86
|
+
_positionAttribute;
|
|
87
|
+
_disposeCallbacks = new Set();
|
|
88
|
+
constructor(options) {
|
|
89
|
+
const { attributes, vertexData, stride, indices = null, topology = 'triangle-list', usage = 'static' } = options;
|
|
90
|
+
if (attributes.length === 0) {
|
|
91
|
+
throw new Error('Geometry attributes must be a non-empty array.');
|
|
92
|
+
}
|
|
93
|
+
if (!Number.isInteger(stride) || stride <= 0) {
|
|
94
|
+
throw new Error(`Geometry stride must be a positive integer (got ${stride}).`);
|
|
95
|
+
}
|
|
96
|
+
if (!validTopologies.has(topology)) {
|
|
97
|
+
throw new Error(`Geometry topology must be one of: triangle-list, triangle-strip (got ${String(topology)}).`);
|
|
98
|
+
}
|
|
99
|
+
if (!validUsages.has(usage)) {
|
|
100
|
+
throw new Error(`Geometry usage must be one of: static, dynamic, stream (got ${String(usage)}).`);
|
|
101
|
+
}
|
|
102
|
+
const ranges = [];
|
|
103
|
+
const names = new Set();
|
|
104
|
+
for (const attribute of attributes) {
|
|
105
|
+
if (typeof attribute.name !== 'string' || attribute.name.length === 0) {
|
|
106
|
+
throw new Error('Geometry attribute name must be a non-empty string.');
|
|
107
|
+
}
|
|
108
|
+
if (names.has(attribute.name)) {
|
|
109
|
+
throw new Error(`Geometry attribute "${attribute.name}" is declared more than once.`);
|
|
110
|
+
}
|
|
111
|
+
names.add(attribute.name);
|
|
112
|
+
if (!Number.isInteger(attribute.size) || attribute.size < 1 || attribute.size > 4) {
|
|
113
|
+
throw new Error(`Geometry attribute "${attribute.name}" size must be an integer in [1..4] (got ${attribute.size}).`);
|
|
114
|
+
}
|
|
115
|
+
if (!Number.isInteger(attribute.offset) || attribute.offset < 0) {
|
|
116
|
+
throw new Error(`Geometry attribute "${attribute.name}" offset must be a non-negative integer (got ${attribute.offset}).`);
|
|
117
|
+
}
|
|
118
|
+
const byteSize = attributeTypeByteSizes[attribute.type];
|
|
119
|
+
const end = attribute.offset + byteSize * attribute.size;
|
|
120
|
+
if (end > stride) {
|
|
121
|
+
throw new Error(`Geometry attribute "${attribute.name}" range [${attribute.offset}, ${end}) exceeds stride ${stride}.`);
|
|
122
|
+
}
|
|
123
|
+
for (const range of ranges) {
|
|
124
|
+
if (attribute.offset < range.end && end > range.start) {
|
|
125
|
+
throw new Error(`Geometry attribute "${attribute.name}" overlaps attribute "${range.name}" in the interleaved layout.`);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
ranges.push({ name: attribute.name, start: attribute.offset, end });
|
|
129
|
+
}
|
|
130
|
+
const positionAttribute = resolvePositionAttribute(attributes);
|
|
131
|
+
if (positionAttribute.size < 2) {
|
|
132
|
+
throw new Error(`Geometry position attribute "${positionAttribute.name}" must declare at least 2 components.`);
|
|
133
|
+
}
|
|
134
|
+
const vertexCount = getVertexCount(vertexData, stride);
|
|
135
|
+
if (indices !== null) {
|
|
136
|
+
for (let i = 0; i < indices.length; i++) {
|
|
137
|
+
if (indices[i] >= vertexCount) {
|
|
138
|
+
throw new Error(`Geometry index ${indices[i]} at position ${i} is out of range for vertex count ${vertexCount}.`);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
this.attributes = cloneAttributes(attributes);
|
|
143
|
+
this.vertexData = vertexData;
|
|
144
|
+
this.stride = stride;
|
|
145
|
+
this.indices = indices;
|
|
146
|
+
this.topology = topology;
|
|
147
|
+
this.usage = usage;
|
|
148
|
+
this._positionAttribute = { ...positionAttribute };
|
|
149
|
+
}
|
|
150
|
+
get vertexCount() {
|
|
151
|
+
return getVertexCount(this.vertexData, this.stride);
|
|
152
|
+
}
|
|
153
|
+
get indexCount() {
|
|
154
|
+
return this.indices?.length ?? this.vertexCount;
|
|
155
|
+
}
|
|
156
|
+
get version() {
|
|
157
|
+
return this._version;
|
|
158
|
+
}
|
|
159
|
+
get id() {
|
|
160
|
+
return getOrCreateGeometryId(this);
|
|
161
|
+
}
|
|
162
|
+
/** Mark vertex data as mutated in place so backends can re-upload GPU buffers. */
|
|
163
|
+
invalidate() {
|
|
164
|
+
this._version++;
|
|
165
|
+
this._localBoundsDirty = true;
|
|
166
|
+
return this;
|
|
167
|
+
}
|
|
168
|
+
/** Return local-space bounds; when `out` is provided it is populated and returned. */
|
|
169
|
+
getLocalBounds(out = this._localBounds) {
|
|
170
|
+
if (this._localBoundsDirty) {
|
|
171
|
+
this.recomputeLocalBounds();
|
|
172
|
+
}
|
|
173
|
+
if (out === this._localBounds) {
|
|
174
|
+
return this._localBounds;
|
|
175
|
+
}
|
|
176
|
+
return out.copy(this._localBounds);
|
|
177
|
+
}
|
|
178
|
+
/** Force local-space AABB recomputation from the current position attribute data. */
|
|
179
|
+
recomputeLocalBounds() {
|
|
180
|
+
const vertexCount = this.vertexCount;
|
|
181
|
+
if (vertexCount === 0) {
|
|
182
|
+
this._localBounds.set(0, 0, 0, 0);
|
|
183
|
+
this._localBoundsDirty = false;
|
|
184
|
+
return this;
|
|
185
|
+
}
|
|
186
|
+
const view = this.vertexData instanceof Float32Array
|
|
187
|
+
? new DataView(this.vertexData.buffer, this.vertexData.byteOffset, this.vertexData.byteLength)
|
|
188
|
+
: new DataView(this.vertexData);
|
|
189
|
+
const componentByteSize = attributeTypeByteSizes[this._positionAttribute.type];
|
|
190
|
+
let minX = Infinity;
|
|
191
|
+
let minY = Infinity;
|
|
192
|
+
let maxX = -Infinity;
|
|
193
|
+
let maxY = -Infinity;
|
|
194
|
+
for (let vertexIndex = 0; vertexIndex < vertexCount; vertexIndex++) {
|
|
195
|
+
const start = vertexIndex * this.stride + this._positionAttribute.offset;
|
|
196
|
+
const x = readComponent(view, this._positionAttribute.type, start, this._positionAttribute.normalized);
|
|
197
|
+
const y = readComponent(view, this._positionAttribute.type, start + componentByteSize, this._positionAttribute.normalized);
|
|
198
|
+
if (x < minX)
|
|
199
|
+
minX = x;
|
|
200
|
+
if (x > maxX)
|
|
201
|
+
maxX = x;
|
|
202
|
+
if (y < minY)
|
|
203
|
+
minY = y;
|
|
204
|
+
if (y > maxY)
|
|
205
|
+
maxY = y;
|
|
206
|
+
}
|
|
207
|
+
this._localBounds.set(minX, minY, maxX - minX, maxY - minY);
|
|
208
|
+
this._localBoundsDirty = false;
|
|
209
|
+
return this;
|
|
210
|
+
}
|
|
211
|
+
/** Release backend-owned resources associated with this geometry instance. */
|
|
212
|
+
destroy() {
|
|
213
|
+
for (const callback of this._disposeCallbacks) {
|
|
214
|
+
callback();
|
|
215
|
+
}
|
|
216
|
+
this._disposeCallbacks.clear();
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Internal backend hook used to register per-geometry cleanup callbacks.
|
|
220
|
+
* @internal
|
|
221
|
+
*/
|
|
222
|
+
_onDispose(callback) {
|
|
223
|
+
this._disposeCallbacks.add(callback);
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
export { Geometry };
|
|
228
|
+
//# sourceMappingURL=Geometry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Geometry.js","sources":["../../../../../src/rendering/geometry/Geometry.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GPU buffer ownership strategy used by geometry-aware render paths.
|
|
3
|
+
*
|
|
4
|
+
* - `static` — immutable after creation; eligible for shared batched buffers.
|
|
5
|
+
* - `dynamic` — occasionally mutated; backend should keep a dedicated buffer.
|
|
6
|
+
* - `stream` — mutated every frame; backend should treat as immediate data.
|
|
7
|
+
*/
|
|
8
|
+
export type GeometryUsage = 'static' | 'dynamic' | 'stream';
|
|
9
|
+
/** Scalar component type used by a geometry vertex attribute. */
|
|
10
|
+
export type AttributeType = 'f32' | 'u8' | 'u16' | 'u32' | 'i32';
|
|
11
|
+
/** Primitive topology used when drawing this geometry. */
|
|
12
|
+
export type Topology = 'triangle-list' | 'triangle-strip';
|
|
13
|
+
/**
|
|
14
|
+
* Descriptor for one attribute in an interleaved vertex layout.
|
|
15
|
+
* Offsets and stride are expressed in bytes.
|
|
16
|
+
*/
|
|
17
|
+
export interface GeometryAttribute {
|
|
18
|
+
readonly name: string;
|
|
19
|
+
readonly size: number;
|
|
20
|
+
readonly type: AttributeType;
|
|
21
|
+
readonly normalized: boolean;
|
|
22
|
+
readonly offset: number;
|
|
23
|
+
}
|
|
24
|
+
/** Construction options for {@link Geometry}. */
|
|
25
|
+
export interface GeometryOptions {
|
|
26
|
+
readonly attributes: readonly GeometryAttribute[];
|
|
27
|
+
readonly vertexData: Float32Array | ArrayBuffer;
|
|
28
|
+
readonly stride: number;
|
|
29
|
+
readonly indices?: Uint16Array | Uint32Array | null;
|
|
30
|
+
readonly topology?: Topology;
|
|
31
|
+
readonly usage?: GeometryUsage;
|
|
32
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { Color } from '@/core/Color';
|
|
2
|
+
import { DataTexture } from '@/rendering/texture/DataTexture';
|
|
3
|
+
import type { SamplerOptions } from '@/rendering/texture/Sampler';
|
|
4
|
+
export interface GradientStop {
|
|
5
|
+
offset: number;
|
|
6
|
+
color: Color;
|
|
7
|
+
}
|
|
8
|
+
export interface GradientToTextureOptions {
|
|
9
|
+
readonly format?: 'rgba8' | 'rgba32f';
|
|
10
|
+
readonly samplerOptions?: Partial<SamplerOptions>;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* CPU-rasterized gradient base that can be converted into a {@link DataTexture}.
|
|
14
|
+
*/
|
|
15
|
+
export declare abstract class Gradient {
|
|
16
|
+
private _stops;
|
|
17
|
+
private readonly _sample;
|
|
18
|
+
protected constructor(stops: readonly GradientStop[]);
|
|
19
|
+
get stops(): readonly GradientStop[];
|
|
20
|
+
toTexture(width: number, height: number, options?: GradientToTextureOptions & {
|
|
21
|
+
format?: 'rgba8';
|
|
22
|
+
}): DataTexture<'rgba8'>;
|
|
23
|
+
toTexture(width: number, height: number, options: GradientToTextureOptions & {
|
|
24
|
+
format: 'rgba32f';
|
|
25
|
+
}): DataTexture<'rgba32f'>;
|
|
26
|
+
destroy(): void;
|
|
27
|
+
protected abstract resolveT(u: number, v: number): number;
|
|
28
|
+
/**
|
|
29
|
+
* Shared stop sampling logic ported from the legacy GLSL implementation.
|
|
30
|
+
*/
|
|
31
|
+
protected sampleAt(t: number, out: Float32Array): void;
|
|
32
|
+
private _toRgba8Texture;
|
|
33
|
+
private _toRgba32fTexture;
|
|
34
|
+
}
|