@lightningjs/renderer 3.0.0-beta2 → 3.0.0-beta20
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/README.md +16 -26
- package/dist/exports/canvas.d.ts +1 -1
- package/dist/exports/canvas.js +1 -1
- package/dist/exports/canvas.js.map +1 -1
- package/dist/exports/index.d.ts +2 -5
- package/dist/exports/index.js +1 -5
- package/dist/exports/index.js.map +1 -1
- package/dist/exports/utils.d.ts +2 -1
- package/dist/exports/utils.js +2 -1
- package/dist/exports/utils.js.map +1 -1
- package/dist/exports/webgl.d.ts +2 -1
- package/dist/exports/webgl.js +2 -1
- package/dist/exports/webgl.js.map +1 -1
- package/dist/src/common/CommonTypes.d.ts +13 -2
- package/dist/src/core/Autosizer.d.ts +35 -0
- package/dist/src/core/Autosizer.js +196 -0
- package/dist/src/core/Autosizer.js.map +1 -0
- package/dist/src/core/CoreNode.d.ts +73 -95
- package/dist/src/core/CoreNode.js +599 -461
- package/dist/src/core/CoreNode.js.map +1 -1
- package/dist/src/core/CoreShaderManager.d.ts +3 -5
- package/dist/src/core/CoreShaderManager.js.map +1 -1
- package/dist/src/core/CoreTextNode.d.ts +74 -87
- package/dist/src/core/CoreTextNode.js +357 -232
- package/dist/src/core/CoreTextNode.js.map +1 -1
- package/dist/src/core/CoreTextureManager.d.ts +25 -13
- package/dist/src/core/CoreTextureManager.js +80 -104
- package/dist/src/core/CoreTextureManager.js.map +1 -1
- package/dist/src/core/Stage.d.ts +92 -33
- package/dist/src/core/Stage.js +313 -151
- package/dist/src/core/Stage.js.map +1 -1
- package/dist/src/core/TextureError.d.ts +11 -0
- package/dist/src/core/TextureError.js +37 -0
- package/dist/src/core/TextureError.js.map +1 -0
- package/dist/src/core/TextureMemoryManager.d.ts +11 -4
- package/dist/src/core/TextureMemoryManager.js +128 -109
- package/dist/src/core/TextureMemoryManager.js.map +1 -1
- package/dist/src/core/animations/CoreAnimation.d.ts +3 -3
- package/dist/src/core/animations/CoreAnimation.js +8 -3
- package/dist/src/core/animations/CoreAnimation.js.map +1 -1
- package/dist/src/core/animations/CoreAnimationController.d.ts +1 -0
- package/dist/src/core/animations/CoreAnimationController.js +11 -4
- package/dist/src/core/animations/CoreAnimationController.js.map +1 -1
- package/dist/src/core/lib/ImageWorker.js +1 -1
- package/dist/src/core/lib/ImageWorker.js.map +1 -1
- package/dist/src/core/lib/WebGlContextWrapper.d.ts +41 -3
- package/dist/src/core/lib/WebGlContextWrapper.js +104 -27
- package/dist/src/core/lib/WebGlContextWrapper.js.map +1 -1
- package/dist/src/core/lib/collectionUtils.d.ts +5 -0
- package/dist/src/core/lib/collectionUtils.js +100 -0
- package/dist/src/core/lib/collectionUtils.js.map +1 -0
- package/dist/src/core/lib/colorCache.d.ts +1 -0
- package/dist/src/core/lib/colorCache.js +19 -0
- package/dist/src/core/lib/colorCache.js.map +1 -0
- package/dist/src/core/lib/colorParser.d.ts +21 -0
- package/dist/src/core/lib/colorParser.js +72 -0
- package/dist/src/core/lib/colorParser.js.map +1 -0
- package/dist/src/core/lib/textureCompression.d.ts +14 -2
- package/dist/src/core/lib/textureCompression.js +320 -67
- package/dist/src/core/lib/textureCompression.js.map +1 -1
- package/dist/src/core/lib/utils.d.ts +2 -0
- package/dist/src/core/lib/utils.js +22 -0
- package/dist/src/core/lib/utils.js.map +1 -1
- package/dist/src/core/lib/validateImageBitmap.d.ts +2 -1
- package/dist/src/core/lib/validateImageBitmap.js +4 -4
- package/dist/src/core/lib/validateImageBitmap.js.map +1 -1
- package/dist/src/core/platform.js +30 -5
- package/dist/src/core/platform.js.map +1 -1
- package/dist/src/core/platforms/Platform.d.ts +42 -0
- package/dist/src/{main-api/IRenderDriver.js → core/platforms/Platform.js} +4 -2
- package/dist/src/core/platforms/Platform.js.map +1 -0
- package/dist/src/core/platforms/web/WebPlatform.d.ts +10 -0
- package/dist/src/core/platforms/web/WebPlatform.js +87 -0
- package/dist/src/core/platforms/web/WebPlatform.js.map +1 -0
- package/dist/src/core/renderers/CoreContextTexture.d.ts +2 -1
- package/dist/src/core/renderers/CoreContextTexture.js.map +1 -1
- package/dist/src/core/renderers/CoreRenderer.d.ts +7 -2
- package/dist/src/core/renderers/CoreRenderer.js +1 -0
- package/dist/src/core/renderers/CoreRenderer.js.map +1 -1
- package/dist/src/core/renderers/CoreShaderNode.d.ts +8 -1
- package/dist/src/core/renderers/CoreShaderNode.js +11 -0
- package/dist/src/core/renderers/CoreShaderNode.js.map +1 -1
- package/dist/src/core/renderers/canvas/CanvasCoreTexture.d.ts +2 -1
- package/dist/src/core/renderers/canvas/CanvasCoreTexture.js +11 -9
- package/dist/src/core/renderers/canvas/CanvasCoreTexture.js.map +1 -1
- package/dist/src/core/renderers/canvas/CanvasRenderer.d.ts +1 -2
- package/dist/src/core/renderers/canvas/CanvasRenderer.js +32 -59
- package/dist/src/core/renderers/canvas/CanvasRenderer.js.map +1 -1
- package/dist/src/core/renderers/canvas/CanvasShaderNode.js +3 -5
- package/dist/src/core/renderers/canvas/CanvasShaderNode.js.map +1 -1
- package/dist/src/core/renderers/canvas/CanvasTexture.d.ts +3 -2
- package/dist/src/core/renderers/canvas/CanvasTexture.js +17 -13
- package/dist/src/core/renderers/canvas/CanvasTexture.js.map +1 -1
- package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.d.ts +13 -0
- package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js +113 -192
- package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js.map +1 -1
- package/dist/src/core/renderers/canvas/internal/ColorUtils.d.ts +0 -2
- package/dist/src/core/renderers/canvas/internal/ColorUtils.js +0 -14
- package/dist/src/core/renderers/canvas/internal/ColorUtils.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js +3 -0
- package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.d.ts +18 -6
- package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js +86 -41
- package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js +1 -1
- package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js +53 -17
- package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlCoreShader.d.ts +2 -7
- package/dist/src/core/renderers/webgl/WebGlCoreShader.js +21 -50
- package/dist/src/core/renderers/webgl/WebGlCoreShader.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.d.ts +2 -0
- package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js +14 -6
- package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.d.ts +13 -0
- package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.js +34 -5
- package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlCtxTexture.d.ts +16 -6
- package/dist/src/core/renderers/webgl/WebGlCtxTexture.js +95 -49
- package/dist/src/core/renderers/webgl/WebGlCtxTexture.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlRenderOp.d.ts +3 -2
- package/dist/src/core/renderers/webgl/WebGlRenderOp.js +14 -5
- package/dist/src/core/renderers/webgl/WebGlRenderOp.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlRenderer.d.ts +5 -3
- package/dist/src/core/renderers/webgl/WebGlRenderer.js +141 -112
- package/dist/src/core/renderers/webgl/WebGlRenderer.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlShaderNode.js +1 -4
- package/dist/src/core/renderers/webgl/WebGlShaderNode.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlShaderProgram.d.ts +6 -3
- package/dist/src/core/renderers/webgl/WebGlShaderProgram.js +47 -18
- package/dist/src/core/renderers/webgl/WebGlShaderProgram.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/DefaultShader.js +3 -6
- package/dist/src/core/renderers/webgl/shaders/DefaultShader.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js +0 -11
- package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/DynamicShader.js +5 -10
- package/dist/src/core/renderers/webgl/shaders/DynamicShader.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js +5 -10
- package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/SdfShader.js +0 -12
- package/dist/src/core/renderers/webgl/shaders/SdfShader.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js +1 -1
- package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js +1 -1
- package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js +1 -1
- package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js +1 -1
- package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js +5 -5
- package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.js +1 -1
- package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js +24 -19
- package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.d.ts +1 -0
- package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js +32 -5
- package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js +1 -1
- package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js +5 -5
- package/dist/src/core/shaders/canvas/Border.js +5 -5
- package/dist/src/core/shaders/canvas/Border.js.map +1 -1
- package/dist/src/core/shaders/canvas/HolePunch.js +3 -3
- package/dist/src/core/shaders/canvas/HolePunch.js.map +1 -1
- package/dist/src/core/shaders/canvas/LinearGradient.js +7 -5
- package/dist/src/core/shaders/canvas/LinearGradient.js.map +1 -1
- package/dist/src/core/shaders/canvas/RadialGradient.js +14 -12
- package/dist/src/core/shaders/canvas/RadialGradient.js.map +1 -1
- package/dist/src/core/shaders/canvas/Rounded.js +1 -1
- package/dist/src/core/shaders/canvas/Rounded.js.map +1 -1
- package/dist/src/core/shaders/canvas/RoundedWithBorder.js +14 -6
- package/dist/src/core/shaders/canvas/RoundedWithBorder.js.map +1 -1
- package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js +10 -8
- package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js.map +1 -1
- package/dist/src/core/shaders/canvas/RoundedWithShadow.js +7 -5
- package/dist/src/core/shaders/canvas/RoundedWithShadow.js.map +1 -1
- package/dist/src/core/shaders/templates/BorderTemplate.d.ts +2 -2
- package/dist/src/core/shaders/templates/BorderTemplate.js +11 -11
- package/dist/src/core/shaders/templates/BorderTemplate.js.map +1 -1
- package/dist/src/core/shaders/templates/HolePunchTemplate.d.ts +2 -2
- package/dist/src/core/shaders/templates/HolePunchTemplate.js +3 -3
- package/dist/src/core/shaders/templates/HolePunchTemplate.js.map +1 -1
- package/dist/src/core/shaders/templates/RadialGradientTemplate.d.ts +8 -6
- package/dist/src/core/shaders/templates/RadialGradientTemplate.js +2 -2
- package/dist/src/core/shaders/templates/RadialGradientTemplate.js.map +1 -1
- package/dist/src/core/shaders/templates/RoundedTemplate.js +1 -1
- package/dist/src/core/shaders/templates/RoundedTemplate.js.map +1 -1
- package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.d.ts +1 -1
- package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.d.ts +1 -1
- package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.d.ts +1 -1
- package/dist/src/core/shaders/templates/ShadowTemplate.d.ts +1 -1
- package/dist/src/core/shaders/{templates/shaderUtils.d.ts → utils.d.ts} +1 -1
- package/dist/src/core/shaders/{templates/shaderUtils.js → utils.js} +2 -2
- package/dist/src/core/shaders/utils.js.map +1 -0
- package/dist/src/core/shaders/webgl/Border.js +57 -34
- package/dist/src/core/shaders/webgl/Border.js.map +1 -1
- package/dist/src/core/shaders/webgl/Default.js +6 -7
- package/dist/src/core/shaders/webgl/Default.js.map +1 -1
- package/dist/src/core/shaders/webgl/HolePunch.js +4 -3
- package/dist/src/core/shaders/webgl/HolePunch.js.map +1 -1
- package/dist/src/core/shaders/webgl/LinearGradient.js +33 -8
- package/dist/src/core/shaders/webgl/LinearGradient.js.map +1 -1
- package/dist/src/core/shaders/webgl/RadialGradient.js +56 -32
- package/dist/src/core/shaders/webgl/RadialGradient.js.map +1 -1
- package/dist/src/core/shaders/webgl/Rounded.js +4 -2
- package/dist/src/core/shaders/webgl/Rounded.js.map +1 -1
- package/dist/src/core/shaders/webgl/RoundedWithBorder.js +81 -37
- package/dist/src/core/shaders/webgl/RoundedWithBorder.js.map +1 -1
- package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js +93 -42
- package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js.map +1 -1
- package/dist/src/core/shaders/webgl/RoundedWithShadow.js +3 -2
- package/dist/src/core/shaders/webgl/RoundedWithShadow.js.map +1 -1
- package/dist/src/core/shaders/webgl/SdfShader.d.ts +0 -2
- package/dist/src/core/shaders/webgl/SdfShader.js +7 -17
- package/dist/src/core/shaders/webgl/SdfShader.js.map +1 -1
- package/dist/src/core/text-rendering/CanvasFontHandler.d.ts +59 -0
- package/dist/src/core/text-rendering/CanvasFontHandler.js +224 -0
- package/dist/src/core/text-rendering/CanvasFontHandler.js.map +1 -0
- package/dist/src/core/text-rendering/CanvasTextRenderer.d.ts +17 -0
- package/dist/src/core/text-rendering/CanvasTextRenderer.js +157 -0
- package/dist/src/core/text-rendering/CanvasTextRenderer.js.map +1 -0
- package/dist/src/core/text-rendering/SdfFontHandler.d.ts +182 -0
- package/dist/src/core/text-rendering/SdfFontHandler.js +391 -0
- package/dist/src/core/text-rendering/SdfFontHandler.js.map +1 -0
- package/dist/src/core/text-rendering/SdfTextRenderer.d.ts +17 -0
- package/dist/src/core/text-rendering/SdfTextRenderer.js +311 -0
- package/dist/src/core/text-rendering/SdfTextRenderer.js.map +1 -0
- package/dist/src/core/text-rendering/TextLayoutEngine.d.ts +18 -0
- package/dist/src/core/text-rendering/TextLayoutEngine.js +380 -0
- package/dist/src/core/text-rendering/TextLayoutEngine.js.map +1 -0
- package/dist/src/core/text-rendering/TextRenderer.d.ts +383 -0
- package/dist/src/{main-api/ICoreDriver.js → core/text-rendering/TextRenderer.js} +1 -1
- package/dist/src/core/text-rendering/TextRenderer.js.map +1 -0
- package/dist/src/core/text-rendering/TextTextureRendererUtils.js.map +1 -1
- package/dist/src/core/text-rendering/Utils.d.ts +30 -0
- package/dist/src/core/text-rendering/Utils.js +84 -0
- package/dist/src/core/text-rendering/Utils.js.map +1 -0
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js +2 -2
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js.map +1 -1
- package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.d.ts +0 -6
- package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js.map +1 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.d.ts +3 -2
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js +35 -38
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js.map +1 -1
- package/dist/src/core/text-rendering/renderers/TextRenderer.d.ts +4 -1
- package/dist/src/core/text-rendering/renderers/TextRenderer.js.map +1 -1
- package/dist/src/core/textures/ColorTexture.d.ts +1 -1
- package/dist/src/core/textures/ColorTexture.js +3 -4
- package/dist/src/core/textures/ColorTexture.js.map +1 -1
- package/dist/src/core/textures/ImageTexture.d.ts +11 -4
- package/dist/src/core/textures/ImageTexture.js +31 -40
- package/dist/src/core/textures/ImageTexture.js.map +1 -1
- package/dist/src/core/textures/NoiseTexture.d.ts +3 -3
- package/dist/src/core/textures/NoiseTexture.js +8 -8
- package/dist/src/core/textures/NoiseTexture.js.map +1 -1
- package/dist/src/core/textures/RenderTexture.d.ts +7 -7
- package/dist/src/core/textures/RenderTexture.js +12 -12
- package/dist/src/core/textures/RenderTexture.js.map +1 -1
- package/dist/src/core/textures/SubTexture.d.ts +6 -8
- package/dist/src/core/textures/SubTexture.js +19 -37
- package/dist/src/core/textures/SubTexture.js.map +1 -1
- package/dist/src/core/textures/Texture.d.ts +87 -10
- package/dist/src/core/textures/Texture.js +160 -17
- package/dist/src/core/textures/Texture.js.map +1 -1
- package/dist/src/core/utils.d.ts +3 -2
- package/dist/src/core/utils.js +1 -1
- package/dist/src/core/utils.js.map +1 -1
- package/dist/src/main-api/INode.d.ts +2 -2
- package/dist/src/main-api/Inspector.d.ts +130 -1
- package/dist/src/main-api/Inspector.js +341 -27
- package/dist/src/main-api/Inspector.js.map +1 -1
- package/dist/src/main-api/Renderer.d.ts +285 -82
- package/dist/src/main-api/Renderer.js +221 -76
- package/dist/src/main-api/Renderer.js.map +1 -1
- package/dist/src/utils.d.ts +1 -6
- package/dist/src/utils.js +2 -9
- package/dist/src/utils.js.map +1 -1
- package/dist/tsconfig.dist.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/exports/canvas.ts +1 -1
- package/exports/index.ts +2 -8
- package/exports/utils.ts +7 -1
- package/exports/webgl.ts +3 -1
- package/package.json +15 -17
- package/src/common/CommonTypes.ts +18 -2
- package/src/core/CoreNode.test.ts +63 -15
- package/src/core/CoreNode.ts +709 -582
- package/src/core/CoreShaderManager.ts +5 -10
- package/src/core/CoreTextNode.ts +424 -286
- package/src/core/CoreTextureManager.ts +110 -130
- package/src/core/Stage.ts +394 -195
- package/src/core/TextureError.ts +46 -0
- package/src/core/TextureMemoryManager.ts +164 -141
- package/src/core/animations/CoreAnimation.ts +15 -9
- package/src/core/animations/CoreAnimationController.ts +13 -4
- package/src/core/lib/ImageWorker.ts +7 -1
- package/src/core/lib/WebGlContextWrapper.ts +126 -78
- package/src/core/lib/collectionUtils.ts +118 -0
- package/src/core/lib/colorCache.ts +20 -0
- package/src/core/{renderers/canvas/internal/ColorUtils.ts → lib/colorParser.ts} +2 -2
- package/src/core/lib/textureCompression.ts +433 -75
- package/src/core/lib/utils.ts +26 -0
- package/src/core/lib/validateImageBitmap.ts +17 -6
- package/src/core/platforms/Platform.ts +83 -0
- package/src/core/platforms/web/WebPlatform.ts +132 -0
- package/src/core/renderers/CoreContextTexture.ts +2 -1
- package/src/core/renderers/CoreRenderer.ts +7 -3
- package/src/core/renderers/CoreShaderNode.ts +18 -3
- package/src/core/renderers/canvas/CanvasRenderer.ts +48 -82
- package/src/core/renderers/canvas/CanvasShaderNode.ts +3 -6
- package/src/core/renderers/canvas/CanvasTexture.ts +22 -18
- package/src/core/renderers/webgl/WebGlCtxRenderTexture.ts +18 -15
- package/src/core/renderers/webgl/WebGlCtxSubTexture.ts +50 -5
- package/src/core/renderers/webgl/WebGlCtxTexture.ts +124 -81
- package/src/core/renderers/webgl/WebGlRenderOp.ts +21 -12
- package/src/core/renderers/webgl/WebGlRenderer.ts +172 -137
- package/src/core/renderers/webgl/WebGlShaderNode.ts +2 -4
- package/src/core/renderers/webgl/WebGlShaderProgram.ts +58 -20
- package/src/core/shaders/canvas/Border.ts +5 -8
- package/src/core/shaders/canvas/HolePunch.ts +4 -11
- package/src/core/shaders/canvas/LinearGradient.ts +10 -8
- package/src/core/shaders/canvas/RadialGradient.ts +23 -37
- package/src/core/shaders/canvas/Rounded.ts +2 -2
- package/src/core/shaders/canvas/RoundedWithBorder.ts +20 -16
- package/src/core/shaders/canvas/RoundedWithBorderAndShadow.ts +17 -17
- package/src/core/shaders/canvas/RoundedWithShadow.ts +10 -9
- package/src/core/shaders/templates/BorderTemplate.ts +12 -12
- package/src/core/shaders/templates/HolePunchTemplate.ts +5 -5
- package/src/core/shaders/templates/RadialGradientTemplate.ts +10 -8
- package/src/core/shaders/templates/RoundedTemplate.ts +1 -1
- package/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.ts +1 -1
- package/src/core/shaders/templates/RoundedWithBorderTemplate.ts +1 -1
- package/src/core/shaders/templates/RoundedWithShadowTemplate.ts +1 -1
- package/src/core/shaders/templates/ShadowTemplate.ts +1 -1
- package/src/core/shaders/{templates/shaderUtils.ts → utils.ts} +2 -3
- package/src/core/shaders/webgl/Border.ts +57 -37
- package/src/core/shaders/webgl/Default.ts +6 -7
- package/src/core/shaders/webgl/HolePunch.ts +4 -7
- package/src/core/shaders/webgl/LinearGradient.ts +33 -8
- package/src/core/shaders/webgl/RadialGradient.ts +58 -34
- package/src/core/shaders/webgl/Rounded.ts +4 -6
- package/src/core/shaders/webgl/RoundedWithBorder.ts +82 -44
- package/src/core/shaders/webgl/RoundedWithBorderAndShadow.ts +93 -50
- package/src/core/shaders/webgl/RoundedWithShadow.ts +3 -6
- package/src/core/shaders/webgl/SdfShader.ts +7 -19
- package/src/core/text-rendering/CanvasFontHandler.ts +304 -0
- package/src/core/text-rendering/CanvasTextRenderer.ts +255 -0
- package/src/core/text-rendering/SdfFontHandler.ts +591 -0
- package/src/core/text-rendering/SdfTextRenderer.ts +411 -0
- package/src/core/text-rendering/TextLayoutEngine.ts +672 -0
- package/src/core/text-rendering/TextRenderer.ts +444 -0
- package/src/core/text-rendering/Utils.ts +99 -0
- package/src/core/text-rendering/tests/TextLayoutEngine.test.ts +453 -0
- package/src/core/textures/ColorTexture.ts +7 -5
- package/src/core/textures/ImageTexture.ts +78 -66
- package/src/core/textures/NoiseTexture.ts +14 -12
- package/src/core/textures/RenderTexture.ts +18 -16
- package/src/core/textures/SubTexture.ts +25 -46
- package/src/core/textures/Texture.ts +207 -24
- package/src/core/utils.ts +9 -7
- package/src/main-api/INode.ts +4 -3
- package/src/main-api/Inspector.ts +571 -33
- package/src/main-api/Renderer.ts +505 -139
- package/src/utils.ts +10 -10
- package/dist/exports/core-api.d.ts +0 -74
- package/dist/exports/core-api.js +0 -96
- package/dist/exports/core-api.js.map +0 -1
- package/dist/exports/main-api.d.ts +0 -30
- package/dist/exports/main-api.js +0 -45
- package/dist/exports/main-api.js.map +0 -1
- package/dist/src/core/CoreExtension.d.ts +0 -12
- package/dist/src/core/CoreExtension.js +0 -29
- package/dist/src/core/CoreExtension.js.map +0 -1
- package/dist/src/core/CoreStuff.d.ts +0 -1
- package/dist/src/core/CoreStuff.js +0 -138
- package/dist/src/core/CoreStuff.js.map +0 -1
- package/dist/src/core/CoreTexturizer.d.ts +0 -14
- package/dist/src/core/CoreTexturizer.js +0 -47
- package/dist/src/core/CoreTexturizer.js.map +0 -1
- package/dist/src/core/LngNode.d.ts +0 -736
- package/dist/src/core/LngNode.js +0 -1174
- package/dist/src/core/LngNode.js.map +0 -1
- package/dist/src/core/Matrix2DContext.d.ts +0 -15
- package/dist/src/core/Matrix2DContext.js +0 -45
- package/dist/src/core/Matrix2DContext.js.map +0 -1
- package/dist/src/core/ShaderNode.d.ts +0 -10
- package/dist/src/core/ShaderNode.js +0 -30
- package/dist/src/core/ShaderNode.js.map +0 -1
- package/dist/src/core/TextNode.d.ts +0 -103
- package/dist/src/core/TextNode.js +0 -331
- package/dist/src/core/TextNode.js.map +0 -1
- package/dist/src/core/lib/Coords.d.ts +0 -14
- package/dist/src/core/lib/Coords.js +0 -55
- package/dist/src/core/lib/Coords.js.map +0 -1
- package/dist/src/core/lib/glm/common.d.ts +0 -162
- package/dist/src/core/lib/glm/common.js +0 -81
- package/dist/src/core/lib/glm/common.js.map +0 -1
- package/dist/src/core/lib/glm/index.d.ts +0 -11
- package/dist/src/core/lib/glm/index.js +0 -30
- package/dist/src/core/lib/glm/index.js.map +0 -1
- package/dist/src/core/lib/glm/mat2.d.ts +0 -219
- package/dist/src/core/lib/glm/mat2.js +0 -396
- package/dist/src/core/lib/glm/mat2.js.map +0 -1
- package/dist/src/core/lib/glm/mat2d.d.ts +0 -237
- package/dist/src/core/lib/glm/mat2d.js +0 -442
- package/dist/src/core/lib/glm/mat2d.js.map +0 -1
- package/dist/src/core/lib/glm/mat3.d.ts +0 -283
- package/dist/src/core/lib/glm/mat3.js +0 -680
- package/dist/src/core/lib/glm/mat3.js.map +0 -1
- package/dist/src/core/lib/glm/mat4.d.ts +0 -550
- package/dist/src/core/lib/glm/mat4.js +0 -1802
- package/dist/src/core/lib/glm/mat4.js.map +0 -1
- package/dist/src/core/lib/glm/quat.d.ts +0 -363
- package/dist/src/core/lib/glm/quat.js +0 -693
- package/dist/src/core/lib/glm/quat.js.map +0 -1
- package/dist/src/core/lib/glm/quat2.d.ts +0 -356
- package/dist/src/core/lib/glm/quat2.js +0 -754
- package/dist/src/core/lib/glm/quat2.js.map +0 -1
- package/dist/src/core/lib/glm/vec2.d.ts +0 -365
- package/dist/src/core/lib/glm/vec2.js +0 -569
- package/dist/src/core/lib/glm/vec2.js.map +0 -1
- package/dist/src/core/lib/glm/vec3.d.ts +0 -406
- package/dist/src/core/lib/glm/vec3.js +0 -720
- package/dist/src/core/lib/glm/vec3.js.map +0 -1
- package/dist/src/core/lib/glm/vec4.d.ts +0 -330
- package/dist/src/core/lib/glm/vec4.js +0 -608
- package/dist/src/core/lib/glm/vec4.js.map +0 -1
- package/dist/src/core/renderers/CoreShaderManager.d.ts +0 -19
- package/dist/src/core/renderers/CoreShaderManager.js +0 -33
- package/dist/src/core/renderers/CoreShaderManager.js.map +0 -1
- package/dist/src/core/renderers/webgl/WebGlCoreShaderManager.d.ts +0 -27
- package/dist/src/core/renderers/webgl/WebGlCoreShaderManager.js +0 -82
- package/dist/src/core/renderers/webgl/WebGlCoreShaderManager.js.map +0 -1
- package/dist/src/core/renderers/webgl/WebGlCoreShaderProgram.d.ts +0 -11
- package/dist/src/core/renderers/webgl/WebGlCoreShaderProgram.js +0 -34
- package/dist/src/core/renderers/webgl/WebGlCoreShaderProgram.js.map +0 -1
- package/dist/src/core/scene/Scene.d.ts +0 -59
- package/dist/src/core/scene/Scene.js +0 -106
- package/dist/src/core/scene/Scene.js.map +0 -1
- package/dist/src/core/shaders/templates/shaderUtils.js.map +0 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.d.ts +0 -20
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.js +0 -55
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.js.map +0 -1
- package/dist/src/main-api/ICoreDriver.d.ts +0 -27
- package/dist/src/main-api/ICoreDriver.js.map +0 -1
- package/dist/src/main-api/IRenderDriver.d.ts +0 -20
- package/dist/src/main-api/IRenderDriver.js.map +0 -1
- package/dist/src/main-api/IShaderController.d.ts +0 -14
- package/dist/src/main-api/IShaderController.js +0 -30
- package/dist/src/main-api/IShaderController.js.map +0 -1
- package/dist/src/main-api/IShaderNode.d.ts +0 -17
- package/dist/src/main-api/IShaderNode.js +0 -19
- package/dist/src/main-api/IShaderNode.js.map +0 -1
- package/dist/src/main-api/RendererMain.d.ts +0 -375
- package/dist/src/main-api/RendererMain.js +0 -365
- package/dist/src/main-api/RendererMain.js.map +0 -1
- package/dist/src/main-api/texture-usage-trackers/FinalizationRegistryTextureUsageTracker.d.ts +0 -9
- package/dist/src/main-api/texture-usage-trackers/FinalizationRegistryTextureUsageTracker.js +0 -38
- package/dist/src/main-api/texture-usage-trackers/FinalizationRegistryTextureUsageTracker.js.map +0 -1
- package/dist/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.d.ts +0 -56
- package/dist/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.js +0 -101
- package/dist/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.js.map +0 -1
- package/dist/src/main-api/texture-usage-trackers/TextureUsageTracker.d.ts +0 -32
- package/dist/src/main-api/texture-usage-trackers/TextureUsageTracker.js +0 -28
- package/dist/src/main-api/texture-usage-trackers/TextureUsageTracker.js.map +0 -1
- package/dist/src/render-drivers/main/MainCoreDriver.d.ts +0 -24
- package/dist/src/render-drivers/main/MainCoreDriver.js +0 -118
- package/dist/src/render-drivers/main/MainCoreDriver.js.map +0 -1
- package/dist/src/render-drivers/main/MainOnlyNode.d.ts +0 -99
- package/dist/src/render-drivers/main/MainOnlyNode.js +0 -396
- package/dist/src/render-drivers/main/MainOnlyNode.js.map +0 -1
- package/dist/src/render-drivers/main/MainOnlyShaderController.d.ts +0 -6
- package/dist/src/render-drivers/main/MainOnlyShaderController.js +0 -15
- package/dist/src/render-drivers/main/MainOnlyShaderController.js.map +0 -1
- package/dist/src/render-drivers/main/MainOnlyShaderNode.d.ts +0 -7
- package/dist/src/render-drivers/main/MainOnlyShaderNode.js +0 -34
- package/dist/src/render-drivers/main/MainOnlyShaderNode.js.map +0 -1
- package/dist/src/render-drivers/main/MainOnlyTextNode.d.ts +0 -47
- package/dist/src/render-drivers/main/MainOnlyTextNode.js +0 -205
- package/dist/src/render-drivers/main/MainOnlyTextNode.js.map +0 -1
- package/dist/src/render-drivers/main/MainRenderDriver.d.ts +0 -17
- package/dist/src/render-drivers/main/MainRenderDriver.js +0 -88
- package/dist/src/render-drivers/main/MainRenderDriver.js.map +0 -1
- package/dist/src/render-drivers/threadx/NodeStruct.d.ts +0 -90
- package/dist/src/render-drivers/threadx/NodeStruct.js +0 -281
- package/dist/src/render-drivers/threadx/NodeStruct.js.map +0 -1
- package/dist/src/render-drivers/threadx/SharedNode.d.ts +0 -39
- package/dist/src/render-drivers/threadx/SharedNode.js +0 -60
- package/dist/src/render-drivers/threadx/SharedNode.js.map +0 -1
- package/dist/src/render-drivers/threadx/TextNodeStruct.d.ts +0 -44
- package/dist/src/render-drivers/threadx/TextNodeStruct.js +0 -201
- package/dist/src/render-drivers/threadx/TextNodeStruct.js.map +0 -1
- package/dist/src/render-drivers/threadx/ThreadXCoreDriver.d.ts +0 -28
- package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js +0 -234
- package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js.map +0 -1
- package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.d.ts +0 -20
- package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.js +0 -84
- package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.js.map +0 -1
- package/dist/src/render-drivers/threadx/ThreadXMainNode.d.ts +0 -44
- package/dist/src/render-drivers/threadx/ThreadXMainNode.js +0 -154
- package/dist/src/render-drivers/threadx/ThreadXMainNode.js.map +0 -1
- package/dist/src/render-drivers/threadx/ThreadXMainShaderController.d.ts +0 -6
- package/dist/src/render-drivers/threadx/ThreadXMainShaderController.js +0 -16
- package/dist/src/render-drivers/threadx/ThreadXMainShaderController.js.map +0 -1
- package/dist/src/render-drivers/threadx/ThreadXMainShaderNode.d.ts +0 -7
- package/dist/src/render-drivers/threadx/ThreadXMainShaderNode.js +0 -15
- package/dist/src/render-drivers/threadx/ThreadXMainShaderNode.js.map +0 -1
- package/dist/src/render-drivers/threadx/ThreadXMainTextNode.d.ts +0 -28
- package/dist/src/render-drivers/threadx/ThreadXMainTextNode.js +0 -55
- package/dist/src/render-drivers/threadx/ThreadXMainTextNode.js.map +0 -1
- package/dist/src/render-drivers/threadx/ThreadXRenderDriver.d.ts +0 -21
- package/dist/src/render-drivers/threadx/ThreadXRenderDriver.js +0 -198
- package/dist/src/render-drivers/threadx/ThreadXRenderDriver.js.map +0 -1
- package/dist/src/render-drivers/threadx/ThreadXRendererMessage.d.ts +0 -70
- package/dist/src/render-drivers/threadx/ThreadXRendererMessage.js +0 -32
- package/dist/src/render-drivers/threadx/ThreadXRendererMessage.js.map +0 -1
- package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.d.ts +0 -19
- package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.js +0 -177
- package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.js.map +0 -1
- package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.d.ts +0 -27
- package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.js +0 -108
- package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.js.map +0 -1
- package/dist/src/render-drivers/threadx/worker/renderer.d.ts +0 -1
- package/dist/src/render-drivers/threadx/worker/renderer.js +0 -145
- package/dist/src/render-drivers/threadx/worker/renderer.js.map +0 -1
- package/dist/src/render-drivers/utils.d.ts +0 -12
- package/dist/src/render-drivers/utils.js +0 -69
- package/dist/src/render-drivers/utils.js.map +0 -1
- package/scripts/please-use-pnpm.js +0 -13
- package/src/core/platform.ts +0 -64
- package/src/core/renderers/canvas/internal/C2DShaderUtils.ts +0 -220
- package/src/core/text-rendering/TextRenderingUtils.ts +0 -36
- package/src/core/text-rendering/TextTextureRendererUtils.ts +0 -263
- package/src/core/text-rendering/TrFontManager.ts +0 -183
- package/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.ts +0 -176
- package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.ts +0 -139
- package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.test.ts +0 -173
- package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.ts +0 -171
- package/src/core/text-rendering/font-face-types/TrFontFace.ts +0 -187
- package/src/core/text-rendering/font-face-types/WebTrFontFace.ts +0 -94
- package/src/core/text-rendering/font-face-types/utils.ts +0 -39
- package/src/core/text-rendering/renderers/CanvasTextRenderer.ts +0 -509
- package/src/core/text-rendering/renderers/LightningTextTextureRenderer.ts +0 -815
- package/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.ts +0 -840
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.test.ts +0 -48
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.ts +0 -66
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.ts +0 -52
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.ts +0 -32
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.ts +0 -117
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.test.ts +0 -133
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.ts +0 -38
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.ts +0 -408
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.test.ts +0 -49
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.ts +0 -52
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.test.ts +0 -205
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.ts +0 -93
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.ts +0 -40
- package/src/core/text-rendering/renderers/TextRenderer.ts +0 -550
|
@@ -1,40 +1,155 @@
|
|
|
1
1
|
import type { ExtractProps, TextureMap } from '../core/CoreTextureManager.js';
|
|
2
2
|
import { EventEmitter } from '../common/EventEmitter.js';
|
|
3
|
-
import { Stage } from '../core/Stage.js';
|
|
3
|
+
import { Stage, type StageOptions } from '../core/Stage.js';
|
|
4
4
|
import { CoreNode } from '../core/CoreNode.js';
|
|
5
5
|
import type { INode, INodeProps, ITextNode, ITextNodeProps } from './INode.js';
|
|
6
6
|
import type { TextureMemoryManagerSettings } from '../core/TextureMemoryManager.js';
|
|
7
|
-
import type {
|
|
8
|
-
import type { SdfTextRenderer } from '../core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js';
|
|
9
|
-
import type { WebGlRenderer } from '../core/renderers/webgl/WebGlRenderer.js';
|
|
7
|
+
import type { TextRenderer } from '../core/text-rendering/TextRenderer.js';
|
|
10
8
|
import type { CanvasRenderer } from '../core/renderers/canvas/CanvasRenderer.js';
|
|
11
|
-
import type {
|
|
9
|
+
import type { WebGlRenderer } from '../core/renderers/webgl/WebGlRenderer.js';
|
|
10
|
+
import type { Inspector, InspectorOptions } from './Inspector.js';
|
|
12
11
|
import type { CoreShaderNode } from '../core/renderers/CoreShaderNode.js';
|
|
13
12
|
import type { ExtractShaderProps, OptionalShaderProps, ShaderMap } from '../core/CoreShaderManager.js';
|
|
13
|
+
import { Platform } from '../core/platforms/Platform.js';
|
|
14
14
|
/**
|
|
15
|
-
*
|
|
15
|
+
* FPS Update Event Data
|
|
16
|
+
*
|
|
17
|
+
* @category Events
|
|
18
|
+
* @example
|
|
19
|
+
* ```typescript
|
|
20
|
+
* renderer.on('fpsUpdate', (data) => {
|
|
21
|
+
* console.log(`Current FPS: ${data.fps}`);
|
|
22
|
+
* if (data.contextSpyData) {
|
|
23
|
+
* console.log('WebGL calls:', data.contextSpyData);
|
|
24
|
+
* }
|
|
25
|
+
* });
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export interface RendererMainFpsUpdateEvent {
|
|
29
|
+
/** Current frames per second */
|
|
30
|
+
fps: number;
|
|
31
|
+
/** Context spy data (if enabled) - contains WebGL call statistics */
|
|
32
|
+
contextSpyData?: unknown;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Frame Tick Event Data
|
|
36
|
+
*
|
|
37
|
+
* @category Events
|
|
38
|
+
* @example
|
|
39
|
+
* ```typescript
|
|
40
|
+
* renderer.on('frameTick', (data) => {
|
|
41
|
+
* console.log(`Frame time: ${data.time}ms, delta: ${data.delta}ms`);
|
|
42
|
+
* });
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
export interface RendererMainFrameTickEvent {
|
|
46
|
+
/** Current timestamp */
|
|
47
|
+
time: number;
|
|
48
|
+
/** Time delta since last frame */
|
|
49
|
+
delta: number;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Quads Update Event Data
|
|
53
|
+
*
|
|
54
|
+
* @category Events
|
|
55
|
+
* @example
|
|
56
|
+
* ```typescript
|
|
57
|
+
* renderer.on('quadsUpdate', (data) => {
|
|
58
|
+
* console.log(`Rendered quads: ${data.quads}`);
|
|
59
|
+
* });
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
62
|
+
export interface RendererMainQuadsUpdateEvent {
|
|
63
|
+
/** Number of rendered quads */
|
|
64
|
+
quads: number;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Idle Event Data
|
|
68
|
+
*
|
|
69
|
+
* @category Events
|
|
70
|
+
* @remarks
|
|
71
|
+
* This event is emitted when the renderer has no scene updates to process.
|
|
72
|
+
* The event has no payload - use this for performance optimizations during idle periods.
|
|
73
|
+
*
|
|
74
|
+
* @example
|
|
75
|
+
* ```typescript
|
|
76
|
+
* renderer.on('idle', () => {
|
|
77
|
+
* // Renderer is idle - perfect time for cleanup, analytics, etc.
|
|
78
|
+
* console.log('Renderer is idle - no scene changes');
|
|
79
|
+
*
|
|
80
|
+
* // Example: Perform background tasks
|
|
81
|
+
* performBackgroundCleanup();
|
|
82
|
+
* sendAnalytics();
|
|
83
|
+
* });
|
|
84
|
+
* ```
|
|
85
|
+
*/
|
|
86
|
+
export interface RendererMainIdleEvent {
|
|
87
|
+
/** This event has no payload - listen without parameters */
|
|
88
|
+
readonly __eventHasNoPayload?: never;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Critical Cleanup Event Data
|
|
92
|
+
*
|
|
93
|
+
* @category Events
|
|
94
|
+
* @example
|
|
95
|
+
* ```typescript
|
|
96
|
+
* renderer.on('criticalCleanup', (data) => {
|
|
97
|
+
* console.log(`Memory cleanup triggered!`);
|
|
98
|
+
* console.log(`Memory used: ${data.memUsed} bytes`);
|
|
99
|
+
* console.log(`Critical threshold: ${data.criticalThreshold} bytes`);
|
|
100
|
+
* });
|
|
101
|
+
* ```
|
|
102
|
+
*/
|
|
103
|
+
export interface RendererMainCriticalCleanupEvent {
|
|
104
|
+
/** Memory used before cleanup (bytes) */
|
|
105
|
+
memUsed: number;
|
|
106
|
+
/** Critical threshold (bytes) */
|
|
107
|
+
criticalThreshold: number;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Critical Cleanup Failed Event Data
|
|
111
|
+
*
|
|
112
|
+
* @category Events
|
|
113
|
+
* @example
|
|
114
|
+
* ```typescript
|
|
115
|
+
* renderer.on('criticalCleanupFailed', (data) => {
|
|
116
|
+
* console.warn(`Memory cleanup failed!`);
|
|
117
|
+
* console.log(`Memory still used: ${data.memUsed} bytes`);
|
|
118
|
+
* console.log(`Critical threshold: ${data.criticalThreshold} bytes`);
|
|
119
|
+
* // Consider reducing texture usage or forcing cleanup
|
|
120
|
+
* });
|
|
121
|
+
* ```
|
|
16
122
|
*/
|
|
17
|
-
export interface
|
|
123
|
+
export interface RendererMainCriticalCleanupFailedEvent {
|
|
124
|
+
/** Memory used after cleanup (bytes) */
|
|
125
|
+
memUsed: number;
|
|
126
|
+
/** Critical threshold (bytes) */
|
|
127
|
+
criticalThreshold: number;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Settings for the Renderer that can be updated during runtime.
|
|
131
|
+
*/
|
|
132
|
+
export interface RendererRuntimeSettings {
|
|
18
133
|
/**
|
|
19
134
|
* Authored logical pixel width of the application
|
|
20
135
|
*
|
|
21
136
|
* @defaultValue `1920`
|
|
22
137
|
*/
|
|
23
|
-
appWidth
|
|
138
|
+
appWidth: number;
|
|
24
139
|
/**
|
|
25
140
|
* Authored logical pixel height of the application
|
|
26
141
|
*
|
|
27
142
|
* @defaultValue `1080`
|
|
28
143
|
*/
|
|
29
|
-
appHeight
|
|
144
|
+
appHeight: number;
|
|
30
145
|
/**
|
|
31
146
|
* Texture Memory Manager Settings
|
|
32
147
|
*/
|
|
33
|
-
textureMemory
|
|
148
|
+
textureMemory: Partial<TextureMemoryManagerSettings>;
|
|
34
149
|
/**
|
|
35
150
|
* Bounds margin to extend the boundary in which a Node is added as Quad.
|
|
36
151
|
*/
|
|
37
|
-
boundsMargin
|
|
152
|
+
boundsMargin: number | [number, number, number, number];
|
|
38
153
|
/**
|
|
39
154
|
* Factor to convert app-authored logical coorindates to device logical coordinates
|
|
40
155
|
*
|
|
@@ -50,7 +165,7 @@ export interface RendererMainSettings {
|
|
|
50
165
|
*
|
|
51
166
|
* @defaultValue `1`
|
|
52
167
|
*/
|
|
53
|
-
deviceLogicalPixelRatio
|
|
168
|
+
deviceLogicalPixelRatio: number;
|
|
54
169
|
/**
|
|
55
170
|
* Factor to convert device logical coordinates to device physical coordinates
|
|
56
171
|
*
|
|
@@ -66,13 +181,13 @@ export interface RendererMainSettings {
|
|
|
66
181
|
*
|
|
67
182
|
* @defaultValue `window.devicePixelRatio`
|
|
68
183
|
*/
|
|
69
|
-
devicePhysicalPixelRatio
|
|
184
|
+
devicePhysicalPixelRatio: number;
|
|
70
185
|
/**
|
|
71
186
|
* RGBA encoded number of the background to use
|
|
72
187
|
*
|
|
73
188
|
* @defaultValue `0x00000000`
|
|
74
189
|
*/
|
|
75
|
-
clearColor
|
|
190
|
+
clearColor: number;
|
|
76
191
|
/**
|
|
77
192
|
* Interval in milliseconds to receive FPS updates
|
|
78
193
|
*
|
|
@@ -81,7 +196,55 @@ export interface RendererMainSettings {
|
|
|
81
196
|
*
|
|
82
197
|
* @defaultValue `0` (disabled)
|
|
83
198
|
*/
|
|
84
|
-
fpsUpdateInterval
|
|
199
|
+
fpsUpdateInterval: number;
|
|
200
|
+
/**
|
|
201
|
+
* DOM Inspector
|
|
202
|
+
*
|
|
203
|
+
* @remarks
|
|
204
|
+
* The inspector will replicate the state of the Nodes created
|
|
205
|
+
* in the renderer and allow inspection of the state of the nodes.
|
|
206
|
+
*
|
|
207
|
+
*/
|
|
208
|
+
inspector: typeof Inspector | false;
|
|
209
|
+
/**
|
|
210
|
+
* Inspector Options
|
|
211
|
+
*
|
|
212
|
+
* @remarks
|
|
213
|
+
* Configuration options for the Inspector's performance monitoring features.
|
|
214
|
+
* Only used when inspector is enabled.
|
|
215
|
+
*/
|
|
216
|
+
inspectorOptions?: Partial<InspectorOptions>;
|
|
217
|
+
/**
|
|
218
|
+
* Texture Processing Limit (in milliseconds)
|
|
219
|
+
*
|
|
220
|
+
* @remarks
|
|
221
|
+
* The maximum amount of time the renderer is allowed to process textures in a
|
|
222
|
+
* single frame. If the processing time exceeds this limit, the renderer will
|
|
223
|
+
* skip processing the remaining textures and continue rendering the frame.
|
|
224
|
+
*
|
|
225
|
+
* @defaultValue `10`
|
|
226
|
+
*/
|
|
227
|
+
textureProcessingTimeLimit: number;
|
|
228
|
+
/**
|
|
229
|
+
* Target FPS for the global render loop
|
|
230
|
+
*
|
|
231
|
+
* @remarks
|
|
232
|
+
* Controls the maximum frame rate of the entire rendering system.
|
|
233
|
+
* When set to 0, no throttling is applied (use display refresh rate).
|
|
234
|
+
* When set to a positive number, the global requestAnimationFrame loop
|
|
235
|
+
* will be throttled to this target FPS, affecting all animations and rendering.
|
|
236
|
+
*
|
|
237
|
+
* This provides global performance control for the entire application,
|
|
238
|
+
* useful for managing performance on lower-end devices.
|
|
239
|
+
*
|
|
240
|
+
* @defaultValue `0` (no throttling, use display refresh rate)
|
|
241
|
+
*/
|
|
242
|
+
targetFPS: number;
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Configuration settings for {@link RendererMain}
|
|
246
|
+
*/
|
|
247
|
+
export type RendererMainSettings = RendererRuntimeSettings & {
|
|
85
248
|
/**
|
|
86
249
|
* Include context call (i.e. WebGL) information in FPS updates
|
|
87
250
|
*
|
|
@@ -95,7 +258,7 @@ export interface RendererMainSettings {
|
|
|
95
258
|
*
|
|
96
259
|
* @defaultValue `false` (disabled)
|
|
97
260
|
*/
|
|
98
|
-
enableContextSpy
|
|
261
|
+
enableContextSpy: boolean;
|
|
99
262
|
/**
|
|
100
263
|
* Number or Image Workers to use
|
|
101
264
|
*
|
|
@@ -106,16 +269,7 @@ export interface RendererMainSettings {
|
|
|
106
269
|
*
|
|
107
270
|
* @defaultValue `2`
|
|
108
271
|
*/
|
|
109
|
-
numImageWorkers
|
|
110
|
-
/**
|
|
111
|
-
* DOM Inspector
|
|
112
|
-
*
|
|
113
|
-
* @remarks
|
|
114
|
-
* The inspector will replicate the state of the Nodes created
|
|
115
|
-
* in the renderer and allow inspection of the state of the nodes.
|
|
116
|
-
*
|
|
117
|
-
*/
|
|
118
|
-
inspector?: typeof Inspector | false;
|
|
272
|
+
numImageWorkers: number;
|
|
119
273
|
/**
|
|
120
274
|
* Renderer Engine
|
|
121
275
|
*
|
|
@@ -135,7 +289,7 @@ export interface RendererMainSettings {
|
|
|
135
289
|
*
|
|
136
290
|
* @defaultValue 4 * 1024 * 1024
|
|
137
291
|
*/
|
|
138
|
-
quadBufferSize
|
|
292
|
+
quadBufferSize: number;
|
|
139
293
|
/**
|
|
140
294
|
* Font Engines
|
|
141
295
|
*
|
|
@@ -164,7 +318,7 @@ export interface RendererMainSettings {
|
|
|
164
318
|
*
|
|
165
319
|
*
|
|
166
320
|
*/
|
|
167
|
-
fontEngines:
|
|
321
|
+
fontEngines: TextRenderer[];
|
|
168
322
|
/**
|
|
169
323
|
* Force WebGL2
|
|
170
324
|
*
|
|
@@ -174,28 +328,7 @@ export interface RendererMainSettings {
|
|
|
174
328
|
*
|
|
175
329
|
* @defaultValue `false`
|
|
176
330
|
*/
|
|
177
|
-
forceWebGL2
|
|
178
|
-
/**
|
|
179
|
-
* Enable strictBounds
|
|
180
|
-
*
|
|
181
|
-
* @remarks
|
|
182
|
-
* Enable strict bounds for the renderer. This will ensure that the renderer
|
|
183
|
-
* will not render outside the bounds of the canvas.
|
|
184
|
-
*
|
|
185
|
-
* @defaultValue `true`
|
|
186
|
-
*/
|
|
187
|
-
strictBounds?: boolean;
|
|
188
|
-
/**
|
|
189
|
-
* Texture Processing Limit (in milliseconds)
|
|
190
|
-
*
|
|
191
|
-
* @remarks
|
|
192
|
-
* The maximum amount of time the renderer is allowed to process textures in a
|
|
193
|
-
* single frame. If the processing time exceeds this limit, the renderer will
|
|
194
|
-
* skip processing the remaining textures and continue rendering the frame.
|
|
195
|
-
*
|
|
196
|
-
* @defaultValue `10`
|
|
197
|
-
*/
|
|
198
|
-
textureProcessingTimeLimit?: number;
|
|
331
|
+
forceWebGL2: boolean;
|
|
199
332
|
/**
|
|
200
333
|
* Canvas object to use for rendering
|
|
201
334
|
*
|
|
@@ -203,7 +336,7 @@ export interface RendererMainSettings {
|
|
|
203
336
|
* This is used to render the scene graph. If not provided, a new canvas
|
|
204
337
|
* element will be created and appended to the target element.
|
|
205
338
|
*/
|
|
206
|
-
canvas
|
|
339
|
+
canvas: HTMLCanvasElement;
|
|
207
340
|
/**
|
|
208
341
|
* createImageBitmap support for the runtime
|
|
209
342
|
*
|
|
@@ -227,8 +360,32 @@ export interface RendererMainSettings {
|
|
|
227
360
|
*
|
|
228
361
|
* @defaultValue `full`
|
|
229
362
|
*/
|
|
230
|
-
createImageBitmapSupport
|
|
231
|
-
|
|
363
|
+
createImageBitmapSupport: 'auto' | 'basic' | 'options' | 'full';
|
|
364
|
+
/**
|
|
365
|
+
* Provide an alternative platform abstraction layer
|
|
366
|
+
*
|
|
367
|
+
* @remarks
|
|
368
|
+
* By default the Lightning 3 renderer will load a webplatform, assuming it runs
|
|
369
|
+
* inside a web browsr. However for special cases there might be a need to provide
|
|
370
|
+
* an abstracted platform layer to run on non-web or non-standard JS engines
|
|
371
|
+
*
|
|
372
|
+
* @defaultValue `null`
|
|
373
|
+
*/
|
|
374
|
+
platform: typeof Platform | null;
|
|
375
|
+
/**
|
|
376
|
+
* Number of times to retry loading a failed texture
|
|
377
|
+
*
|
|
378
|
+
* @remarks
|
|
379
|
+
* When a texture fails to load, Lightning will retry up to this many times
|
|
380
|
+
* before permanently giving up. Each retry will clear the texture ownership
|
|
381
|
+
* and then re-establish it to trigger a new load attempt.
|
|
382
|
+
*
|
|
383
|
+
* Set to null to disable retries. Set to 0 to always try once and never retry.
|
|
384
|
+
* This is typically only used on ImageTexture instances.
|
|
385
|
+
*
|
|
386
|
+
*/
|
|
387
|
+
maxRetryCount?: number;
|
|
388
|
+
};
|
|
232
389
|
/**
|
|
233
390
|
* The Renderer Main API
|
|
234
391
|
*
|
|
@@ -253,36 +410,36 @@ export interface RendererMainSettings {
|
|
|
253
410
|
* );
|
|
254
411
|
* ```
|
|
255
412
|
*
|
|
256
|
-
* ##
|
|
257
|
-
*
|
|
258
|
-
*
|
|
259
|
-
*
|
|
260
|
-
*
|
|
261
|
-
*
|
|
262
|
-
*
|
|
263
|
-
*
|
|
264
|
-
*
|
|
265
|
-
*
|
|
266
|
-
*
|
|
267
|
-
*
|
|
268
|
-
*
|
|
269
|
-
*
|
|
270
|
-
*
|
|
271
|
-
*
|
|
272
|
-
*
|
|
273
|
-
*
|
|
274
|
-
*
|
|
275
|
-
*
|
|
276
|
-
*
|
|
277
|
-
*
|
|
278
|
-
*
|
|
279
|
-
*
|
|
280
|
-
*
|
|
413
|
+
* ## Event Handling
|
|
414
|
+
*
|
|
415
|
+
* Listen to events using the standard EventEmitter API:
|
|
416
|
+
* ```typescript
|
|
417
|
+
* renderer.on('fpsUpdate', (data: RendererMainFpsUpdateEvent) => {
|
|
418
|
+
* console.log(`FPS: ${data.fps}`);
|
|
419
|
+
* });
|
|
420
|
+
*
|
|
421
|
+
* renderer.on('idle', (data: RendererMainIdleEvent) => {
|
|
422
|
+
* // Renderer is idle - no scene changes
|
|
423
|
+
* });
|
|
424
|
+
* ```
|
|
425
|
+
*
|
|
426
|
+
* @see {@link RendererMainFpsUpdateEvent}
|
|
427
|
+
* @see {@link RendererMainFrameTickEvent}
|
|
428
|
+
* @see {@link RendererMainQuadsUpdateEvent}
|
|
429
|
+
* @see {@link RendererMainIdleEvent}
|
|
430
|
+
* @see {@link RendererMainCriticalCleanupEvent}
|
|
431
|
+
* @see {@link RendererMainCriticalCleanupFailedEvent}
|
|
432
|
+
*
|
|
433
|
+
* @fires RendererMain#fpsUpdate
|
|
434
|
+
* @fires RendererMain#frameTick
|
|
435
|
+
* @fires RendererMain#quadsUpdate
|
|
436
|
+
* @fires RendererMain#idle
|
|
437
|
+
* @fires RendererMain#criticalCleanup
|
|
438
|
+
* @fires RendererMain#criticalCleanupFailed
|
|
281
439
|
*/
|
|
282
440
|
export declare class RendererMain extends EventEmitter {
|
|
283
441
|
readonly root: INode;
|
|
284
442
|
readonly canvas: HTMLCanvasElement;
|
|
285
|
-
readonly settings: Readonly<Required<RendererMainSettings>>;
|
|
286
443
|
readonly stage: Stage;
|
|
287
444
|
private inspector;
|
|
288
445
|
/**
|
|
@@ -292,7 +449,14 @@ export declare class RendererMain extends EventEmitter {
|
|
|
292
449
|
* @param target Element ID or HTMLElement to insert the canvas into
|
|
293
450
|
* @param driver Core Driver to use
|
|
294
451
|
*/
|
|
295
|
-
constructor(settings: RendererMainSettings
|
|
452
|
+
constructor(settings: Partial<RendererMainSettings>, target?: string | HTMLElement);
|
|
453
|
+
/**
|
|
454
|
+
* Resolves the Texture Memory Manager values
|
|
455
|
+
*
|
|
456
|
+
* @param props
|
|
457
|
+
* @returns
|
|
458
|
+
*/
|
|
459
|
+
private resolveTxSettings;
|
|
296
460
|
/**
|
|
297
461
|
* Create a new scene graph node
|
|
298
462
|
*
|
|
@@ -365,7 +529,7 @@ export declare class RendererMain extends EventEmitter {
|
|
|
365
529
|
* @param props
|
|
366
530
|
* @returns
|
|
367
531
|
*/
|
|
368
|
-
createShader<ShType extends keyof ShaderMap>(shType: ShType, props?: OptionalShaderProps<ShType>): CoreShaderNode<ExtractShaderProps<ShType
|
|
532
|
+
createShader<ShType extends keyof ShaderMap>(shType: ShType, props?: OptionalShaderProps<ShType>): CoreShaderNode<NonNullable<ExtractShaderProps<ShType>>>;
|
|
369
533
|
/**
|
|
370
534
|
* Get a Node by its ID
|
|
371
535
|
*
|
|
@@ -404,11 +568,50 @@ export declare class RendererMain extends EventEmitter {
|
|
|
404
568
|
* **NOTE3**: This will not cleanup textures that are marked as `preventCleanup`.
|
|
405
569
|
* **NOTE4**: This has nothing to do with the garbage collection of JavaScript.
|
|
406
570
|
*/
|
|
407
|
-
cleanup(
|
|
571
|
+
cleanup(): void;
|
|
408
572
|
/**
|
|
409
573
|
* Sets the clear color for the stage.
|
|
410
574
|
*
|
|
411
575
|
* @param color - The color to set as the clear color.
|
|
412
576
|
*/
|
|
413
577
|
setClearColor(color: number): void;
|
|
578
|
+
/**
|
|
579
|
+
* Set options for the renderer
|
|
580
|
+
*
|
|
581
|
+
* @param options
|
|
582
|
+
*/
|
|
583
|
+
setOptions(options: Partial<RendererRuntimeSettings>): void;
|
|
584
|
+
private updateAppDimensions;
|
|
585
|
+
get settings(): Readonly<StageOptions>;
|
|
586
|
+
/**
|
|
587
|
+
* Gets the target FPS for the global render loop
|
|
588
|
+
*
|
|
589
|
+
* @returns The current target FPS (0 means no throttling)
|
|
590
|
+
*
|
|
591
|
+
* @remarks
|
|
592
|
+
* This controls the maximum frame rate of the entire rendering system.
|
|
593
|
+
* When 0, the system runs at display refresh rate.
|
|
594
|
+
*/
|
|
595
|
+
get targetFPS(): number;
|
|
596
|
+
/**
|
|
597
|
+
* Sets the target FPS for the global render loop
|
|
598
|
+
*
|
|
599
|
+
* @param fps - The target FPS to set for the global render loop.
|
|
600
|
+
* Set to 0 or a negative value to disable throttling.
|
|
601
|
+
*
|
|
602
|
+
* @remarks
|
|
603
|
+
* This setting affects the entire rendering system immediately.
|
|
604
|
+
* All animations, rendering, and frame updates will be throttled
|
|
605
|
+
* to this target FPS. Provides global performance control.
|
|
606
|
+
*
|
|
607
|
+
* @example
|
|
608
|
+
* ```typescript
|
|
609
|
+
* // Set global target to 30fps for better performance
|
|
610
|
+
* renderer.targetFPS = 30;
|
|
611
|
+
*
|
|
612
|
+
* // Disable global throttling (use display refresh rate)
|
|
613
|
+
* renderer.targetFPS = 0;
|
|
614
|
+
* ```
|
|
615
|
+
*/
|
|
616
|
+
set targetFPS(fps: number);
|
|
414
617
|
}
|