@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
|
@@ -5,9 +5,10 @@ import { ImageTexture } from './textures/ImageTexture.js';
|
|
|
5
5
|
import { NoiseTexture } from './textures/NoiseTexture.js';
|
|
6
6
|
import { SubTexture } from './textures/SubTexture.js';
|
|
7
7
|
import { RenderTexture } from './textures/RenderTexture.js';
|
|
8
|
-
import {
|
|
8
|
+
import { Texture } from './textures/Texture.js';
|
|
9
9
|
import { EventEmitter } from '../common/EventEmitter.js';
|
|
10
10
|
import type { Stage } from './Stage.js';
|
|
11
|
+
import type { Platform } from './platforms/Platform.js';
|
|
11
12
|
/**
|
|
12
13
|
* Augmentable map of texture class types
|
|
13
14
|
*
|
|
@@ -138,12 +139,12 @@ export declare class CoreTextureManager extends EventEmitter {
|
|
|
138
139
|
* Map of texture constructors by their type name
|
|
139
140
|
*/
|
|
140
141
|
txConstructors: Partial<TextureMap>;
|
|
141
|
-
private downloadTextureSourceQueue;
|
|
142
142
|
private priorityQueue;
|
|
143
143
|
private uploadTextureQueue;
|
|
144
144
|
private initialized;
|
|
145
145
|
private stage;
|
|
146
146
|
private numImageWorkers;
|
|
147
|
+
platform: Platform;
|
|
147
148
|
imageWorkerManager: ImageWorkerManager | null;
|
|
148
149
|
hasCreateImageBitmap: boolean;
|
|
149
150
|
imageBitmapSupported: {
|
|
@@ -173,10 +174,6 @@ export declare class CoreTextureManager extends EventEmitter {
|
|
|
173
174
|
constructor(stage: Stage, settings: TextureManagerSettings);
|
|
174
175
|
registerTextureType<Type extends keyof TextureMap>(textureType: Type, textureClass: TextureMap[Type]): void;
|
|
175
176
|
private initialize;
|
|
176
|
-
/**
|
|
177
|
-
* Enqueue a texture for downloading its source image.
|
|
178
|
-
*/
|
|
179
|
-
enqueueDownloadTextureSource(texture: Texture): void;
|
|
180
177
|
/**
|
|
181
178
|
* Enqueue a texture for uploading to the GPU.
|
|
182
179
|
*
|
|
@@ -202,18 +199,19 @@ export declare class CoreTextureManager extends EventEmitter {
|
|
|
202
199
|
* Upload a texture to the GPU
|
|
203
200
|
*
|
|
204
201
|
* @param texture Texture to upload
|
|
202
|
+
* @returns Promise that resolves when the texture is fully loaded
|
|
205
203
|
*/
|
|
206
|
-
uploadTexture(texture: Texture): void
|
|
204
|
+
uploadTexture(texture: Texture): Promise<void>;
|
|
207
205
|
/**
|
|
208
206
|
* Check if a texture is being processed
|
|
209
207
|
*/
|
|
210
208
|
isProcessingTexture(texture: Texture): boolean;
|
|
211
209
|
/**
|
|
212
|
-
* Process a limited number of
|
|
210
|
+
* Process a limited number of uploads.
|
|
213
211
|
*
|
|
214
|
-
* @param
|
|
212
|
+
* @param maxProcessingTime - The maximum processing time in milliseconds
|
|
215
213
|
*/
|
|
216
|
-
processSome(maxProcessingTime: number): void
|
|
214
|
+
processSome(maxProcessingTime: number): Promise<void>;
|
|
217
215
|
hasUpdates(): boolean;
|
|
218
216
|
/**
|
|
219
217
|
* Initialize a texture to the cache
|
|
@@ -238,7 +236,7 @@ export declare class CoreTextureManager extends EventEmitter {
|
|
|
238
236
|
*/
|
|
239
237
|
removeTextureFromCache(texture: Texture): void;
|
|
240
238
|
/**
|
|
241
|
-
* Remove texture from the queue
|
|
239
|
+
* Remove texture from the upload queue
|
|
242
240
|
*
|
|
243
241
|
* @param texture - The texture to remove
|
|
244
242
|
*/
|
|
@@ -22,9 +22,8 @@ import { ImageTexture } from './textures/ImageTexture.js';
|
|
|
22
22
|
import { NoiseTexture } from './textures/NoiseTexture.js';
|
|
23
23
|
import { SubTexture } from './textures/SubTexture.js';
|
|
24
24
|
import { RenderTexture } from './textures/RenderTexture.js';
|
|
25
|
-
import { TextureType } from './textures/Texture.js';
|
|
25
|
+
import { Texture, TextureType } from './textures/Texture.js';
|
|
26
26
|
import { EventEmitter } from '../common/EventEmitter.js';
|
|
27
|
-
import { getTimeStamp } from './platform.js';
|
|
28
27
|
import { validateCreateImageBitmap, } from './lib/validateImageBitmap.js';
|
|
29
28
|
export class CoreTextureManager extends EventEmitter {
|
|
30
29
|
/**
|
|
@@ -39,14 +38,14 @@ export class CoreTextureManager extends EventEmitter {
|
|
|
39
38
|
* Map of texture constructors by their type name
|
|
40
39
|
*/
|
|
41
40
|
txConstructors = {};
|
|
42
|
-
downloadTextureSourceQueue = [];
|
|
43
41
|
priorityQueue = [];
|
|
44
42
|
uploadTextureQueue = [];
|
|
45
43
|
initialized = false;
|
|
46
44
|
stage;
|
|
47
45
|
numImageWorkers;
|
|
46
|
+
platform;
|
|
48
47
|
imageWorkerManager = null;
|
|
49
|
-
hasCreateImageBitmap =
|
|
48
|
+
hasCreateImageBitmap = false;
|
|
50
49
|
imageBitmapSupported = {
|
|
51
50
|
basic: false,
|
|
52
51
|
options: false,
|
|
@@ -75,13 +74,14 @@ export class CoreTextureManager extends EventEmitter {
|
|
|
75
74
|
super();
|
|
76
75
|
const { numImageWorkers, createImageBitmapSupport } = settings;
|
|
77
76
|
this.stage = stage;
|
|
77
|
+
this.platform = stage.platform;
|
|
78
78
|
this.numImageWorkers = numImageWorkers;
|
|
79
79
|
if (createImageBitmapSupport === 'auto') {
|
|
80
|
-
validateCreateImageBitmap()
|
|
80
|
+
validateCreateImageBitmap(this.platform)
|
|
81
81
|
.then((result) => {
|
|
82
82
|
this.initialize(result);
|
|
83
83
|
})
|
|
84
|
-
.catch((
|
|
84
|
+
.catch(() => {
|
|
85
85
|
console.warn('[Lightning] createImageBitmap is not supported on this browser. ImageTexture will be slower.');
|
|
86
86
|
// initialized without image worker manager and createImageBitmap
|
|
87
87
|
this.initialized = true;
|
|
@@ -108,11 +108,11 @@ export class CoreTextureManager extends EventEmitter {
|
|
|
108
108
|
this.hasCreateImageBitmap =
|
|
109
109
|
support.basic || support.options || support.full;
|
|
110
110
|
this.imageBitmapSupported = support;
|
|
111
|
-
if (
|
|
111
|
+
if (this.hasCreateImageBitmap === false) {
|
|
112
112
|
console.warn('[Lightning] createImageBitmap is not supported on this browser. ImageTexture will be slower.');
|
|
113
113
|
}
|
|
114
|
-
if (this.hasCreateImageBitmap &&
|
|
115
|
-
this.hasWorker &&
|
|
114
|
+
if (this.hasCreateImageBitmap === true &&
|
|
115
|
+
this.hasWorker === true &&
|
|
116
116
|
this.numImageWorkers > 0) {
|
|
117
117
|
this.imageWorkerManager = new ImageWorkerManager(this.numImageWorkers, support);
|
|
118
118
|
}
|
|
@@ -122,14 +122,6 @@ export class CoreTextureManager extends EventEmitter {
|
|
|
122
122
|
this.initialized = true;
|
|
123
123
|
this.emit('initialized');
|
|
124
124
|
}
|
|
125
|
-
/**
|
|
126
|
-
* Enqueue a texture for downloading its source image.
|
|
127
|
-
*/
|
|
128
|
-
enqueueDownloadTextureSource(texture) {
|
|
129
|
-
if (!this.downloadTextureSourceQueue.includes(texture)) {
|
|
130
|
-
this.downloadTextureSourceQueue.push(texture);
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
125
|
/**
|
|
134
126
|
* Enqueue a texture for uploading to the GPU.
|
|
135
127
|
*
|
|
@@ -187,68 +179,69 @@ export class CoreTextureManager extends EventEmitter {
|
|
|
187
179
|
// ignore subtextures - they get loaded through their parent
|
|
188
180
|
return;
|
|
189
181
|
}
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
texture.ctxTexture.state === 'loaded') {
|
|
193
|
-
texture.setState('loaded');
|
|
182
|
+
if (texture.state === 'loaded') {
|
|
183
|
+
// if the texture is already loaded, just return
|
|
194
184
|
return;
|
|
195
185
|
}
|
|
196
|
-
|
|
197
|
-
if (this.downloadTextureSourceQueue.includes(texture) === true ||
|
|
198
|
-
this.uploadTextureQueue.includes(texture) === true) {
|
|
186
|
+
if (Texture.TRANSITIONAL_TEXTURE_STATES.includes(texture.state)) {
|
|
199
187
|
return;
|
|
200
188
|
}
|
|
201
|
-
// if the texture is already loading, free it, this can happen if the texture is
|
|
202
|
-
// orphaned and then reloaded
|
|
203
|
-
if (texture.ctxTexture !== undefined &&
|
|
204
|
-
texture.ctxTexture.state === 'loading') {
|
|
205
|
-
// if the texture has texture data, queue it for upload
|
|
206
|
-
if (texture.textureData !== null) {
|
|
207
|
-
this.enqueueUploadTexture(texture);
|
|
208
|
-
}
|
|
209
|
-
// else we will have to re-download the texture
|
|
210
|
-
texture.free();
|
|
211
|
-
}
|
|
212
189
|
// if we're not initialized, just queue the texture into the priority queue
|
|
213
190
|
if (this.initialized === false) {
|
|
214
191
|
this.priorityQueue.push(texture);
|
|
215
192
|
return;
|
|
216
193
|
}
|
|
217
|
-
//
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
texture.type === TextureType.renderToTexture) &&
|
|
222
|
-
texture.state !== 'initial') {
|
|
223
|
-
texture.setState('fetched');
|
|
224
|
-
this.enqueueUploadTexture(texture);
|
|
225
|
-
return;
|
|
194
|
+
// If the texture failed to load, we need to re-download it.
|
|
195
|
+
if (texture.state === 'failed') {
|
|
196
|
+
texture.free();
|
|
197
|
+
texture.freeTextureData();
|
|
226
198
|
}
|
|
227
199
|
texture.setState('loading');
|
|
228
|
-
//
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
200
|
+
// Get the texture data
|
|
201
|
+
texture
|
|
202
|
+
.getTextureData()
|
|
203
|
+
.then(() => {
|
|
204
|
+
if (texture.state !== 'fetched') {
|
|
205
|
+
texture.setState('failed');
|
|
206
|
+
return;
|
|
207
|
+
}
|
|
208
|
+
// For non-image textures, upload immediately
|
|
209
|
+
if (texture.type !== TextureType.image) {
|
|
210
|
+
this.uploadTexture(texture).catch((err) => {
|
|
211
|
+
console.error('Failed to upload non-image texture:', err);
|
|
212
|
+
texture.setState('failed');
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
else {
|
|
216
|
+
// For image textures, queue for throttled upload
|
|
217
|
+
// If it's a priority texture, upload it immediately
|
|
218
|
+
if (priority === true) {
|
|
219
|
+
this.uploadTexture(texture).catch((err) => {
|
|
220
|
+
console.error('Failed to upload priority texture:', err);
|
|
221
|
+
texture.setState('failed');
|
|
222
|
+
});
|
|
223
|
+
}
|
|
224
|
+
else {
|
|
225
|
+
this.enqueueUploadTexture(texture);
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
})
|
|
229
|
+
.catch((err) => {
|
|
230
|
+
console.error(err);
|
|
231
|
+
texture.setState('failed');
|
|
232
|
+
});
|
|
241
233
|
}
|
|
242
234
|
/**
|
|
243
235
|
* Upload a texture to the GPU
|
|
244
236
|
*
|
|
245
237
|
* @param texture Texture to upload
|
|
238
|
+
* @returns Promise that resolves when the texture is fully loaded
|
|
246
239
|
*/
|
|
247
|
-
uploadTexture(texture) {
|
|
240
|
+
async uploadTexture(texture) {
|
|
248
241
|
if (this.stage.txMemManager.doNotExceedCriticalThreshold === true &&
|
|
249
242
|
this.stage.txMemManager.criticalCleanupRequested === true) {
|
|
250
243
|
// we're at a critical memory threshold, don't upload textures
|
|
251
|
-
|
|
244
|
+
texture.setState('failed');
|
|
252
245
|
return;
|
|
253
246
|
}
|
|
254
247
|
const coreContext = texture.loadCtxTexture();
|
|
@@ -256,55 +249,55 @@ export class CoreTextureManager extends EventEmitter {
|
|
|
256
249
|
texture.setState('loaded');
|
|
257
250
|
return;
|
|
258
251
|
}
|
|
259
|
-
coreContext.load();
|
|
252
|
+
await coreContext.load();
|
|
260
253
|
}
|
|
261
254
|
/**
|
|
262
255
|
* Check if a texture is being processed
|
|
263
256
|
*/
|
|
264
257
|
isProcessingTexture(texture) {
|
|
265
|
-
return
|
|
266
|
-
this.uploadTextureQueue.includes(texture) === true);
|
|
258
|
+
return this.uploadTextureQueue.includes(texture) === true;
|
|
267
259
|
}
|
|
268
260
|
/**
|
|
269
|
-
* Process a limited number of
|
|
261
|
+
* Process a limited number of uploads.
|
|
270
262
|
*
|
|
271
|
-
* @param
|
|
263
|
+
* @param maxProcessingTime - The maximum processing time in milliseconds
|
|
272
264
|
*/
|
|
273
|
-
processSome(maxProcessingTime) {
|
|
265
|
+
async processSome(maxProcessingTime) {
|
|
274
266
|
if (this.initialized === false) {
|
|
275
267
|
return;
|
|
276
268
|
}
|
|
277
|
-
const
|
|
269
|
+
const platform = this.platform;
|
|
270
|
+
const startTime = platform.getTimeStamp();
|
|
278
271
|
// Process priority queue
|
|
279
272
|
while (this.priorityQueue.length > 0 &&
|
|
280
|
-
getTimeStamp() - startTime < maxProcessingTime) {
|
|
273
|
+
platform.getTimeStamp() - startTime < maxProcessingTime) {
|
|
281
274
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
282
275
|
const texture = this.priorityQueue.pop();
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
276
|
+
try {
|
|
277
|
+
await texture.getTextureData();
|
|
278
|
+
await this.uploadTexture(texture);
|
|
279
|
+
}
|
|
280
|
+
catch (error) {
|
|
281
|
+
console.error('Failed to process priority texture:', error);
|
|
282
|
+
// Continue with next texture instead of stopping entire queue
|
|
283
|
+
}
|
|
286
284
|
}
|
|
287
|
-
// Process uploads
|
|
285
|
+
// Process uploads - await each upload to prevent GPU overload
|
|
288
286
|
while (this.uploadTextureQueue.length > 0 &&
|
|
289
|
-
getTimeStamp() - startTime < maxProcessingTime) {
|
|
287
|
+
platform.getTimeStamp() - startTime < maxProcessingTime) {
|
|
290
288
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
291
|
-
this.
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
if (texture.state === 'fetched') {
|
|
300
|
-
this.enqueueUploadTexture(texture);
|
|
301
|
-
}
|
|
302
|
-
});
|
|
289
|
+
const texture = this.uploadTextureQueue.shift();
|
|
290
|
+
try {
|
|
291
|
+
await this.uploadTexture(texture);
|
|
292
|
+
}
|
|
293
|
+
catch (error) {
|
|
294
|
+
console.error('Failed to upload texture:', error);
|
|
295
|
+
// Continue with next texture instead of stopping entire queue
|
|
296
|
+
}
|
|
303
297
|
}
|
|
304
298
|
}
|
|
305
299
|
hasUpdates() {
|
|
306
|
-
return
|
|
307
|
-
this.uploadTextureQueue.length > 0);
|
|
300
|
+
return this.uploadTextureQueue.length > 0;
|
|
308
301
|
}
|
|
309
302
|
/**
|
|
310
303
|
* Initialize a texture to the cache
|
|
@@ -341,15 +334,11 @@ export class CoreTextureManager extends EventEmitter {
|
|
|
341
334
|
}
|
|
342
335
|
}
|
|
343
336
|
/**
|
|
344
|
-
* Remove texture from the queue
|
|
337
|
+
* Remove texture from the upload queue
|
|
345
338
|
*
|
|
346
339
|
* @param texture - The texture to remove
|
|
347
340
|
*/
|
|
348
341
|
removeTextureFromQueue(texture) {
|
|
349
|
-
const downloadIndex = this.downloadTextureSourceQueue.indexOf(texture);
|
|
350
|
-
if (downloadIndex !== -1) {
|
|
351
|
-
this.downloadTextureSourceQueue.splice(downloadIndex, 1);
|
|
352
|
-
}
|
|
353
342
|
const uploadIndex = this.uploadTextureQueue.indexOf(texture);
|
|
354
343
|
if (uploadIndex !== -1) {
|
|
355
344
|
this.uploadTextureQueue.splice(uploadIndex, 1);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CoreTextureManager.js","sourceRoot":"","sources":["../../../src/core/CoreTextureManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"CoreTextureManager.js","sourceRoot":"","sources":["../../../src/core/CoreTextureManager.ts"],"names":[],"mappings":"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"}
|
package/dist/src/core/Stage.d.ts
CHANGED
|
@@ -1,64 +1,64 @@
|
|
|
1
1
|
import { AnimationManager } from './animations/AnimationManager.js';
|
|
2
2
|
import { CoreNode, type CoreNodeProps } from './CoreNode.js';
|
|
3
3
|
import { CoreTextureManager } from './CoreTextureManager.js';
|
|
4
|
-
import { TrFontManager } from './text-rendering/TrFontManager.js';
|
|
5
4
|
import { CoreShaderManager } from './CoreShaderManager.js';
|
|
6
|
-
import { TextRenderer, type
|
|
5
|
+
import { type FontHandler, type FontLoadOptions, type TextRenderer, type TextRenderers, type TrProps } from './text-rendering/TextRenderer.js';
|
|
7
6
|
import { EventEmitter } from '../common/EventEmitter.js';
|
|
8
7
|
import { ContextSpy } from './lib/ContextSpy.js';
|
|
9
8
|
import type { FpsUpdatePayload, FrameTickPayload } from '../common/CommonTypes.js';
|
|
10
9
|
import { TextureMemoryManager, type TextureMemoryManagerSettings } from './TextureMemoryManager.js';
|
|
11
10
|
import { CoreRenderer } from './renderers/CoreRenderer.js';
|
|
12
|
-
import type { WebGlRenderer } from './renderers/webgl/WebGlRenderer.js';
|
|
13
|
-
import type { CanvasRenderer } from './renderers/canvas/CanvasRenderer.js';
|
|
14
11
|
import { CoreTextNode, type CoreTextNodeProps } from './CoreTextNode.js';
|
|
15
|
-
import type { SdfTextRenderer } from './text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js';
|
|
16
|
-
import type { CanvasTextRenderer } from './text-rendering/renderers/CanvasTextRenderer.js';
|
|
17
12
|
import type { CoreShaderNode } from './renderers/CoreShaderNode.js';
|
|
18
13
|
import { type Bound } from './lib/utils.js';
|
|
19
14
|
import type { Texture } from './textures/Texture.js';
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
15
|
+
import type { Platform } from './platforms/Platform.js';
|
|
16
|
+
import type { WebPlatform } from './platforms/web/WebPlatform.js';
|
|
17
|
+
import type { RendererMainSettings } from '../main-api/Renderer.js';
|
|
18
|
+
export type StageOptions = Omit<RendererMainSettings, 'inspector' | 'platform'> & {
|
|
23
19
|
textureMemory: TextureMemoryManagerSettings;
|
|
24
|
-
boundsMargin: number | [number, number, number, number];
|
|
25
|
-
deviceLogicalPixelRatio: number;
|
|
26
|
-
devicePhysicalPixelRatio: number;
|
|
27
20
|
canvas: HTMLCanvasElement | OffscreenCanvas;
|
|
28
|
-
clearColor: number;
|
|
29
21
|
fpsUpdateInterval: number;
|
|
30
|
-
enableContextSpy: boolean;
|
|
31
|
-
forceWebGL2: boolean;
|
|
32
|
-
numImageWorkers: number;
|
|
33
|
-
renderEngine: typeof WebGlRenderer | typeof CanvasRenderer;
|
|
34
22
|
eventBus: EventEmitter;
|
|
35
|
-
|
|
36
|
-
fontEngines: (typeof CanvasTextRenderer | typeof SdfTextRenderer)[];
|
|
23
|
+
platform: Platform | WebPlatform;
|
|
37
24
|
inspector: boolean;
|
|
38
|
-
|
|
39
|
-
textureProcessingTimeLimit: number;
|
|
40
|
-
createImageBitmapSupport: 'auto' | 'basic' | 'options' | 'full';
|
|
41
|
-
}
|
|
25
|
+
};
|
|
42
26
|
export type StageFpsUpdateHandler = (stage: Stage, fpsData: FpsUpdatePayload) => void;
|
|
43
27
|
export type StageFrameTickHandler = (stage: Stage, frameTickData: FrameTickPayload) => void;
|
|
28
|
+
export interface Point {
|
|
29
|
+
x: number;
|
|
30
|
+
y: number;
|
|
31
|
+
}
|
|
44
32
|
export declare class Stage {
|
|
45
|
-
|
|
33
|
+
options: StageOptions;
|
|
46
34
|
readonly animationManager: AnimationManager;
|
|
47
35
|
readonly txManager: CoreTextureManager;
|
|
48
36
|
readonly txMemManager: TextureMemoryManager;
|
|
49
|
-
readonly
|
|
50
|
-
readonly
|
|
37
|
+
readonly textRenderers: Record<string, TextRenderer>;
|
|
38
|
+
readonly fontHandlers: Record<string, FontHandler>;
|
|
51
39
|
readonly shManager: CoreShaderManager;
|
|
52
40
|
readonly renderer: CoreRenderer;
|
|
53
41
|
readonly root: CoreNode;
|
|
42
|
+
readonly interactiveNodes: Set<CoreNode>;
|
|
54
43
|
boundsMargin: [number, number, number, number];
|
|
55
44
|
readonly defShaderNode: CoreShaderNode | null;
|
|
56
|
-
|
|
57
|
-
|
|
45
|
+
strictBound: Bound;
|
|
46
|
+
preloadBound: Bound;
|
|
58
47
|
readonly strictBounds: boolean;
|
|
59
48
|
readonly defaultTexture: Texture | null;
|
|
60
|
-
|
|
49
|
+
pixelRatio: number;
|
|
61
50
|
readonly bufferMemory: number;
|
|
51
|
+
readonly platform: Platform | WebPlatform;
|
|
52
|
+
readonly calculateTextureCoord: boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Target frame time in milliseconds (calculated from targetFPS)
|
|
55
|
+
*
|
|
56
|
+
* @remarks
|
|
57
|
+
* This is pre-calculated to avoid recalculating on every frame.
|
|
58
|
+
* - 0 means no throttling (use display refresh rate)
|
|
59
|
+
* - >0 means throttle to this frame time (1000 / targetFPS)
|
|
60
|
+
*/
|
|
61
|
+
targetFrameTime: number;
|
|
62
62
|
/**
|
|
63
63
|
* Renderer Event Bus for the Stage to emit events onto
|
|
64
64
|
*
|
|
@@ -77,13 +77,27 @@ export declare class Stage {
|
|
|
77
77
|
private numQuadsRendered;
|
|
78
78
|
private renderRequested;
|
|
79
79
|
private frameEventQueue;
|
|
80
|
-
private
|
|
80
|
+
private hasOnlyOneFontEngine;
|
|
81
|
+
private hasOnlyCanvasFontEngine;
|
|
82
|
+
private hasCanvasEngine;
|
|
83
|
+
private singleFontEngine;
|
|
84
|
+
private singleFontHandler;
|
|
81
85
|
contextSpy: ContextSpy | null;
|
|
82
86
|
/**
|
|
83
87
|
* Stage constructor
|
|
84
88
|
*/
|
|
85
89
|
constructor(options: StageOptions);
|
|
86
90
|
setClearColor(color: number): void;
|
|
91
|
+
/**
|
|
92
|
+
* Update the target frame time based on the current targetFPS setting
|
|
93
|
+
*
|
|
94
|
+
* @remarks
|
|
95
|
+
* This should be called whenever the targetFPS option is changed
|
|
96
|
+
* to ensure targetFrameTime stays in sync.
|
|
97
|
+
* targetFPS of 0 means no throttling (targetFrameTime = 0)
|
|
98
|
+
* targetFPS > 0 means throttle to 1000/targetFPS milliseconds
|
|
99
|
+
*/
|
|
100
|
+
updateTargetFrameTime(): void;
|
|
87
101
|
updateFrameTime(): void;
|
|
88
102
|
/**
|
|
89
103
|
* Create default PixelTexture
|
|
@@ -143,10 +157,24 @@ export declare class Stage {
|
|
|
143
157
|
* @param textRendererOverride
|
|
144
158
|
* @returns
|
|
145
159
|
*/
|
|
146
|
-
resolveTextRenderer(trProps: TrProps, textRendererOverride?: keyof
|
|
160
|
+
resolveTextRenderer(trProps: TrProps, textRendererOverride?: keyof TextRenderers | null): TextRenderer | null;
|
|
147
161
|
createNode(props: Partial<CoreNodeProps>): CoreNode;
|
|
148
162
|
createTextNode(props: Partial<CoreTextNodeProps>): CoreTextNode;
|
|
149
163
|
setBoundsMargin(value: number | [number, number, number, number]): void;
|
|
164
|
+
/**
|
|
165
|
+
* Update the viewport bounds
|
|
166
|
+
*/
|
|
167
|
+
updateViewportBounds(): void;
|
|
168
|
+
/** Find all nodes at a given point
|
|
169
|
+
* @param data
|
|
170
|
+
*/
|
|
171
|
+
findNodesAtPoint(data: Point): CoreNode[];
|
|
172
|
+
/**
|
|
173
|
+
* Find the top node at a given point
|
|
174
|
+
* @param data
|
|
175
|
+
* @returns
|
|
176
|
+
*/
|
|
177
|
+
getNodeFromPosition(data: Point): CoreNode | null;
|
|
150
178
|
/**
|
|
151
179
|
* Resolves the default property values for a Node
|
|
152
180
|
*
|
|
@@ -168,4 +196,20 @@ export declare class Stage {
|
|
|
168
196
|
cleanup(aggressive: boolean): void;
|
|
169
197
|
set clearColor(value: number);
|
|
170
198
|
get clearColor(): number;
|
|
199
|
+
/**
|
|
200
|
+
* Load a font using a specific text renderer type
|
|
201
|
+
*
|
|
202
|
+
* @remarks
|
|
203
|
+
* This method allows consumers to explicitly load fonts for a specific
|
|
204
|
+
* text renderer type (e.g., 'canvas', 'sdf'). Consumers must specify
|
|
205
|
+
* the renderer type to ensure fonts are loaded with the correct pipeline.
|
|
206
|
+
*
|
|
207
|
+
* For Canvas fonts, provide fontUrl (e.g., .ttf, .woff, .woff2)
|
|
208
|
+
* For SDF fonts, provide atlasUrl (image) and atlasDataUrl (JSON glyph data)
|
|
209
|
+
*
|
|
210
|
+
* @param rendererType - The type of text renderer ('canvas', 'sdf', etc.)
|
|
211
|
+
* @param options - Font loading options specific to the renderer type
|
|
212
|
+
* @returns Promise that resolves when the font is loaded
|
|
213
|
+
*/
|
|
214
|
+
loadFont(rendererType: TextRenderers, options: FontLoadOptions): Promise<void>;
|
|
171
215
|
}
|