@lightningtv/renderer 2.16.1
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/LICENSE +202 -0
- package/NOTICE +3 -0
- package/README.md +147 -0
- package/dist/exports/canvas-shaders.d.ts +10 -0
- package/dist/exports/canvas-shaders.js +27 -0
- package/dist/exports/canvas-shaders.js.map +1 -0
- package/dist/exports/canvas.d.ts +20 -0
- package/dist/exports/canvas.js +39 -0
- package/dist/exports/canvas.js.map +1 -0
- package/dist/exports/index.d.ts +45 -0
- package/dist/exports/index.js +58 -0
- package/dist/exports/index.js.map +1 -0
- package/dist/exports/inspector.d.ts +4 -0
- package/dist/exports/inspector.js +23 -0
- package/dist/exports/inspector.js.map +1 -0
- package/dist/exports/utils.d.ts +26 -0
- package/dist/exports/utils.js +45 -0
- package/dist/exports/utils.js.map +1 -0
- package/dist/exports/webgl-shaders.d.ts +11 -0
- package/dist/exports/webgl-shaders.js +28 -0
- package/dist/exports/webgl-shaders.js.map +1 -0
- package/dist/exports/webgl.d.ts +19 -0
- package/dist/exports/webgl.js +38 -0
- package/dist/exports/webgl.js.map +1 -0
- package/dist/src/common/CommonTypes.d.ts +97 -0
- package/dist/src/common/CommonTypes.js +20 -0
- package/dist/src/common/CommonTypes.js.map +1 -0
- package/dist/src/common/EventEmitter.d.ts +12 -0
- package/dist/src/common/EventEmitter.js +66 -0
- package/dist/src/common/EventEmitter.js.map +1 -0
- package/dist/src/common/IAnimationController.d.ts +66 -0
- package/dist/src/common/IAnimationController.js +2 -0
- package/dist/src/common/IAnimationController.js.map +1 -0
- package/dist/src/common/IEventEmitter.d.ts +8 -0
- package/dist/src/common/IEventEmitter.js +18 -0
- package/dist/src/common/IEventEmitter.js.map +1 -0
- package/dist/src/core/CoreNode.d.ts +865 -0
- package/dist/src/core/CoreNode.js +1532 -0
- package/dist/src/core/CoreNode.js.map +1 -0
- package/dist/src/core/CoreShaderManager.d.ts +82 -0
- package/dist/src/core/CoreShaderManager.js +128 -0
- package/dist/src/core/CoreShaderManager.js.map +1 -0
- package/dist/src/core/CoreTextNode.d.ts +103 -0
- package/dist/src/core/CoreTextNode.js +331 -0
- package/dist/src/core/CoreTextNode.js.map +1 -0
- package/dist/src/core/CoreTextureManager.d.ts +249 -0
- package/dist/src/core/CoreTextureManager.js +362 -0
- package/dist/src/core/CoreTextureManager.js.map +1 -0
- package/dist/src/core/Stage.d.ts +210 -0
- package/dist/src/core/Stage.js +636 -0
- package/dist/src/core/Stage.js.map +1 -0
- package/dist/src/core/TextureMemoryManager.d.ts +149 -0
- package/dist/src/core/TextureMemoryManager.js +271 -0
- package/dist/src/core/TextureMemoryManager.js.map +1 -0
- package/dist/src/core/animations/AnimationManager.d.ts +7 -0
- package/dist/src/core/animations/AnimationManager.js +34 -0
- package/dist/src/core/animations/AnimationManager.js.map +1 -0
- package/dist/src/core/animations/CoreAnimation.d.ts +38 -0
- package/dist/src/core/animations/CoreAnimation.js +261 -0
- package/dist/src/core/animations/CoreAnimation.js.map +1 -0
- package/dist/src/core/animations/CoreAnimationController.d.ts +27 -0
- package/dist/src/core/animations/CoreAnimationController.js +133 -0
- package/dist/src/core/animations/CoreAnimationController.js.map +1 -0
- package/dist/src/core/animations/SimpleAnimation.d.ts +28 -0
- package/dist/src/core/animations/SimpleAnimation.js +96 -0
- package/dist/src/core/animations/SimpleAnimation.js.map +1 -0
- package/dist/src/core/lib/ContextSpy.d.ts +12 -0
- package/dist/src/core/lib/ContextSpy.js +38 -0
- package/dist/src/core/lib/ContextSpy.js.map +1 -0
- package/dist/src/core/lib/ImageWorker.d.ts +16 -0
- package/dist/src/core/lib/ImageWorker.js +201 -0
- package/dist/src/core/lib/ImageWorker.js.map +1 -0
- package/dist/src/core/lib/Matrix3d.d.ts +73 -0
- package/dist/src/core/lib/Matrix3d.js +230 -0
- package/dist/src/core/lib/Matrix3d.js.map +1 -0
- package/dist/src/core/lib/RenderCoords.d.ts +13 -0
- package/dist/src/core/lib/RenderCoords.js +63 -0
- package/dist/src/core/lib/RenderCoords.js.map +1 -0
- package/dist/src/core/lib/WebGlContextWrapper.d.ts +694 -0
- package/dist/src/core/lib/WebGlContextWrapper.js +1049 -0
- package/dist/src/core/lib/WebGlContextWrapper.js.map +1 -0
- package/dist/src/core/lib/textureCompression.d.ts +16 -0
- package/dist/src/core/lib/textureCompression.js +129 -0
- package/dist/src/core/lib/textureCompression.js.map +1 -0
- package/dist/src/core/lib/textureSvg.d.ts +16 -0
- package/dist/src/core/lib/textureSvg.js +63 -0
- package/dist/src/core/lib/textureSvg.js.map +1 -0
- package/dist/src/core/lib/utils.d.ts +60 -0
- package/dist/src/core/lib/utils.js +267 -0
- package/dist/src/core/lib/utils.js.map +1 -0
- package/dist/src/core/lib/validateImageBitmap.d.ts +6 -0
- package/dist/src/core/lib/validateImageBitmap.js +68 -0
- package/dist/src/core/lib/validateImageBitmap.js.map +1 -0
- package/dist/src/core/platform.d.ts +10 -0
- package/dist/src/core/platform.js +81 -0
- package/dist/src/core/platform.js.map +1 -0
- package/dist/src/core/platforms/Platform.d.ts +37 -0
- package/dist/src/core/platforms/Platform.js +22 -0
- package/dist/src/core/platforms/Platform.js.map +1 -0
- package/dist/src/core/platforms/web/WebPlatform.d.ts +9 -0
- package/dist/src/core/platforms/web/WebPlatform.js +58 -0
- package/dist/src/core/platforms/web/WebPlatform.js.map +1 -0
- package/dist/src/core/renderers/CoreContextTexture.d.ts +12 -0
- package/dist/src/core/renderers/CoreContextTexture.js +34 -0
- package/dist/src/core/renderers/CoreContextTexture.js.map +1 -0
- package/dist/src/core/renderers/CoreRenderOp.d.ts +3 -0
- package/dist/src/core/renderers/CoreRenderOp.js +21 -0
- package/dist/src/core/renderers/CoreRenderOp.js.map +1 -0
- package/dist/src/core/renderers/CoreRenderer.d.ts +78 -0
- package/dist/src/core/renderers/CoreRenderer.js +37 -0
- package/dist/src/core/renderers/CoreRenderer.js.map +1 -0
- package/dist/src/core/renderers/CoreShader.d.ts +9 -0
- package/dist/src/core/renderers/CoreShader.js +28 -0
- package/dist/src/core/renderers/CoreShader.js.map +1 -0
- package/dist/src/core/renderers/CoreShaderNode.d.ts +59 -0
- package/dist/src/core/renderers/CoreShaderNode.js +113 -0
- package/dist/src/core/renderers/CoreShaderNode.js.map +1 -0
- package/dist/src/core/renderers/CoreShaderProgram.d.ts +4 -0
- package/dist/src/core/renderers/CoreShaderProgram.js +20 -0
- package/dist/src/core/renderers/CoreShaderProgram.js.map +1 -0
- package/dist/src/core/renderers/canvas/CanvasCoreRenderer.d.ts +33 -0
- package/dist/src/core/renderers/canvas/CanvasCoreRenderer.js +250 -0
- package/dist/src/core/renderers/canvas/CanvasCoreRenderer.js.map +1 -0
- package/dist/src/core/renderers/canvas/CanvasCoreTexture.d.ts +16 -0
- package/dist/src/core/renderers/canvas/CanvasCoreTexture.js +124 -0
- package/dist/src/core/renderers/canvas/CanvasCoreTexture.js.map +1 -0
- package/dist/src/core/renderers/canvas/CanvasRenderer.d.ts +37 -0
- package/dist/src/core/renderers/canvas/CanvasRenderer.js +215 -0
- package/dist/src/core/renderers/canvas/CanvasRenderer.js.map +1 -0
- package/dist/src/core/renderers/canvas/CanvasShaderNode.d.ts +21 -0
- package/dist/src/core/renderers/canvas/CanvasShaderNode.js +57 -0
- package/dist/src/core/renderers/canvas/CanvasShaderNode.js.map +1 -0
- package/dist/src/core/renderers/canvas/CanvasTexture.d.ts +16 -0
- package/dist/src/core/renderers/canvas/CanvasTexture.js +124 -0
- package/dist/src/core/renderers/canvas/CanvasTexture.js.map +1 -0
- package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.d.ts +14 -0
- package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js +138 -0
- package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js.map +1 -0
- package/dist/src/core/renderers/canvas/internal/ColorUtils.d.ts +19 -0
- package/dist/src/core/renderers/canvas/internal/ColorUtils.js +58 -0
- package/dist/src/core/renderers/canvas/internal/ColorUtils.js.map +1 -0
- package/dist/src/core/renderers/canvas/shaders/UnsupportedShader.d.ts +10 -0
- package/dist/src/core/renderers/canvas/shaders/UnsupportedShader.js +43 -0
- package/dist/src/core/renderers/canvas/shaders/UnsupportedShader.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.d.ts +12 -0
- package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js +58 -0
- package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.d.ts +9 -0
- package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.js +38 -0
- package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.d.ts +56 -0
- package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js +239 -0
- package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.d.ts +34 -0
- package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js +114 -0
- package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlCoreRenderer.d.ts +133 -0
- package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js +616 -0
- package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlCoreShader.d.ts +83 -0
- package/dist/src/core/renderers/webgl/WebGlCoreShader.js +233 -0
- package/dist/src/core/renderers/webgl/WebGlCoreShader.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.d.ts +12 -0
- package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js +55 -0
- package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.d.ts +9 -0
- package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.js +38 -0
- package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlCtxTexture.d.ts +57 -0
- package/dist/src/core/renderers/webgl/WebGlCtxTexture.js +224 -0
- package/dist/src/core/renderers/webgl/WebGlCtxTexture.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlRenderOp.d.ts +44 -0
- package/dist/src/core/renderers/webgl/WebGlRenderOp.js +118 -0
- package/dist/src/core/renderers/webgl/WebGlRenderOp.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlRenderer.d.ts +136 -0
- package/dist/src/core/renderers/webgl/WebGlRenderer.js +573 -0
- package/dist/src/core/renderers/webgl/WebGlRenderer.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlShaderNode.d.ts +222 -0
- package/dist/src/core/renderers/webgl/WebGlShaderNode.js +331 -0
- package/dist/src/core/renderers/webgl/WebGlShaderNode.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlShaderProgram.d.ts +37 -0
- package/dist/src/core/renderers/webgl/WebGlShaderProgram.js +219 -0
- package/dist/src/core/renderers/webgl/WebGlShaderProgram.js.map +1 -0
- package/dist/src/core/renderers/webgl/internal/BufferCollection.d.ts +27 -0
- package/dist/src/core/renderers/webgl/internal/BufferCollection.js +48 -0
- package/dist/src/core/renderers/webgl/internal/BufferCollection.js.map +1 -0
- package/dist/src/core/renderers/webgl/internal/RendererUtils.d.ts +55 -0
- package/dist/src/core/renderers/webgl/internal/RendererUtils.js +106 -0
- package/dist/src/core/renderers/webgl/internal/RendererUtils.js.map +1 -0
- package/dist/src/core/renderers/webgl/internal/ShaderUtils.d.ts +47 -0
- package/dist/src/core/renderers/webgl/internal/ShaderUtils.js +51 -0
- package/dist/src/core/renderers/webgl/internal/ShaderUtils.js.map +1 -0
- package/dist/src/core/renderers/webgl/internal/WebGlUtils.d.ts +10 -0
- package/dist/src/core/renderers/webgl/internal/WebGlUtils.js +31 -0
- package/dist/src/core/renderers/webgl/internal/WebGlUtils.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/DefaultShader.d.ts +9 -0
- package/dist/src/core/renderers/webgl/shaders/DefaultShader.js +87 -0
- package/dist/src/core/renderers/webgl/shaders/DefaultShader.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.d.ts +10 -0
- package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js +119 -0
- package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/DynamicShader.d.ts +29 -0
- package/dist/src/core/renderers/webgl/shaders/DynamicShader.js +413 -0
- package/dist/src/core/renderers/webgl/shaders/DynamicShader.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.d.ts +28 -0
- package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js +131 -0
- package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/SdfShader.d.ts +47 -0
- package/dist/src/core/renderers/webgl/shaders/SdfShader.js +160 -0
- package/dist/src/core/renderers/webgl/shaders/SdfShader.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.d.ts +31 -0
- package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js +71 -0
- package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.d.ts +30 -0
- package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js +58 -0
- package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.d.ts +31 -0
- package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js +71 -0
- package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.d.ts +31 -0
- package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js +71 -0
- package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.d.ts +31 -0
- package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js +71 -0
- package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.d.ts +9 -0
- package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.js +136 -0
- package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.d.ts +36 -0
- package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js +85 -0
- package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.d.ts +45 -0
- package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.js +104 -0
- package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.d.ts +22 -0
- package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js +45 -0
- package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.d.ts +58 -0
- package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.js +80 -0
- package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.d.ts +35 -0
- package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js +129 -0
- package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.d.ts +39 -0
- package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js +116 -0
- package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.d.ts +61 -0
- package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js +127 -0
- package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.d.ts +40 -0
- package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js +71 -0
- package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.d.ts +115 -0
- package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.js +61 -0
- package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.js.map +1 -0
- package/dist/src/core/shaders/canvas/Border.d.ts +9 -0
- package/dist/src/core/shaders/canvas/Border.js +57 -0
- package/dist/src/core/shaders/canvas/Border.js.map +1 -0
- package/dist/src/core/shaders/canvas/HolePunch.d.ts +7 -0
- package/dist/src/core/shaders/canvas/HolePunch.js +38 -0
- package/dist/src/core/shaders/canvas/HolePunch.js.map +1 -0
- package/dist/src/core/shaders/canvas/LinearGradient.d.ts +10 -0
- package/dist/src/core/shaders/canvas/LinearGradient.js +48 -0
- package/dist/src/core/shaders/canvas/LinearGradient.js.map +1 -0
- package/dist/src/core/shaders/canvas/RadialGradient.d.ts +11 -0
- package/dist/src/core/shaders/canvas/RadialGradient.js +70 -0
- package/dist/src/core/shaders/canvas/RadialGradient.js.map +1 -0
- package/dist/src/core/shaders/canvas/Rounded.d.ts +7 -0
- package/dist/src/core/shaders/canvas/Rounded.js +33 -0
- package/dist/src/core/shaders/canvas/Rounded.js.map +1 -0
- package/dist/src/core/shaders/canvas/RoundedWithBorder.d.ts +7 -0
- package/dist/src/core/shaders/canvas/RoundedWithBorder.js +43 -0
- package/dist/src/core/shaders/canvas/RoundedWithBorder.js.map +1 -0
- package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.d.ts +8 -0
- package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js +41 -0
- package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js.map +1 -0
- package/dist/src/core/shaders/canvas/RoundedWithShadow.d.ts +7 -0
- package/dist/src/core/shaders/canvas/RoundedWithShadow.js +40 -0
- package/dist/src/core/shaders/canvas/RoundedWithShadow.js.map +1 -0
- package/dist/src/core/shaders/canvas/Shadow.d.ts +8 -0
- package/dist/src/core/shaders/canvas/Shadow.js +31 -0
- package/dist/src/core/shaders/canvas/Shadow.js.map +1 -0
- package/dist/src/core/shaders/canvas/utils/render.d.ts +5 -0
- package/dist/src/core/shaders/canvas/utils/render.js +84 -0
- package/dist/src/core/shaders/canvas/utils/render.js.map +1 -0
- package/dist/src/core/shaders/templates/BorderTemplate.d.ts +38 -0
- package/dist/src/core/shaders/templates/BorderTemplate.js +73 -0
- package/dist/src/core/shaders/templates/BorderTemplate.js.map +1 -0
- package/dist/src/core/shaders/templates/HolePunchTemplate.d.ts +46 -0
- package/dist/src/core/shaders/templates/HolePunchTemplate.js +35 -0
- package/dist/src/core/shaders/templates/HolePunchTemplate.js.map +1 -0
- package/dist/src/core/shaders/templates/LinearGradientTemplate.d.ts +23 -0
- package/dist/src/core/shaders/templates/LinearGradientTemplate.js +47 -0
- package/dist/src/core/shaders/templates/LinearGradientTemplate.js.map +1 -0
- package/dist/src/core/shaders/templates/RadialGradientTemplate.d.ts +31 -0
- package/dist/src/core/shaders/templates/RadialGradientTemplate.js +49 -0
- package/dist/src/core/shaders/templates/RadialGradientTemplate.js.map +1 -0
- package/dist/src/core/shaders/templates/RoundedTemplate.d.ts +29 -0
- package/dist/src/core/shaders/templates/RoundedTemplate.js +67 -0
- package/dist/src/core/shaders/templates/RoundedTemplate.js.map +1 -0
- package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.d.ts +7 -0
- package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.js +24 -0
- package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.js.map +1 -0
- package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.d.ts +9 -0
- package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.js +23 -0
- package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.js.map +1 -0
- package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.d.ts +6 -0
- package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.js +23 -0
- package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.js.map +1 -0
- package/dist/src/core/shaders/templates/ShadowTemplate.d.ts +34 -0
- package/dist/src/core/shaders/templates/ShadowTemplate.js +66 -0
- package/dist/src/core/shaders/templates/ShadowTemplate.js.map +1 -0
- package/dist/src/core/shaders/templates/shaderUtils.d.ts +5 -0
- package/dist/src/core/shaders/templates/shaderUtils.js +41 -0
- package/dist/src/core/shaders/templates/shaderUtils.js.map +1 -0
- package/dist/src/core/shaders/utils.d.ts +5 -0
- package/dist/src/core/shaders/utils.js +41 -0
- package/dist/src/core/shaders/utils.js.map +1 -0
- package/dist/src/core/shaders/webgl/Border.d.ts +3 -0
- package/dist/src/core/shaders/webgl/Border.js +110 -0
- package/dist/src/core/shaders/webgl/Border.js.map +1 -0
- package/dist/src/core/shaders/webgl/Default.d.ts +2 -0
- package/dist/src/core/shaders/webgl/Default.js +86 -0
- package/dist/src/core/shaders/webgl/Default.js.map +1 -0
- package/dist/src/core/shaders/webgl/DefaultBatched.d.ts +2 -0
- package/dist/src/core/shaders/webgl/DefaultBatched.js +104 -0
- package/dist/src/core/shaders/webgl/DefaultBatched.js.map +1 -0
- package/dist/src/core/shaders/webgl/HolePunch.d.ts +3 -0
- package/dist/src/core/shaders/webgl/HolePunch.js +65 -0
- package/dist/src/core/shaders/webgl/HolePunch.js.map +1 -0
- package/dist/src/core/shaders/webgl/LinearGradient.d.ts +3 -0
- package/dist/src/core/shaders/webgl/LinearGradient.js +76 -0
- package/dist/src/core/shaders/webgl/LinearGradient.js.map +1 -0
- package/dist/src/core/shaders/webgl/Magnifier.d.ts +46 -0
- package/dist/src/core/shaders/webgl/Magnifier.js +107 -0
- package/dist/src/core/shaders/webgl/Magnifier.js.map +1 -0
- package/dist/src/core/shaders/webgl/RadialGradient.d.ts +3 -0
- package/dist/src/core/shaders/webgl/RadialGradient.js +74 -0
- package/dist/src/core/shaders/webgl/RadialGradient.js.map +1 -0
- package/dist/src/core/shaders/webgl/Rounded.d.ts +7 -0
- package/dist/src/core/shaders/webgl/Rounded.js +86 -0
- package/dist/src/core/shaders/webgl/Rounded.js.map +1 -0
- package/dist/src/core/shaders/webgl/RoundedWithBorder copy.d.ts +3 -0
- package/dist/src/core/shaders/webgl/RoundedWithBorder copy.js +218 -0
- package/dist/src/core/shaders/webgl/RoundedWithBorder copy.js.map +1 -0
- package/dist/src/core/shaders/webgl/RoundedWithBorder.d.ts +3 -0
- package/dist/src/core/shaders/webgl/RoundedWithBorder.js +140 -0
- package/dist/src/core/shaders/webgl/RoundedWithBorder.js.map +1 -0
- package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.d.ts +3 -0
- package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js +162 -0
- package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js.map +1 -0
- package/dist/src/core/shaders/webgl/RoundedWithShadow.d.ts +3 -0
- package/dist/src/core/shaders/webgl/RoundedWithShadow.js +84 -0
- package/dist/src/core/shaders/webgl/RoundedWithShadow.js.map +1 -0
- package/dist/src/core/shaders/webgl/SdfShader.d.ts +32 -0
- package/dist/src/core/shaders/webgl/SdfShader.js +116 -0
- package/dist/src/core/shaders/webgl/SdfShader.js.map +1 -0
- package/dist/src/core/shaders/webgl/Shadow.d.ts +3 -0
- package/dist/src/core/shaders/webgl/Shadow.js +110 -0
- package/dist/src/core/shaders/webgl/Shadow.js.map +1 -0
- package/dist/src/core/text-rendering/TextRenderingUtils.d.ts +12 -0
- package/dist/src/core/text-rendering/TextRenderingUtils.js +14 -0
- package/dist/src/core/text-rendering/TextRenderingUtils.js.map +1 -0
- package/dist/src/core/text-rendering/TextTextureRendererUtils.d.ts +72 -0
- package/dist/src/core/text-rendering/TextTextureRendererUtils.js +217 -0
- package/dist/src/core/text-rendering/TextTextureRendererUtils.js.map +1 -0
- package/dist/src/core/text-rendering/TrFontManager.d.ts +26 -0
- package/dist/src/core/text-rendering/TrFontManager.js +131 -0
- package/dist/src/core/text-rendering/TrFontManager.js.map +1 -0
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.d.ts +39 -0
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js +125 -0
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js.map +1 -0
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.d.ts +103 -0
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.js +21 -0
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.js.map +1 -0
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.d.ts +62 -0
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.js +88 -0
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.js.map +1 -0
- package/dist/src/core/text-rendering/font-face-types/TrFontFace.d.ts +118 -0
- package/dist/src/core/text-rendering/font-face-types/TrFontFace.js +63 -0
- package/dist/src/core/text-rendering/font-face-types/TrFontFace.js.map +1 -0
- package/dist/src/core/text-rendering/font-face-types/WebTrFontFace.d.ts +14 -0
- package/dist/src/core/text-rendering/font-face-types/WebTrFontFace.js +66 -0
- package/dist/src/core/text-rendering/font-face-types/WebTrFontFace.js.map +1 -0
- package/dist/src/core/text-rendering/font-face-types/utils.d.ts +1 -0
- package/dist/src/core/text-rendering/font-face-types/utils.js +38 -0
- package/dist/src/core/text-rendering/font-face-types/utils.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.d.ts +59 -0
- package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js +397 -0
- package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.d.ts +120 -0
- package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js +551 -0
- package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.d.ts +92 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js +607 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.d.ts +12 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.js +61 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.d.ts +33 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.js +52 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.d.ts +13 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.js +32 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.d.ts +23 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.js +84 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.d.ts +4 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.js +34 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.d.ts +20 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js +308 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.d.ts +10 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.js +40 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.d.ts +26 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.js +70 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.d.ts +16 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.js +39 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/TextRenderer.d.ts +373 -0
- package/dist/src/core/text-rendering/renderers/TextRenderer.js +178 -0
- package/dist/src/core/text-rendering/renderers/TextRenderer.js.map +1 -0
- package/dist/src/core/textures/ColorTexture.d.ts +36 -0
- package/dist/src/core/textures/ColorTexture.js +76 -0
- package/dist/src/core/textures/ColorTexture.js.map +1 -0
- package/dist/src/core/textures/ImageTexture.d.ts +124 -0
- package/dist/src/core/textures/ImageTexture.js +240 -0
- package/dist/src/core/textures/ImageTexture.js.map +1 -0
- package/dist/src/core/textures/NoiseTexture.d.ts +43 -0
- package/dist/src/core/textures/NoiseTexture.js +68 -0
- package/dist/src/core/textures/NoiseTexture.js.map +1 -0
- package/dist/src/core/textures/RenderTexture.d.ts +29 -0
- package/dist/src/core/textures/RenderTexture.js +54 -0
- package/dist/src/core/textures/RenderTexture.js.map +1 -0
- package/dist/src/core/textures/SubTexture.d.ts +63 -0
- package/dist/src/core/textures/SubTexture.js +135 -0
- package/dist/src/core/textures/SubTexture.js.map +1 -0
- package/dist/src/core/textures/Texture.d.ts +211 -0
- package/dist/src/core/textures/Texture.js +232 -0
- package/dist/src/core/textures/Texture.js.map +1 -0
- package/dist/src/core/utils.d.ts +22 -0
- package/dist/src/core/utils.js +173 -0
- package/dist/src/core/utils.js.map +1 -0
- package/dist/src/main-api/DynamicShaderController.d.ts +29 -0
- package/dist/src/main-api/DynamicShaderController.js +58 -0
- package/dist/src/main-api/DynamicShaderController.js.map +1 -0
- package/dist/src/main-api/INode.d.ts +63 -0
- package/dist/src/main-api/INode.js +2 -0
- package/dist/src/main-api/INode.js.map +1 -0
- package/dist/src/main-api/Inspector.d.ts +21 -0
- package/dist/src/main-api/Inspector.js +376 -0
- package/dist/src/main-api/Inspector.js.map +1 -0
- package/dist/src/main-api/Renderer.d.ts +543 -0
- package/dist/src/main-api/Renderer.js +431 -0
- package/dist/src/main-api/Renderer.js.map +1 -0
- package/dist/src/main-api/ShaderController.d.ts +31 -0
- package/dist/src/main-api/ShaderController.js +37 -0
- package/dist/src/main-api/ShaderController.js.map +1 -0
- package/dist/src/main-api/utils.d.ts +2 -0
- package/dist/src/main-api/utils.js +34 -0
- package/dist/src/main-api/utils.js.map +1 -0
- package/dist/src/utils.d.ts +104 -0
- package/dist/src/utils.js +211 -0
- package/dist/src/utils.js.map +1 -0
- package/dist/tsconfig.dist.tsbuildinfo +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/exports/canvas.ts +39 -0
- package/exports/index.ts +89 -0
- package/exports/inspector.ts +24 -0
- package/exports/utils.ts +44 -0
- package/exports/webgl.ts +38 -0
- package/package.json +91 -0
- package/scripts/please-use-pnpm.js +13 -0
- package/src/common/CommonTypes.ts +146 -0
- package/src/common/EventEmitter.ts +77 -0
- package/src/common/IAnimationController.ts +92 -0
- package/src/common/IEventEmitter.ts +28 -0
- package/src/core/CoreNode.test.ts +202 -0
- package/src/core/CoreNode.ts +2487 -0
- package/src/core/CoreShaderManager.ts +292 -0
- package/src/core/CoreTextNode.ts +455 -0
- package/src/core/CoreTextureManager.ts +561 -0
- package/src/core/Stage.ts +826 -0
- package/src/core/TextureMemoryManager.ts +414 -0
- package/src/core/animations/AnimationManager.ts +38 -0
- package/src/core/animations/CoreAnimation.ts +347 -0
- package/src/core/animations/CoreAnimationController.ts +166 -0
- package/src/core/lib/ContextSpy.ts +41 -0
- package/src/core/lib/ImageWorker.ts +280 -0
- package/src/core/lib/Matrix3d.ts +244 -0
- package/src/core/lib/RenderCoords.ts +86 -0
- package/src/core/lib/WebGlContextWrapper.ts +1332 -0
- package/src/core/lib/textureCompression.ts +152 -0
- package/src/core/lib/textureSvg.ts +78 -0
- package/src/core/lib/utils.ts +388 -0
- package/src/core/lib/validateImageBitmap.ts +76 -0
- package/src/core/platform.ts +100 -0
- package/src/core/renderers/CoreContextTexture.ts +43 -0
- package/src/core/renderers/CoreRenderOp.ts +22 -0
- package/src/core/renderers/CoreRenderer.ts +115 -0
- package/src/core/renderers/CoreShader.ts +41 -0
- package/src/core/renderers/canvas/CanvasCoreRenderer.ts +375 -0
- package/src/core/renderers/canvas/CanvasCoreTexture.ts +153 -0
- package/src/core/renderers/canvas/internal/C2DShaderUtils.ts +231 -0
- package/src/core/renderers/canvas/internal/ColorUtils.ts +69 -0
- package/src/core/renderers/canvas/shaders/UnsupportedShader.ts +48 -0
- package/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.ts +91 -0
- package/src/core/renderers/webgl/WebGlCoreCtxSubTexture.ts +50 -0
- package/src/core/renderers/webgl/WebGlCoreCtxTexture.ts +313 -0
- package/src/core/renderers/webgl/WebGlCoreRenderOp.ts +125 -0
- package/src/core/renderers/webgl/WebGlCoreRenderer.ts +821 -0
- package/src/core/renderers/webgl/WebGlCoreShader.ts +365 -0
- package/src/core/renderers/webgl/internal/BufferCollection.ts +54 -0
- package/src/core/renderers/webgl/internal/RendererUtils.ts +155 -0
- package/src/core/renderers/webgl/internal/ShaderUtils.ts +143 -0
- package/src/core/renderers/webgl/internal/WebGlUtils.ts +35 -0
- package/src/core/renderers/webgl/shaders/DefaultShader.ts +93 -0
- package/src/core/renderers/webgl/shaders/DefaultShaderBatched.ts +132 -0
- package/src/core/renderers/webgl/shaders/DynamicShader.ts +580 -0
- package/src/core/renderers/webgl/shaders/RoundedRectangle.ts +167 -0
- package/src/core/renderers/webgl/shaders/SdfShader.ts +204 -0
- package/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.ts +101 -0
- package/src/core/renderers/webgl/shaders/effects/BorderEffect.ts +87 -0
- package/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.ts +101 -0
- package/src/core/renderers/webgl/shaders/effects/BorderRightEffect.ts +101 -0
- package/src/core/renderers/webgl/shaders/effects/BorderTopEffect.ts +101 -0
- package/src/core/renderers/webgl/shaders/effects/EffectUtils.ts +159 -0
- package/src/core/renderers/webgl/shaders/effects/FadeOutEffect.ts +127 -0
- package/src/core/renderers/webgl/shaders/effects/GlitchEffect.ts +148 -0
- package/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.ts +67 -0
- package/src/core/renderers/webgl/shaders/effects/HolePunchEffect.ts +157 -0
- package/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.ts +171 -0
- package/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.ts +168 -0
- package/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.ts +187 -0
- package/src/core/renderers/webgl/shaders/effects/RadiusEffect.ts +110 -0
- package/src/core/renderers/webgl/shaders/effects/ShaderEffect.ts +196 -0
- package/src/core/text-rendering/TextRenderingUtils.ts +36 -0
- package/src/core/text-rendering/TextTextureRendererUtils.ts +263 -0
- package/src/core/text-rendering/TrFontManager.ts +183 -0
- package/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.ts +176 -0
- package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.ts +139 -0
- package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.test.ts +173 -0
- package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.ts +171 -0
- package/src/core/text-rendering/font-face-types/TrFontFace.ts +187 -0
- package/src/core/text-rendering/font-face-types/WebTrFontFace.ts +94 -0
- package/src/core/text-rendering/font-face-types/utils.ts +39 -0
- package/src/core/text-rendering/renderers/CanvasTextRenderer.ts +509 -0
- package/src/core/text-rendering/renderers/LightningTextTextureRenderer.ts +808 -0
- package/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.ts +853 -0
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.test.ts +48 -0
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.ts +66 -0
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.ts +52 -0
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.ts +32 -0
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.ts +117 -0
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.test.ts +133 -0
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.ts +38 -0
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.ts +408 -0
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.test.ts +49 -0
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.ts +52 -0
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.test.ts +205 -0
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.ts +93 -0
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.ts +40 -0
- package/src/core/text-rendering/renderers/TextRenderer.ts +557 -0
- package/src/core/textures/ColorTexture.ts +102 -0
- package/src/core/textures/ImageTexture.ts +400 -0
- package/src/core/textures/NoiseTexture.ts +104 -0
- package/src/core/textures/RenderTexture.ts +85 -0
- package/src/core/textures/SubTexture.ts +205 -0
- package/src/core/textures/Texture.ts +376 -0
- package/src/core/utils.ts +227 -0
- package/src/env.d.ts +7 -0
- package/src/main-api/DynamicShaderController.ts +104 -0
- package/src/main-api/INode.ts +101 -0
- package/src/main-api/Inspector.ts +522 -0
- package/src/main-api/Renderer.ts +807 -0
- package/src/main-api/ShaderController.ts +80 -0
- package/src/main-api/utils.ts +45 -0
- package/src/utils.ts +248 -0
|
@@ -0,0 +1,362 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* If not stated otherwise in this file or this component's LICENSE file the
|
|
3
|
+
* following copyright and licenses apply:
|
|
4
|
+
*
|
|
5
|
+
* Copyright 2023 Comcast Cable Communications Management, LLC.
|
|
6
|
+
*
|
|
7
|
+
* Licensed under the Apache License, Version 2.0 (the License);
|
|
8
|
+
* you may not use this file except in compliance with the License.
|
|
9
|
+
* You may obtain a copy of the License at
|
|
10
|
+
*
|
|
11
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
*
|
|
13
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
* See the License for the specific language governing permissions and
|
|
17
|
+
* limitations under the License.
|
|
18
|
+
*/
|
|
19
|
+
import { ImageWorkerManager } from './lib/ImageWorker.js';
|
|
20
|
+
import { ColorTexture } from './textures/ColorTexture.js';
|
|
21
|
+
import { ImageTexture } from './textures/ImageTexture.js';
|
|
22
|
+
import { NoiseTexture } from './textures/NoiseTexture.js';
|
|
23
|
+
import { SubTexture } from './textures/SubTexture.js';
|
|
24
|
+
import { RenderTexture } from './textures/RenderTexture.js';
|
|
25
|
+
import { Texture, TextureType } from './textures/Texture.js';
|
|
26
|
+
import { EventEmitter } from '../common/EventEmitter.js';
|
|
27
|
+
import { getTimeStamp } from './platform.js';
|
|
28
|
+
import { validateCreateImageBitmap, } from './lib/validateImageBitmap.js';
|
|
29
|
+
export class CoreTextureManager extends EventEmitter {
|
|
30
|
+
/**
|
|
31
|
+
* Map of textures by cache key
|
|
32
|
+
*/
|
|
33
|
+
keyCache = new Map();
|
|
34
|
+
/**
|
|
35
|
+
* Map of cache keys by texture
|
|
36
|
+
*/
|
|
37
|
+
inverseKeyCache = new WeakMap();
|
|
38
|
+
/**
|
|
39
|
+
* Map of texture constructors by their type name
|
|
40
|
+
*/
|
|
41
|
+
txConstructors = {};
|
|
42
|
+
priorityQueue = [];
|
|
43
|
+
uploadTextureQueue = [];
|
|
44
|
+
initialized = false;
|
|
45
|
+
stage;
|
|
46
|
+
numImageWorkers;
|
|
47
|
+
imageWorkerManager = null;
|
|
48
|
+
hasCreateImageBitmap = !!self.createImageBitmap;
|
|
49
|
+
imageBitmapSupported = {
|
|
50
|
+
basic: false,
|
|
51
|
+
options: false,
|
|
52
|
+
full: false,
|
|
53
|
+
};
|
|
54
|
+
hasWorker = !!self.Worker;
|
|
55
|
+
/**
|
|
56
|
+
* Renderer that this texture manager is associated with
|
|
57
|
+
*
|
|
58
|
+
* @remarks
|
|
59
|
+
* This MUST be set before the texture manager is used. Otherwise errors
|
|
60
|
+
* will occur when using the texture manager.
|
|
61
|
+
*/
|
|
62
|
+
renderer;
|
|
63
|
+
/**
|
|
64
|
+
* The current frame time in milliseconds
|
|
65
|
+
*
|
|
66
|
+
* @remarks
|
|
67
|
+
* This is used to populate the `lastRenderableChangeTime` property of
|
|
68
|
+
* {@link Texture} instances when their renderable state changes.
|
|
69
|
+
*
|
|
70
|
+
* Set by stage via `updateFrameTime` method.
|
|
71
|
+
*/
|
|
72
|
+
frameTime = 0;
|
|
73
|
+
constructor(stage, settings) {
|
|
74
|
+
super();
|
|
75
|
+
const { numImageWorkers, createImageBitmapSupport } = settings;
|
|
76
|
+
this.stage = stage;
|
|
77
|
+
this.numImageWorkers = numImageWorkers;
|
|
78
|
+
if (createImageBitmapSupport === 'auto') {
|
|
79
|
+
validateCreateImageBitmap()
|
|
80
|
+
.then((result) => {
|
|
81
|
+
this.initialize(result);
|
|
82
|
+
})
|
|
83
|
+
.catch(() => {
|
|
84
|
+
console.warn('[Lightning] createImageBitmap is not supported on this browser. ImageTexture will be slower.');
|
|
85
|
+
// initialized without image worker manager and createImageBitmap
|
|
86
|
+
this.initialized = true;
|
|
87
|
+
this.emit('initialized');
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
this.initialize({
|
|
92
|
+
basic: createImageBitmapSupport === 'basic',
|
|
93
|
+
options: createImageBitmapSupport === 'options',
|
|
94
|
+
full: createImageBitmapSupport === 'full',
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
this.registerTextureType('ImageTexture', ImageTexture);
|
|
98
|
+
this.registerTextureType('ColorTexture', ColorTexture);
|
|
99
|
+
this.registerTextureType('NoiseTexture', NoiseTexture);
|
|
100
|
+
this.registerTextureType('SubTexture', SubTexture);
|
|
101
|
+
this.registerTextureType('RenderTexture', RenderTexture);
|
|
102
|
+
}
|
|
103
|
+
registerTextureType(textureType, textureClass) {
|
|
104
|
+
this.txConstructors[textureType] = textureClass;
|
|
105
|
+
}
|
|
106
|
+
initialize(support) {
|
|
107
|
+
this.hasCreateImageBitmap =
|
|
108
|
+
support.basic || support.options || support.full;
|
|
109
|
+
this.imageBitmapSupported = support;
|
|
110
|
+
if (!this.hasCreateImageBitmap) {
|
|
111
|
+
console.warn('[Lightning] createImageBitmap is not supported on this browser. ImageTexture will be slower.');
|
|
112
|
+
}
|
|
113
|
+
if (this.hasCreateImageBitmap &&
|
|
114
|
+
this.hasWorker &&
|
|
115
|
+
this.numImageWorkers > 0) {
|
|
116
|
+
this.imageWorkerManager = new ImageWorkerManager(this.numImageWorkers, support);
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
console.warn('[Lightning] Imageworker is 0 or not supported on this browser. Image loading will be slower.');
|
|
120
|
+
}
|
|
121
|
+
this.initialized = true;
|
|
122
|
+
this.emit('initialized');
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Enqueue a texture for uploading to the GPU.
|
|
126
|
+
*
|
|
127
|
+
* @param texture - The texture to upload
|
|
128
|
+
*/
|
|
129
|
+
enqueueUploadTexture(texture) {
|
|
130
|
+
if (this.uploadTextureQueue.includes(texture) === false) {
|
|
131
|
+
this.uploadTextureQueue.push(texture);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Create a texture
|
|
136
|
+
*
|
|
137
|
+
* @param textureType - The type of texture to create
|
|
138
|
+
* @param props - The properties to use for the texture
|
|
139
|
+
*/
|
|
140
|
+
createTexture(textureType, props) {
|
|
141
|
+
let texture;
|
|
142
|
+
const TextureClass = this.txConstructors[textureType];
|
|
143
|
+
if (!TextureClass) {
|
|
144
|
+
throw new Error(`Texture type "${textureType}" is not registered`);
|
|
145
|
+
}
|
|
146
|
+
const cacheKey = TextureClass.makeCacheKey(props);
|
|
147
|
+
if (cacheKey && this.keyCache.has(cacheKey)) {
|
|
148
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
149
|
+
texture = this.keyCache.get(cacheKey);
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-explicit-any
|
|
153
|
+
texture = new TextureClass(this, props);
|
|
154
|
+
if (cacheKey) {
|
|
155
|
+
this.initTextureToCache(texture, cacheKey);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
return texture;
|
|
159
|
+
}
|
|
160
|
+
orphanTexture(texture) {
|
|
161
|
+
// if it is part of the download or upload queue, remove it
|
|
162
|
+
this.removeTextureFromQueue(texture);
|
|
163
|
+
if (texture.type === TextureType.subTexture) {
|
|
164
|
+
// ignore subtextures
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
this.stage.txMemManager.addToOrphanedTextures(texture);
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Override loadTexture to use the batched approach.
|
|
171
|
+
*
|
|
172
|
+
* @param texture - The texture to load
|
|
173
|
+
* @param immediate - Whether to prioritize the texture for immediate loading
|
|
174
|
+
*/
|
|
175
|
+
loadTexture(texture, priority) {
|
|
176
|
+
this.stage.txMemManager.removeFromOrphanedTextures(texture);
|
|
177
|
+
if (texture.type === TextureType.subTexture) {
|
|
178
|
+
// ignore subtextures - they get loaded through their parent
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
if (texture.state === 'loaded') {
|
|
182
|
+
// if the texture is already loaded, just return
|
|
183
|
+
return;
|
|
184
|
+
}
|
|
185
|
+
if (Texture.TRANSITIONAL_TEXTURE_STATES.includes(texture.state)) {
|
|
186
|
+
return;
|
|
187
|
+
}
|
|
188
|
+
// if we're not initialized, just queue the texture into the priority queue
|
|
189
|
+
if (this.initialized === false) {
|
|
190
|
+
this.priorityQueue.push(texture);
|
|
191
|
+
return;
|
|
192
|
+
}
|
|
193
|
+
// If the texture failed to load, we need to re-download it.
|
|
194
|
+
if (texture.state === 'failed') {
|
|
195
|
+
texture.free();
|
|
196
|
+
texture.freeTextureData();
|
|
197
|
+
}
|
|
198
|
+
texture.setState('loading');
|
|
199
|
+
// Get the texture data
|
|
200
|
+
texture
|
|
201
|
+
.getTextureData()
|
|
202
|
+
.then(() => {
|
|
203
|
+
if (texture.state !== 'fetched') {
|
|
204
|
+
texture.setState('failed');
|
|
205
|
+
return;
|
|
206
|
+
}
|
|
207
|
+
// For non-image textures, upload immediately
|
|
208
|
+
if (texture.type !== TextureType.image) {
|
|
209
|
+
this.uploadTexture(texture).catch((err) => {
|
|
210
|
+
console.error('Failed to upload non-image texture:', err);
|
|
211
|
+
texture.setState('failed');
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
else {
|
|
215
|
+
// For image textures, queue for throttled upload
|
|
216
|
+
// If it's a priority texture, upload it immediately
|
|
217
|
+
if (priority === true) {
|
|
218
|
+
this.uploadTexture(texture).catch((err) => {
|
|
219
|
+
console.error('Failed to upload priority texture:', err);
|
|
220
|
+
texture.setState('failed');
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
else {
|
|
224
|
+
this.enqueueUploadTexture(texture);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
})
|
|
228
|
+
.catch((err) => {
|
|
229
|
+
console.error(err);
|
|
230
|
+
texture.setState('failed');
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Upload a texture to the GPU
|
|
235
|
+
*
|
|
236
|
+
* @param texture Texture to upload
|
|
237
|
+
* @returns Promise that resolves when the texture is fully loaded
|
|
238
|
+
*/
|
|
239
|
+
async uploadTexture(texture) {
|
|
240
|
+
if (this.stage.txMemManager.doNotExceedCriticalThreshold === true &&
|
|
241
|
+
this.stage.txMemManager.criticalCleanupRequested === true) {
|
|
242
|
+
// we're at a critical memory threshold, don't upload textures
|
|
243
|
+
texture.setState('failed');
|
|
244
|
+
return;
|
|
245
|
+
}
|
|
246
|
+
const coreContext = texture.loadCtxTexture();
|
|
247
|
+
if (coreContext !== null && coreContext.state === 'loaded') {
|
|
248
|
+
texture.setState('loaded');
|
|
249
|
+
return;
|
|
250
|
+
}
|
|
251
|
+
await coreContext.load();
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Check if a texture is being processed
|
|
255
|
+
*/
|
|
256
|
+
isProcessingTexture(texture) {
|
|
257
|
+
return this.uploadTextureQueue.includes(texture) === true;
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Process a limited number of uploads.
|
|
261
|
+
*
|
|
262
|
+
* @param maxProcessingTime - The maximum processing time in milliseconds
|
|
263
|
+
*/
|
|
264
|
+
async processSome(maxProcessingTime) {
|
|
265
|
+
if (this.initialized === false) {
|
|
266
|
+
return;
|
|
267
|
+
}
|
|
268
|
+
const startTime = getTimeStamp();
|
|
269
|
+
// Process priority queue
|
|
270
|
+
while (this.priorityQueue.length > 0 &&
|
|
271
|
+
getTimeStamp() - startTime < maxProcessingTime) {
|
|
272
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
273
|
+
const texture = this.priorityQueue.pop();
|
|
274
|
+
try {
|
|
275
|
+
await texture.getTextureData();
|
|
276
|
+
await this.uploadTexture(texture);
|
|
277
|
+
}
|
|
278
|
+
catch (error) {
|
|
279
|
+
console.error('Failed to process priority texture:', error);
|
|
280
|
+
// Continue with next texture instead of stopping entire queue
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
// Process uploads - await each upload to prevent GPU overload
|
|
284
|
+
while (this.uploadTextureQueue.length > 0 &&
|
|
285
|
+
getTimeStamp() - startTime < maxProcessingTime) {
|
|
286
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
287
|
+
const texture = this.uploadTextureQueue.shift();
|
|
288
|
+
try {
|
|
289
|
+
await this.uploadTexture(texture);
|
|
290
|
+
}
|
|
291
|
+
catch (error) {
|
|
292
|
+
console.error('Failed to upload texture:', error);
|
|
293
|
+
// Continue with next texture instead of stopping entire queue
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
hasUpdates() {
|
|
298
|
+
return this.uploadTextureQueue.length > 0;
|
|
299
|
+
}
|
|
300
|
+
/**
|
|
301
|
+
* Initialize a texture to the cache
|
|
302
|
+
*
|
|
303
|
+
* @param texture Texture to cache
|
|
304
|
+
* @param cacheKey Cache key for the texture
|
|
305
|
+
*/
|
|
306
|
+
initTextureToCache(texture, cacheKey) {
|
|
307
|
+
const { keyCache, inverseKeyCache } = this;
|
|
308
|
+
keyCache.set(cacheKey, texture);
|
|
309
|
+
inverseKeyCache.set(texture, cacheKey);
|
|
310
|
+
}
|
|
311
|
+
/**
|
|
312
|
+
* Get a texture from the cache
|
|
313
|
+
*
|
|
314
|
+
* @param cacheKey
|
|
315
|
+
*/
|
|
316
|
+
getTextureFromCache(cacheKey) {
|
|
317
|
+
return this.keyCache.get(cacheKey);
|
|
318
|
+
}
|
|
319
|
+
/**
|
|
320
|
+
* Remove a texture from the cache
|
|
321
|
+
*
|
|
322
|
+
* @remarks
|
|
323
|
+
* Called by Texture Cleanup when a texture is freed.
|
|
324
|
+
*
|
|
325
|
+
* @param texture
|
|
326
|
+
*/
|
|
327
|
+
removeTextureFromCache(texture) {
|
|
328
|
+
const { inverseKeyCache, keyCache } = this;
|
|
329
|
+
const cacheKey = inverseKeyCache.get(texture);
|
|
330
|
+
if (cacheKey) {
|
|
331
|
+
keyCache.delete(cacheKey);
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
/**
|
|
335
|
+
* Remove texture from the upload queue
|
|
336
|
+
*
|
|
337
|
+
* @param texture - The texture to remove
|
|
338
|
+
*/
|
|
339
|
+
removeTextureFromQueue(texture) {
|
|
340
|
+
const uploadIndex = this.uploadTextureQueue.indexOf(texture);
|
|
341
|
+
if (uploadIndex !== -1) {
|
|
342
|
+
this.uploadTextureQueue.splice(uploadIndex, 1);
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
/**
|
|
346
|
+
* Resolve a parent texture from the cache or fallback to the provided texture.
|
|
347
|
+
*
|
|
348
|
+
* @param texture - The provided texture to resolve.
|
|
349
|
+
* @returns The cached or provided texture.
|
|
350
|
+
*/
|
|
351
|
+
resolveParentTexture(texture) {
|
|
352
|
+
if (!texture?.props) {
|
|
353
|
+
return texture;
|
|
354
|
+
}
|
|
355
|
+
const cacheKey = ImageTexture.makeCacheKey(texture.props);
|
|
356
|
+
const cachedTexture = cacheKey
|
|
357
|
+
? this.getTextureFromCache(cacheKey)
|
|
358
|
+
: undefined;
|
|
359
|
+
return cachedTexture ?? texture;
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
//# sourceMappingURL=CoreTextureManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CoreTextureManager.js","sourceRoot":"","sources":["../../../src/core/CoreTextureManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
import { AnimationManager } from './animations/AnimationManager.js';
|
|
2
|
+
import { CoreNode, type CoreNodeProps } from './CoreNode.js';
|
|
3
|
+
import { CoreTextureManager } from './CoreTextureManager.js';
|
|
4
|
+
import { TrFontManager } from './text-rendering/TrFontManager.js';
|
|
5
|
+
import { CoreShaderManager, type ShaderMap } from './CoreShaderManager.js';
|
|
6
|
+
import { TextRenderer, type TextRendererMap, type TrProps } from './text-rendering/renderers/TextRenderer.js';
|
|
7
|
+
import { EventEmitter } from '../common/EventEmitter.js';
|
|
8
|
+
import { ContextSpy } from './lib/ContextSpy.js';
|
|
9
|
+
import type { FpsUpdatePayload, FrameTickPayload } from '../common/CommonTypes.js';
|
|
10
|
+
import { TextureMemoryManager, type TextureMemoryManagerSettings } from './TextureMemoryManager.js';
|
|
11
|
+
import { CoreRenderer } from './renderers/CoreRenderer.js';
|
|
12
|
+
import type { WebGlCoreRenderer } from './renderers/webgl/WebGlCoreRenderer.js';
|
|
13
|
+
import type { CanvasCoreRenderer } from './renderers/canvas/CanvasCoreRenderer.js';
|
|
14
|
+
import type { BaseShaderController } from '../main-api/ShaderController.js';
|
|
15
|
+
import { CoreTextNode, type CoreTextNodeProps } from './CoreTextNode.js';
|
|
16
|
+
import type { SdfTextRenderer } from './text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js';
|
|
17
|
+
import type { CanvasTextRenderer } from './text-rendering/renderers/CanvasTextRenderer.js';
|
|
18
|
+
import { type Bound } from './lib/utils.js';
|
|
19
|
+
import type { Texture } from './textures/Texture.js';
|
|
20
|
+
export interface StageOptions {
|
|
21
|
+
appWidth: number;
|
|
22
|
+
appHeight: number;
|
|
23
|
+
textureMemory: TextureMemoryManagerSettings;
|
|
24
|
+
boundsMargin: number | [number, number, number, number];
|
|
25
|
+
deviceLogicalPixelRatio: number;
|
|
26
|
+
devicePhysicalPixelRatio: number;
|
|
27
|
+
canvas: HTMLCanvasElement | OffscreenCanvas;
|
|
28
|
+
clearColor: number;
|
|
29
|
+
fpsUpdateInterval: number;
|
|
30
|
+
targetFPS: number;
|
|
31
|
+
enableContextSpy: boolean;
|
|
32
|
+
forceWebGL2: boolean;
|
|
33
|
+
numImageWorkers: number;
|
|
34
|
+
renderEngine: typeof WebGlCoreRenderer | typeof CanvasCoreRenderer;
|
|
35
|
+
eventBus: EventEmitter;
|
|
36
|
+
quadBufferSize: number;
|
|
37
|
+
fontEngines: (typeof CanvasTextRenderer | typeof SdfTextRenderer)[];
|
|
38
|
+
inspector: boolean;
|
|
39
|
+
strictBounds: boolean;
|
|
40
|
+
textureProcessingTimeLimit: number;
|
|
41
|
+
createImageBitmapSupport: 'auto' | 'basic' | 'options' | 'full';
|
|
42
|
+
}
|
|
43
|
+
export type StageFpsUpdateHandler = (stage: Stage, fpsData: FpsUpdatePayload) => void;
|
|
44
|
+
export type StageFrameTickHandler = (stage: Stage, frameTickData: FrameTickPayload) => void;
|
|
45
|
+
export interface Point {
|
|
46
|
+
x: number;
|
|
47
|
+
y: number;
|
|
48
|
+
}
|
|
49
|
+
export declare class Stage {
|
|
50
|
+
readonly options: StageOptions;
|
|
51
|
+
readonly animationManager: AnimationManager;
|
|
52
|
+
readonly txManager: CoreTextureManager;
|
|
53
|
+
readonly txMemManager: TextureMemoryManager;
|
|
54
|
+
readonly fontManager: TrFontManager;
|
|
55
|
+
readonly textRenderers: Partial<TextRendererMap>;
|
|
56
|
+
readonly shManager: CoreShaderManager;
|
|
57
|
+
readonly renderer: CoreRenderer;
|
|
58
|
+
readonly root: CoreNode;
|
|
59
|
+
readonly interactiveNodes: Set<CoreNode>;
|
|
60
|
+
boundsMargin: [number, number, number, number];
|
|
61
|
+
readonly defShaderCtr: BaseShaderController;
|
|
62
|
+
readonly strictBound: Bound;
|
|
63
|
+
readonly preloadBound: Bound;
|
|
64
|
+
readonly strictBounds: boolean;
|
|
65
|
+
readonly defaultTexture: Texture | null;
|
|
66
|
+
/**
|
|
67
|
+
* Target frame time in milliseconds (calculated from targetFPS)
|
|
68
|
+
*
|
|
69
|
+
* @remarks
|
|
70
|
+
* This is pre-calculated to avoid recalculating on every frame.
|
|
71
|
+
* - 0 means no throttling (use display refresh rate)
|
|
72
|
+
* - >0 means throttle to this frame time (1000 / targetFPS)
|
|
73
|
+
*/
|
|
74
|
+
targetFrameTime: number;
|
|
75
|
+
/**
|
|
76
|
+
* Renderer Event Bus for the Stage to emit events onto
|
|
77
|
+
*
|
|
78
|
+
* @remarks
|
|
79
|
+
* In reality this is just the RendererMain instance, which is an EventEmitter.
|
|
80
|
+
* this allows us to directly emit events from the Stage to RendererMain
|
|
81
|
+
* without having to set up forwarding handlers.
|
|
82
|
+
*/
|
|
83
|
+
readonly eventBus: EventEmitter;
|
|
84
|
+
deltaTime: number;
|
|
85
|
+
lastFrameTime: number;
|
|
86
|
+
currentFrameTime: number;
|
|
87
|
+
private fpsNumFrames;
|
|
88
|
+
private fpsElapsedTime;
|
|
89
|
+
private numQuadsRendered;
|
|
90
|
+
private renderRequested;
|
|
91
|
+
private frameEventQueue;
|
|
92
|
+
private fontResolveMap;
|
|
93
|
+
contextSpy: ContextSpy | null;
|
|
94
|
+
/**
|
|
95
|
+
* Stage constructor
|
|
96
|
+
*/
|
|
97
|
+
constructor(options: StageOptions);
|
|
98
|
+
setClearColor(color: number): void;
|
|
99
|
+
/**
|
|
100
|
+
* Update the target frame time based on the current targetFPS setting
|
|
101
|
+
*
|
|
102
|
+
* @remarks
|
|
103
|
+
* This should be called whenever the targetFPS option is changed
|
|
104
|
+
* to ensure targetFrameTime stays in sync.
|
|
105
|
+
* targetFPS of 0 means no throttling (targetFrameTime = 0)
|
|
106
|
+
* targetFPS > 0 means throttle to 1000/targetFPS milliseconds
|
|
107
|
+
*/
|
|
108
|
+
updateTargetFrameTime(): void;
|
|
109
|
+
updateFrameTime(): void;
|
|
110
|
+
/**
|
|
111
|
+
* Create default PixelTexture
|
|
112
|
+
*/
|
|
113
|
+
createDefaultTexture(): void;
|
|
114
|
+
/**
|
|
115
|
+
* Update animations
|
|
116
|
+
*/
|
|
117
|
+
updateAnimations(): void;
|
|
118
|
+
/**
|
|
119
|
+
* Check if the scene has updates
|
|
120
|
+
*/
|
|
121
|
+
hasSceneUpdates(): boolean;
|
|
122
|
+
/**
|
|
123
|
+
* Start a new frame draw
|
|
124
|
+
*/
|
|
125
|
+
drawFrame(): void;
|
|
126
|
+
/**
|
|
127
|
+
* Queue an event to be emitted after the current/next frame is rendered
|
|
128
|
+
*
|
|
129
|
+
* @remarks
|
|
130
|
+
* When we are operating in the context of the render loop, we may want to
|
|
131
|
+
* emit events that are related to the current frame. However, we generally do
|
|
132
|
+
* NOT want to emit events directly in the middle of the render loop, since
|
|
133
|
+
* this could enable event handlers to modify the scene graph and cause
|
|
134
|
+
* unexpected behavior. Instead, we queue up events to be emitted and then
|
|
135
|
+
* flush the queue after the frame has been rendered.
|
|
136
|
+
*
|
|
137
|
+
* @param name
|
|
138
|
+
* @param data
|
|
139
|
+
*/
|
|
140
|
+
queueFrameEvent(name: string, data: unknown): void;
|
|
141
|
+
/**
|
|
142
|
+
* Emit all queued frame events
|
|
143
|
+
*
|
|
144
|
+
* @remarks
|
|
145
|
+
* This method should be called after the frame has been rendered to emit
|
|
146
|
+
* all events that were queued during the frame.
|
|
147
|
+
*
|
|
148
|
+
* See {@link queueFrameEvent} for more information.
|
|
149
|
+
*/
|
|
150
|
+
flushFrameEvents(): void;
|
|
151
|
+
calculateFps(): void;
|
|
152
|
+
calculateQuads(): void;
|
|
153
|
+
addQuads(node: CoreNode): void;
|
|
154
|
+
/**
|
|
155
|
+
* Request a render pass without forcing an update
|
|
156
|
+
*/
|
|
157
|
+
requestRender(): void;
|
|
158
|
+
/**
|
|
159
|
+
* Find all nodes at a given point
|
|
160
|
+
* @param data
|
|
161
|
+
*/
|
|
162
|
+
findNodesAtPoint(data: Point): CoreNode[];
|
|
163
|
+
/**
|
|
164
|
+
* Find the top node at a given point
|
|
165
|
+
* @param data
|
|
166
|
+
* @returns
|
|
167
|
+
*/
|
|
168
|
+
getNodeFromPosition(data: Point): CoreNode | null;
|
|
169
|
+
/**
|
|
170
|
+
* Given a font name, and possible renderer override, return the best compatible text renderer.
|
|
171
|
+
*
|
|
172
|
+
* @remarks
|
|
173
|
+
* Will try to return a canvas renderer if no other suitable renderer can be resolved.
|
|
174
|
+
*
|
|
175
|
+
* @param fontFamily
|
|
176
|
+
* @param textRendererOverride
|
|
177
|
+
* @returns
|
|
178
|
+
*/
|
|
179
|
+
resolveTextRenderer(trProps: TrProps, textRendererOverride?: keyof TextRendererMap | null): TextRenderer | null;
|
|
180
|
+
/**
|
|
181
|
+
* Create a shader controller instance
|
|
182
|
+
*
|
|
183
|
+
* @param type
|
|
184
|
+
* @param props
|
|
185
|
+
* @returns
|
|
186
|
+
*/
|
|
187
|
+
createShaderCtr(type: keyof ShaderMap, props: Record<string, unknown>): BaseShaderController;
|
|
188
|
+
createNode(props: Partial<CoreNodeProps>): CoreNode;
|
|
189
|
+
createTextNode(props: Partial<CoreTextNodeProps>): CoreTextNode;
|
|
190
|
+
setBoundsMargin(value: number | [number, number, number, number]): void;
|
|
191
|
+
/**
|
|
192
|
+
* Resolves the default property values for a Node
|
|
193
|
+
*
|
|
194
|
+
* @remarks
|
|
195
|
+
* This method is used internally by the RendererMain to resolve the default
|
|
196
|
+
* property values for a Node. It is exposed publicly so that it can be used
|
|
197
|
+
* by Core Driver implementations.
|
|
198
|
+
*
|
|
199
|
+
* @param props
|
|
200
|
+
* @returns
|
|
201
|
+
*/
|
|
202
|
+
protected resolveNodeDefaults(props: Partial<CoreNodeProps>): CoreNodeProps;
|
|
203
|
+
/**
|
|
204
|
+
* Cleanup Orphaned Textures
|
|
205
|
+
*
|
|
206
|
+
* @remarks
|
|
207
|
+
* This method is used to cleanup orphaned textures that are no longer in use.
|
|
208
|
+
*/
|
|
209
|
+
cleanup(aggressive: boolean): void;
|
|
210
|
+
}
|