@lightningjs/renderer 3.0.0-beta2 → 3.0.0-beta21
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 +124 -100
- package/dist/src/core/CoreNode.js +720 -472
- 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 +355 -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 +93 -33
- package/dist/src/core/Stage.js +315 -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/Animation.d.ts +21 -0
- package/dist/src/core/animations/Animation.js +194 -0
- package/dist/src/core/animations/Animation.js.map +1 -0
- 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/animations/Playback.d.ts +64 -0
- package/dist/src/core/animations/Playback.js +169 -0
- package/dist/src/core/animations/Playback.js.map +1 -0
- package/dist/src/core/animations/Transition.d.ts +27 -0
- package/dist/src/core/animations/Transition.js +52 -0
- package/dist/src/core/animations/Transition.js.map +1 -0
- package/dist/src/core/animations/utils.d.ts +2 -0
- package/dist/src/core/animations/utils.js +136 -0
- package/dist/src/core/animations/utils.js.map +1 -0
- package/dist/src/core/lib/ImageWorker.d.ts +2 -2
- package/dist/src/core/lib/ImageWorker.js +31 -12
- 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 +105 -28
- 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 +8 -2
- package/dist/src/core/lib/utils.js +43 -21
- 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 +5 -30
- 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 +12 -1
- package/dist/src/core/renderers/CoreShaderNode.js +26 -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 +4 -5
- package/dist/src/core/renderers/canvas/CanvasRenderer.js +65 -87
- package/dist/src/core/renderers/canvas/CanvasRenderer.js.map +1 -1
- package/dist/src/core/renderers/canvas/CanvasShaderNode.d.ts +1 -2
- 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/SdfRenderOp.d.ts +33 -0
- package/dist/src/core/renderers/webgl/SdfRenderOp.js +97 -0
- package/dist/src/core/renderers/webgl/SdfRenderOp.js.map +1 -0
- 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 +87 -42
- 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 +102 -52
- package/dist/src/core/renderers/webgl/WebGlCtxTexture.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlRenderOp.d.ts +1 -1
- package/dist/src/core/renderers/webgl/WebGlRenderOp.js +11 -4
- package/dist/src/core/renderers/webgl/WebGlRenderOp.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlRenderer.d.ts +11 -21
- package/dist/src/core/renderers/webgl/WebGlRenderer.js +168 -152
- package/dist/src/core/renderers/webgl/WebGlRenderer.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlShaderNode.d.ts +2 -4
- 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 +9 -7
- package/dist/src/core/renderers/webgl/WebGlShaderProgram.js +83 -43
- 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.d.ts +8 -2
- package/dist/src/core/shaders/canvas/Border.js +64 -25
- package/dist/src/core/shaders/canvas/Border.js.map +1 -1
- package/dist/src/core/shaders/canvas/HolePunch.js +4 -3
- package/dist/src/core/shaders/canvas/HolePunch.js.map +1 -1
- package/dist/src/core/shaders/canvas/LinearGradient.js +11 -7
- package/dist/src/core/shaders/canvas/LinearGradient.js.map +1 -1
- package/dist/src/core/shaders/canvas/RadialGradient.js +21 -17
- package/dist/src/core/shaders/canvas/RadialGradient.js.map +1 -1
- package/dist/src/core/shaders/canvas/Rounded.js +3 -3
- package/dist/src/core/shaders/canvas/Rounded.js.map +1 -1
- package/dist/src/core/shaders/canvas/RoundedWithBorder.d.ts +6 -3
- package/dist/src/core/shaders/canvas/RoundedWithBorder.js +45 -7
- package/dist/src/core/shaders/canvas/RoundedWithBorder.js.map +1 -1
- package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.d.ts +2 -3
- package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js +50 -11
- package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js.map +1 -1
- package/dist/src/core/shaders/canvas/RoundedWithShadow.js +10 -7
- package/dist/src/core/shaders/canvas/RoundedWithShadow.js.map +1 -1
- package/dist/src/core/shaders/canvas/Shadow.js +4 -2
- package/dist/src/core/shaders/canvas/Shadow.js.map +1 -1
- package/dist/src/core/shaders/canvas/utils/render.d.ts +1 -1
- package/dist/src/core/shaders/canvas/utils/render.js +31 -18
- package/dist/src/core/shaders/canvas/utils/render.js.map +1 -1
- package/dist/src/core/shaders/templates/BorderTemplate.d.ts +12 -2
- package/dist/src/core/shaders/templates/BorderTemplate.js +31 -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 +116 -35
- 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 +153 -39
- package/dist/src/core/shaders/webgl/RoundedWithBorder.js.map +1 -1
- package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js +158 -43
- package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js.map +1 -1
- package/dist/src/core/shaders/webgl/RoundedWithShadow.js +6 -4
- 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/shaders/webgl/SdfShadowShader.d.ts +9 -0
- package/dist/src/core/shaders/webgl/SdfShadowShader.js +100 -0
- package/dist/src/core/shaders/webgl/SdfShadowShader.js.map +1 -0
- package/dist/src/core/shaders/webgl/Shadow.js +12 -6
- package/dist/src/core/shaders/webgl/Shadow.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 +303 -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 +2 -1
- 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 +131 -2
- package/dist/src/main-api/Inspector.js +345 -28
- package/dist/src/main-api/Inspector.js.map +1 -1
- package/dist/src/main-api/Renderer.d.ts +295 -82
- package/dist/src/main-api/Renderer.js +223 -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/Autosizer.ts +224 -0
- package/src/core/CoreNode.test.ts +179 -17
- package/src/core/CoreNode.ts +895 -599
- package/src/core/CoreShaderManager.ts +5 -10
- package/src/core/CoreTextNode.ts +422 -286
- package/src/core/CoreTextureManager.ts +110 -130
- package/src/core/Stage.ts +397 -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 +43 -12
- package/src/core/lib/WebGlContextWrapper.ts +127 -79
- 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 +54 -25
- 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 +5 -32
- package/src/core/renderers/CoreShaderNode.ts +38 -3
- package/src/core/renderers/canvas/CanvasRenderer.ts +84 -126
- package/src/core/renderers/canvas/CanvasShaderNode.ts +4 -8
- package/src/core/renderers/canvas/CanvasTexture.ts +22 -18
- package/src/core/renderers/webgl/SdfRenderOp.ts +105 -0
- 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 +134 -84
- package/src/core/renderers/webgl/WebGlRenderer.ts +203 -190
- package/src/core/renderers/webgl/WebGlShaderNode.ts +4 -11
- package/src/core/renderers/webgl/WebGlShaderProgram.ts +101 -53
- package/src/core/shaders/canvas/Border.ts +88 -34
- package/src/core/shaders/canvas/HolePunch.ts +5 -11
- package/src/core/shaders/canvas/LinearGradient.ts +14 -10
- package/src/core/shaders/canvas/RadialGradient.ts +24 -41
- package/src/core/shaders/canvas/Rounded.ts +7 -7
- package/src/core/shaders/canvas/RoundedWithBorder.ts +77 -23
- package/src/core/shaders/canvas/RoundedWithBorderAndShadow.ts +84 -36
- package/src/core/shaders/canvas/RoundedWithShadow.ts +15 -13
- package/src/core/shaders/canvas/Shadow.ts +7 -5
- package/src/core/shaders/canvas/utils/render.ts +45 -36
- package/src/core/shaders/templates/BorderTemplate.ts +42 -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 +116 -39
- 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 +154 -46
- package/src/core/shaders/webgl/RoundedWithBorderAndShadow.ts +159 -52
- package/src/core/shaders/webgl/RoundedWithShadow.ts +6 -8
- package/src/core/shaders/webgl/SdfShader.ts +7 -19
- package/src/core/shaders/webgl/Shadow.ts +12 -6
- 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 +408 -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 +577 -36
- package/src/main-api/Renderer.ts +518 -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/renderers/webgl/WebGlRenderOp.ts +0 -161
- 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
|
+
* ```
|
|
16
44
|
*/
|
|
17
|
-
export interface
|
|
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
|
+
* ```
|
|
122
|
+
*/
|
|
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,65 @@ export interface RendererMainSettings {
|
|
|
81
196
|
*
|
|
82
197
|
* @defaultValue `0` (disabled)
|
|
83
198
|
*/
|
|
84
|
-
fpsUpdateInterval
|
|
199
|
+
fpsUpdateInterval: number;
|
|
200
|
+
/**
|
|
201
|
+
* Clears the render buffer on reset
|
|
202
|
+
*
|
|
203
|
+
* @remarks
|
|
204
|
+
* If false, the renderer will not clear the buffer before rendering a new frame.
|
|
205
|
+
* This is useful if you want to preserve the previous frame.
|
|
206
|
+
*
|
|
207
|
+
* @defaultValue `true`
|
|
208
|
+
*/
|
|
209
|
+
enableClear: boolean;
|
|
210
|
+
/**
|
|
211
|
+
* DOM Inspector
|
|
212
|
+
*
|
|
213
|
+
* @remarks
|
|
214
|
+
* The inspector will replicate the state of the Nodes created
|
|
215
|
+
* in the renderer and allow inspection of the state of the nodes.
|
|
216
|
+
*
|
|
217
|
+
*/
|
|
218
|
+
inspector: typeof Inspector | false;
|
|
219
|
+
/**
|
|
220
|
+
* Inspector Options
|
|
221
|
+
*
|
|
222
|
+
* @remarks
|
|
223
|
+
* Configuration options for the Inspector's performance monitoring features.
|
|
224
|
+
* Only used when inspector is enabled.
|
|
225
|
+
*/
|
|
226
|
+
inspectorOptions?: Partial<InspectorOptions>;
|
|
227
|
+
/**
|
|
228
|
+
* Texture Processing Limit (in milliseconds)
|
|
229
|
+
*
|
|
230
|
+
* @remarks
|
|
231
|
+
* The maximum amount of time the renderer is allowed to process textures in a
|
|
232
|
+
* single frame. If the processing time exceeds this limit, the renderer will
|
|
233
|
+
* skip processing the remaining textures and continue rendering the frame.
|
|
234
|
+
*
|
|
235
|
+
* @defaultValue `10`
|
|
236
|
+
*/
|
|
237
|
+
textureProcessingTimeLimit: number;
|
|
238
|
+
/**
|
|
239
|
+
* Target FPS for the global render loop
|
|
240
|
+
*
|
|
241
|
+
* @remarks
|
|
242
|
+
* Controls the maximum frame rate of the entire rendering system.
|
|
243
|
+
* When set to 0, no throttling is applied (use display refresh rate).
|
|
244
|
+
* When set to a positive number, the global requestAnimationFrame loop
|
|
245
|
+
* will be throttled to this target FPS, affecting all animations and rendering.
|
|
246
|
+
*
|
|
247
|
+
* This provides global performance control for the entire application,
|
|
248
|
+
* useful for managing performance on lower-end devices.
|
|
249
|
+
*
|
|
250
|
+
* @defaultValue `0` (no throttling, use display refresh rate)
|
|
251
|
+
*/
|
|
252
|
+
targetFPS: number;
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Configuration settings for {@link RendererMain}
|
|
256
|
+
*/
|
|
257
|
+
export type RendererMainSettings = RendererRuntimeSettings & {
|
|
85
258
|
/**
|
|
86
259
|
* Include context call (i.e. WebGL) information in FPS updates
|
|
87
260
|
*
|
|
@@ -95,7 +268,7 @@ export interface RendererMainSettings {
|
|
|
95
268
|
*
|
|
96
269
|
* @defaultValue `false` (disabled)
|
|
97
270
|
*/
|
|
98
|
-
enableContextSpy
|
|
271
|
+
enableContextSpy: boolean;
|
|
99
272
|
/**
|
|
100
273
|
* Number or Image Workers to use
|
|
101
274
|
*
|
|
@@ -106,16 +279,7 @@ export interface RendererMainSettings {
|
|
|
106
279
|
*
|
|
107
280
|
* @defaultValue `2`
|
|
108
281
|
*/
|
|
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;
|
|
282
|
+
numImageWorkers: number;
|
|
119
283
|
/**
|
|
120
284
|
* Renderer Engine
|
|
121
285
|
*
|
|
@@ -135,7 +299,7 @@ export interface RendererMainSettings {
|
|
|
135
299
|
*
|
|
136
300
|
* @defaultValue 4 * 1024 * 1024
|
|
137
301
|
*/
|
|
138
|
-
quadBufferSize
|
|
302
|
+
quadBufferSize: number;
|
|
139
303
|
/**
|
|
140
304
|
* Font Engines
|
|
141
305
|
*
|
|
@@ -164,7 +328,7 @@ export interface RendererMainSettings {
|
|
|
164
328
|
*
|
|
165
329
|
*
|
|
166
330
|
*/
|
|
167
|
-
fontEngines:
|
|
331
|
+
fontEngines: TextRenderer[];
|
|
168
332
|
/**
|
|
169
333
|
* Force WebGL2
|
|
170
334
|
*
|
|
@@ -174,28 +338,7 @@ export interface RendererMainSettings {
|
|
|
174
338
|
*
|
|
175
339
|
* @defaultValue `false`
|
|
176
340
|
*/
|
|
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;
|
|
341
|
+
forceWebGL2: boolean;
|
|
199
342
|
/**
|
|
200
343
|
* Canvas object to use for rendering
|
|
201
344
|
*
|
|
@@ -203,7 +346,7 @@ export interface RendererMainSettings {
|
|
|
203
346
|
* This is used to render the scene graph. If not provided, a new canvas
|
|
204
347
|
* element will be created and appended to the target element.
|
|
205
348
|
*/
|
|
206
|
-
canvas
|
|
349
|
+
canvas: HTMLCanvasElement;
|
|
207
350
|
/**
|
|
208
351
|
* createImageBitmap support for the runtime
|
|
209
352
|
*
|
|
@@ -227,8 +370,32 @@ export interface RendererMainSettings {
|
|
|
227
370
|
*
|
|
228
371
|
* @defaultValue `full`
|
|
229
372
|
*/
|
|
230
|
-
createImageBitmapSupport
|
|
231
|
-
|
|
373
|
+
createImageBitmapSupport: 'auto' | 'basic' | 'options' | 'full';
|
|
374
|
+
/**
|
|
375
|
+
* Provide an alternative platform abstraction layer
|
|
376
|
+
*
|
|
377
|
+
* @remarks
|
|
378
|
+
* By default the Lightning 3 renderer will load a webplatform, assuming it runs
|
|
379
|
+
* inside a web browsr. However for special cases there might be a need to provide
|
|
380
|
+
* an abstracted platform layer to run on non-web or non-standard JS engines
|
|
381
|
+
*
|
|
382
|
+
* @defaultValue `null`
|
|
383
|
+
*/
|
|
384
|
+
platform: typeof Platform | null;
|
|
385
|
+
/**
|
|
386
|
+
* Number of times to retry loading a failed texture
|
|
387
|
+
*
|
|
388
|
+
* @remarks
|
|
389
|
+
* When a texture fails to load, Lightning will retry up to this many times
|
|
390
|
+
* before permanently giving up. Each retry will clear the texture ownership
|
|
391
|
+
* and then re-establish it to trigger a new load attempt.
|
|
392
|
+
*
|
|
393
|
+
* Set to null to disable retries. Set to 0 to always try once and never retry.
|
|
394
|
+
* This is typically only used on ImageTexture instances.
|
|
395
|
+
*
|
|
396
|
+
*/
|
|
397
|
+
maxRetryCount?: number;
|
|
398
|
+
};
|
|
232
399
|
/**
|
|
233
400
|
* The Renderer Main API
|
|
234
401
|
*
|
|
@@ -253,36 +420,36 @@ export interface RendererMainSettings {
|
|
|
253
420
|
* );
|
|
254
421
|
* ```
|
|
255
422
|
*
|
|
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
|
-
*
|
|
423
|
+
* ## Event Handling
|
|
424
|
+
*
|
|
425
|
+
* Listen to events using the standard EventEmitter API:
|
|
426
|
+
* ```typescript
|
|
427
|
+
* renderer.on('fpsUpdate', (data: RendererMainFpsUpdateEvent) => {
|
|
428
|
+
* console.log(`FPS: ${data.fps}`);
|
|
429
|
+
* });
|
|
430
|
+
*
|
|
431
|
+
* renderer.on('idle', (data: RendererMainIdleEvent) => {
|
|
432
|
+
* // Renderer is idle - no scene changes
|
|
433
|
+
* });
|
|
434
|
+
* ```
|
|
435
|
+
*
|
|
436
|
+
* @see {@link RendererMainFpsUpdateEvent}
|
|
437
|
+
* @see {@link RendererMainFrameTickEvent}
|
|
438
|
+
* @see {@link RendererMainQuadsUpdateEvent}
|
|
439
|
+
* @see {@link RendererMainIdleEvent}
|
|
440
|
+
* @see {@link RendererMainCriticalCleanupEvent}
|
|
441
|
+
* @see {@link RendererMainCriticalCleanupFailedEvent}
|
|
442
|
+
*
|
|
443
|
+
* @fires RendererMain#fpsUpdate
|
|
444
|
+
* @fires RendererMain#frameTick
|
|
445
|
+
* @fires RendererMain#quadsUpdate
|
|
446
|
+
* @fires RendererMain#idle
|
|
447
|
+
* @fires RendererMain#criticalCleanup
|
|
448
|
+
* @fires RendererMain#criticalCleanupFailed
|
|
281
449
|
*/
|
|
282
450
|
export declare class RendererMain extends EventEmitter {
|
|
283
451
|
readonly root: INode;
|
|
284
452
|
readonly canvas: HTMLCanvasElement;
|
|
285
|
-
readonly settings: Readonly<Required<RendererMainSettings>>;
|
|
286
453
|
readonly stage: Stage;
|
|
287
454
|
private inspector;
|
|
288
455
|
/**
|
|
@@ -292,7 +459,14 @@ export declare class RendererMain extends EventEmitter {
|
|
|
292
459
|
* @param target Element ID or HTMLElement to insert the canvas into
|
|
293
460
|
* @param driver Core Driver to use
|
|
294
461
|
*/
|
|
295
|
-
constructor(settings: RendererMainSettings
|
|
462
|
+
constructor(settings: Partial<RendererMainSettings>, target?: string | HTMLElement);
|
|
463
|
+
/**
|
|
464
|
+
* Resolves the Texture Memory Manager values
|
|
465
|
+
*
|
|
466
|
+
* @param props
|
|
467
|
+
* @returns
|
|
468
|
+
*/
|
|
469
|
+
private resolveTxSettings;
|
|
296
470
|
/**
|
|
297
471
|
* Create a new scene graph node
|
|
298
472
|
*
|
|
@@ -365,7 +539,7 @@ export declare class RendererMain extends EventEmitter {
|
|
|
365
539
|
* @param props
|
|
366
540
|
* @returns
|
|
367
541
|
*/
|
|
368
|
-
createShader<ShType extends keyof ShaderMap>(shType: ShType, props?: OptionalShaderProps<ShType>): CoreShaderNode<ExtractShaderProps<ShType
|
|
542
|
+
createShader<ShType extends keyof ShaderMap>(shType: ShType, props?: OptionalShaderProps<ShType>): CoreShaderNode<NonNullable<ExtractShaderProps<ShType>>>;
|
|
369
543
|
/**
|
|
370
544
|
* Get a Node by its ID
|
|
371
545
|
*
|
|
@@ -404,11 +578,50 @@ export declare class RendererMain extends EventEmitter {
|
|
|
404
578
|
* **NOTE3**: This will not cleanup textures that are marked as `preventCleanup`.
|
|
405
579
|
* **NOTE4**: This has nothing to do with the garbage collection of JavaScript.
|
|
406
580
|
*/
|
|
407
|
-
cleanup(
|
|
581
|
+
cleanup(): void;
|
|
408
582
|
/**
|
|
409
583
|
* Sets the clear color for the stage.
|
|
410
584
|
*
|
|
411
585
|
* @param color - The color to set as the clear color.
|
|
412
586
|
*/
|
|
413
587
|
setClearColor(color: number): void;
|
|
588
|
+
/**
|
|
589
|
+
* Set options for the renderer
|
|
590
|
+
*
|
|
591
|
+
* @param options
|
|
592
|
+
*/
|
|
593
|
+
setOptions(options: Partial<RendererRuntimeSettings>): void;
|
|
594
|
+
private updateAppDimensions;
|
|
595
|
+
get settings(): Readonly<StageOptions>;
|
|
596
|
+
/**
|
|
597
|
+
* Gets the target FPS for the global render loop
|
|
598
|
+
*
|
|
599
|
+
* @returns The current target FPS (0 means no throttling)
|
|
600
|
+
*
|
|
601
|
+
* @remarks
|
|
602
|
+
* This controls the maximum frame rate of the entire rendering system.
|
|
603
|
+
* When 0, the system runs at display refresh rate.
|
|
604
|
+
*/
|
|
605
|
+
get targetFPS(): number;
|
|
606
|
+
/**
|
|
607
|
+
* Sets the target FPS for the global render loop
|
|
608
|
+
*
|
|
609
|
+
* @param fps - The target FPS to set for the global render loop.
|
|
610
|
+
* Set to 0 or a negative value to disable throttling.
|
|
611
|
+
*
|
|
612
|
+
* @remarks
|
|
613
|
+
* This setting affects the entire rendering system immediately.
|
|
614
|
+
* All animations, rendering, and frame updates will be throttled
|
|
615
|
+
* to this target FPS. Provides global performance control.
|
|
616
|
+
*
|
|
617
|
+
* @example
|
|
618
|
+
* ```typescript
|
|
619
|
+
* // Set global target to 30fps for better performance
|
|
620
|
+
* renderer.targetFPS = 30;
|
|
621
|
+
*
|
|
622
|
+
* // Disable global throttling (use display refresh rate)
|
|
623
|
+
* renderer.targetFPS = 0;
|
|
624
|
+
* ```
|
|
625
|
+
*/
|
|
626
|
+
set targetFPS(fps: number);
|
|
414
627
|
}
|