@lightningjs/renderer 3.0.0-beta1 → 3.0.0-beta11
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 +13 -27
- 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 +1 -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/core/CoreNode.d.ts +45 -69
- package/dist/src/core/CoreNode.js +323 -305
- 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 +61 -87
- package/dist/src/core/CoreTextNode.js +276 -235
- package/dist/src/core/CoreTextNode.js.map +1 -1
- package/dist/src/core/CoreTextureManager.d.ts +9 -11
- package/dist/src/core/CoreTextureManager.js +80 -91
- package/dist/src/core/CoreTextureManager.js.map +1 -1
- package/dist/src/core/Stage.d.ts +75 -31
- package/dist/src/core/Stage.js +270 -136
- package/dist/src/core/Stage.js.map +1 -1
- package/dist/src/core/TextureMemoryManager.d.ts +10 -1
- package/dist/src/core/TextureMemoryManager.js +112 -78
- package/dist/src/core/TextureMemoryManager.js.map +1 -1
- package/dist/src/core/animations/CoreAnimation.js +5 -0
- 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 +3 -2
- package/dist/src/core/lib/ImageWorker.js.map +1 -1
- package/dist/src/core/lib/RenderCoords.d.ts +9 -10
- package/dist/src/core/lib/RenderCoords.js +43 -55
- package/dist/src/core/lib/RenderCoords.js.map +1 -1
- package/dist/src/core/lib/WebGlContextWrapper.d.ts +51 -2
- package/dist/src/core/lib/WebGlContextWrapper.js +92 -22
- package/dist/src/core/lib/WebGlContextWrapper.js.map +1 -1
- 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/utils.d.ts +3 -0
- package/dist/src/core/lib/utils.js +42 -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 +29 -4
- package/dist/src/core/platform.js.map +1 -1
- package/dist/src/core/platforms/Platform.d.ts +37 -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 +9 -0
- package/dist/src/core/platforms/web/WebPlatform.js +84 -0
- package/dist/src/core/platforms/web/WebPlatform.js.map +1 -0
- package/dist/src/core/renderers/CoreContextTexture.d.ts +1 -1
- package/dist/src/core/renderers/CoreRenderer.d.ts +5 -2
- package/dist/src/core/renderers/CoreRenderer.js.map +1 -1
- package/dist/src/core/renderers/CoreShaderNode.d.ts +3 -3
- package/dist/src/core/renderers/CoreShaderNode.js +8 -2
- package/dist/src/core/renderers/CoreShaderNode.js.map +1 -1
- package/dist/src/core/renderers/canvas/CanvasCoreTexture.d.ts +1 -1
- package/dist/src/core/renderers/canvas/CanvasCoreTexture.js +7 -6
- 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 +10 -21
- 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 +2 -2
- package/dist/src/core/renderers/canvas/CanvasTexture.js +11 -9
- 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 +5 -6
- package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js +30 -18
- package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js +5 -2
- package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlCoreShader.js +3 -1
- package/dist/src/core/renderers/webgl/WebGlCoreShader.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js +3 -0
- package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlCtxTexture.d.ts +5 -6
- package/dist/src/core/renderers/webgl/WebGlCtxTexture.js +30 -21
- package/dist/src/core/renderers/webgl/WebGlCtxTexture.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlRenderOp.d.ts +10 -2
- package/dist/src/core/renderers/webgl/WebGlRenderOp.js +37 -19
- 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 +144 -117
- package/dist/src/core/renderers/webgl/WebGlRenderer.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlShaderNode.d.ts +2 -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 +5 -3
- package/dist/src/core/renderers/webgl/WebGlShaderProgram.js +55 -31
- package/dist/src/core/renderers/webgl/WebGlShaderProgram.js.map +1 -1
- package/dist/src/core/shaders/canvas/Border.js +1 -1
- package/dist/src/core/shaders/canvas/Border.js.map +1 -1
- package/dist/src/core/shaders/canvas/LinearGradient.js +5 -3
- package/dist/src/core/shaders/canvas/LinearGradient.js.map +1 -1
- package/dist/src/core/shaders/canvas/RadialGradient.js +13 -11
- package/dist/src/core/shaders/canvas/RadialGradient.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 +1 -1
- package/dist/src/core/shaders/templates/BorderTemplate.js +1 -1
- package/dist/src/core/shaders/templates/BorderTemplate.js.map +1 -1
- package/dist/src/core/shaders/templates/HolePunchTemplate.js +1 -1
- package/dist/src/core/shaders/templates/HolePunchTemplate.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/utils.d.ts +5 -0
- package/dist/src/core/shaders/utils.js +41 -0
- package/dist/src/core/shaders/utils.js.map +1 -0
- package/dist/src/core/shaders/webgl/Border.js +57 -34
- package/dist/src/core/shaders/webgl/Border.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 +5 -4
- package/dist/src/core/shaders/webgl/LinearGradient.js.map +1 -1
- package/dist/src/core/shaders/webgl/RadialGradient.js +6 -5
- package/dist/src/core/shaders/webgl/RadialGradient.js.map +1 -1
- package/dist/src/core/shaders/webgl/RoundedWithBorder.js +79 -36
- package/dist/src/core/shaders/webgl/RoundedWithBorder.js.map +1 -1
- package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js +92 -42
- package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js.map +1 -1
- package/dist/src/core/shaders/webgl/SdfShader.js +1 -1
- package/dist/src/core/shaders/webgl/SdfShader.js.map +1 -1
- package/dist/src/core/shaders/webgl/Spinner.js +2 -0
- package/dist/src/core/shaders/webgl/Spinner.js.map +1 -0
- package/dist/src/core/text-rendering/CanvasFontHandler.d.ts +41 -0
- package/dist/src/core/text-rendering/CanvasFontHandler.js +159 -0
- package/dist/src/core/text-rendering/CanvasFontHandler.js.map +1 -0
- package/dist/src/core/text-rendering/CanvasTextRenderer.d.ts +22 -0
- package/dist/src/core/text-rendering/CanvasTextRenderer.js +366 -0
- package/dist/src/core/text-rendering/CanvasTextRenderer.js.map +1 -0
- package/dist/src/core/text-rendering/SdfFontHandler.d.ts +152 -0
- package/dist/src/core/text-rendering/SdfFontHandler.js +368 -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 +355 -0
- package/dist/src/core/text-rendering/SdfTextRenderer.js.map +1 -0
- package/dist/src/core/text-rendering/TextRenderer.d.ts +351 -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 +71 -0
- package/dist/src/core/text-rendering/Utils.js +212 -0
- package/dist/src/core/text-rendering/Utils.js.map +1 -0
- package/dist/src/core/text-rendering/canvas/Settings.d.ts +64 -0
- package/dist/src/{main-api/texture-usage-trackers/TextureUsageTracker.js → core/text-rendering/canvas/Settings.js} +3 -11
- package/dist/src/core/text-rendering/canvas/Settings.js.map +1 -0
- package/dist/src/core/text-rendering/canvas/Utils.d.ts +20 -0
- package/dist/src/core/text-rendering/canvas/Utils.js +144 -0
- package/dist/src/core/text-rendering/canvas/Utils.js.map +1 -0
- package/dist/src/core/text-rendering/canvas/calculateRenderInfo.d.ts +60 -0
- package/dist/src/core/text-rendering/canvas/calculateRenderInfo.js +183 -0
- package/dist/src/core/text-rendering/canvas/calculateRenderInfo.js.map +1 -0
- package/dist/src/core/text-rendering/canvas/draw.d.ts +5 -0
- package/dist/src/core/text-rendering/canvas/draw.js +132 -0
- package/dist/src/core/text-rendering/canvas/draw.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 +30 -34
- 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/text-rendering/sdf/PeekableGenerator.d.ts +12 -0
- package/dist/src/core/text-rendering/sdf/PeekableGenerator.js +61 -0
- package/dist/src/core/text-rendering/sdf/PeekableGenerator.js.map +1 -0
- package/dist/src/core/text-rendering/sdf/SimpleFontShaper.d.ts +45 -0
- package/dist/src/core/text-rendering/sdf/SimpleFontShaper.js +69 -0
- package/dist/src/core/text-rendering/sdf/SimpleFontShaper.js.map +1 -0
- package/dist/src/core/text-rendering/sdf/Utils.d.ts +26 -0
- package/dist/src/core/text-rendering/sdf/Utils.js +304 -0
- package/dist/src/core/text-rendering/sdf/Utils.js.map +1 -0
- package/dist/src/core/text-rendering/sdf/index.d.ts +1 -0
- package/dist/src/core/{CoreExtension.js → text-rendering/sdf/index.js} +3 -12
- package/dist/src/core/text-rendering/sdf/index.js.map +1 -0
- package/dist/src/core/textures/ImageTexture.d.ts +4 -3
- package/dist/src/core/textures/ImageTexture.js +36 -9
- package/dist/src/core/textures/ImageTexture.js.map +1 -1
- package/dist/src/core/textures/Texture.d.ts +21 -2
- package/dist/src/core/textures/Texture.js +37 -6
- package/dist/src/core/textures/Texture.js.map +1 -1
- package/dist/src/core/utils.d.ts +1 -1
- package/dist/src/main-api/INode.d.ts +2 -2
- package/dist/src/main-api/Inspector.d.ts +6 -1
- package/dist/src/main-api/Inspector.js +43 -7
- package/dist/src/main-api/Inspector.js.map +1 -1
- package/dist/src/main-api/Renderer.d.ts +122 -46
- package/dist/src/main-api/Renderer.js +174 -37
- 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/exports/canvas.ts +1 -1
- package/exports/index.ts +1 -8
- package/exports/utils.ts +7 -1
- package/exports/webgl.ts +3 -1
- package/package.json +2 -3
- package/src/core/CoreNode.test.ts +0 -1
- package/src/core/CoreNode.ts +403 -388
- package/src/core/CoreShaderManager.ts +5 -10
- package/src/core/CoreTextNode.ts +337 -302
- package/src/core/CoreTextureManager.ts +78 -110
- package/src/core/Stage.ts +344 -178
- package/src/core/TextureMemoryManager.ts +150 -100
- package/src/core/animations/CoreAnimation.ts +7 -0
- package/src/core/animations/CoreAnimationController.ts +13 -4
- package/src/core/lib/ImageWorker.ts +9 -2
- package/src/core/lib/RenderCoords.ts +52 -67
- package/src/core/lib/WebGlContextWrapper.ts +125 -68
- 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/utils.ts +51 -0
- package/src/core/lib/validateImageBitmap.ts +17 -6
- package/src/core/platforms/Platform.ts +77 -0
- package/src/core/platforms/web/WebPlatform.ts +121 -0
- package/src/core/renderers/CoreContextTexture.ts +1 -1
- package/src/core/renderers/CoreRenderer.ts +5 -2
- package/src/core/renderers/CoreShaderNode.ts +10 -6
- package/src/core/renderers/canvas/CanvasRenderer.ts +12 -28
- package/src/core/renderers/canvas/CanvasShaderNode.ts +3 -6
- package/src/core/renderers/canvas/CanvasTexture.ts +17 -14
- package/src/core/renderers/webgl/WebGlCtxRenderTexture.ts +5 -0
- package/src/core/renderers/webgl/WebGlCtxTexture.ts +52 -43
- package/src/core/renderers/webgl/WebGlRenderOp.ts +46 -24
- package/src/core/renderers/webgl/WebGlRenderer.ts +177 -145
- package/src/core/renderers/webgl/WebGlShaderNode.ts +7 -5
- package/src/core/renderers/webgl/WebGlShaderProgram.ts +68 -37
- package/src/core/shaders/canvas/Border.ts +1 -4
- package/src/core/shaders/canvas/LinearGradient.ts +8 -6
- package/src/core/shaders/canvas/RadialGradient.ts +22 -36
- package/src/core/shaders/canvas/RoundedWithBorder.ts +17 -11
- package/src/core/shaders/canvas/RoundedWithBorderAndShadow.ts +14 -12
- package/src/core/shaders/canvas/RoundedWithShadow.ts +8 -7
- package/src/core/shaders/templates/BorderTemplate.ts +1 -1
- package/src/core/shaders/templates/HolePunchTemplate.ts +1 -1
- 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/HolePunch.ts +4 -7
- package/src/core/shaders/webgl/LinearGradient.ts +5 -4
- package/src/core/shaders/webgl/RadialGradient.ts +7 -6
- package/src/core/shaders/webgl/RoundedWithBorder.ts +80 -39
- package/src/core/shaders/webgl/RoundedWithBorderAndShadow.ts +92 -50
- package/src/core/shaders/webgl/SdfShader.ts +1 -4
- package/src/core/text-rendering/CanvasFontHandler.ts +210 -0
- package/src/core/text-rendering/CanvasTextRenderer.ts +622 -0
- package/src/core/text-rendering/SdfFontHandler.ts +554 -0
- package/src/core/text-rendering/SdfTextRenderer.ts +466 -0
- package/src/core/text-rendering/TextRenderer.ts +406 -0
- package/src/core/text-rendering/{TextTextureRendererUtils.ts → Utils.ts} +5 -11
- package/src/core/text-rendering/canvas/Settings.ts +99 -0
- package/src/core/text-rendering/canvas/Utils.test.ts +206 -0
- package/src/core/text-rendering/canvas/Utils.ts +178 -0
- package/src/core/text-rendering/canvas/calculateRenderInfo.ts +299 -0
- package/src/core/text-rendering/canvas/draw.ts +165 -0
- package/src/core/text-rendering/sdf/Utils.test.ts +402 -0
- package/src/core/text-rendering/sdf/Utils.ts +436 -0
- package/src/core/text-rendering/sdf/index.ts +20 -0
- package/src/core/textures/ImageTexture.ts +69 -27
- package/src/core/textures/Texture.ts +50 -6
- package/src/main-api/INode.ts +4 -3
- package/src/main-api/Inspector.ts +53 -8
- package/src/main-api/Renderer.ts +311 -87
- 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.map +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/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.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/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 -841
- 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
- /package/dist/src/core/{CoreStuff.d.ts → shaders/webgl/Spinner.d.ts} +0 -0
package/src/main-api/Renderer.ts
CHANGED
|
@@ -19,16 +19,15 @@
|
|
|
19
19
|
|
|
20
20
|
import type { ExtractProps, TextureMap } from '../core/CoreTextureManager.js';
|
|
21
21
|
import { EventEmitter } from '../common/EventEmitter.js';
|
|
22
|
-
import {
|
|
23
|
-
import { Stage } from '../core/Stage.js';
|
|
22
|
+
import { isProductionEnvironment } from '../utils.js';
|
|
23
|
+
import { Stage, type StageOptions } from '../core/Stage.js';
|
|
24
24
|
import { CoreNode, type CoreNodeProps } from '../core/CoreNode.js';
|
|
25
25
|
import { type CoreTextNodeProps } from '../core/CoreTextNode.js';
|
|
26
26
|
import type { INode, INodeProps, ITextNode, ITextNodeProps } from './INode.js';
|
|
27
27
|
import type { TextureMemoryManagerSettings } from '../core/TextureMemoryManager.js';
|
|
28
|
-
import type {
|
|
29
|
-
import type { SdfTextRenderer } from '../core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js';
|
|
30
|
-
import type { WebGlRenderer } from '../core/renderers/webgl/WebGlRenderer.js';
|
|
28
|
+
import type { TextRenderer } from '../core/text-rendering/TextRenderer.js';
|
|
31
29
|
import type { CanvasRenderer } from '../core/renderers/canvas/CanvasRenderer.js';
|
|
30
|
+
import type { WebGlRenderer } from '../core/renderers/webgl/WebGlRenderer.js';
|
|
32
31
|
import type { Inspector } from './Inspector.js';
|
|
33
32
|
import type { CoreShaderNode } from '../core/renderers/CoreShaderNode.js';
|
|
34
33
|
import type {
|
|
@@ -36,34 +35,36 @@ import type {
|
|
|
36
35
|
OptionalShaderProps,
|
|
37
36
|
ShaderMap,
|
|
38
37
|
} from '../core/CoreShaderManager.js';
|
|
38
|
+
import { WebPlatform } from '../core/platforms/web/WebPlatform.js';
|
|
39
|
+
import { Platform } from '../core/platforms/Platform.js';
|
|
39
40
|
|
|
40
41
|
/**
|
|
41
|
-
*
|
|
42
|
+
* Settings for the Renderer that can be updated during runtime.
|
|
42
43
|
*/
|
|
43
|
-
export interface
|
|
44
|
+
export interface RendererRuntimeSettings {
|
|
44
45
|
/**
|
|
45
46
|
* Authored logical pixel width of the application
|
|
46
47
|
*
|
|
47
48
|
* @defaultValue `1920`
|
|
48
49
|
*/
|
|
49
|
-
appWidth
|
|
50
|
+
appWidth: number;
|
|
50
51
|
|
|
51
52
|
/**
|
|
52
53
|
* Authored logical pixel height of the application
|
|
53
54
|
*
|
|
54
55
|
* @defaultValue `1080`
|
|
55
56
|
*/
|
|
56
|
-
appHeight
|
|
57
|
+
appHeight: number;
|
|
57
58
|
|
|
58
59
|
/**
|
|
59
60
|
* Texture Memory Manager Settings
|
|
60
61
|
*/
|
|
61
|
-
textureMemory
|
|
62
|
+
textureMemory: Partial<TextureMemoryManagerSettings>;
|
|
62
63
|
|
|
63
64
|
/**
|
|
64
65
|
* Bounds margin to extend the boundary in which a Node is added as Quad.
|
|
65
66
|
*/
|
|
66
|
-
boundsMargin
|
|
67
|
+
boundsMargin: number | [number, number, number, number];
|
|
67
68
|
|
|
68
69
|
/**
|
|
69
70
|
* Factor to convert app-authored logical coorindates to device logical coordinates
|
|
@@ -80,7 +81,7 @@ export interface RendererMainSettings {
|
|
|
80
81
|
*
|
|
81
82
|
* @defaultValue `1`
|
|
82
83
|
*/
|
|
83
|
-
deviceLogicalPixelRatio
|
|
84
|
+
deviceLogicalPixelRatio: number;
|
|
84
85
|
|
|
85
86
|
/**
|
|
86
87
|
* Factor to convert device logical coordinates to device physical coordinates
|
|
@@ -97,14 +98,14 @@ export interface RendererMainSettings {
|
|
|
97
98
|
*
|
|
98
99
|
* @defaultValue `window.devicePixelRatio`
|
|
99
100
|
*/
|
|
100
|
-
devicePhysicalPixelRatio
|
|
101
|
+
devicePhysicalPixelRatio: number;
|
|
101
102
|
|
|
102
103
|
/**
|
|
103
104
|
* RGBA encoded number of the background to use
|
|
104
105
|
*
|
|
105
106
|
* @defaultValue `0x00000000`
|
|
106
107
|
*/
|
|
107
|
-
clearColor
|
|
108
|
+
clearColor: number;
|
|
108
109
|
|
|
109
110
|
/**
|
|
110
111
|
* Interval in milliseconds to receive FPS updates
|
|
@@ -114,8 +115,51 @@ export interface RendererMainSettings {
|
|
|
114
115
|
*
|
|
115
116
|
* @defaultValue `0` (disabled)
|
|
116
117
|
*/
|
|
117
|
-
fpsUpdateInterval
|
|
118
|
+
fpsUpdateInterval: number;
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* DOM Inspector
|
|
122
|
+
*
|
|
123
|
+
* @remarks
|
|
124
|
+
* The inspector will replicate the state of the Nodes created
|
|
125
|
+
* in the renderer and allow inspection of the state of the nodes.
|
|
126
|
+
*
|
|
127
|
+
*/
|
|
128
|
+
inspector: typeof Inspector | false;
|
|
118
129
|
|
|
130
|
+
/**
|
|
131
|
+
* Texture Processing Limit (in milliseconds)
|
|
132
|
+
*
|
|
133
|
+
* @remarks
|
|
134
|
+
* The maximum amount of time the renderer is allowed to process textures in a
|
|
135
|
+
* single frame. If the processing time exceeds this limit, the renderer will
|
|
136
|
+
* skip processing the remaining textures and continue rendering the frame.
|
|
137
|
+
*
|
|
138
|
+
* @defaultValue `10`
|
|
139
|
+
*/
|
|
140
|
+
textureProcessingTimeLimit: number;
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* Target FPS for the global render loop
|
|
144
|
+
*
|
|
145
|
+
* @remarks
|
|
146
|
+
* Controls the maximum frame rate of the entire rendering system.
|
|
147
|
+
* When set to 0, no throttling is applied (use display refresh rate).
|
|
148
|
+
* When set to a positive number, the global requestAnimationFrame loop
|
|
149
|
+
* will be throttled to this target FPS, affecting all animations and rendering.
|
|
150
|
+
*
|
|
151
|
+
* This provides global performance control for the entire application,
|
|
152
|
+
* useful for managing performance on lower-end devices.
|
|
153
|
+
*
|
|
154
|
+
* @defaultValue `0` (no throttling, use display refresh rate)
|
|
155
|
+
*/
|
|
156
|
+
targetFPS: number;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
/**
|
|
160
|
+
* Configuration settings for {@link RendererMain}
|
|
161
|
+
*/
|
|
162
|
+
export type RendererMainSettings = RendererRuntimeSettings & {
|
|
119
163
|
/**
|
|
120
164
|
* Include context call (i.e. WebGL) information in FPS updates
|
|
121
165
|
*
|
|
@@ -129,7 +173,7 @@ export interface RendererMainSettings {
|
|
|
129
173
|
*
|
|
130
174
|
* @defaultValue `false` (disabled)
|
|
131
175
|
*/
|
|
132
|
-
enableContextSpy
|
|
176
|
+
enableContextSpy: boolean;
|
|
133
177
|
|
|
134
178
|
/**
|
|
135
179
|
* Number or Image Workers to use
|
|
@@ -141,17 +185,7 @@ export interface RendererMainSettings {
|
|
|
141
185
|
*
|
|
142
186
|
* @defaultValue `2`
|
|
143
187
|
*/
|
|
144
|
-
numImageWorkers
|
|
145
|
-
|
|
146
|
-
/**
|
|
147
|
-
* DOM Inspector
|
|
148
|
-
*
|
|
149
|
-
* @remarks
|
|
150
|
-
* The inspector will replicate the state of the Nodes created
|
|
151
|
-
* in the renderer and allow inspection of the state of the nodes.
|
|
152
|
-
*
|
|
153
|
-
*/
|
|
154
|
-
inspector?: typeof Inspector | false;
|
|
188
|
+
numImageWorkers: number;
|
|
155
189
|
|
|
156
190
|
/**
|
|
157
191
|
* Renderer Engine
|
|
@@ -173,7 +207,7 @@ export interface RendererMainSettings {
|
|
|
173
207
|
*
|
|
174
208
|
* @defaultValue 4 * 1024 * 1024
|
|
175
209
|
*/
|
|
176
|
-
quadBufferSize
|
|
210
|
+
quadBufferSize: number;
|
|
177
211
|
|
|
178
212
|
/**
|
|
179
213
|
* Font Engines
|
|
@@ -203,7 +237,7 @@ export interface RendererMainSettings {
|
|
|
203
237
|
*
|
|
204
238
|
*
|
|
205
239
|
*/
|
|
206
|
-
fontEngines:
|
|
240
|
+
fontEngines: TextRenderer[];
|
|
207
241
|
|
|
208
242
|
/**
|
|
209
243
|
* Force WebGL2
|
|
@@ -214,7 +248,7 @@ export interface RendererMainSettings {
|
|
|
214
248
|
*
|
|
215
249
|
* @defaultValue `false`
|
|
216
250
|
*/
|
|
217
|
-
forceWebGL2
|
|
251
|
+
forceWebGL2: boolean;
|
|
218
252
|
|
|
219
253
|
/**
|
|
220
254
|
* Enable strictBounds
|
|
@@ -225,19 +259,7 @@ export interface RendererMainSettings {
|
|
|
225
259
|
*
|
|
226
260
|
* @defaultValue `true`
|
|
227
261
|
*/
|
|
228
|
-
strictBounds
|
|
229
|
-
|
|
230
|
-
/**
|
|
231
|
-
* Texture Processing Limit (in milliseconds)
|
|
232
|
-
*
|
|
233
|
-
* @remarks
|
|
234
|
-
* The maximum amount of time the renderer is allowed to process textures in a
|
|
235
|
-
* single frame. If the processing time exceeds this limit, the renderer will
|
|
236
|
-
* skip processing the remaining textures and continue rendering the frame.
|
|
237
|
-
*
|
|
238
|
-
* @defaultValue `10`
|
|
239
|
-
*/
|
|
240
|
-
textureProcessingTimeLimit?: number;
|
|
262
|
+
strictBounds: boolean;
|
|
241
263
|
|
|
242
264
|
/**
|
|
243
265
|
* Canvas object to use for rendering
|
|
@@ -246,7 +268,7 @@ export interface RendererMainSettings {
|
|
|
246
268
|
* This is used to render the scene graph. If not provided, a new canvas
|
|
247
269
|
* element will be created and appended to the target element.
|
|
248
270
|
*/
|
|
249
|
-
canvas
|
|
271
|
+
canvas: HTMLCanvasElement;
|
|
250
272
|
|
|
251
273
|
/**
|
|
252
274
|
* createImageBitmap support for the runtime
|
|
@@ -271,8 +293,20 @@ export interface RendererMainSettings {
|
|
|
271
293
|
*
|
|
272
294
|
* @defaultValue `full`
|
|
273
295
|
*/
|
|
274
|
-
createImageBitmapSupport
|
|
275
|
-
|
|
296
|
+
createImageBitmapSupport: 'auto' | 'basic' | 'options' | 'full';
|
|
297
|
+
|
|
298
|
+
/**
|
|
299
|
+
* Provide an alternative platform abstraction layer
|
|
300
|
+
*
|
|
301
|
+
* @remarks
|
|
302
|
+
* By default the Lightning 3 renderer will load a webplatform, assuming it runs
|
|
303
|
+
* inside a web browsr. However for special cases there might be a need to provide
|
|
304
|
+
* an abstracted platform layer to run on non-web or non-standard JS engines
|
|
305
|
+
*
|
|
306
|
+
* @defaultValue `null`
|
|
307
|
+
*/
|
|
308
|
+
platform: typeof Platform | null;
|
|
309
|
+
};
|
|
276
310
|
|
|
277
311
|
/**
|
|
278
312
|
* The Renderer Main API
|
|
@@ -327,7 +361,6 @@ export interface RendererMainSettings {
|
|
|
327
361
|
export class RendererMain extends EventEmitter {
|
|
328
362
|
readonly root: INode;
|
|
329
363
|
readonly canvas: HTMLCanvasElement;
|
|
330
|
-
readonly settings: Readonly<Required<RendererMainSettings>>;
|
|
331
364
|
readonly stage: Stage;
|
|
332
365
|
private inspector: Inspector | null = null;
|
|
333
366
|
|
|
@@ -338,21 +371,17 @@ export class RendererMain extends EventEmitter {
|
|
|
338
371
|
* @param target Element ID or HTMLElement to insert the canvas into
|
|
339
372
|
* @param driver Core Driver to use
|
|
340
373
|
*/
|
|
341
|
-
constructor(
|
|
374
|
+
constructor(
|
|
375
|
+
settings: Partial<RendererMainSettings>,
|
|
376
|
+
target: string | HTMLElement,
|
|
377
|
+
) {
|
|
342
378
|
super();
|
|
343
379
|
|
|
344
|
-
const resolvedTxSettings
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
cleanupInterval: settings.textureMemory?.cleanupInterval || 5000,
|
|
348
|
-
debugLogging: settings.textureMemory?.debugLogging || false,
|
|
349
|
-
baselineMemoryAllocation:
|
|
350
|
-
settings.textureMemory?.baselineMemoryAllocation || 26e6,
|
|
351
|
-
doNotExceedCriticalThreshold:
|
|
352
|
-
settings.textureMemory?.doNotExceedCriticalThreshold || false,
|
|
353
|
-
};
|
|
380
|
+
const resolvedTxSettings = this.resolveTxSettings(
|
|
381
|
+
settings.textureMemory || {},
|
|
382
|
+
);
|
|
354
383
|
|
|
355
|
-
|
|
384
|
+
settings = {
|
|
356
385
|
appWidth: settings.appWidth || 1920,
|
|
357
386
|
appHeight: settings.appHeight || 1080,
|
|
358
387
|
textureMemory: resolvedTxSettings,
|
|
@@ -362,6 +391,7 @@ export class RendererMain extends EventEmitter {
|
|
|
362
391
|
settings.devicePhysicalPixelRatio || window.devicePixelRatio,
|
|
363
392
|
clearColor: settings.clearColor ?? 0x00000000,
|
|
364
393
|
fpsUpdateInterval: settings.fpsUpdateInterval || 0,
|
|
394
|
+
targetFPS: settings.targetFPS || 0,
|
|
365
395
|
numImageWorkers:
|
|
366
396
|
settings.numImageWorkers !== undefined ? settings.numImageWorkers : 2,
|
|
367
397
|
enableContextSpy: settings.enableContextSpy ?? false,
|
|
@@ -369,13 +399,13 @@ export class RendererMain extends EventEmitter {
|
|
|
369
399
|
inspector: settings.inspector ?? false,
|
|
370
400
|
renderEngine: settings.renderEngine,
|
|
371
401
|
quadBufferSize: settings.quadBufferSize ?? 4 * 1024 * 1024,
|
|
372
|
-
fontEngines: settings.fontEngines,
|
|
402
|
+
fontEngines: settings.fontEngines ?? [],
|
|
373
403
|
strictBounds: settings.strictBounds ?? true,
|
|
374
|
-
textureProcessingTimeLimit: settings.textureProcessingTimeLimit ||
|
|
404
|
+
textureProcessingTimeLimit: settings.textureProcessingTimeLimit || 42,
|
|
375
405
|
canvas: settings.canvas || document.createElement('canvas'),
|
|
376
406
|
createImageBitmapSupport: settings.createImageBitmapSupport || 'full',
|
|
407
|
+
platform: settings.platform || null,
|
|
377
408
|
};
|
|
378
|
-
this.settings = resolvedSettings;
|
|
379
409
|
|
|
380
410
|
const {
|
|
381
411
|
appWidth,
|
|
@@ -384,7 +414,19 @@ export class RendererMain extends EventEmitter {
|
|
|
384
414
|
devicePhysicalPixelRatio,
|
|
385
415
|
inspector,
|
|
386
416
|
canvas,
|
|
387
|
-
} =
|
|
417
|
+
} = settings as RendererMainSettings;
|
|
418
|
+
|
|
419
|
+
let platform;
|
|
420
|
+
if (
|
|
421
|
+
settings.platform !== undefined &&
|
|
422
|
+
settings.platform !== null &&
|
|
423
|
+
settings.platform.prototype instanceof Platform === true
|
|
424
|
+
) {
|
|
425
|
+
// @ts-ignore - if Platform is a valid class, it will be used
|
|
426
|
+
platform = new settings.platform();
|
|
427
|
+
} else {
|
|
428
|
+
platform = new WebPlatform();
|
|
429
|
+
}
|
|
388
430
|
|
|
389
431
|
const deviceLogicalWidth = appWidth * deviceLogicalPixelRatio;
|
|
390
432
|
const deviceLogicalHeight = appHeight * deviceLogicalPixelRatio;
|
|
@@ -398,26 +440,28 @@ export class RendererMain extends EventEmitter {
|
|
|
398
440
|
|
|
399
441
|
// Initialize the stage
|
|
400
442
|
this.stage = new Stage({
|
|
401
|
-
appWidth
|
|
402
|
-
appHeight
|
|
403
|
-
boundsMargin:
|
|
404
|
-
clearColor:
|
|
443
|
+
appWidth,
|
|
444
|
+
appHeight,
|
|
445
|
+
boundsMargin: settings.boundsMargin!,
|
|
446
|
+
clearColor: settings.clearColor!,
|
|
405
447
|
canvas: this.canvas,
|
|
406
|
-
deviceLogicalPixelRatio
|
|
407
|
-
devicePhysicalPixelRatio
|
|
408
|
-
enableContextSpy:
|
|
409
|
-
forceWebGL2:
|
|
410
|
-
fpsUpdateInterval:
|
|
411
|
-
numImageWorkers:
|
|
412
|
-
renderEngine:
|
|
448
|
+
deviceLogicalPixelRatio,
|
|
449
|
+
devicePhysicalPixelRatio,
|
|
450
|
+
enableContextSpy: settings.enableContextSpy!,
|
|
451
|
+
forceWebGL2: settings.forceWebGL2!,
|
|
452
|
+
fpsUpdateInterval: settings.fpsUpdateInterval!,
|
|
453
|
+
numImageWorkers: settings.numImageWorkers!,
|
|
454
|
+
renderEngine: settings.renderEngine!,
|
|
413
455
|
textureMemory: resolvedTxSettings,
|
|
414
456
|
eventBus: this,
|
|
415
|
-
quadBufferSize:
|
|
416
|
-
fontEngines:
|
|
417
|
-
inspector:
|
|
418
|
-
strictBounds:
|
|
419
|
-
|
|
420
|
-
|
|
457
|
+
quadBufferSize: settings.quadBufferSize!,
|
|
458
|
+
fontEngines: settings.fontEngines!,
|
|
459
|
+
inspector: settings.inspector !== null,
|
|
460
|
+
strictBounds: settings.strictBounds!,
|
|
461
|
+
targetFPS: settings.targetFPS!,
|
|
462
|
+
textureProcessingTimeLimit: settings.textureProcessingTimeLimit!,
|
|
463
|
+
createImageBitmapSupport: settings.createImageBitmapSupport!,
|
|
464
|
+
platform,
|
|
421
465
|
});
|
|
422
466
|
|
|
423
467
|
// Extract the root node
|
|
@@ -438,11 +482,49 @@ export class RendererMain extends EventEmitter {
|
|
|
438
482
|
targetEl.appendChild(canvas);
|
|
439
483
|
|
|
440
484
|
// Initialize inspector (if enabled)
|
|
441
|
-
if (inspector &&
|
|
442
|
-
this.inspector = new inspector(canvas,
|
|
485
|
+
if (inspector && isProductionEnvironment === false) {
|
|
486
|
+
this.inspector = new inspector(canvas, settings as RendererMainSettings);
|
|
443
487
|
}
|
|
444
488
|
}
|
|
445
489
|
|
|
490
|
+
/**
|
|
491
|
+
* Resolves the Texture Memory Manager values
|
|
492
|
+
*
|
|
493
|
+
* @param props
|
|
494
|
+
* @returns
|
|
495
|
+
*/
|
|
496
|
+
private resolveTxSettings(
|
|
497
|
+
textureMemory: Partial<TextureMemoryManagerSettings>,
|
|
498
|
+
): TextureMemoryManagerSettings {
|
|
499
|
+
const currentTxSettings =
|
|
500
|
+
(this.stage && this.stage.options.textureMemory) || {};
|
|
501
|
+
|
|
502
|
+
return {
|
|
503
|
+
criticalThreshold:
|
|
504
|
+
textureMemory?.criticalThreshold ??
|
|
505
|
+
currentTxSettings?.criticalThreshold ??
|
|
506
|
+
124e6,
|
|
507
|
+
targetThresholdLevel:
|
|
508
|
+
textureMemory?.targetThresholdLevel ??
|
|
509
|
+
currentTxSettings?.targetThresholdLevel ??
|
|
510
|
+
0.5,
|
|
511
|
+
cleanupInterval:
|
|
512
|
+
textureMemory?.cleanupInterval ??
|
|
513
|
+
currentTxSettings?.cleanupInterval ??
|
|
514
|
+
5000,
|
|
515
|
+
debugLogging:
|
|
516
|
+
textureMemory?.debugLogging ?? currentTxSettings?.debugLogging ?? false,
|
|
517
|
+
baselineMemoryAllocation:
|
|
518
|
+
textureMemory?.baselineMemoryAllocation ??
|
|
519
|
+
currentTxSettings?.baselineMemoryAllocation ??
|
|
520
|
+
26e6,
|
|
521
|
+
doNotExceedCriticalThreshold:
|
|
522
|
+
textureMemory?.doNotExceedCriticalThreshold ??
|
|
523
|
+
currentTxSettings?.doNotExceedCriticalThreshold ??
|
|
524
|
+
false,
|
|
525
|
+
};
|
|
526
|
+
}
|
|
527
|
+
|
|
446
528
|
/**
|
|
447
529
|
* Create a new scene graph node
|
|
448
530
|
*
|
|
@@ -461,16 +543,12 @@ export class RendererMain extends EventEmitter {
|
|
|
461
543
|
createNode<ShNode extends CoreShaderNode<any>>(
|
|
462
544
|
props: Partial<INodeProps<ShNode>>,
|
|
463
545
|
): INode<ShNode> {
|
|
464
|
-
assertTruthy(this.stage, 'Stage is not initialized');
|
|
465
|
-
|
|
466
546
|
const node = this.stage.createNode(props as Partial<CoreNodeProps>);
|
|
467
547
|
|
|
468
548
|
if (this.inspector) {
|
|
469
549
|
return this.inspector.createNode(node) as unknown as INode<ShNode>;
|
|
470
550
|
}
|
|
471
551
|
|
|
472
|
-
// FIXME onDestroy event? node.once('beforeDestroy'
|
|
473
|
-
// FIXME onCreate event?
|
|
474
552
|
return node as unknown as INode<ShNode>;
|
|
475
553
|
}
|
|
476
554
|
|
|
@@ -557,7 +635,7 @@ export class RendererMain extends EventEmitter {
|
|
|
557
635
|
props?: OptionalShaderProps<ShType>,
|
|
558
636
|
) {
|
|
559
637
|
return this.stage.shManager.createShader(shType, props) as CoreShaderNode<
|
|
560
|
-
ExtractShaderProps<ShType
|
|
638
|
+
NonNullable<ExtractShaderProps<ShType>>
|
|
561
639
|
>;
|
|
562
640
|
}
|
|
563
641
|
|
|
@@ -646,4 +724,150 @@ export class RendererMain extends EventEmitter {
|
|
|
646
724
|
setClearColor(color: number) {
|
|
647
725
|
this.stage.setClearColor(color);
|
|
648
726
|
}
|
|
727
|
+
|
|
728
|
+
/**
|
|
729
|
+
* Set options for the renderer
|
|
730
|
+
*
|
|
731
|
+
* @param options
|
|
732
|
+
*/
|
|
733
|
+
setOptions(options: Partial<RendererRuntimeSettings>) {
|
|
734
|
+
const stage = this.stage;
|
|
735
|
+
if (options.textureMemory !== undefined) {
|
|
736
|
+
const textureMemory = (options.textureMemory = this.resolveTxSettings(
|
|
737
|
+
options.textureMemory,
|
|
738
|
+
));
|
|
739
|
+
stage.txMemManager.updateSettings(textureMemory);
|
|
740
|
+
stage.txMemManager.cleanup();
|
|
741
|
+
}
|
|
742
|
+
|
|
743
|
+
if (options.boundsMargin !== undefined) {
|
|
744
|
+
let bm = options.boundsMargin!;
|
|
745
|
+
options.boundsMargin = Array.isArray(bm) ? bm : [bm, bm, bm, bm];
|
|
746
|
+
}
|
|
747
|
+
|
|
748
|
+
const stageOptions = stage.options;
|
|
749
|
+
for (let key in options) {
|
|
750
|
+
stageOptions[key] = options[key]!;
|
|
751
|
+
}
|
|
752
|
+
|
|
753
|
+
if (options.inspector !== undefined && !isProductionEnvironment) {
|
|
754
|
+
if (options.inspector === false) {
|
|
755
|
+
this.inspector?.destroy();
|
|
756
|
+
this.inspector = null;
|
|
757
|
+
} else if (
|
|
758
|
+
this.inspector === null ||
|
|
759
|
+
this.inspector.constructor !== options.inspector
|
|
760
|
+
) {
|
|
761
|
+
this.inspector = new options.inspector(
|
|
762
|
+
this.canvas,
|
|
763
|
+
stage.options as unknown as RendererMainSettings,
|
|
764
|
+
);
|
|
765
|
+
this.inspector?.createNodes(this.root as unknown as CoreNode);
|
|
766
|
+
}
|
|
767
|
+
}
|
|
768
|
+
|
|
769
|
+
let needDimensionsUpdate = false;
|
|
770
|
+
|
|
771
|
+
if (
|
|
772
|
+
options.deviceLogicalPixelRatio ||
|
|
773
|
+
options.devicePhysicalPixelRatio !== undefined
|
|
774
|
+
) {
|
|
775
|
+
this.stage.pixelRatio =
|
|
776
|
+
stageOptions.devicePhysicalPixelRatio *
|
|
777
|
+
stageOptions.deviceLogicalPixelRatio;
|
|
778
|
+
this.inspector?.updateViewport(
|
|
779
|
+
stageOptions.appWidth,
|
|
780
|
+
stageOptions.appHeight,
|
|
781
|
+
stageOptions.deviceLogicalPixelRatio,
|
|
782
|
+
);
|
|
783
|
+
needDimensionsUpdate = true;
|
|
784
|
+
}
|
|
785
|
+
|
|
786
|
+
if (options.appWidth !== undefined || options.appHeight !== undefined) {
|
|
787
|
+
this.inspector?.updateViewport(
|
|
788
|
+
stageOptions.appWidth,
|
|
789
|
+
stageOptions.appHeight,
|
|
790
|
+
stageOptions.deviceLogicalPixelRatio,
|
|
791
|
+
);
|
|
792
|
+
needDimensionsUpdate = true;
|
|
793
|
+
}
|
|
794
|
+
|
|
795
|
+
if (options.boundsMargin !== undefined) {
|
|
796
|
+
this.stage.setBoundsMargin(options.boundsMargin);
|
|
797
|
+
}
|
|
798
|
+
|
|
799
|
+
if (options.clearColor !== undefined) {
|
|
800
|
+
this.stage.setClearColor(options.clearColor);
|
|
801
|
+
}
|
|
802
|
+
|
|
803
|
+
if (needDimensionsUpdate) {
|
|
804
|
+
this.updateAppDimensions();
|
|
805
|
+
}
|
|
806
|
+
}
|
|
807
|
+
|
|
808
|
+
private updateAppDimensions() {
|
|
809
|
+
const {
|
|
810
|
+
appWidth,
|
|
811
|
+
appHeight,
|
|
812
|
+
deviceLogicalPixelRatio,
|
|
813
|
+
devicePhysicalPixelRatio,
|
|
814
|
+
} = this.stage.options;
|
|
815
|
+
|
|
816
|
+
const deviceLogicalWidth = appWidth * deviceLogicalPixelRatio;
|
|
817
|
+
const deviceLogicalHeight = appHeight * deviceLogicalPixelRatio;
|
|
818
|
+
|
|
819
|
+
this.canvas.width = deviceLogicalWidth * devicePhysicalPixelRatio;
|
|
820
|
+
this.canvas.height = deviceLogicalHeight * devicePhysicalPixelRatio;
|
|
821
|
+
|
|
822
|
+
this.canvas.style.width = `${deviceLogicalWidth}px`;
|
|
823
|
+
this.canvas.style.height = `${deviceLogicalHeight}px`;
|
|
824
|
+
|
|
825
|
+
this.stage.renderer.updateViewport();
|
|
826
|
+
|
|
827
|
+
this.root.width = appWidth;
|
|
828
|
+
this.root.height = appHeight;
|
|
829
|
+
this.stage.updateViewportBounds();
|
|
830
|
+
}
|
|
831
|
+
|
|
832
|
+
get settings(): Readonly<StageOptions> {
|
|
833
|
+
return this.stage.options;
|
|
834
|
+
}
|
|
835
|
+
|
|
836
|
+
/**
|
|
837
|
+
* Gets the target FPS for the global render loop
|
|
838
|
+
*
|
|
839
|
+
* @returns The current target FPS (0 means no throttling)
|
|
840
|
+
*
|
|
841
|
+
* @remarks
|
|
842
|
+
* This controls the maximum frame rate of the entire rendering system.
|
|
843
|
+
* When 0, the system runs at display refresh rate.
|
|
844
|
+
*/
|
|
845
|
+
get targetFPS(): number {
|
|
846
|
+
return this.stage.options.targetFPS || 0;
|
|
847
|
+
}
|
|
848
|
+
|
|
849
|
+
/**
|
|
850
|
+
* Sets the target FPS for the global render loop
|
|
851
|
+
*
|
|
852
|
+
* @param fps - The target FPS to set for the global render loop.
|
|
853
|
+
* Set to 0 or a negative value to disable throttling.
|
|
854
|
+
*
|
|
855
|
+
* @remarks
|
|
856
|
+
* This setting affects the entire rendering system immediately.
|
|
857
|
+
* All animations, rendering, and frame updates will be throttled
|
|
858
|
+
* to this target FPS. Provides global performance control.
|
|
859
|
+
*
|
|
860
|
+
* @example
|
|
861
|
+
* ```typescript
|
|
862
|
+
* // Set global target to 30fps for better performance
|
|
863
|
+
* renderer.targetFPS = 30;
|
|
864
|
+
*
|
|
865
|
+
* // Disable global throttling (use display refresh rate)
|
|
866
|
+
* renderer.targetFPS = 0;
|
|
867
|
+
* ```
|
|
868
|
+
*/
|
|
869
|
+
set targetFPS(fps: number) {
|
|
870
|
+
this.stage.options.targetFPS = fps > 0 ? fps : 0;
|
|
871
|
+
this.stage.updateTargetFrameTime();
|
|
872
|
+
}
|
|
649
873
|
}
|
package/src/utils.ts
CHANGED
|
@@ -64,6 +64,15 @@ export function createWebGLContext(
|
|
|
64
64
|
return gl;
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
+
/**
|
|
68
|
+
* Checks if we're in a development environment or not.
|
|
69
|
+
*
|
|
70
|
+
* @returns
|
|
71
|
+
*/
|
|
72
|
+
declare const __DEV__: boolean;
|
|
73
|
+
export const isProductionEnvironment =
|
|
74
|
+
typeof __DEV__ !== 'undefined' ? !__DEV__ : true;
|
|
75
|
+
|
|
67
76
|
/**
|
|
68
77
|
* Asserts a condition is truthy, otherwise throws an error
|
|
69
78
|
*
|
|
@@ -80,7 +89,7 @@ export function assertTruthy(
|
|
|
80
89
|
condition: unknown,
|
|
81
90
|
message?: string,
|
|
82
91
|
): asserts condition {
|
|
83
|
-
if (isProductionEnvironment
|
|
92
|
+
if (isProductionEnvironment === true) return;
|
|
84
93
|
if (!condition) {
|
|
85
94
|
throw new Error(message || 'Assertion failed');
|
|
86
95
|
}
|
|
@@ -230,15 +239,6 @@ export function getImageAspectRatio(width: number, height: number): number {
|
|
|
230
239
|
return width / height;
|
|
231
240
|
}
|
|
232
241
|
|
|
233
|
-
/**
|
|
234
|
-
* Checks import.meta if env is production
|
|
235
|
-
*
|
|
236
|
-
* @returns
|
|
237
|
-
*/
|
|
238
|
-
export function isProductionEnvironment(): boolean {
|
|
239
|
-
return import.meta.env && import.meta.env.PROD;
|
|
240
|
-
}
|
|
241
|
-
|
|
242
242
|
/**
|
|
243
243
|
* Returns a new unique ID
|
|
244
244
|
*/
|