@codexo/exojs 0.4.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 +163 -0
- package/README.md +141 -0
- package/dist/esm/audio/AbstractMedia.d.ts +45 -0
- package/dist/esm/audio/AbstractMedia.js +103 -0
- package/dist/esm/audio/AbstractMedia.js.map +1 -0
- package/dist/esm/audio/AudioAnalyser.d.ts +30 -0
- package/dist/esm/audio/AudioAnalyser.js +92 -0
- package/dist/esm/audio/AudioAnalyser.js.map +1 -0
- package/dist/esm/audio/Media.d.ts +25 -0
- package/dist/esm/audio/Music.d.ts +20 -0
- package/dist/esm/audio/Music.js +119 -0
- package/dist/esm/audio/Music.js.map +1 -0
- package/dist/esm/audio/Sound.d.ts +56 -0
- package/dist/esm/audio/Sound.js +394 -0
- package/dist/esm/audio/Sound.js.map +1 -0
- package/dist/esm/audio/audio-context.d.ts +11 -0
- package/dist/esm/audio/audio-context.js +115 -0
- package/dist/esm/audio/audio-context.js.map +1 -0
- package/dist/esm/audio/index.d.ts +6 -0
- package/dist/esm/core/Application.d.ts +76 -0
- package/dist/esm/core/Application.js +206 -0
- package/dist/esm/core/Application.js.map +1 -0
- package/dist/esm/core/Bounds.d.ts +19 -0
- package/dist/esm/core/Bounds.js +59 -0
- package/dist/esm/core/Bounds.js.map +1 -0
- package/dist/esm/core/Clock.d.ts +18 -0
- package/dist/esm/core/Clock.js +68 -0
- package/dist/esm/core/Clock.js.map +1 -0
- package/dist/esm/core/Color.d.ts +176 -0
- package/dist/esm/core/Color.js +265 -0
- package/dist/esm/core/Color.js.map +1 -0
- package/dist/esm/core/Quadtree.d.ts +20 -0
- package/dist/esm/core/Quadtree.js +86 -0
- package/dist/esm/core/Quadtree.js.map +1 -0
- package/dist/esm/core/Scene.d.ts +83 -0
- package/dist/esm/core/Scene.js +81 -0
- package/dist/esm/core/Scene.js.map +1 -0
- package/dist/esm/core/SceneManager.d.ts +66 -0
- package/dist/esm/core/SceneManager.js +396 -0
- package/dist/esm/core/SceneManager.js.map +1 -0
- package/dist/esm/core/SceneNode.d.ts +58 -0
- package/dist/esm/core/SceneNode.js +174 -0
- package/dist/esm/core/SceneNode.js.map +1 -0
- package/dist/esm/core/Signal.d.ts +18 -0
- package/dist/esm/core/Signal.js +63 -0
- package/dist/esm/core/Signal.js.map +1 -0
- package/dist/esm/core/Time.d.ts +38 -0
- package/dist/esm/core/Time.js +107 -0
- package/dist/esm/core/Time.js.map +1 -0
- package/dist/esm/core/Timer.d.ts +12 -0
- package/dist/esm/core/Timer.js +34 -0
- package/dist/esm/core/Timer.js.map +1 -0
- package/dist/esm/core/index.d.ts +13 -0
- package/dist/esm/core/types.d.ts +29 -0
- package/dist/esm/core/utils.d.ts +22 -0
- package/dist/esm/core/utils.js +136 -0
- package/dist/esm/core/utils.js.map +1 -0
- package/dist/esm/index.d.ts +8 -0
- package/dist/esm/index.js +135 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/input/ArcadeStickGamepadMapping.d.ts +5 -0
- package/dist/esm/input/ArcadeStickGamepadMapping.js +29 -0
- package/dist/esm/input/ArcadeStickGamepadMapping.js.map +1 -0
- package/dist/esm/input/GameCubeGamepadMapping.d.ts +5 -0
- package/dist/esm/input/GameCubeGamepadMapping.js +9 -0
- package/dist/esm/input/GameCubeGamepadMapping.js.map +1 -0
- package/dist/esm/input/Gamepad.d.ts +45 -0
- package/dist/esm/input/Gamepad.js +154 -0
- package/dist/esm/input/Gamepad.js.map +1 -0
- package/dist/esm/input/GamepadChannels.d.ts +39 -0
- package/dist/esm/input/GamepadChannels.js +45 -0
- package/dist/esm/input/GamepadChannels.js.map +1 -0
- package/dist/esm/input/GamepadControl.d.ts +15 -0
- package/dist/esm/input/GamepadControl.js +29 -0
- package/dist/esm/input/GamepadControl.js.map +1 -0
- package/dist/esm/input/GamepadDefinitions.d.ts +31 -0
- package/dist/esm/input/GamepadDefinitions.js +175 -0
- package/dist/esm/input/GamepadDefinitions.js.map +1 -0
- package/dist/esm/input/GamepadMapping.d.ts +23 -0
- package/dist/esm/input/GamepadMapping.js +32 -0
- package/dist/esm/input/GamepadMapping.js.map +1 -0
- package/dist/esm/input/GamepadPromptLayouts.d.ts +9 -0
- package/dist/esm/input/GamepadPromptLayouts.js +140 -0
- package/dist/esm/input/GamepadPromptLayouts.js.map +1 -0
- package/dist/esm/input/GenericDualAnalogGamepadMapping.d.ts +5 -0
- package/dist/esm/input/GenericDualAnalogGamepadMapping.js +53 -0
- package/dist/esm/input/GenericDualAnalogGamepadMapping.js.map +1 -0
- package/dist/esm/input/Input.d.ts +28 -0
- package/dist/esm/input/Input.js +68 -0
- package/dist/esm/input/Input.js.map +1 -0
- package/dist/esm/input/InputManager.d.ts +76 -0
- package/dist/esm/input/InputManager.js +346 -0
- package/dist/esm/input/InputManager.js.map +1 -0
- package/dist/esm/input/JoyConLeftGamepadMapping.d.ts +5 -0
- package/dist/esm/input/JoyConLeftGamepadMapping.js +9 -0
- package/dist/esm/input/JoyConLeftGamepadMapping.js.map +1 -0
- package/dist/esm/input/JoyConRightGamepadMapping.d.ts +5 -0
- package/dist/esm/input/JoyConRightGamepadMapping.js +9 -0
- package/dist/esm/input/JoyConRightGamepadMapping.js.map +1 -0
- package/dist/esm/input/PlayStationGamepadMapping.d.ts +5 -0
- package/dist/esm/input/PlayStationGamepadMapping.js +9 -0
- package/dist/esm/input/PlayStationGamepadMapping.js.map +1 -0
- package/dist/esm/input/Pointer.d.ts +52 -0
- package/dist/esm/input/Pointer.js +127 -0
- package/dist/esm/input/Pointer.js.map +1 -0
- package/dist/esm/input/SteamControllerGamepadMapping.d.ts +5 -0
- package/dist/esm/input/SteamControllerGamepadMapping.js +9 -0
- package/dist/esm/input/SteamControllerGamepadMapping.js.map +1 -0
- package/dist/esm/input/SwitchProGamepadMapping.d.ts +5 -0
- package/dist/esm/input/SwitchProGamepadMapping.js +9 -0
- package/dist/esm/input/SwitchProGamepadMapping.js.map +1 -0
- package/dist/esm/input/XboxGamepadMapping.d.ts +5 -0
- package/dist/esm/input/XboxGamepadMapping.js +9 -0
- package/dist/esm/input/XboxGamepadMapping.js.map +1 -0
- package/dist/esm/input/index.d.ts +19 -0
- package/dist/esm/input/types.d.ts +111 -0
- package/dist/esm/input/types.js +117 -0
- package/dist/esm/input/types.js.map +1 -0
- package/dist/esm/math/AbstractVector.d.ts +33 -0
- package/dist/esm/math/AbstractVector.js +106 -0
- package/dist/esm/math/AbstractVector.js.map +1 -0
- package/dist/esm/math/Circle.d.ts +41 -0
- package/dist/esm/math/Circle.js +137 -0
- package/dist/esm/math/Circle.js.map +1 -0
- package/dist/esm/math/CircleLike.d.ts +5 -0
- package/dist/esm/math/Collision.d.ts +28 -0
- package/dist/esm/math/Collision.js +13 -0
- package/dist/esm/math/Collision.js.map +1 -0
- package/dist/esm/math/Ellipse.d.ts +37 -0
- package/dist/esm/math/Ellipse.js +112 -0
- package/dist/esm/math/Ellipse.js.map +1 -0
- package/dist/esm/math/EllipseLike.d.ts +6 -0
- package/dist/esm/math/Flags.d.ts +12 -0
- package/dist/esm/math/Flags.js +41 -0
- package/dist/esm/math/Flags.js.map +1 -0
- package/dist/esm/math/Interval.d.ts +16 -0
- package/dist/esm/math/Interval.js +45 -0
- package/dist/esm/math/Interval.js.map +1 -0
- package/dist/esm/math/Line.d.ts +36 -0
- package/dist/esm/math/Line.js +114 -0
- package/dist/esm/math/Line.js.map +1 -0
- package/dist/esm/math/LineLike.d.ts +6 -0
- package/dist/esm/math/Matrix.d.ts +32 -0
- package/dist/esm/math/Matrix.js +134 -0
- package/dist/esm/math/Matrix.js.map +1 -0
- package/dist/esm/math/ObservableSize.d.ts +16 -0
- package/dist/esm/math/ObservableSize.js +56 -0
- package/dist/esm/math/ObservableSize.js.map +1 -0
- package/dist/esm/math/ObservableVector.d.ts +21 -0
- package/dist/esm/math/ObservableVector.js +74 -0
- package/dist/esm/math/ObservableVector.js.map +1 -0
- package/dist/esm/math/PointLike.d.ts +4 -0
- package/dist/esm/math/PolarVector.d.ts +8 -0
- package/dist/esm/math/PolarVector.js +19 -0
- package/dist/esm/math/PolarVector.js.map +1 -0
- package/dist/esm/math/Polygon.d.ts +38 -0
- package/dist/esm/math/Polygon.js +163 -0
- package/dist/esm/math/Polygon.js.map +1 -0
- package/dist/esm/math/PolygonLike.d.ts +6 -0
- package/dist/esm/math/Random.d.ts +15 -0
- package/dist/esm/math/Random.js +72 -0
- package/dist/esm/math/Random.js.map +1 -0
- package/dist/esm/math/Rectangle.d.ts +48 -0
- package/dist/esm/math/Rectangle.js +208 -0
- package/dist/esm/math/Rectangle.js.map +1 -0
- package/dist/esm/math/RectangleLike.d.ts +6 -0
- package/dist/esm/math/Segment.d.ts +25 -0
- package/dist/esm/math/Segment.js +79 -0
- package/dist/esm/math/Segment.js.map +1 -0
- package/dist/esm/math/ShapeLike.d.ts +4 -0
- package/dist/esm/math/Size.d.ts +24 -0
- package/dist/esm/math/Size.js +71 -0
- package/dist/esm/math/Size.js.map +1 -0
- package/dist/esm/math/Transformable.d.ts +47 -0
- package/dist/esm/math/Transformable.js +140 -0
- package/dist/esm/math/Transformable.js.map +1 -0
- package/dist/esm/math/Vector.d.ts +28 -0
- package/dist/esm/math/Vector.js +80 -0
- package/dist/esm/math/Vector.js.map +1 -0
- package/dist/esm/math/collision-detection.d.ts +41 -0
- package/dist/esm/math/collision-detection.js +394 -0
- package/dist/esm/math/collision-detection.js.map +1 -0
- package/dist/esm/math/collision-primitives.d.ts +39 -0
- package/dist/esm/math/collision-primitives.js +164 -0
- package/dist/esm/math/collision-primitives.js.map +1 -0
- package/dist/esm/math/geometry.d.ts +8 -0
- package/dist/esm/math/geometry.js +195 -0
- package/dist/esm/math/geometry.js.map +1 -0
- package/dist/esm/math/index.d.ts +27 -0
- package/dist/esm/math/utils.d.ts +21 -0
- package/dist/esm/math/utils.js +60 -0
- package/dist/esm/math/utils.js.map +1 -0
- package/dist/esm/particles/Particle.d.ts +40 -0
- package/dist/esm/particles/Particle.js +106 -0
- package/dist/esm/particles/Particle.js.map +1 -0
- package/dist/esm/particles/ParticleProperties.d.ts +14 -0
- package/dist/esm/particles/ParticleSystem.d.ts +43 -0
- package/dist/esm/particles/ParticleSystem.js +186 -0
- package/dist/esm/particles/ParticleSystem.js.map +1 -0
- package/dist/esm/particles/affectors/ColorAffector.d.ts +17 -0
- package/dist/esm/particles/affectors/ColorAffector.js +42 -0
- package/dist/esm/particles/affectors/ColorAffector.js.map +1 -0
- package/dist/esm/particles/affectors/ForceAffector.d.ts +13 -0
- package/dist/esm/particles/affectors/ForceAffector.js +28 -0
- package/dist/esm/particles/affectors/ForceAffector.js.map +1 -0
- package/dist/esm/particles/affectors/ParticleAffector.d.ts +6 -0
- package/dist/esm/particles/affectors/ScaleAffector.d.ts +13 -0
- package/dist/esm/particles/affectors/ScaleAffector.js +28 -0
- package/dist/esm/particles/affectors/ScaleAffector.js.map +1 -0
- package/dist/esm/particles/affectors/TorqueAffector.d.ts +12 -0
- package/dist/esm/particles/affectors/TorqueAffector.js +26 -0
- package/dist/esm/particles/affectors/TorqueAffector.js.map +1 -0
- package/dist/esm/particles/emitters/ParticleEmitter.d.ts +6 -0
- package/dist/esm/particles/emitters/ParticleOptions.d.ts +46 -0
- package/dist/esm/particles/emitters/ParticleOptions.js +104 -0
- package/dist/esm/particles/emitters/ParticleOptions.js.map +1 -0
- package/dist/esm/particles/emitters/UniversalEmitter.d.ts +17 -0
- package/dist/esm/particles/emitters/UniversalEmitter.js +45 -0
- package/dist/esm/particles/emitters/UniversalEmitter.js.map +1 -0
- package/dist/esm/particles/index.d.ts +11 -0
- package/dist/esm/physics/RapierPhysicsWorld.d.ts +136 -0
- package/dist/esm/physics/RapierPhysicsWorld.js +475 -0
- package/dist/esm/physics/RapierPhysicsWorld.js.map +1 -0
- package/dist/esm/physics/index.d.ts +1 -0
- package/dist/esm/rendering/CallbackRenderPass.d.ts +7 -0
- package/dist/esm/rendering/CallbackRenderPass.js +12 -0
- package/dist/esm/rendering/CallbackRenderPass.js.map +1 -0
- package/dist/esm/rendering/Container.d.ts +36 -0
- package/dist/esm/rendering/Container.js +197 -0
- package/dist/esm/rendering/Container.js.map +1 -0
- package/dist/esm/rendering/Drawable.d.ts +16 -0
- package/dist/esm/rendering/Drawable.js +54 -0
- package/dist/esm/rendering/Drawable.js.map +1 -0
- package/dist/esm/rendering/RenderBackendType.d.ts +4 -0
- package/dist/esm/rendering/RenderBackendType.js +8 -0
- package/dist/esm/rendering/RenderBackendType.js.map +1 -0
- package/dist/esm/rendering/RenderNode.d.ts +51 -0
- package/dist/esm/rendering/RenderNode.js +235 -0
- package/dist/esm/rendering/RenderNode.js.map +1 -0
- package/dist/esm/rendering/RenderPass.d.ts +4 -0
- package/dist/esm/rendering/RenderStats.d.ts +12 -0
- package/dist/esm/rendering/RenderStats.js +24 -0
- package/dist/esm/rendering/RenderStats.js.map +1 -0
- package/dist/esm/rendering/RenderTarget.d.ts +34 -0
- package/dist/esm/rendering/RenderTarget.js +109 -0
- package/dist/esm/rendering/RenderTarget.js.map +1 -0
- package/dist/esm/rendering/RenderTargetPass.d.ts +18 -0
- package/dist/esm/rendering/RenderTargetPass.js +31 -0
- package/dist/esm/rendering/RenderTargetPass.js.map +1 -0
- package/dist/esm/rendering/Renderer.d.ts +15 -0
- package/dist/esm/rendering/RendererRegistry.d.ts +43 -0
- package/dist/esm/rendering/RendererRegistry.js +86 -0
- package/dist/esm/rendering/RendererRegistry.js.map +1 -0
- package/dist/esm/rendering/SceneRenderRuntime.d.ts +29 -0
- package/dist/esm/rendering/View.d.ts +102 -0
- package/dist/esm/rendering/View.js +364 -0
- package/dist/esm/rendering/View.js.map +1 -0
- package/dist/esm/rendering/filters/BlurFilter.d.ts +20 -0
- package/dist/esm/rendering/filters/BlurFilter.js +68 -0
- package/dist/esm/rendering/filters/BlurFilter.js.map +1 -0
- package/dist/esm/rendering/filters/ColorFilter.d.ts +12 -0
- package/dist/esm/rendering/filters/ColorFilter.js +42 -0
- package/dist/esm/rendering/filters/ColorFilter.js.map +1 -0
- package/dist/esm/rendering/filters/Filter.d.ts +5 -0
- package/dist/esm/rendering/filters/Filter.js +5 -0
- package/dist/esm/rendering/filters/Filter.js.map +1 -0
- package/dist/esm/rendering/index.d.ts +52 -0
- package/dist/esm/rendering/primitives/CircleGeometry.d.ts +4 -0
- package/dist/esm/rendering/primitives/CircleGeometry.js +21 -0
- package/dist/esm/rendering/primitives/CircleGeometry.js.map +1 -0
- package/dist/esm/rendering/primitives/DrawableShape.d.ts +11 -0
- package/dist/esm/rendering/primitives/DrawableShape.js +21 -0
- package/dist/esm/rendering/primitives/DrawableShape.js.map +1 -0
- package/dist/esm/rendering/primitives/Geometry.d.ts +13 -0
- package/dist/esm/rendering/primitives/Geometry.js +16 -0
- package/dist/esm/rendering/primitives/Geometry.js.map +1 -0
- package/dist/esm/rendering/primitives/Graphics.d.ts +36 -0
- package/dist/esm/rendering/primitives/Graphics.js +208 -0
- package/dist/esm/rendering/primitives/Graphics.js.map +1 -0
- package/dist/esm/rendering/shader/Shader.d.ts +27 -0
- package/dist/esm/rendering/shader/Shader.js +63 -0
- package/dist/esm/rendering/shader/Shader.js.map +1 -0
- package/dist/esm/rendering/shader/ShaderAttribute.d.ts +9 -0
- package/dist/esm/rendering/shader/ShaderAttribute.js +21 -0
- package/dist/esm/rendering/shader/ShaderAttribute.js.map +1 -0
- package/dist/esm/rendering/shader/ShaderUniform.d.ts +16 -0
- package/dist/esm/rendering/shader/ShaderUniform.js +38 -0
- package/dist/esm/rendering/shader/ShaderUniform.js.map +1 -0
- package/dist/esm/rendering/sprite/AnimatedSprite.d.ts +43 -0
- package/dist/esm/rendering/sprite/AnimatedSprite.js +177 -0
- package/dist/esm/rendering/sprite/AnimatedSprite.js.map +1 -0
- package/dist/esm/rendering/sprite/Sprite.d.ts +43 -0
- package/dist/esm/rendering/sprite/Sprite.js +169 -0
- package/dist/esm/rendering/sprite/Sprite.js.map +1 -0
- package/dist/esm/rendering/sprite/Spritesheet.d.ts +34 -0
- package/dist/esm/rendering/sprite/Spritesheet.js +88 -0
- package/dist/esm/rendering/sprite/Spritesheet.js.map +1 -0
- package/dist/esm/rendering/text/Text.d.ts +26 -0
- package/dist/esm/rendering/text/Text.js +130 -0
- package/dist/esm/rendering/text/Text.js.map +1 -0
- package/dist/esm/rendering/text/TextStyle.d.ts +65 -0
- package/dist/esm/rendering/text/TextStyle.js +192 -0
- package/dist/esm/rendering/text/TextStyle.js.map +1 -0
- package/dist/esm/rendering/texture/RenderTexture.d.ts +36 -0
- package/dist/esm/rendering/texture/RenderTexture.js +123 -0
- package/dist/esm/rendering/texture/RenderTexture.js.map +1 -0
- package/dist/esm/rendering/texture/Sampler.d.ts +29 -0
- package/dist/esm/rendering/texture/Sampler.js +76 -0
- package/dist/esm/rendering/texture/Sampler.js.map +1 -0
- package/dist/esm/rendering/texture/Texture.d.ts +52 -0
- package/dist/esm/rendering/texture/Texture.js +173 -0
- package/dist/esm/rendering/texture/Texture.js.map +1 -0
- package/dist/esm/rendering/types.d.ts +68 -0
- package/dist/esm/rendering/types.js +79 -0
- package/dist/esm/rendering/types.js.map +1 -0
- package/dist/esm/rendering/utils.d.ts +9 -0
- package/dist/esm/rendering/utils.js +39 -0
- package/dist/esm/rendering/utils.js.map +1 -0
- package/dist/esm/rendering/video/Video.d.ts +62 -0
- package/dist/esm/rendering/video/Video.js +293 -0
- package/dist/esm/rendering/video/Video.js.map +1 -0
- package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.d.ts +49 -0
- package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js +175 -0
- package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js.map +1 -0
- package/dist/esm/rendering/webgl2/AbstractWebGl2Renderer.d.ts +44 -0
- package/dist/esm/rendering/webgl2/AbstractWebGl2Renderer.js +57 -0
- package/dist/esm/rendering/webgl2/AbstractWebGl2Renderer.js.map +1 -0
- package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.d.ts +11 -0
- package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.js +110 -0
- package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.js.map +1 -0
- package/dist/esm/rendering/webgl2/WebGl2PrimitiveRenderer.d.ts +26 -0
- package/dist/esm/rendering/webgl2/WebGl2PrimitiveRenderer.js +217 -0
- package/dist/esm/rendering/webgl2/WebGl2PrimitiveRenderer.js.map +1 -0
- package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.d.ts +26 -0
- package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.js +54 -0
- package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.js.map +1 -0
- package/dist/esm/rendering/webgl2/WebGl2RenderManager.d.ts +99 -0
- package/dist/esm/rendering/webgl2/WebGl2RenderManager.js +600 -0
- package/dist/esm/rendering/webgl2/WebGl2RenderManager.js.map +1 -0
- package/dist/esm/rendering/webgl2/WebGl2RendererRuntime.d.ts +15 -0
- package/dist/esm/rendering/webgl2/WebGl2ShaderBlock.d.ts +17 -0
- package/dist/esm/rendering/webgl2/WebGl2ShaderBlock.js +63 -0
- package/dist/esm/rendering/webgl2/WebGl2ShaderBlock.js.map +1 -0
- package/dist/esm/rendering/webgl2/WebGl2ShaderMappings.d.ts +3 -0
- package/dist/esm/rendering/webgl2/WebGl2ShaderMappings.js +59 -0
- package/dist/esm/rendering/webgl2/WebGl2ShaderMappings.js.map +1 -0
- package/dist/esm/rendering/webgl2/WebGl2ShaderRuntime.d.ts +2 -0
- package/dist/esm/rendering/webgl2/WebGl2ShaderRuntime.js +161 -0
- package/dist/esm/rendering/webgl2/WebGl2ShaderRuntime.js.map +1 -0
- package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.d.ts +11 -0
- package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js +82 -0
- package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js.map +1 -0
- package/dist/esm/rendering/webgl2/WebGl2VertexArrayObject.d.ts +40 -0
- package/dist/esm/rendering/webgl2/WebGl2VertexArrayObject.js +69 -0
- package/dist/esm/rendering/webgl2/WebGl2VertexArrayObject.js.map +1 -0
- package/dist/esm/rendering/webgl2/glsl/particle.frag.js +4 -0
- package/dist/esm/rendering/webgl2/glsl/particle.frag.js.map +1 -0
- package/dist/esm/rendering/webgl2/glsl/particle.vert.js +4 -0
- package/dist/esm/rendering/webgl2/glsl/particle.vert.js.map +1 -0
- package/dist/esm/rendering/webgl2/glsl/primitive.frag.js +4 -0
- package/dist/esm/rendering/webgl2/glsl/primitive.frag.js.map +1 -0
- package/dist/esm/rendering/webgl2/glsl/primitive.vert.js +4 -0
- package/dist/esm/rendering/webgl2/glsl/primitive.vert.js.map +1 -0
- package/dist/esm/rendering/webgl2/glsl/sprite.frag.js +4 -0
- package/dist/esm/rendering/webgl2/glsl/sprite.frag.js.map +1 -0
- package/dist/esm/rendering/webgl2/glsl/sprite.vert.js +4 -0
- package/dist/esm/rendering/webgl2/glsl/sprite.vert.js.map +1 -0
- package/dist/esm/rendering/webgpu/AbstractWebGpuRenderer.d.ts +28 -0
- package/dist/esm/rendering/webgpu/AbstractWebGpuRenderer.js +50 -0
- package/dist/esm/rendering/webgpu/AbstractWebGpuRenderer.js.map +1 -0
- package/dist/esm/rendering/webgpu/WebGpuBlendState.d.ts +6 -0
- package/dist/esm/rendering/webgpu/WebGpuBlendState.js +79 -0
- package/dist/esm/rendering/webgpu/WebGpuBlendState.js.map +1 -0
- package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.d.ts +33 -0
- package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.js +443 -0
- package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.js.map +1 -0
- package/dist/esm/rendering/webgpu/WebGpuPrimitiveRenderer.d.ts +39 -0
- package/dist/esm/rendering/webgpu/WebGpuPrimitiveRenderer.js +489 -0
- package/dist/esm/rendering/webgpu/WebGpuPrimitiveRenderer.js.map +1 -0
- package/dist/esm/rendering/webgpu/WebGpuRenderManager.d.ts +111 -0
- package/dist/esm/rendering/webgpu/WebGpuRenderManager.js +777 -0
- package/dist/esm/rendering/webgpu/WebGpuRenderManager.js.map +1 -0
- package/dist/esm/rendering/webgpu/WebGpuRendererRuntime.d.ts +8 -0
- package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts +33 -0
- package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js +528 -0
- package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js.map +1 -0
- package/dist/esm/resources/AbstractAssetFactory.d.ts +10 -0
- package/dist/esm/resources/AbstractAssetFactory.js +24 -0
- package/dist/esm/resources/AbstractAssetFactory.js.map +1 -0
- package/dist/esm/resources/AssetFactory.d.ts +6 -0
- package/dist/esm/resources/AssetManifest.d.ts +28 -0
- package/dist/esm/resources/AssetManifest.js +66 -0
- package/dist/esm/resources/AssetManifest.js.map +1 -0
- package/dist/esm/resources/CacheFirstStrategy.d.ts +5 -0
- package/dist/esm/resources/CacheFirstStrategy.js +34 -0
- package/dist/esm/resources/CacheFirstStrategy.js.map +1 -0
- package/dist/esm/resources/CacheStore.d.ts +7 -0
- package/dist/esm/resources/CacheStrategy.d.ts +12 -0
- package/dist/esm/resources/Database.d.ts +13 -0
- package/dist/esm/resources/FactoryRegistry.d.ts +9 -0
- package/dist/esm/resources/FactoryRegistry.js +42 -0
- package/dist/esm/resources/FactoryRegistry.js.map +1 -0
- package/dist/esm/resources/IndexedDbDatabase.d.ts +21 -0
- package/dist/esm/resources/IndexedDbDatabase.js +143 -0
- package/dist/esm/resources/IndexedDbDatabase.js.map +1 -0
- package/dist/esm/resources/IndexedDbStore.d.ts +16 -0
- package/dist/esm/resources/IndexedDbStore.js +32 -0
- package/dist/esm/resources/IndexedDbStore.js.map +1 -0
- package/dist/esm/resources/Loader.d.ts +88 -0
- package/dist/esm/resources/Loader.js +601 -0
- package/dist/esm/resources/Loader.js.map +1 -0
- package/dist/esm/resources/NetworkOnlyStrategy.d.ts +5 -0
- package/dist/esm/resources/NetworkOnlyStrategy.js +12 -0
- package/dist/esm/resources/NetworkOnlyStrategy.js.map +1 -0
- package/dist/esm/resources/factories/BinaryFactory.d.ts +6 -0
- package/dist/esm/resources/factories/BinaryFactory.js +14 -0
- package/dist/esm/resources/factories/BinaryFactory.js.map +1 -0
- package/dist/esm/resources/factories/FontFactory.d.ts +13 -0
- package/dist/esm/resources/factories/FontFactory.js +36 -0
- package/dist/esm/resources/factories/FontFactory.js.map +1 -0
- package/dist/esm/resources/factories/ImageFactory.d.ts +10 -0
- package/dist/esm/resources/factories/ImageFactory.js +35 -0
- package/dist/esm/resources/factories/ImageFactory.js.map +1 -0
- package/dist/esm/resources/factories/JsonFactory.d.ts +6 -0
- package/dist/esm/resources/factories/JsonFactory.js +14 -0
- package/dist/esm/resources/factories/JsonFactory.js.map +1 -0
- package/dist/esm/resources/factories/MusicFactory.d.ts +16 -0
- package/dist/esm/resources/factories/MusicFactory.js +37 -0
- package/dist/esm/resources/factories/MusicFactory.js.map +1 -0
- package/dist/esm/resources/factories/SoundFactory.d.ts +14 -0
- package/dist/esm/resources/factories/SoundFactory.js +22 -0
- package/dist/esm/resources/factories/SoundFactory.js.map +1 -0
- package/dist/esm/resources/factories/SvgFactory.d.ts +6 -0
- package/dist/esm/resources/factories/SvgFactory.js +34 -0
- package/dist/esm/resources/factories/SvgFactory.js.map +1 -0
- package/dist/esm/resources/factories/TextFactory.d.ts +6 -0
- package/dist/esm/resources/factories/TextFactory.js +14 -0
- package/dist/esm/resources/factories/TextFactory.js.map +1 -0
- package/dist/esm/resources/factories/TextureFactory.d.ts +13 -0
- package/dist/esm/resources/factories/TextureFactory.js +37 -0
- package/dist/esm/resources/factories/TextureFactory.js.map +1 -0
- package/dist/esm/resources/factories/VideoFactory.d.ts +18 -0
- package/dist/esm/resources/factories/VideoFactory.js +40 -0
- package/dist/esm/resources/factories/VideoFactory.js.map +1 -0
- package/dist/esm/resources/factories/VttFactory.d.ts +6 -0
- package/dist/esm/resources/factories/VttFactory.js +57 -0
- package/dist/esm/resources/factories/VttFactory.js.map +1 -0
- package/dist/esm/resources/factories/WasmFactory.d.ts +6 -0
- package/dist/esm/resources/factories/WasmFactory.js +14 -0
- package/dist/esm/resources/factories/WasmFactory.js.map +1 -0
- package/dist/esm/resources/index.d.ts +26 -0
- package/dist/esm/resources/tokens.d.ts +30 -0
- package/dist/esm/resources/tokens.js +33 -0
- package/dist/esm/resources/tokens.js.map +1 -0
- package/dist/esm/resources/utils.d.ts +1 -0
- package/dist/esm/resources/utils.js +129 -0
- package/dist/esm/resources/utils.js.map +1 -0
- package/dist/esm/vendor/webgl-debug.js +1160 -0
- package/dist/esm/vendor/webgl-debug.js.map +1 -0
- package/dist/exo.esm.js +17111 -0
- package/dist/exo.esm.js.map +1 -0
- package/dist/exo.esm.min.js +2 -0
- package/dist/exo.esm.min.js.map +1 -0
- package/dist/exo.global.js +17328 -0
- package/dist/exo.global.js.map +1 -0
- package/dist/exo.global.min.js +2 -0
- package/dist/exo.global.min.js.map +1 -0
- package/package.json +96 -0
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { SceneRenderRuntime } from './SceneRenderRuntime';
|
|
2
|
+
import type { SceneNode } from '@/core/SceneNode';
|
|
3
|
+
import { RenderNode } from './RenderNode';
|
|
4
|
+
export declare class Container extends RenderNode {
|
|
5
|
+
private readonly _children;
|
|
6
|
+
private _sortableChildren;
|
|
7
|
+
private _sortDirty;
|
|
8
|
+
private _nextChildOrder;
|
|
9
|
+
get children(): Array<SceneNode>;
|
|
10
|
+
get sortableChildren(): boolean;
|
|
11
|
+
set sortableChildren(sortableChildren: boolean);
|
|
12
|
+
get width(): number;
|
|
13
|
+
set width(value: number);
|
|
14
|
+
get height(): number;
|
|
15
|
+
set height(value: number);
|
|
16
|
+
get left(): number;
|
|
17
|
+
get top(): number;
|
|
18
|
+
get right(): number;
|
|
19
|
+
get bottom(): number;
|
|
20
|
+
addChild(...children: Array<SceneNode>): this;
|
|
21
|
+
addChildAt(child: SceneNode, index: number): this;
|
|
22
|
+
swapChildren(firstChild: SceneNode, secondChild: SceneNode): this;
|
|
23
|
+
getChildIndex(child: SceneNode): number;
|
|
24
|
+
setChildIndex(child: SceneNode, index: number): this;
|
|
25
|
+
getChildAt(index: number): SceneNode;
|
|
26
|
+
removeChild(child: SceneNode): this;
|
|
27
|
+
removeChildAt(index: number): this;
|
|
28
|
+
removeChildren(begin?: number, end?: number): this;
|
|
29
|
+
render(renderManager: SceneRenderRuntime): this;
|
|
30
|
+
contains(x: number, y: number): boolean;
|
|
31
|
+
updateBounds(): this;
|
|
32
|
+
destroy(): void;
|
|
33
|
+
markSortDirty(): this;
|
|
34
|
+
sortChildren(): this;
|
|
35
|
+
private _sortChildrenIfNeeded;
|
|
36
|
+
}
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
import { removeArrayItems } from '../core/utils.js';
|
|
2
|
+
import { RenderNode } from './RenderNode.js';
|
|
3
|
+
|
|
4
|
+
class Container extends RenderNode {
|
|
5
|
+
_children = [];
|
|
6
|
+
_sortableChildren = false;
|
|
7
|
+
_sortDirty = false;
|
|
8
|
+
_nextChildOrder = 0;
|
|
9
|
+
get children() {
|
|
10
|
+
return this._children;
|
|
11
|
+
}
|
|
12
|
+
get sortableChildren() {
|
|
13
|
+
return this._sortableChildren;
|
|
14
|
+
}
|
|
15
|
+
set sortableChildren(sortableChildren) {
|
|
16
|
+
if (this._sortableChildren !== sortableChildren) {
|
|
17
|
+
this._sortableChildren = sortableChildren;
|
|
18
|
+
this._sortDirty = sortableChildren;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
get width() {
|
|
22
|
+
return Math.abs(this.scale.x) * this.bounds.width;
|
|
23
|
+
}
|
|
24
|
+
set width(value) {
|
|
25
|
+
this.scale.x = value / this.bounds.width;
|
|
26
|
+
}
|
|
27
|
+
get height() {
|
|
28
|
+
return Math.abs(this.scale.y) * this.bounds.height;
|
|
29
|
+
}
|
|
30
|
+
set height(value) {
|
|
31
|
+
this.scale.y = value / this.bounds.height;
|
|
32
|
+
}
|
|
33
|
+
get left() {
|
|
34
|
+
return this.x - (this.width * this.origin.x);
|
|
35
|
+
}
|
|
36
|
+
get top() {
|
|
37
|
+
return this.y - (this.height * this.origin.y);
|
|
38
|
+
}
|
|
39
|
+
get right() {
|
|
40
|
+
return (this.x + this.width - this.origin.x);
|
|
41
|
+
}
|
|
42
|
+
get bottom() {
|
|
43
|
+
return (this.y + this.height - this.origin.y);
|
|
44
|
+
}
|
|
45
|
+
addChild(...children) {
|
|
46
|
+
for (const child of children) {
|
|
47
|
+
this.addChildAt(child, this._children.length);
|
|
48
|
+
}
|
|
49
|
+
return this;
|
|
50
|
+
}
|
|
51
|
+
addChildAt(child, index) {
|
|
52
|
+
if (index < 0 || index > this._children.length) {
|
|
53
|
+
throw new Error(`The index ${index} is out of bounds ${this._children.length}`);
|
|
54
|
+
}
|
|
55
|
+
if (child === this) {
|
|
56
|
+
return this;
|
|
57
|
+
}
|
|
58
|
+
if (child.parentNode) {
|
|
59
|
+
child.parentNode.removeChild(child);
|
|
60
|
+
}
|
|
61
|
+
child.parentNode = this;
|
|
62
|
+
child.setChildOrder(this._nextChildOrder++);
|
|
63
|
+
this._children.splice(index, 0, child);
|
|
64
|
+
this.markSortDirty();
|
|
65
|
+
this.invalidateCache();
|
|
66
|
+
return this;
|
|
67
|
+
}
|
|
68
|
+
swapChildren(firstChild, secondChild) {
|
|
69
|
+
if (firstChild !== secondChild) {
|
|
70
|
+
const firstIndex = this.getChildIndex(firstChild);
|
|
71
|
+
const secondIndex = this.getChildIndex(secondChild);
|
|
72
|
+
this._children[firstIndex] = secondChild;
|
|
73
|
+
this._children[secondIndex] = firstChild;
|
|
74
|
+
this.markSortDirty();
|
|
75
|
+
this.invalidateCache();
|
|
76
|
+
}
|
|
77
|
+
return this;
|
|
78
|
+
}
|
|
79
|
+
getChildIndex(child) {
|
|
80
|
+
const index = this._children.indexOf(child);
|
|
81
|
+
if (index === -1) {
|
|
82
|
+
throw new Error('Drawable is not a child of the container.');
|
|
83
|
+
}
|
|
84
|
+
return index;
|
|
85
|
+
}
|
|
86
|
+
setChildIndex(child, index) {
|
|
87
|
+
if (index < 0 || index >= this._children.length) {
|
|
88
|
+
throw new Error(`The index ${index} is out of bounds ${this._children.length}`);
|
|
89
|
+
}
|
|
90
|
+
removeArrayItems(this._children, this.getChildIndex(child), 1);
|
|
91
|
+
this._children.splice(index, 0, child);
|
|
92
|
+
this.markSortDirty();
|
|
93
|
+
this.invalidateCache();
|
|
94
|
+
return this;
|
|
95
|
+
}
|
|
96
|
+
getChildAt(index) {
|
|
97
|
+
if (index < 0 || index >= this._children.length) {
|
|
98
|
+
throw new Error(`getChildAt: Index (${index}) does not exist.`);
|
|
99
|
+
}
|
|
100
|
+
return this._children[index];
|
|
101
|
+
}
|
|
102
|
+
removeChild(child) {
|
|
103
|
+
const index = this._children.indexOf(child);
|
|
104
|
+
if (index !== -1) {
|
|
105
|
+
this.removeChildAt(index);
|
|
106
|
+
}
|
|
107
|
+
return this;
|
|
108
|
+
}
|
|
109
|
+
removeChildAt(index) {
|
|
110
|
+
const child = this._children[index];
|
|
111
|
+
removeArrayItems(this._children, index, 1);
|
|
112
|
+
if (child && child.parentNode === this) {
|
|
113
|
+
child.parentNode = null;
|
|
114
|
+
}
|
|
115
|
+
this.markSortDirty();
|
|
116
|
+
this.invalidateCache();
|
|
117
|
+
return this;
|
|
118
|
+
}
|
|
119
|
+
removeChildren(begin = 0, end = this._children.length) {
|
|
120
|
+
const range = (end - begin);
|
|
121
|
+
if (range < 0 || range > end) {
|
|
122
|
+
throw new Error('Values are outside the acceptable range.');
|
|
123
|
+
}
|
|
124
|
+
for (let i = begin; i < end; i++) {
|
|
125
|
+
const child = this._children[i];
|
|
126
|
+
if (child && child.parentNode === this) {
|
|
127
|
+
child.parentNode = null;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
removeArrayItems(this._children, begin, range);
|
|
131
|
+
this.markSortDirty();
|
|
132
|
+
this.invalidateCache();
|
|
133
|
+
return this;
|
|
134
|
+
}
|
|
135
|
+
render(renderManager) {
|
|
136
|
+
if (!this.visible || this._children.length === 0) {
|
|
137
|
+
return this;
|
|
138
|
+
}
|
|
139
|
+
if (!this.inView(renderManager.view)) {
|
|
140
|
+
renderManager.stats.culledNodes++;
|
|
141
|
+
return this;
|
|
142
|
+
}
|
|
143
|
+
this.renderVisualContent(renderManager, () => {
|
|
144
|
+
this._sortChildrenIfNeeded();
|
|
145
|
+
for (const child of this._children) {
|
|
146
|
+
child.render(renderManager);
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
return this;
|
|
150
|
+
}
|
|
151
|
+
contains(x, y) {
|
|
152
|
+
return this._children.some((child) => child.contains(x, y));
|
|
153
|
+
}
|
|
154
|
+
updateBounds() {
|
|
155
|
+
this._bounds.reset()
|
|
156
|
+
.addRect(this.getLocalBounds(), this.getGlobalTransform());
|
|
157
|
+
for (const child of this._children) {
|
|
158
|
+
if (child.visible) {
|
|
159
|
+
this._bounds.addRect(child.getBounds());
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
return this;
|
|
163
|
+
}
|
|
164
|
+
destroy() {
|
|
165
|
+
this.removeChildren();
|
|
166
|
+
super.destroy();
|
|
167
|
+
}
|
|
168
|
+
markSortDirty() {
|
|
169
|
+
if (this._sortableChildren) {
|
|
170
|
+
this._sortDirty = true;
|
|
171
|
+
}
|
|
172
|
+
return this;
|
|
173
|
+
}
|
|
174
|
+
sortChildren() {
|
|
175
|
+
if (!this._sortableChildren || !this._sortDirty || this._children.length <= 1) {
|
|
176
|
+
this._sortDirty = false;
|
|
177
|
+
return this;
|
|
178
|
+
}
|
|
179
|
+
this._children.sort((left, right) => {
|
|
180
|
+
if (left.zIndex === right.zIndex) {
|
|
181
|
+
return left.childOrder - right.childOrder;
|
|
182
|
+
}
|
|
183
|
+
return left.zIndex - right.zIndex;
|
|
184
|
+
});
|
|
185
|
+
this._sortDirty = false;
|
|
186
|
+
this.invalidateCache();
|
|
187
|
+
return this;
|
|
188
|
+
}
|
|
189
|
+
_sortChildrenIfNeeded() {
|
|
190
|
+
if (this._sortableChildren && this._sortDirty) {
|
|
191
|
+
this.sortChildren();
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
export { Container };
|
|
197
|
+
//# sourceMappingURL=Container.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Container.js","sources":["../../../../src/rendering/Container.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Color } from '@/core/Color';
|
|
2
|
+
import { BlendModes } from '@/rendering/types';
|
|
3
|
+
import type { SceneRenderRuntime } from './SceneRenderRuntime';
|
|
4
|
+
import { RenderNode } from './RenderNode';
|
|
5
|
+
export declare class Drawable extends RenderNode {
|
|
6
|
+
private _tint;
|
|
7
|
+
private _blendMode;
|
|
8
|
+
get tint(): Color;
|
|
9
|
+
set tint(tint: Color);
|
|
10
|
+
get blendMode(): BlendModes;
|
|
11
|
+
set blendMode(blendMode: BlendModes);
|
|
12
|
+
setTint(color: Color): this;
|
|
13
|
+
setBlendMode(blendMode: BlendModes): this;
|
|
14
|
+
render(renderManager: SceneRenderRuntime): this;
|
|
15
|
+
destroy(): void;
|
|
16
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { Color } from '../core/Color.js';
|
|
2
|
+
import { BlendModes } from './types.js';
|
|
3
|
+
import { RenderNode } from './RenderNode.js';
|
|
4
|
+
|
|
5
|
+
class Drawable extends RenderNode {
|
|
6
|
+
_tint = Color.white.clone();
|
|
7
|
+
_blendMode = BlendModes.Normal;
|
|
8
|
+
get tint() {
|
|
9
|
+
return this._tint;
|
|
10
|
+
}
|
|
11
|
+
set tint(tint) {
|
|
12
|
+
this.setTint(tint);
|
|
13
|
+
}
|
|
14
|
+
get blendMode() {
|
|
15
|
+
return this._blendMode;
|
|
16
|
+
}
|
|
17
|
+
set blendMode(blendMode) {
|
|
18
|
+
this.setBlendMode(blendMode);
|
|
19
|
+
}
|
|
20
|
+
setTint(color) {
|
|
21
|
+
if (color) {
|
|
22
|
+
this._tint.copy(color);
|
|
23
|
+
this.invalidateCache();
|
|
24
|
+
}
|
|
25
|
+
return this;
|
|
26
|
+
}
|
|
27
|
+
setBlendMode(blendMode) {
|
|
28
|
+
if (this._blendMode !== blendMode) {
|
|
29
|
+
this._blendMode = blendMode;
|
|
30
|
+
this.invalidateCache();
|
|
31
|
+
}
|
|
32
|
+
return this;
|
|
33
|
+
}
|
|
34
|
+
render(renderManager) {
|
|
35
|
+
if (!this.visible) {
|
|
36
|
+
return this;
|
|
37
|
+
}
|
|
38
|
+
if (!this.inView(renderManager.view)) {
|
|
39
|
+
renderManager.stats.culledNodes++;
|
|
40
|
+
return this;
|
|
41
|
+
}
|
|
42
|
+
this.renderVisualContent(renderManager, () => {
|
|
43
|
+
renderManager.draw(this);
|
|
44
|
+
}, this._blendMode);
|
|
45
|
+
return this;
|
|
46
|
+
}
|
|
47
|
+
destroy() {
|
|
48
|
+
super.destroy();
|
|
49
|
+
this._tint.destroy();
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export { Drawable };
|
|
54
|
+
//# sourceMappingURL=Drawable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Drawable.js","sources":["../../../../src/rendering/Drawable.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAKM,MAAO,QAAS,SAAQ,UAAU,CAAA;AAE5B,IAAA,KAAK,GAAU,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE;AAClC,IAAA,UAAU,GAAe,UAAU,CAAC,MAAM;AAElD,IAAA,IAAW,IAAI,GAAA;QACX,OAAO,IAAI,CAAC,KAAK;IACrB;IAEA,IAAW,IAAI,CAAC,IAAW,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IACtB;AAEA,IAAA,IAAW,SAAS,GAAA;QAChB,OAAO,IAAI,CAAC,UAAU;IAC1B;IAEA,IAAW,SAAS,CAAC,SAAqB,EAAA;AACtC,QAAA,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;IAChC;AAEO,IAAA,OAAO,CAAC,KAAY,EAAA;QACvB,IAAI,KAAK,EAAE;AACP,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;YACtB,IAAI,CAAC,eAAe,EAAE;QAC1B;AAEA,QAAA,OAAO,IAAI;IACf;AAEO,IAAA,YAAY,CAAC,SAAqB,EAAA;AACrC,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE;AAC/B,YAAA,IAAI,CAAC,UAAU,GAAG,SAAS;YAC3B,IAAI,CAAC,eAAe,EAAE;QAC1B;AAEA,QAAA,OAAO,IAAI;IACf;AAEgB,IAAA,MAAM,CAAC,aAAiC,EAAA;AACpD,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACf,YAAA,OAAO,IAAI;QACf;QAEA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE;AAClC,YAAA,aAAa,CAAC,KAAK,CAAC,WAAW,EAAE;AAEjC,YAAA,OAAO,IAAI;QACf;AAEA,QAAA,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE,MAAK;AACzC,YAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;AAC5B,QAAA,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC;AAEnB,QAAA,OAAO,IAAI;IACf;IAEgB,OAAO,GAAA;QACnB,KAAK,CAAC,OAAO,EAAE;AAEf,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;IACxB;AACH;;;;"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
var RenderBackendType;
|
|
2
|
+
(function (RenderBackendType) {
|
|
3
|
+
RenderBackendType[RenderBackendType["WebGl2"] = 0] = "WebGl2";
|
|
4
|
+
RenderBackendType[RenderBackendType["WebGpu"] = 1] = "WebGpu";
|
|
5
|
+
})(RenderBackendType || (RenderBackendType = {}));
|
|
6
|
+
|
|
7
|
+
export { RenderBackendType };
|
|
8
|
+
//# sourceMappingURL=RenderBackendType.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RenderBackendType.js","sources":["../../../../src/rendering/RenderBackendType.ts"],"sourcesContent":[null],"names":[],"mappings":"IAAY;AAAZ,CAAA,UAAY,iBAAiB,EAAA;AACzB,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM;AACN,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM;AACV,CAAC,EAHW,iBAAiB,KAAjB,iBAAiB,GAAA,EAAA,CAAA,CAAA;;;;"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { SceneNode } from '@/core/SceneNode';
|
|
2
|
+
import { Color } from '@/core/Color';
|
|
3
|
+
import { BlendModes } from '@/rendering/types';
|
|
4
|
+
import { RenderTexture } from '@/rendering/texture/RenderTexture';
|
|
5
|
+
import type { SceneRenderRuntime } from '@/rendering/SceneRenderRuntime';
|
|
6
|
+
import type { Filter } from '@/rendering/filters/Filter';
|
|
7
|
+
interface RenderNodeSpriteLike {
|
|
8
|
+
width: number;
|
|
9
|
+
height: number;
|
|
10
|
+
setTexture(texture: RenderTexture | null): this;
|
|
11
|
+
setBlendMode(blendMode: BlendModes): this;
|
|
12
|
+
setTint(color: Color): this;
|
|
13
|
+
setPosition(x: number, y: number): this;
|
|
14
|
+
setRotation(rotation: number): this;
|
|
15
|
+
setScale(x: number, y?: number): this;
|
|
16
|
+
render(runtime: SceneRenderRuntime): this;
|
|
17
|
+
destroy(): void;
|
|
18
|
+
}
|
|
19
|
+
export declare abstract class RenderNode extends SceneNode {
|
|
20
|
+
private static _spriteFactory;
|
|
21
|
+
private readonly _filters;
|
|
22
|
+
private readonly _cacheBounds;
|
|
23
|
+
private _cacheSprite;
|
|
24
|
+
private _captureView;
|
|
25
|
+
private _mask;
|
|
26
|
+
private _cacheAsBitmap;
|
|
27
|
+
private _cacheDirty;
|
|
28
|
+
private _cacheTexture;
|
|
29
|
+
get filters(): Array<Filter>;
|
|
30
|
+
set filters(filters: ReadonlyArray<Filter>);
|
|
31
|
+
get mask(): SceneNode | null;
|
|
32
|
+
set mask(mask: SceneNode | null);
|
|
33
|
+
get cacheAsBitmap(): boolean;
|
|
34
|
+
set cacheAsBitmap(cacheAsBitmap: boolean);
|
|
35
|
+
setFilters(filters: ReadonlyArray<Filter>): this;
|
|
36
|
+
addFilter(filter: Filter): this;
|
|
37
|
+
removeFilter(filter: Filter): this;
|
|
38
|
+
static setInternalSpriteFactory(factory: (() => RenderNodeSpriteLike) | null): void;
|
|
39
|
+
clearFilters(): this;
|
|
40
|
+
setCacheAsBitmap(cacheAsBitmap: boolean): this;
|
|
41
|
+
invalidateCache(): this;
|
|
42
|
+
protected renderVisualContent(runtime: SceneRenderRuntime, renderContent: () => void, blendMode?: BlendModes): void;
|
|
43
|
+
destroy(): void;
|
|
44
|
+
private _withMask;
|
|
45
|
+
private _renderContentToTexture;
|
|
46
|
+
private _drawTexture;
|
|
47
|
+
private _ensureCacheTexture;
|
|
48
|
+
private _destroyCacheTexture;
|
|
49
|
+
private _getCacheSprite;
|
|
50
|
+
}
|
|
51
|
+
export {};
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
import { SceneNode } from '../core/SceneNode.js';
|
|
2
|
+
import { Color } from '../core/Color.js';
|
|
3
|
+
import { Rectangle } from '../math/Rectangle.js';
|
|
4
|
+
import { BlendModes } from './types.js';
|
|
5
|
+
import { View } from './View.js';
|
|
6
|
+
import { RenderTexture } from './texture/RenderTexture.js';
|
|
7
|
+
import { RenderTargetPass } from './RenderTargetPass.js';
|
|
8
|
+
|
|
9
|
+
const isDestroyableFilter = (filter) => ('destroy' in filter && typeof filter.destroy === 'function');
|
|
10
|
+
class RenderNode extends SceneNode {
|
|
11
|
+
static _spriteFactory = null;
|
|
12
|
+
_filters = [];
|
|
13
|
+
_cacheBounds = new Rectangle();
|
|
14
|
+
_cacheSprite = null;
|
|
15
|
+
_captureView = null;
|
|
16
|
+
_mask = null;
|
|
17
|
+
_cacheAsBitmap = false;
|
|
18
|
+
_cacheDirty = true;
|
|
19
|
+
_cacheTexture = null;
|
|
20
|
+
get filters() {
|
|
21
|
+
return this._filters;
|
|
22
|
+
}
|
|
23
|
+
set filters(filters) {
|
|
24
|
+
this.setFilters(filters);
|
|
25
|
+
}
|
|
26
|
+
get mask() {
|
|
27
|
+
return this._mask;
|
|
28
|
+
}
|
|
29
|
+
set mask(mask) {
|
|
30
|
+
if (this._mask !== mask) {
|
|
31
|
+
this._mask = mask;
|
|
32
|
+
this.invalidateCache();
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
get cacheAsBitmap() {
|
|
36
|
+
return this._cacheAsBitmap;
|
|
37
|
+
}
|
|
38
|
+
set cacheAsBitmap(cacheAsBitmap) {
|
|
39
|
+
this.setCacheAsBitmap(cacheAsBitmap);
|
|
40
|
+
}
|
|
41
|
+
setFilters(filters) {
|
|
42
|
+
this._filters.length = 0;
|
|
43
|
+
this._filters.push(...filters);
|
|
44
|
+
return this.invalidateCache();
|
|
45
|
+
}
|
|
46
|
+
addFilter(filter) {
|
|
47
|
+
this._filters.push(filter);
|
|
48
|
+
return this.invalidateCache();
|
|
49
|
+
}
|
|
50
|
+
removeFilter(filter) {
|
|
51
|
+
const index = this._filters.indexOf(filter);
|
|
52
|
+
if (index !== -1) {
|
|
53
|
+
this._filters.splice(index, 1);
|
|
54
|
+
this.invalidateCache();
|
|
55
|
+
}
|
|
56
|
+
return this;
|
|
57
|
+
}
|
|
58
|
+
static setInternalSpriteFactory(factory) {
|
|
59
|
+
RenderNode._spriteFactory = factory;
|
|
60
|
+
}
|
|
61
|
+
clearFilters() {
|
|
62
|
+
if (this._filters.length > 0) {
|
|
63
|
+
this._filters.length = 0;
|
|
64
|
+
this.invalidateCache();
|
|
65
|
+
}
|
|
66
|
+
return this;
|
|
67
|
+
}
|
|
68
|
+
setCacheAsBitmap(cacheAsBitmap) {
|
|
69
|
+
if (this._cacheAsBitmap !== cacheAsBitmap) {
|
|
70
|
+
this._cacheAsBitmap = cacheAsBitmap;
|
|
71
|
+
this.invalidateCache();
|
|
72
|
+
if (!cacheAsBitmap) {
|
|
73
|
+
this._destroyCacheTexture();
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return this;
|
|
77
|
+
}
|
|
78
|
+
invalidateCache() {
|
|
79
|
+
this._cacheDirty = true;
|
|
80
|
+
return this;
|
|
81
|
+
}
|
|
82
|
+
renderVisualContent(runtime, renderContent, blendMode = BlendModes.Normal) {
|
|
83
|
+
const hasFilters = this._filters.length > 0;
|
|
84
|
+
const needsBitmapCache = this._cacheAsBitmap;
|
|
85
|
+
if (!hasFilters && !needsBitmapCache) {
|
|
86
|
+
this._withMask(runtime, renderContent);
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
const rawBounds = this.getBounds();
|
|
90
|
+
if (rawBounds.width <= 0 || rawBounds.height <= 0) {
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
const left = Math.floor(rawBounds.left);
|
|
94
|
+
const top = Math.floor(rawBounds.top);
|
|
95
|
+
const width = Math.max(1, Math.ceil(rawBounds.width));
|
|
96
|
+
const height = Math.max(1, Math.ceil(rawBounds.height));
|
|
97
|
+
const cacheBoundsChanged = !this._cacheBounds.equals({ x: left, y: top, width, height });
|
|
98
|
+
const shouldRefreshCache = needsBitmapCache && (this._cacheDirty
|
|
99
|
+
|| this._cacheTexture === null
|
|
100
|
+
|| cacheBoundsChanged);
|
|
101
|
+
if (needsBitmapCache && !shouldRefreshCache && this._cacheTexture !== null) {
|
|
102
|
+
this._withMask(runtime, () => {
|
|
103
|
+
this._drawTexture(runtime, this._cacheTexture, left, top, width, height, blendMode);
|
|
104
|
+
});
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
const temporaryTextures = [];
|
|
108
|
+
const cacheTexture = needsBitmapCache ? this._ensureCacheTexture(width, height) : null;
|
|
109
|
+
try {
|
|
110
|
+
const sourceTexture = (needsBitmapCache && !hasFilters)
|
|
111
|
+
? cacheTexture
|
|
112
|
+
: runtime.acquireRenderTexture(width, height);
|
|
113
|
+
if (sourceTexture !== cacheTexture) {
|
|
114
|
+
temporaryTextures.push(sourceTexture);
|
|
115
|
+
}
|
|
116
|
+
this._renderContentToTexture(runtime, sourceTexture, left, top, width, height, renderContent);
|
|
117
|
+
let finalTexture = sourceTexture;
|
|
118
|
+
if (hasFilters) {
|
|
119
|
+
for (let index = 0; index < this._filters.length; index++) {
|
|
120
|
+
const isLast = index === this._filters.length - 1;
|
|
121
|
+
const output = (isLast && needsBitmapCache)
|
|
122
|
+
? cacheTexture
|
|
123
|
+
: runtime.acquireRenderTexture(width, height);
|
|
124
|
+
if (output !== cacheTexture) {
|
|
125
|
+
temporaryTextures.push(output);
|
|
126
|
+
}
|
|
127
|
+
this._filters[index].apply(runtime, finalTexture, output);
|
|
128
|
+
finalTexture = output;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
if (needsBitmapCache) {
|
|
132
|
+
this._cacheTexture = cacheTexture;
|
|
133
|
+
this._cacheBounds.set(left, top, width, height);
|
|
134
|
+
this._cacheDirty = false;
|
|
135
|
+
}
|
|
136
|
+
this._withMask(runtime, () => {
|
|
137
|
+
this._drawTexture(runtime, finalTexture, left, top, width, height, blendMode);
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
finally {
|
|
141
|
+
for (const texture of temporaryTextures) {
|
|
142
|
+
runtime.releaseRenderTexture(texture);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
destroy() {
|
|
147
|
+
super.destroy();
|
|
148
|
+
this._destroyCacheTexture();
|
|
149
|
+
this._cacheBounds.destroy();
|
|
150
|
+
this._cacheSprite?.destroy();
|
|
151
|
+
this._cacheSprite = null;
|
|
152
|
+
this._captureView?.destroy();
|
|
153
|
+
this._captureView = null;
|
|
154
|
+
for (const filter of this._filters) {
|
|
155
|
+
if (isDestroyableFilter(filter)) {
|
|
156
|
+
filter.destroy();
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
this._filters.length = 0;
|
|
160
|
+
this._mask = null;
|
|
161
|
+
}
|
|
162
|
+
_withMask(runtime, callback) {
|
|
163
|
+
if (this._mask === null) {
|
|
164
|
+
callback();
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
const maskBounds = this._mask.getBounds();
|
|
168
|
+
if (maskBounds.width <= 0 || maskBounds.height <= 0) {
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
runtime.pushMask(maskBounds);
|
|
172
|
+
try {
|
|
173
|
+
callback();
|
|
174
|
+
}
|
|
175
|
+
finally {
|
|
176
|
+
runtime.popMask();
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
_renderContentToTexture(runtime, target, left, top, width, height, renderContent) {
|
|
180
|
+
if (this._captureView === null) {
|
|
181
|
+
this._captureView = new View(left + (width / 2), top + (height / 2), width, height);
|
|
182
|
+
}
|
|
183
|
+
else {
|
|
184
|
+
this._captureView.reset(left + (width / 2), top + (height / 2), width, height);
|
|
185
|
+
}
|
|
186
|
+
runtime.execute(new RenderTargetPass(() => {
|
|
187
|
+
renderContent();
|
|
188
|
+
}, {
|
|
189
|
+
target,
|
|
190
|
+
view: this._captureView,
|
|
191
|
+
clearColor: Color.transparentBlack,
|
|
192
|
+
}));
|
|
193
|
+
}
|
|
194
|
+
_drawTexture(runtime, texture, x, y, width, height, blendMode) {
|
|
195
|
+
const sprite = this._getCacheSprite();
|
|
196
|
+
sprite
|
|
197
|
+
.setTexture(texture)
|
|
198
|
+
.setBlendMode(blendMode)
|
|
199
|
+
.setTint(Color.white)
|
|
200
|
+
.setPosition(x, y)
|
|
201
|
+
.setRotation(0)
|
|
202
|
+
.setScale(1, 1);
|
|
203
|
+
sprite.width = width;
|
|
204
|
+
sprite.height = height;
|
|
205
|
+
sprite.render(runtime);
|
|
206
|
+
}
|
|
207
|
+
_ensureCacheTexture(width, height) {
|
|
208
|
+
if (this._cacheTexture === null) {
|
|
209
|
+
this._cacheTexture = new RenderTexture(width, height);
|
|
210
|
+
}
|
|
211
|
+
else if (this._cacheTexture.width !== width || this._cacheTexture.height !== height) {
|
|
212
|
+
this._cacheTexture.setSize(width, height);
|
|
213
|
+
}
|
|
214
|
+
return this._cacheTexture;
|
|
215
|
+
}
|
|
216
|
+
_destroyCacheTexture() {
|
|
217
|
+
if (this._cacheTexture !== null) {
|
|
218
|
+
this._cacheTexture.destroy();
|
|
219
|
+
this._cacheTexture = null;
|
|
220
|
+
}
|
|
221
|
+
this._cacheDirty = true;
|
|
222
|
+
}
|
|
223
|
+
_getCacheSprite() {
|
|
224
|
+
if (this._cacheSprite === null) {
|
|
225
|
+
if (RenderNode._spriteFactory === null) {
|
|
226
|
+
throw new Error('RenderNode sprite factory is not initialized.');
|
|
227
|
+
}
|
|
228
|
+
this._cacheSprite = RenderNode._spriteFactory();
|
|
229
|
+
}
|
|
230
|
+
return this._cacheSprite;
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
export { RenderNode };
|
|
235
|
+
//# sourceMappingURL=RenderNode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RenderNode.js","sources":["../../../../src/rendering/RenderNode.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface RenderStats {
|
|
2
|
+
frame: number;
|
|
3
|
+
submittedNodes: number;
|
|
4
|
+
culledNodes: number;
|
|
5
|
+
drawCalls: number;
|
|
6
|
+
batches: number;
|
|
7
|
+
renderPasses: number;
|
|
8
|
+
renderTargetChanges: number;
|
|
9
|
+
frameTimeMs: number;
|
|
10
|
+
}
|
|
11
|
+
export declare const createRenderStats: () => RenderStats;
|
|
12
|
+
export declare const resetRenderStats: (stats: RenderStats) => RenderStats;
|