@lightningjs/renderer 3.0.0-beta9 → 3.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +202 -202
- package/NOTICE +3 -3
- package/README.md +230 -147
- 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 +5 -6
- package/dist/exports/index.js +3 -5
- package/dist/exports/index.js.map +1 -1
- package/dist/exports/platform.d.ts +7 -0
- package/dist/exports/platform.js +27 -0
- package/dist/exports/platform.js.map +1 -0
- package/dist/exports/webgl.d.ts +2 -1
- package/dist/exports/webgl.js +2 -1
- package/dist/exports/webgl.js.map +1 -1
- package/dist/src/common/CommonTypes.d.ts +15 -3
- package/dist/src/core/Autosizer.d.ts +35 -0
- package/dist/src/core/Autosizer.js +196 -0
- package/dist/src/core/Autosizer.js.map +1 -0
- package/dist/src/core/CoreNode.d.ts +107 -59
- package/dist/src/core/CoreNode.js +524 -282
- package/dist/src/core/CoreNode.js.map +1 -1
- package/dist/src/core/CoreTextNode.d.ts +73 -88
- package/dist/src/core/CoreTextNode.js +383 -236
- package/dist/src/core/CoreTextNode.js.map +1 -1
- package/dist/src/core/CoreTextureManager.d.ts +19 -17
- package/dist/src/core/CoreTextureManager.js +52 -120
- package/dist/src/core/CoreTextureManager.js.map +1 -1
- package/dist/src/core/Stage.d.ts +63 -9
- package/dist/src/core/Stage.js +233 -133
- package/dist/src/core/Stage.js.map +1 -1
- package/dist/src/core/TextureError.d.ts +11 -0
- package/dist/src/core/TextureError.js +37 -0
- package/dist/src/core/TextureError.js.map +1 -0
- package/dist/src/core/TextureMemoryManager.d.ts +2 -4
- package/dist/src/core/TextureMemoryManager.js +80 -113
- package/dist/src/core/TextureMemoryManager.js.map +1 -1
- package/dist/src/core/animations/CoreAnimation.d.ts +3 -3
- package/dist/src/core/animations/CoreAnimation.js +3 -3
- package/dist/src/core/animations/CoreAnimation.js.map +1 -1
- package/dist/src/core/animations/CoreAnimationController.d.ts +1 -1
- package/dist/src/core/animations/CoreAnimationController.js +4 -2
- package/dist/src/core/animations/CoreAnimationController.js.map +1 -1
- package/dist/src/core/lib/ImageWorker.js +1 -1
- package/dist/src/core/lib/ImageWorker.js.map +1 -1
- package/dist/src/core/lib/WebGlContextWrapper.d.ts +69 -97
- package/dist/src/core/lib/WebGlContextWrapper.js +192 -152
- package/dist/src/core/lib/WebGlContextWrapper.js.map +1 -1
- package/dist/src/core/lib/collectionUtils.d.ts +4 -0
- package/dist/src/core/lib/collectionUtils.js +72 -0
- package/dist/src/core/lib/collectionUtils.js.map +1 -0
- package/dist/src/core/lib/colorCache.d.ts +1 -0
- package/dist/src/core/lib/colorCache.js +19 -0
- package/dist/src/core/lib/colorCache.js.map +1 -0
- package/dist/src/core/lib/colorParser.d.ts +21 -0
- package/dist/src/core/lib/colorParser.js +72 -0
- package/dist/src/core/lib/colorParser.js.map +1 -0
- package/dist/src/core/lib/textureCompression.d.ts +14 -2
- package/dist/src/core/lib/textureCompression.js +311 -67
- package/dist/src/core/lib/textureCompression.js.map +1 -1
- package/dist/src/core/lib/utils.d.ts +6 -6
- package/dist/src/core/lib/utils.js +21 -65
- package/dist/src/core/lib/utils.js.map +1 -1
- package/dist/src/core/lib/validateImageBitmap.d.ts +1 -2
- package/dist/src/core/lib/validateImageBitmap.js +4 -4
- package/dist/src/core/lib/validateImageBitmap.js.map +1 -1
- package/dist/src/core/platform.d.ts +10 -0
- package/dist/src/core/platform.js +84 -0
- package/dist/src/core/platform.js.map +1 -0
- package/dist/src/core/platforms/GlContextWrapper.d.ts +136 -0
- package/{src/core/text-rendering/TextRenderingUtils.ts → dist/src/core/platforms/GlContextWrapper.js} +32 -36
- package/dist/src/core/platforms/GlContextWrapper.js.map +1 -0
- package/dist/src/core/platforms/Platform.d.ts +78 -12
- package/dist/src/core/platforms/Platform.js +18 -0
- package/dist/src/core/platforms/Platform.js.map +1 -1
- package/dist/src/core/platforms/web/WebGlContextWrapper.d.ts +776 -0
- package/dist/src/core/platforms/web/WebGlContextWrapper.js +1208 -0
- package/dist/src/core/platforms/web/WebGlContextWrapper.js.map +1 -0
- package/dist/src/core/platforms/web/WebPlatform.d.ts +17 -2
- package/dist/src/core/platforms/web/WebPlatform.js +158 -13
- package/dist/src/core/platforms/web/WebPlatform.js.map +1 -1
- package/dist/src/core/platforms/web/WebPlatformChrome50.d.ts +19 -0
- package/dist/src/core/platforms/web/WebPlatformChrome50.js +54 -0
- package/dist/src/core/platforms/web/WebPlatformChrome50.js.map +1 -0
- package/dist/src/core/platforms/web/WebPlatformLegacy.d.ts +20 -0
- package/dist/src/core/platforms/web/WebPlatformLegacy.js +105 -0
- package/dist/src/core/platforms/web/WebPlatformLegacy.js.map +1 -0
- package/dist/src/core/platforms/web/WebPlatformNext.d.ts +21 -0
- package/dist/src/core/platforms/web/WebPlatformNext.js +52 -0
- package/dist/src/core/platforms/web/WebPlatformNext.js.map +1 -0
- package/dist/src/core/platforms/web/lib/ImageWorker.d.ts +21 -0
- package/dist/src/core/platforms/web/lib/ImageWorker.js +136 -0
- package/dist/src/core/platforms/web/lib/ImageWorker.js.map +1 -0
- package/dist/src/core/platforms/web/lib/ImageWorkerDefault.d.ts +6 -0
- package/dist/src/core/platforms/web/lib/ImageWorkerDefault.js +92 -0
- package/dist/src/core/platforms/web/lib/ImageWorkerDefault.js.map +1 -0
- package/dist/src/core/platforms/web/lib/ImageWorkerLegacy.d.ts +1 -0
- package/dist/src/core/platforms/web/lib/ImageWorkerLegacy.js +63 -0
- package/dist/src/core/platforms/web/lib/ImageWorkerLegacy.js.map +1 -0
- package/dist/src/core/platforms/web/lib/ImageWorkerNoOptions.d.ts +7 -0
- package/dist/src/core/platforms/web/lib/ImageWorkerNoOptions.js +75 -0
- package/dist/src/core/platforms/web/lib/ImageWorkerNoOptions.js.map +1 -0
- package/dist/src/core/platforms/web/lib/createImageBitmap.d.ts +1 -0
- package/dist/src/core/platforms/web/lib/createImageBitmap.js +27 -0
- package/dist/src/core/platforms/web/lib/createImageBitmap.js.map +1 -0
- package/dist/src/core/platforms/web/lib/textureCompression.d.ts +26 -0
- package/dist/src/core/platforms/web/lib/textureCompression.js +301 -0
- package/dist/src/core/platforms/web/lib/textureCompression.js.map +1 -0
- package/dist/src/core/platforms/web/lib/textureSvg.d.ts +7 -0
- package/dist/src/core/platforms/web/lib/textureSvg.js +51 -0
- package/dist/src/core/platforms/web/lib/textureSvg.js.map +1 -0
- package/dist/src/core/platforms/web/lib/utils.d.ts +5 -0
- package/dist/src/core/platforms/web/lib/utils.js +86 -0
- package/dist/src/core/platforms/web/lib/utils.js.map +1 -0
- package/dist/src/core/renderers/CoreContextTexture.d.ts +2 -1
- package/dist/src/core/renderers/CoreContextTexture.js.map +1 -1
- package/dist/src/core/renderers/CoreRenderer.d.ts +4 -40
- package/dist/src/core/renderers/CoreRenderer.js +3 -4
- package/dist/src/core/renderers/CoreRenderer.js.map +1 -1
- package/dist/src/core/renderers/CoreShader.d.ts +9 -0
- package/{src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.ts → dist/src/core/renderers/CoreShader.js} +28 -32
- package/dist/src/core/renderers/CoreShader.js.map +1 -0
- package/dist/src/core/renderers/CoreShaderNode.d.ts +10 -0
- package/dist/src/core/renderers/CoreShaderNode.js +19 -2
- package/dist/src/core/renderers/CoreShaderNode.js.map +1 -1
- package/dist/src/core/renderers/canvas/CanvasCoreRenderer.d.ts +33 -0
- package/dist/src/core/renderers/canvas/CanvasCoreRenderer.js +250 -0
- package/dist/src/core/renderers/canvas/CanvasCoreRenderer.js.map +1 -0
- package/dist/src/core/renderers/canvas/CanvasCoreTexture.d.ts +17 -0
- package/dist/src/core/renderers/canvas/CanvasCoreTexture.js +125 -0
- package/dist/src/core/renderers/canvas/CanvasCoreTexture.js.map +1 -0
- package/dist/src/core/renderers/canvas/CanvasRenderer.d.ts +5 -6
- package/dist/src/core/renderers/canvas/CanvasRenderer.js +67 -91
- package/dist/src/core/renderers/canvas/CanvasRenderer.js.map +1 -1
- package/dist/src/core/renderers/canvas/CanvasShaderNode.d.ts +1 -2
- package/dist/src/core/renderers/canvas/CanvasShaderNode.js +5 -4
- package/dist/src/core/renderers/canvas/CanvasShaderNode.js.map +1 -1
- package/dist/src/core/renderers/canvas/CanvasTexture.d.ts +3 -2
- package/dist/src/core/renderers/canvas/CanvasTexture.js +17 -13
- package/dist/src/core/renderers/canvas/CanvasTexture.js.map +1 -1
- package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.d.ts +13 -0
- package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js +113 -192
- package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js.map +1 -1
- package/dist/src/core/renderers/canvas/internal/ColorUtils.d.ts +0 -2
- package/dist/src/core/renderers/canvas/internal/ColorUtils.js +0 -14
- package/dist/src/core/renderers/canvas/internal/ColorUtils.js.map +1 -1
- package/dist/src/core/renderers/canvas/shaders/UnsupportedShader.d.ts +10 -0
- package/{src/core/text-rendering/renderers/SdfTextRenderer/internal/util.ts → dist/src/core/renderers/canvas/shaders/UnsupportedShader.js} +43 -40
- package/dist/src/core/renderers/canvas/shaders/UnsupportedShader.js.map +1 -0
- package/dist/src/core/renderers/webgl/SdfRenderOp.d.ts +33 -0
- package/dist/src/core/renderers/webgl/SdfRenderOp.js +98 -0
- package/dist/src/core/renderers/webgl/SdfRenderOp.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.d.ts +12 -0
- package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js +58 -0
- package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.d.ts +9 -0
- package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.js +38 -0
- package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.d.ts +69 -0
- package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js +272 -0
- package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.d.ts +34 -0
- package/dist/src/core/renderers/webgl/{WebGlRenderOp.js → WebGlCoreRenderOp.js} +43 -47
- package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlCoreRenderer.d.ts +133 -0
- package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js +649 -0
- package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlCoreShader.d.ts +78 -0
- package/dist/src/core/renderers/webgl/WebGlCoreShader.destroy.d.ts +1 -0
- package/dist/src/core/renderers/webgl/WebGlCoreShader.destroy.js +2 -0
- package/dist/src/core/renderers/webgl/WebGlCoreShader.destroy.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlCoreShader.js +202 -0
- package/dist/src/core/renderers/webgl/WebGlCoreShader.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.d.ts +4 -2
- package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js +14 -6
- package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.d.ts +15 -2
- package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.js +34 -5
- package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlCtxTexture.d.ts +19 -9
- package/dist/src/core/renderers/webgl/WebGlCtxTexture.js +101 -49
- package/dist/src/core/renderers/webgl/WebGlCtxTexture.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlRenderer.d.ts +11 -23
- package/dist/src/core/renderers/webgl/WebGlRenderer.js +124 -133
- package/dist/src/core/renderers/webgl/WebGlRenderer.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlShaderNode.d.ts +4 -6
- package/dist/src/core/renderers/webgl/WebGlShaderNode.js +3 -3
- package/dist/src/core/renderers/webgl/WebGlShaderNode.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlShaderProgram.d.ts +7 -7
- package/dist/src/core/renderers/webgl/WebGlShaderProgram.js +60 -38
- package/dist/src/core/renderers/webgl/WebGlShaderProgram.js.map +1 -1
- package/dist/src/core/renderers/webgl/internal/RendererUtils.d.ts +4 -4
- package/dist/src/core/renderers/webgl/internal/RendererUtils.js +1 -2
- package/dist/src/core/renderers/webgl/internal/RendererUtils.js.map +1 -1
- package/dist/src/core/renderers/webgl/internal/ShaderUtils.d.ts +3 -3
- package/dist/src/core/renderers/webgl/internal/ShaderUtils.js +38 -37
- package/dist/src/core/renderers/webgl/internal/ShaderUtils.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/DefaultShader.d.ts +9 -0
- package/dist/src/core/renderers/webgl/shaders/DefaultShader.js +84 -0
- package/dist/src/core/renderers/webgl/shaders/DefaultShader.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.d.ts +10 -0
- package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js +108 -0
- package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/DynamicShader.d.ts +29 -0
- package/dist/src/core/renderers/webgl/shaders/DynamicShader.js +408 -0
- package/dist/src/core/renderers/webgl/shaders/DynamicShader.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.d.ts +28 -0
- package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js +126 -0
- package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/SdfShader.d.ts +47 -0
- package/dist/src/core/renderers/webgl/shaders/SdfShader.js +148 -0
- package/dist/src/core/renderers/webgl/shaders/SdfShader.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.d.ts +31 -0
- package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js +71 -0
- package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.d.ts +30 -0
- package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js +58 -0
- package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.d.ts +31 -0
- package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js +71 -0
- package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.d.ts +31 -0
- package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js +71 -0
- package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.d.ts +31 -0
- package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js +71 -0
- package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.d.ts +9 -0
- package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.js +136 -0
- package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.d.ts +36 -0
- package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js +85 -0
- package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.d.ts +45 -0
- package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.js +104 -0
- package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.d.ts +22 -0
- package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js +45 -0
- package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.d.ts +58 -0
- package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.js +80 -0
- package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.d.ts +34 -0
- package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js +113 -0
- package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.d.ts +40 -0
- package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js +126 -0
- package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.d.ts +61 -0
- package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js +127 -0
- package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.d.ts +40 -0
- package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js +71 -0
- package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.d.ts +115 -0
- package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.js +61 -0
- package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.js.map +1 -0
- package/dist/src/core/shaders/canvas/Border.d.ts +8 -2
- package/dist/src/core/shaders/canvas/Border.js +64 -25
- package/dist/src/core/shaders/canvas/Border.js.map +1 -1
- package/dist/src/core/shaders/canvas/HolePunch.js +4 -3
- package/dist/src/core/shaders/canvas/HolePunch.js.map +1 -1
- package/dist/src/core/shaders/canvas/LinearGradient.js +7 -5
- package/dist/src/core/shaders/canvas/LinearGradient.js.map +1 -1
- package/dist/src/core/shaders/canvas/RadialGradient.js +12 -10
- package/dist/src/core/shaders/canvas/RadialGradient.js.map +1 -1
- package/dist/src/core/shaders/canvas/Rounded.js +3 -3
- package/dist/src/core/shaders/canvas/Rounded.js.map +1 -1
- package/dist/src/core/shaders/canvas/RoundedWithBorder.d.ts +6 -3
- package/dist/src/core/shaders/canvas/RoundedWithBorder.js +41 -11
- package/dist/src/core/shaders/canvas/RoundedWithBorder.js.map +1 -1
- package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.d.ts +2 -3
- package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js +46 -9
- package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js.map +1 -1
- package/dist/src/core/shaders/canvas/RoundedWithShadow.js +6 -5
- package/dist/src/core/shaders/canvas/RoundedWithShadow.js.map +1 -1
- package/dist/src/core/shaders/canvas/Shadow.js +4 -2
- package/dist/src/core/shaders/canvas/Shadow.js.map +1 -1
- package/dist/src/core/shaders/canvas/utils/render.d.ts +1 -1
- package/dist/src/core/shaders/canvas/utils/render.js +31 -18
- package/dist/src/core/shaders/canvas/utils/render.js.map +1 -1
- package/dist/src/core/shaders/templates/BorderTemplate.d.ts +11 -1
- package/dist/src/core/shaders/templates/BorderTemplate.js +30 -10
- package/dist/src/core/shaders/templates/BorderTemplate.js.map +1 -1
- package/dist/src/core/shaders/templates/HolePunchTemplate.d.ts +2 -2
- package/dist/src/core/shaders/templates/HolePunchTemplate.js +2 -2
- package/dist/src/core/shaders/templates/HolePunchTemplate.js.map +1 -1
- package/dist/src/core/shaders/templates/RadialGradientTemplate.d.ts +8 -6
- package/dist/src/core/shaders/templates/RadialGradientTemplate.js +2 -2
- package/dist/src/core/shaders/templates/RadialGradientTemplate.js.map +1 -1
- package/dist/src/core/shaders/webgl/Border.js +138 -84
- package/dist/src/core/shaders/webgl/Border.js.map +1 -1
- package/dist/src/core/shaders/webgl/Default.js +46 -47
- package/dist/src/core/shaders/webgl/Default.js.map +1 -1
- package/dist/src/core/shaders/webgl/DefaultBatched.js +61 -61
- package/dist/src/core/shaders/webgl/HolePunch.js +34 -34
- package/dist/src/core/shaders/webgl/HolePunch.js.map +1 -1
- package/dist/src/core/shaders/webgl/LinearGradient.js +60 -36
- package/dist/src/core/shaders/webgl/LinearGradient.js.map +1 -1
- package/dist/src/core/shaders/webgl/RadialGradient.js +60 -37
- package/dist/src/core/shaders/webgl/RadialGradient.js.map +1 -1
- package/dist/src/core/shaders/webgl/Rounded.js +74 -72
- package/dist/src/core/shaders/webgl/Rounded.js.map +1 -1
- package/dist/src/core/shaders/webgl/RoundedWithBorder.js +172 -113
- package/dist/src/core/shaders/webgl/RoundedWithBorder.js.map +1 -1
- package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js +191 -132
- package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js.map +1 -1
- package/dist/src/core/shaders/webgl/RoundedWithShadow.js +57 -55
- package/dist/src/core/shaders/webgl/RoundedWithShadow.js.map +1 -1
- package/dist/src/core/shaders/webgl/SdfShader.d.ts +0 -2
- package/dist/src/core/shaders/webgl/SdfShader.js +56 -66
- package/dist/src/core/shaders/webgl/SdfShader.js.map +1 -1
- package/dist/src/core/shaders/webgl/Shadow.js +89 -83
- package/dist/src/core/shaders/webgl/Shadow.js.map +1 -1
- package/dist/src/core/text-rendering/CanvasFontHandler.d.ts +59 -0
- package/dist/src/core/text-rendering/CanvasFontHandler.js +224 -0
- package/dist/src/core/text-rendering/CanvasFontHandler.js.map +1 -0
- package/dist/src/core/text-rendering/CanvasTextRenderer.d.ts +17 -0
- package/dist/src/core/text-rendering/CanvasTextRenderer.js +157 -0
- package/dist/src/core/text-rendering/CanvasTextRenderer.js.map +1 -0
- package/dist/src/core/text-rendering/SdfFontHandler.d.ts +182 -0
- package/dist/src/core/text-rendering/SdfFontHandler.js +379 -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 +301 -0
- package/dist/src/core/text-rendering/SdfTextRenderer.js.map +1 -0
- package/dist/src/core/text-rendering/TextLayoutEngine.d.ts +18 -0
- package/dist/src/core/text-rendering/TextLayoutEngine.js +380 -0
- package/dist/src/core/text-rendering/TextLayoutEngine.js.map +1 -0
- package/dist/src/core/text-rendering/TextRenderer.d.ts +383 -0
- package/{src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.ts → dist/src/core/text-rendering/TextRenderer.js} +20 -38
- package/dist/src/core/text-rendering/TextRenderer.js.map +1 -0
- package/dist/src/core/text-rendering/TextTextureRendererUtils.js.map +1 -1
- package/dist/src/core/text-rendering/Utils.d.ts +30 -0
- package/dist/src/core/text-rendering/Utils.js +84 -0
- package/dist/src/core/text-rendering/Utils.js.map +1 -0
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js +2 -2
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js.map +1 -1
- package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js +0 -5
- package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js.map +1 -1
- package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.d.ts +1 -7
- package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js +2 -50
- 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 +87 -46
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js.map +1 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.d.ts +1 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js +8 -66
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js.map +1 -1
- package/dist/src/core/text-rendering/renderers/TextRenderer.d.ts +4 -14
- package/dist/src/core/text-rendering/renderers/TextRenderer.js +0 -3
- package/dist/src/core/text-rendering/renderers/TextRenderer.js.map +1 -1
- package/dist/src/core/textures/ColorTexture.d.ts +1 -1
- package/dist/src/core/textures/ColorTexture.js +3 -4
- package/dist/src/core/textures/ColorTexture.js.map +1 -1
- package/dist/src/core/textures/ImageTexture.d.ts +33 -14
- package/dist/src/core/textures/ImageTexture.js +46 -125
- package/dist/src/core/textures/ImageTexture.js.map +1 -1
- package/dist/src/core/textures/NoiseTexture.d.ts +3 -3
- package/dist/src/core/textures/NoiseTexture.js +8 -8
- package/dist/src/core/textures/NoiseTexture.js.map +1 -1
- package/dist/src/core/textures/RenderTexture.d.ts +7 -7
- package/dist/src/core/textures/RenderTexture.js +12 -12
- package/dist/src/core/textures/RenderTexture.js.map +1 -1
- package/dist/src/core/textures/SubTexture.d.ts +6 -8
- package/dist/src/core/textures/SubTexture.js +22 -40
- package/dist/src/core/textures/SubTexture.js.map +1 -1
- package/dist/src/core/textures/Texture.d.ts +74 -15
- package/dist/src/core/textures/Texture.js +131 -19
- package/dist/src/core/textures/Texture.js.map +1 -1
- package/dist/src/core/utils.d.ts +2 -1
- package/dist/src/core/utils.js +1 -1
- package/dist/src/core/utils.js.map +1 -1
- package/dist/src/main-api/DynamicShaderController.d.ts +29 -0
- package/dist/src/main-api/DynamicShaderController.js +58 -0
- package/dist/src/main-api/DynamicShaderController.js.map +1 -0
- package/dist/src/main-api/Inspector.d.ts +129 -1
- package/dist/src/main-api/Inspector.js +462 -23
- package/dist/src/main-api/Inspector.js.map +1 -1
- package/dist/src/main-api/Renderer.d.ts +223 -41
- package/dist/src/main-api/Renderer.js +107 -62
- package/dist/src/main-api/Renderer.js.map +1 -1
- package/dist/src/main-api/ShaderController.d.ts +31 -0
- package/dist/src/main-api/ShaderController.js +37 -0
- package/dist/src/main-api/ShaderController.js.map +1 -0
- package/dist/src/utils.d.ts +0 -2
- package/dist/src/utils.js +0 -36
- package/dist/src/utils.js.map +1 -1
- package/dist/tsconfig.dist.tsbuildinfo +1 -1
- package/exports/canvas-shaders.ts +28 -28
- package/exports/canvas.ts +45 -45
- package/exports/index.ts +90 -90
- package/exports/inspector.ts +24 -24
- package/exports/platform.ts +31 -0
- package/exports/utils.ts +50 -50
- package/exports/webgl-shaders.ts +28 -28
- package/exports/webgl.ts +52 -50
- package/package.json +16 -15
- package/src/common/CommonTypes.ts +163 -146
- package/src/common/EventEmitter.ts +77 -77
- package/src/common/IAnimationController.ts +92 -92
- package/src/common/IEventEmitter.ts +28 -28
- package/src/core/Autosizer.ts +224 -0
- package/src/core/CoreNode.test.ts +365 -202
- package/src/core/CoreNode.ts +2785 -2489
- package/src/core/CoreShaderManager.ts +188 -188
- package/src/core/CoreTextNode.test.ts +311 -0
- package/src/core/CoreTextNode.ts +607 -451
- package/src/core/CoreTextureManager.ts +484 -548
- package/src/core/Stage.ts +927 -800
- package/src/core/TextureError.ts +46 -0
- package/src/core/TextureMemoryManager.ts +418 -462
- package/src/core/animations/AnimationManager.ts +38 -38
- package/src/core/animations/CoreAnimation.ts +290 -291
- package/src/core/animations/CoreAnimationController.ts +169 -166
- package/src/core/lib/ContextSpy.ts +41 -41
- package/src/core/lib/Matrix3d.ts +244 -244
- package/src/core/lib/RenderCoords.ts +71 -71
- package/src/core/lib/collectionUtils.ts +83 -0
- package/src/core/lib/colorCache.ts +20 -0
- package/src/core/{renderers/canvas/internal/ColorUtils.ts → lib/colorParser.ts} +85 -85
- package/src/core/lib/utils.ts +337 -390
- package/src/core/platforms/GlContextWrapper.ts +291 -0
- package/src/core/platforms/Platform.ts +176 -77
- package/src/core/{lib → platforms/web}/WebGlContextWrapper.ts +1547 -1368
- package/src/core/platforms/web/WebPlatform.ts +306 -84
- package/src/core/platforms/web/WebPlatformChrome50.ts +63 -0
- package/src/core/platforms/web/WebPlatformLegacy.ts +150 -0
- package/src/core/platforms/web/WebPlatformNext.ts +57 -0
- package/src/core/platforms/web/lib/ImageWorker.ts +192 -0
- package/src/core/platforms/web/lib/ImageWorkerDefault.ts +117 -0
- package/src/core/platforms/web/lib/ImageWorkerLegacy.ts +87 -0
- package/src/core/platforms/web/lib/ImageWorkerNoOptions.ts +99 -0
- package/src/core/platforms/web/lib/createImageBitmap.ts +40 -0
- package/src/core/platforms/web/lib/textureCompression.ts +391 -0
- package/src/core/{lib → platforms/web/lib}/textureSvg.ts +66 -78
- package/src/core/platforms/web/lib/utils.ts +105 -0
- package/src/core/renderers/CoreContextTexture.ts +44 -43
- package/src/core/renderers/CoreRenderOp.ts +22 -22
- package/src/core/renderers/CoreRenderer.ts +71 -110
- package/src/core/renderers/CoreShaderNode.ts +202 -175
- package/src/core/renderers/CoreShaderProgram.ts +23 -23
- package/src/core/renderers/canvas/CanvasRenderer.ts +258 -302
- package/src/core/renderers/canvas/CanvasShaderNode.ts +95 -96
- package/src/core/renderers/canvas/CanvasTexture.ts +160 -156
- package/src/core/renderers/webgl/SdfRenderOp.ts +106 -0
- package/src/core/renderers/webgl/WebGlCtxRenderTexture.ts +89 -86
- package/src/core/renderers/webgl/WebGlCtxSubTexture.ts +95 -50
- package/src/core/renderers/webgl/WebGlCtxTexture.test.ts +113 -0
- package/src/core/renderers/webgl/WebGlCtxTexture.ts +350 -298
- package/src/core/renderers/webgl/WebGlRenderer.ts +727 -747
- package/src/core/renderers/webgl/WebGlShaderNode.ts +430 -435
- package/src/core/renderers/webgl/WebGlShaderProgram.ts +364 -341
- package/src/core/renderers/webgl/internal/BufferCollection.ts +54 -54
- package/src/core/renderers/webgl/internal/RendererUtils.ts +150 -155
- package/src/core/renderers/webgl/internal/ShaderUtils.ts +283 -281
- package/src/core/renderers/webgl/internal/WebGlUtils.ts +35 -35
- package/src/core/shaders/canvas/Border.ts +132 -78
- package/src/core/shaders/canvas/HolePunch.ts +56 -62
- package/src/core/shaders/canvas/LinearGradient.ts +73 -71
- package/src/core/shaders/canvas/RadialGradient.ts +96 -99
- package/src/core/shaders/canvas/Rounded.ts +55 -55
- package/src/core/shaders/canvas/RoundedWithBorder.ts +122 -74
- package/src/core/shaders/canvas/RoundedWithBorderAndShadow.ts +136 -90
- package/src/core/shaders/canvas/RoundedWithShadow.ts +71 -70
- package/src/core/shaders/canvas/Shadow.ts +54 -52
- package/src/core/shaders/canvas/utils/render.ts +160 -151
- package/src/core/shaders/templates/BorderTemplate.ts +145 -115
- package/src/core/shaders/templates/HolePunchTemplate.ts +82 -82
- package/src/core/shaders/templates/LinearGradientTemplate.ts +71 -71
- package/src/core/shaders/templates/RadialGradientTemplate.ts +83 -81
- package/src/core/shaders/templates/RoundedTemplate.ts +98 -98
- package/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.ts +38 -38
- package/src/core/shaders/templates/RoundedWithBorderTemplate.ts +35 -35
- package/src/core/shaders/templates/RoundedWithShadowTemplate.ts +35 -35
- package/src/core/shaders/templates/ShadowTemplate.ts +106 -106
- package/src/core/shaders/utils.ts +46 -46
- package/src/core/shaders/webgl/Border.ts +169 -116
- package/src/core/shaders/webgl/Default.ts +88 -89
- package/src/core/shaders/webgl/DefaultBatched.ts +129 -129
- package/src/core/shaders/webgl/HolePunch.ts +75 -75
- package/src/core/shaders/webgl/LinearGradient.ts +106 -82
- package/src/core/shaders/webgl/RadialGradient.ts +108 -85
- package/src/core/shaders/webgl/Rounded.ts +115 -117
- package/src/core/shaders/webgl/RoundedWithBorder.ts +210 -155
- package/src/core/shaders/webgl/RoundedWithBorderAndShadow.ts +234 -175
- package/src/core/shaders/webgl/RoundedWithShadow.ts +96 -98
- package/src/core/shaders/webgl/SdfShader.ts +122 -134
- package/src/core/shaders/webgl/Shadow.ts +121 -115
- package/src/core/text-rendering/CanvasFontHandler.ts +304 -0
- package/src/core/text-rendering/CanvasTextRenderer.ts +255 -0
- package/src/core/text-rendering/SdfFontHandler.ts +581 -0
- package/src/core/text-rendering/SdfTextRenderer.ts +403 -0
- package/src/core/text-rendering/TextLayoutEngine.ts +672 -0
- package/src/core/text-rendering/TextRenderer.ts +444 -0
- package/src/core/text-rendering/Utils.ts +99 -0
- package/src/core/text-rendering/tests/TextLayoutEngine.test.ts +453 -0
- package/src/core/textures/ColorTexture.ts +104 -102
- package/src/core/textures/ImageTexture.ts +292 -418
- package/src/core/textures/NoiseTexture.ts +106 -104
- package/src/core/textures/RenderTexture.ts +87 -85
- package/src/core/textures/SubTexture.ts +184 -205
- package/src/core/textures/Texture.ts +524 -381
- package/src/core/utils.ts +229 -227
- package/src/env.d.ts +7 -7
- package/src/main-api/INode.ts +100 -100
- package/src/main-api/Inspector.ts +1278 -569
- package/src/main-api/Renderer.ts +1030 -818
- package/src/main-api/utils.ts +45 -45
- package/src/utils.ts +220 -267
- package/COPYING +0 -1
- package/dist/src/core/renderers/webgl/WebGlRenderOp.d.ts +0 -44
- package/dist/src/core/renderers/webgl/WebGlRenderOp.js.map +0 -1
- package/src/core/lib/ImageWorker.ts +0 -286
- package/src/core/lib/textureCompression.ts +0 -152
- package/src/core/lib/validateImageBitmap.ts +0 -87
- package/src/core/renderers/canvas/internal/C2DShaderUtils.ts +0 -220
- package/src/core/renderers/webgl/WebGlRenderOp.ts +0 -161
- package/src/core/text-rendering/TextTextureRendererUtils.ts +0 -263
- package/src/core/text-rendering/TrFontManager.ts +0 -183
- package/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.ts +0 -176
- package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.ts +0 -139
- package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.test.ts +0 -173
- package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.ts +0 -171
- package/src/core/text-rendering/font-face-types/TrFontFace.ts +0 -187
- package/src/core/text-rendering/font-face-types/WebTrFontFace.ts +0 -94
- package/src/core/text-rendering/font-face-types/utils.ts +0 -39
- package/src/core/text-rendering/renderers/CanvasTextRenderer.ts +0 -514
- package/src/core/text-rendering/renderers/LightningTextTextureRenderer.ts +0 -863
- package/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.ts +0 -793
- 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/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/layoutText.ts +0 -497
- 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/TextRenderer.ts +0 -567
package/README.md
CHANGED
|
@@ -1,147 +1,230 @@
|
|
|
1
|
-
# Lightning 3 Renderer
|
|
2
|
-
|
|
3
|
-
A powerful 2D scene renderer designed for rendering highly performant user
|
|
4
|
-
interfaces on web browsers running on embedded devices using WebGL.
|
|
5
|
-
|
|
6
|
-
The Renderer is part of the [LightningJS](https://lightningjs.io) project. While it is possible to use the renderer directly, it is not recommended. Instead, Lightning 3 works best when combined with [Blits](https://lightningjs.io/v3-docs/blits/getting_started/intro.html).
|
|
7
|
-
|
|
8
|
-
## Setup & Commands
|
|
9
|
-
|
|
10
|
-
```
|
|
11
|
-
# Install renderer + example dependencies
|
|
12
|
-
pnpm install
|
|
13
|
-
|
|
14
|
-
# Build Renderer
|
|
15
|
-
pnpm build
|
|
16
|
-
|
|
17
|
-
# Build Renderer (watch mode)
|
|
18
|
-
pnpm watch
|
|
19
|
-
|
|
20
|
-
# Run unit tests
|
|
21
|
-
pnpm test
|
|
22
|
-
|
|
23
|
-
# Run Visual Regression Tests
|
|
24
|
-
pnpm test:visual
|
|
25
|
-
|
|
26
|
-
# Build API Documentation (builds into ./typedocs folder)
|
|
27
|
-
pnpm typedoc
|
|
28
|
-
|
|
29
|
-
# Launch Example Tests in dev mode (includes Build Renderer (watch mode))
|
|
30
|
-
pnpm start
|
|
31
|
-
|
|
32
|
-
# Launch Example Tests in production mode
|
|
33
|
-
# IMPORTANT: To run test examples on embedded devices that use older browser versions
|
|
34
|
-
# you MUST run the examples in this mode.
|
|
35
|
-
pnpm start:prod
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
## Browser Targets
|
|
39
|
-
|
|
40
|
-
The Lightning 3 Renderer's goal is to work with the following browser versions and above:
|
|
41
|
-
|
|
42
|
-
- Chrome v38 (Released October 7, 2014)
|
|
43
|
-
|
|
44
|
-
Any JavaScript language features or browser APIs that cannot be automatically transpiled or polyfilled by industry standard transpilers (such as Babel) to target these versions must be carefully considered before use.
|
|
45
|
-
|
|
46
|
-
For a more detailed and comprehensive list of browsers and their features please see [browsers](./BROWSERS.md).
|
|
47
|
-
|
|
48
|
-
##
|
|
49
|
-
|
|
50
|
-
The
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
```ts
|
|
101
|
-
import {
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
1
|
+
# Lightning 3 Renderer
|
|
2
|
+
|
|
3
|
+
A powerful 2D scene renderer designed for rendering highly performant user
|
|
4
|
+
interfaces on web browsers running on embedded devices using WebGL.
|
|
5
|
+
|
|
6
|
+
The Renderer is part of the [LightningJS](https://lightningjs.io) project. While it is possible to use the renderer directly, it is not recommended. Instead, Lightning 3 works best when combined with [Blits](https://lightningjs.io/v3-docs/blits/getting_started/intro.html).
|
|
7
|
+
|
|
8
|
+
## Setup & Commands
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
# Install renderer + example dependencies
|
|
12
|
+
pnpm install
|
|
13
|
+
|
|
14
|
+
# Build Renderer
|
|
15
|
+
pnpm build
|
|
16
|
+
|
|
17
|
+
# Build Renderer (watch mode)
|
|
18
|
+
pnpm watch
|
|
19
|
+
|
|
20
|
+
# Run unit tests
|
|
21
|
+
pnpm test
|
|
22
|
+
|
|
23
|
+
# Run Visual Regression Tests
|
|
24
|
+
pnpm test:visual
|
|
25
|
+
|
|
26
|
+
# Build API Documentation (builds into ./typedocs folder)
|
|
27
|
+
pnpm typedoc
|
|
28
|
+
|
|
29
|
+
# Launch Example Tests in dev mode (includes Build Renderer (watch mode))
|
|
30
|
+
pnpm start
|
|
31
|
+
|
|
32
|
+
# Launch Example Tests in production mode
|
|
33
|
+
# IMPORTANT: To run test examples on embedded devices that use older browser versions
|
|
34
|
+
# you MUST run the examples in this mode.
|
|
35
|
+
pnpm start:prod
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Browser Targets
|
|
39
|
+
|
|
40
|
+
The Lightning 3 Renderer's goal is to work with the following browser versions and above:
|
|
41
|
+
|
|
42
|
+
- Chrome v38 (Released October 7, 2014)
|
|
43
|
+
|
|
44
|
+
Any JavaScript language features or browser APIs that cannot be automatically transpiled or polyfilled by industry standard transpilers (such as Babel) to target these versions must be carefully considered before use.
|
|
45
|
+
|
|
46
|
+
For a more detailed and comprehensive list of browsers and their features please see [browsers](./BROWSERS.md).
|
|
47
|
+
|
|
48
|
+
## Platform Architecture
|
|
49
|
+
|
|
50
|
+
The Lightning 3 Renderer uses a modular platform architecture that allows it to adapt to different browser capabilities and environments. This enables optimal performance across a wide range of devices, from modern browsers to legacy embedded systems.
|
|
51
|
+
|
|
52
|
+
### Available Platforms
|
|
53
|
+
|
|
54
|
+
The Renderer includes several platform implementations, each tailored for specific browser capabilities:
|
|
55
|
+
|
|
56
|
+
#### WebPlatform (Default)
|
|
57
|
+
|
|
58
|
+
The standard platform for modern browsers with full WebGL and createImageBitmap support.
|
|
59
|
+
|
|
60
|
+
- Uses XMLHttpRequest for loading resources
|
|
61
|
+
- Full createImageBitmap API with options (premultiplyAlpha, colorSpaceConversion, imageOrientation)
|
|
62
|
+
- Supports image cropping
|
|
63
|
+
- Multi-threaded image processing via Web Workers
|
|
64
|
+
- **Use case:** Modern browsers, default choice for most applications
|
|
65
|
+
|
|
66
|
+
#### WebPlatformNext
|
|
67
|
+
|
|
68
|
+
Platform using the modern Fetch API instead of XMLHttpRequest.
|
|
69
|
+
|
|
70
|
+
- Uses Fetch API for loading resources (promise-based, Service Worker compatible)
|
|
71
|
+
- Full createImageBitmap API with options
|
|
72
|
+
- Supports image cropping
|
|
73
|
+
- Multi-threaded image processing via Web Workers
|
|
74
|
+
- **Use case:** Modern browsers where Fetch API is preferred, progressive web apps
|
|
75
|
+
|
|
76
|
+
#### WebPlatformChrome50
|
|
77
|
+
|
|
78
|
+
Compatibility platform for browsers with limited createImageBitmap support (Chrome 50-51).
|
|
79
|
+
|
|
80
|
+
- Uses XMLHttpRequest for loading resources
|
|
81
|
+
- Limited createImageBitmap API (no options or cropping parameters)
|
|
82
|
+
- Multi-threaded image processing via Web Workers (if enabled)
|
|
83
|
+
- **Use case:** Chrome 50-51, browsers with basic createImageBitmap support
|
|
84
|
+
|
|
85
|
+
#### WebPlatformLegacy
|
|
86
|
+
|
|
87
|
+
Legacy platform for older browsers without createImageBitmap support.
|
|
88
|
+
|
|
89
|
+
- Uses direct Image element loading (no blob conversion for URLs)
|
|
90
|
+
- HTMLImageElement instead of createImageBitmap
|
|
91
|
+
- Single-threaded image processing (no Web Workers)
|
|
92
|
+
- No image cropping support
|
|
93
|
+
- No compressed texture support
|
|
94
|
+
- **Use case:** Chrome 38-49, older embedded device browsers
|
|
95
|
+
|
|
96
|
+
### Using a Platform
|
|
97
|
+
|
|
98
|
+
Platforms can be specified when initializing the Renderer:
|
|
99
|
+
|
|
100
|
+
```ts
|
|
101
|
+
import { RendererMain } from '@lightningjs/renderer';
|
|
102
|
+
import { WebGlRenderer } from '@lightningjs/renderer/webgl';
|
|
103
|
+
import {
|
|
104
|
+
WebPlatform,
|
|
105
|
+
WebPlatformNext,
|
|
106
|
+
WebPlatformChrome50,
|
|
107
|
+
WebPlatformLegacy,
|
|
108
|
+
} from '@lightningjs/renderer/platforms';
|
|
109
|
+
|
|
110
|
+
const renderer = new RendererMain(
|
|
111
|
+
{
|
|
112
|
+
appWidth: 1920,
|
|
113
|
+
appHeight: 1080,
|
|
114
|
+
renderEngine: WebGlRenderer,
|
|
115
|
+
platform: WebPlatformLegacy, // Use legacy platform for older browsers
|
|
116
|
+
// ...Other Renderer Config
|
|
117
|
+
},
|
|
118
|
+
'app',
|
|
119
|
+
);
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
**Note:** `WebPlatformLegacy` automatically sets `numImageWorkers` to 0 since it doesn't support Web Workers.
|
|
123
|
+
|
|
124
|
+
### Creating Custom Platforms
|
|
125
|
+
|
|
126
|
+
You can create your own custom platform tailored to your specific device or environment by extending the `Platform` base class or one of the existing platform implementations.
|
|
127
|
+
|
|
128
|
+
**Key methods you can override:**
|
|
129
|
+
|
|
130
|
+
- `fetch(url: string): Promise<Blob>` - Resource loading
|
|
131
|
+
- `createImage(...)` - Image bitmap creation
|
|
132
|
+
- `loadImage(...)` - Complete image loading pipeline
|
|
133
|
+
- `loadSvg(...)` - SVG loading
|
|
134
|
+
- `loadCompressedTexture(...)` - Compressed texture loading
|
|
135
|
+
- `createCanvas()` - Canvas element creation
|
|
136
|
+
- `createContext()` - WebGL context creation
|
|
137
|
+
- `startLoop(stage)` - Animation loop implementation
|
|
138
|
+
|
|
139
|
+
This allows you to optimize the Renderer for proprietary platforms, embedded systems, or environments with unique capabilities and constraints.
|
|
140
|
+
|
|
141
|
+
## Example Tests
|
|
142
|
+
|
|
143
|
+
The Example Tests sub-project define a set of tests for various Renderer
|
|
144
|
+
features. This is NOT an automated test. The command below will launch a
|
|
145
|
+
web server which can be accessed by a web browser for manual testing. However,
|
|
146
|
+
many of the Example Tests define Snapshots for the Visual Regression Test Runner
|
|
147
|
+
(see below).
|
|
148
|
+
|
|
149
|
+
The Example Tests can be launched with:
|
|
150
|
+
|
|
151
|
+
```
|
|
152
|
+
pnpm start
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
A hosted version can be found [here](https://lightning-js.github.io/renderer/).
|
|
156
|
+
|
|
157
|
+
This supports modern browsers as well as Chrome 38 and above through a legacy build.
|
|
158
|
+
|
|
159
|
+
See [examples/README.md](./examples/README.md) for more info.
|
|
160
|
+
|
|
161
|
+
## Visual Regression Tests
|
|
162
|
+
|
|
163
|
+
In order to prevent bugs on existing Renderer features when new features or bug
|
|
164
|
+
fixes are added, the Renderer includes a Visual Regression Test Runner along
|
|
165
|
+
with a set of certified snapshot files that are checked into the repository.
|
|
166
|
+
|
|
167
|
+
These tests can be launched with:
|
|
168
|
+
|
|
169
|
+
```
|
|
170
|
+
pnpm test:visual
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
The captured Snapshots of these tests are optionally defined in the individual
|
|
174
|
+
Example Tests.
|
|
175
|
+
|
|
176
|
+
See [visual-regression/README.md](./visual-regression/README.md) for more info.
|
|
177
|
+
|
|
178
|
+
## Manual Regression Tests
|
|
179
|
+
|
|
180
|
+
See [docs/ManualRegressionTests.md].
|
|
181
|
+
|
|
182
|
+
## Release Procedure
|
|
183
|
+
|
|
184
|
+
See [RELEASE.md](./RELEASE.md)
|
|
185
|
+
|
|
186
|
+
## Installing Fonts
|
|
187
|
+
|
|
188
|
+
Fonts can be installed into the Font Manager exposed by the Renderer's Stage.
|
|
189
|
+
There are two types of fonts that you can install, Web/Canvas2D fonts (WebTrFontFace)
|
|
190
|
+
and SDF fonts (SdfTrFontFace). Install that fonts that your applications needs
|
|
191
|
+
at start up so they are ready when your application is rendered.
|
|
192
|
+
|
|
193
|
+
```ts
|
|
194
|
+
import { RendererMain } from '@lightningjs/renderer';
|
|
195
|
+
|
|
196
|
+
import {
|
|
197
|
+
WebGlCoreRenderer,
|
|
198
|
+
SdfTextRenderer,
|
|
199
|
+
} from '@lightningjs/renderer/webgl';
|
|
200
|
+
import { CanvasTextRenderer } from '@lightningjs/renderer/canvas';
|
|
201
|
+
|
|
202
|
+
const renderer = new RendererMain(
|
|
203
|
+
{
|
|
204
|
+
appWidth: 1920,
|
|
205
|
+
appHeight: 1080,
|
|
206
|
+
renderEngine: WebGlCoreRenderer,
|
|
207
|
+
fontEngines: [SdfTextRenderer, CanvasTextRenderer],
|
|
208
|
+
// ...Other Renderer Config
|
|
209
|
+
},
|
|
210
|
+
'app', // id of div to insert Canvas.
|
|
211
|
+
);
|
|
212
|
+
|
|
213
|
+
// Load fonts by explicitly specifying the renderer type
|
|
214
|
+
await stage.loadFont('canvas', {
|
|
215
|
+
fontFamily: 'myWebFont',
|
|
216
|
+
fontUrl: '/fonts/my-font.ttf',
|
|
217
|
+
});
|
|
218
|
+
|
|
219
|
+
await stage.loadFont('sdf', {
|
|
220
|
+
fontFamily: 'mySdfFont',
|
|
221
|
+
atlasUrl: '/fonts/my-font-atlas.png',
|
|
222
|
+
atlasDataUrl: '/fonts/my-font-data.json',
|
|
223
|
+
});
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
For more information see [Font Loading](./docs/fontLoading.md)
|
|
227
|
+
|
|
228
|
+
## Migration Guide
|
|
229
|
+
|
|
230
|
+
Upgrading from Lightning 3 v2.x? See the [Migration Guide](./docs/migration-2x-to-3.0.md) for detailed information about breaking changes and how to update your code.
|
package/dist/exports/canvas.d.ts
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
*
|
|
17
17
|
* @packageDocumentation
|
|
18
18
|
*/
|
|
19
|
-
export { CanvasTextRenderer } from '../src/core/text-rendering/
|
|
19
|
+
export { default as CanvasTextRenderer } from '../src/core/text-rendering/CanvasTextRenderer.js';
|
|
20
20
|
export { CanvasRenderer } from '../src/core/renderers/canvas/CanvasRenderer.js';
|
|
21
21
|
export { CanvasTexture } from '../src/core/renderers/canvas/CanvasTexture.js';
|
|
22
22
|
export * from '../src/core/renderers/canvas/CanvasShaderNode.js';
|
package/dist/exports/canvas.js
CHANGED
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
*
|
|
35
35
|
* @packageDocumentation
|
|
36
36
|
*/
|
|
37
|
-
export { CanvasTextRenderer } from '../src/core/text-rendering/
|
|
37
|
+
export { default as CanvasTextRenderer } from '../src/core/text-rendering/CanvasTextRenderer.js';
|
|
38
38
|
export { CanvasRenderer } from '../src/core/renderers/canvas/CanvasRenderer.js';
|
|
39
39
|
export { CanvasTexture } from '../src/core/renderers/canvas/CanvasTexture.js';
|
|
40
40
|
export * from '../src/core/renderers/canvas/CanvasShaderNode.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canvas.js","sourceRoot":"","sources":["../../exports/canvas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"canvas.js","sourceRoot":"","sources":["../../exports/canvas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,kDAAkD,CAAC;AACjG,OAAO,EAAE,cAAc,EAAE,MAAM,gDAAgD,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,+CAA+C,CAAC;AAC9E,cAAc,kDAAkD,CAAC;AACjE;;GAEG;AACH,OAAO,EAAE,cAAc,IAAI,kBAAkB,EAAE,MAAM,gDAAgD,CAAC"}
|
package/dist/exports/index.d.ts
CHANGED
|
@@ -22,12 +22,14 @@ export * from '../src/main-api/Renderer.js';
|
|
|
22
22
|
export * from '../src/common/IAnimationController.js';
|
|
23
23
|
export * from '../src/common/CommonTypes.js';
|
|
24
24
|
export { CoreTextureManager, type TextureMap, } from '../src/core/CoreTextureManager.js';
|
|
25
|
+
export { TextureError, TextureErrorCode, isTextureError, } from '../src/core/TextureError.js';
|
|
26
|
+
export type { TextRenderer } from '../src/core/text-rendering/TextRenderer.js';
|
|
25
27
|
export type { MemoryInfo } from '../src/core/TextureMemoryManager.js';
|
|
26
|
-
export type { TextRendererMap } from '../src/core/text-rendering/renderers/TextRenderer.js';
|
|
27
|
-
export type { TrFontFaceMap } from '../src/core/text-rendering/font-face-types/TrFontFace.js';
|
|
28
28
|
export type { AnimationSettings } from '../src/core/animations/CoreAnimation.js';
|
|
29
|
+
export type { TimingFunction } from '../src/core/utils.js';
|
|
29
30
|
export type { Inspector } from '../src/main-api/Inspector.js';
|
|
30
|
-
export type
|
|
31
|
+
export { CoreNode, type CoreNodeProps, type CoreNodeRenderState } from '../src/core/CoreNode.js';
|
|
32
|
+
export { CoreTextNode, type CoreTextNodeProps } from '../src/core/CoreTextNode.js';
|
|
31
33
|
export * from '../src/core/renderers/CoreShaderNode.js';
|
|
32
34
|
export * from '../src/core/shaders/templates/BorderTemplate.js';
|
|
33
35
|
export * from '../src/core/shaders/templates/HolePunchTemplate.js';
|
|
@@ -39,9 +41,6 @@ export * from '../src/core/renderers/webgl/WebGlShaderProgram.js';
|
|
|
39
41
|
export type { ShaderProgramSources } from '../src/core/renderers/webgl/internal/ShaderUtils.js';
|
|
40
42
|
export * from '../src/core/textures/Texture.js';
|
|
41
43
|
export { ImageTexture } from '../src/core/textures/ImageTexture.js';
|
|
42
|
-
export * from '../src/core/text-rendering/font-face-types/TrFontFace.js';
|
|
43
|
-
export * from '../src/core/text-rendering/font-face-types/WebTrFontFace.js';
|
|
44
|
-
export * from '../src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js';
|
|
45
44
|
export type * from '../src/core/Stage.js';
|
|
46
45
|
/**
|
|
47
46
|
* @deprecated Use `import { WebGlRenderer } @lightningjs/renderer/webgl` instead
|
package/dist/exports/index.js
CHANGED
|
@@ -42,6 +42,9 @@ export * from '../src/common/CommonTypes.js';
|
|
|
42
42
|
// Selected types exported from the Core Renderer that can be used in the
|
|
43
43
|
// context of the main API.
|
|
44
44
|
export { CoreTextureManager, } from '../src/core/CoreTextureManager.js';
|
|
45
|
+
export { TextureError, TextureErrorCode, isTextureError, } from '../src/core/TextureError.js';
|
|
46
|
+
export { CoreNode } from '../src/core/CoreNode.js';
|
|
47
|
+
export { CoreTextNode } from '../src/core/CoreTextNode.js';
|
|
45
48
|
export * from '../src/core/renderers/CoreShaderNode.js';
|
|
46
49
|
export * from '../src/core/shaders/templates/BorderTemplate.js';
|
|
47
50
|
export * from '../src/core/shaders/templates/HolePunchTemplate.js';
|
|
@@ -54,9 +57,4 @@ export * from '../src/core/renderers/webgl/WebGlShaderProgram.js';
|
|
|
54
57
|
// Textures
|
|
55
58
|
export * from '../src/core/textures/Texture.js';
|
|
56
59
|
export { ImageTexture } from '../src/core/textures/ImageTexture.js';
|
|
57
|
-
// Text Rendering & Fonts
|
|
58
|
-
// export * from '../src/core/text-rendering/renderers/TextRenderer.js';
|
|
59
|
-
export * from '../src/core/text-rendering/font-face-types/TrFontFace.js';
|
|
60
|
-
export * from '../src/core/text-rendering/font-face-types/WebTrFontFace.js';
|
|
61
|
-
export * from '../src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js';
|
|
62
60
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../exports/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH;;;;;;;;;;;;;;;;;;GAkBG;AAEH,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uCAAuC,CAAC;AACtD,cAAc,8BAA8B,CAAC;AAE7C,yEAAyE;AACzE,2BAA2B;AAC3B,OAAO,EACL,kBAAkB,GAEnB,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../exports/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH;;;;;;;;;;;;;;;;;;GAkBG;AAEH,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uCAAuC,CAAC;AACtD,cAAc,8BAA8B,CAAC;AAE7C,yEAAyE;AACzE,2BAA2B;AAC3B,OAAO,EACL,kBAAkB,GAEnB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,cAAc,GACf,MAAM,6BAA6B,CAAC;AAMrC,OAAO,EAAE,QAAQ,EAAgD,MAAM,yBAAyB,CAAC;AACjG,OAAO,EAAE,YAAY,EAA0B,MAAM,6BAA6B,CAAC;AAEnF,cAAc,yCAAyC,CAAC;AACxD,cAAc,iDAAiD,CAAC;AAChE,cAAc,oDAAoD,CAAC;AACnE,cAAc,kDAAkD,CAAC;AACjE,cAAc,iDAAiD,CAAC;AAChE,cAAc,yDAAyD,CAAC;AACxE,cAAc,yDAAyD,CAAC;AAExE,UAAU;AACV,cAAc,mDAAmD,CAAC;AAGlE,WAAW;AACX,cAAc,iCAAiC,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { Platform, type PlatformSettings, } from '../src/core/platforms/Platform.js';
|
|
2
|
+
export { WebPlatform } from '../src/core/platforms/web/WebPlatform.js';
|
|
3
|
+
export { WebPlatformNext } from '../src/core/platforms/web/WebPlatformNext.js';
|
|
4
|
+
export { WebPlatformChrome50 } from '../src/core/platforms/web/WebPlatformChrome50.js';
|
|
5
|
+
export { WebPlatformLegacy } from '../src/core/platforms/web/WebPlatformLegacy.js';
|
|
6
|
+
export { GlContextWrapper } from '../src/core/platforms/GlContextWrapper.js';
|
|
7
|
+
export { WebGlContextWrapper } from '../src/core/platforms/web/WebGlContextWrapper.js';
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* If not stated otherwise in this file or this component's LICENSE file the
|
|
3
|
+
* following copyright and licenses apply:
|
|
4
|
+
*
|
|
5
|
+
* Copyright 2026 Comcast Cable Communications Management, LLC.
|
|
6
|
+
*
|
|
7
|
+
* Licensed under the Apache License, Version 2.0 (the License);
|
|
8
|
+
* you may not use this file except in compliance with the License.
|
|
9
|
+
* You may obtain a copy of the License at
|
|
10
|
+
*
|
|
11
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
*
|
|
13
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
* See the License for the specific language governing permissions and
|
|
17
|
+
* limitations under the License.
|
|
18
|
+
*/
|
|
19
|
+
export { Platform, } from '../src/core/platforms/Platform.js';
|
|
20
|
+
export { WebPlatform } from '../src/core/platforms/web/WebPlatform.js';
|
|
21
|
+
export { WebPlatformNext } from '../src/core/platforms/web/WebPlatformNext.js';
|
|
22
|
+
export { WebPlatformChrome50 } from '../src/core/platforms/web/WebPlatformChrome50.js';
|
|
23
|
+
export { WebPlatformLegacy } from '../src/core/platforms/web/WebPlatformLegacy.js';
|
|
24
|
+
// GL Context Wrappers
|
|
25
|
+
export { GlContextWrapper } from '../src/core/platforms/GlContextWrapper.js';
|
|
26
|
+
export { WebGlContextWrapper } from '../src/core/platforms/web/WebGlContextWrapper.js';
|
|
27
|
+
//# sourceMappingURL=platform.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../../exports/platform.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EACL,QAAQ,GAET,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAC;AAC/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,kDAAkD,CAAC;AACvF,OAAO,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAC;AAEnF,sBAAsB;AACtB,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,kDAAkD,CAAC"}
|
package/dist/exports/webgl.d.ts
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
*
|
|
16
16
|
* @packageDocumentation
|
|
17
17
|
*/
|
|
18
|
-
export
|
|
18
|
+
export * from '../src/core/text-rendering/SdfTextRenderer.js';
|
|
19
19
|
export { WebGlRenderer } from '../src/core/renderers/webgl/WebGlRenderer.js';
|
|
20
20
|
export { WebGlCtxTexture } from '../src/core/renderers/webgl/WebGlCtxTexture.js';
|
|
21
21
|
export * from '../src/core/renderers/webgl/WebGlShaderNode.js';
|
|
@@ -25,3 +25,4 @@ export * from '../src/core/renderers/webgl/WebGlShaderNode.js';
|
|
|
25
25
|
export { WebGlRenderer as WebGlCoreRenderer } from '../src/core/renderers/webgl/WebGlRenderer.js';
|
|
26
26
|
export { WebGlRenderer as WebGlCoreCtxTexture } from '../src/core/renderers/webgl/WebGlRenderer.js';
|
|
27
27
|
export * as shaders from './webgl-shaders.js';
|
|
28
|
+
export { default as SdfTextRenderer } from '../src/core/text-rendering/SdfTextRenderer.js';
|
package/dist/exports/webgl.js
CHANGED
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
*
|
|
34
34
|
* @packageDocumentation
|
|
35
35
|
*/
|
|
36
|
-
export
|
|
36
|
+
export * from '../src/core/text-rendering/SdfTextRenderer.js';
|
|
37
37
|
export { WebGlRenderer } from '../src/core/renderers/webgl/WebGlRenderer.js';
|
|
38
38
|
export { WebGlCtxTexture } from '../src/core/renderers/webgl/WebGlCtxTexture.js';
|
|
39
39
|
export * from '../src/core/renderers/webgl/WebGlShaderNode.js';
|
|
@@ -43,4 +43,5 @@ export * from '../src/core/renderers/webgl/WebGlShaderNode.js';
|
|
|
43
43
|
export { WebGlRenderer as WebGlCoreRenderer } from '../src/core/renderers/webgl/WebGlRenderer.js';
|
|
44
44
|
export { WebGlRenderer as WebGlCoreCtxTexture } from '../src/core/renderers/webgl/WebGlRenderer.js';
|
|
45
45
|
export * as shaders from './webgl-shaders.js';
|
|
46
|
+
export { default as SdfTextRenderer } from '../src/core/text-rendering/SdfTextRenderer.js';
|
|
46
47
|
//# sourceMappingURL=webgl.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webgl.js","sourceRoot":"","sources":["../../exports/webgl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH;;;;;;;;;;;;;;;;GAgBG;AAEH,
|
|
1
|
+
{"version":3,"file":"webgl.js","sourceRoot":"","sources":["../../exports/webgl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH;;;;;;;;;;;;;;;;GAgBG;AAEH,cAAc,+CAA+C,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,8CAA8C,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,gDAAgD,CAAC;AAEjF,cAAc,gDAAgD,CAAC;AAE/D;;GAEG;AACH,OAAO,EAAE,aAAa,IAAI,iBAAiB,EAAE,MAAM,8CAA8C,CAAC;AAClG,OAAO,EAAE,aAAa,IAAI,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AAEpG,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,+CAA+C,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { CoreNodeRenderState } from '../core/CoreNode.js';
|
|
2
|
+
import type { TextureError } from '../core/TextureError.js';
|
|
2
3
|
/**
|
|
3
4
|
* Types shared between Main Space and Core Space
|
|
4
5
|
*
|
|
@@ -10,8 +11,8 @@ import type { CoreNodeRenderState } from '../core/CoreNode.js';
|
|
|
10
11
|
* Represents a width and height.
|
|
11
12
|
*/
|
|
12
13
|
export interface Dimensions {
|
|
13
|
-
|
|
14
|
-
|
|
14
|
+
w: number;
|
|
15
|
+
h: number;
|
|
15
16
|
}
|
|
16
17
|
/**
|
|
17
18
|
* Payload for when text is loaded
|
|
@@ -43,7 +44,7 @@ export type NodeTextFailedPayload = {
|
|
|
43
44
|
*/
|
|
44
45
|
export type NodeTextureFailedPayload = {
|
|
45
46
|
type: 'texture';
|
|
46
|
-
error:
|
|
47
|
+
error: TextureError;
|
|
47
48
|
};
|
|
48
49
|
/**
|
|
49
50
|
* Payload for when texture failed to load
|
|
@@ -51,6 +52,13 @@ export type NodeTextureFailedPayload = {
|
|
|
51
52
|
export type NodeTextureFreedPayload = {
|
|
52
53
|
type: 'texture';
|
|
53
54
|
};
|
|
55
|
+
/**
|
|
56
|
+
* Payload for when node renderable status changes
|
|
57
|
+
*/
|
|
58
|
+
export type NodeRenderablePayload = {
|
|
59
|
+
type: 'renderable';
|
|
60
|
+
isRenderable: boolean;
|
|
61
|
+
};
|
|
54
62
|
/**
|
|
55
63
|
* Combined type for all failed payloads
|
|
56
64
|
*/
|
|
@@ -63,6 +71,10 @@ export type NodeLoadedEventHandler = (target: any, payload: NodeLoadedPayload) =
|
|
|
63
71
|
* Event handler for when the texture/text of a node has failed to load
|
|
64
72
|
*/
|
|
65
73
|
export type NodeFailedEventHandler = (target: any, payload: NodeFailedPayload) => void;
|
|
74
|
+
/**
|
|
75
|
+
* Event handler for when the renderable status of a node changes
|
|
76
|
+
*/
|
|
77
|
+
export type NodeRenderableEventHandler = (target: any, payload: NodeRenderablePayload) => void;
|
|
66
78
|
export type NodeRenderStatePayload = {
|
|
67
79
|
type: 'renderState';
|
|
68
80
|
payload: CoreNodeRenderState;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { type CoreNode } from './CoreNode.js';
|
|
2
|
+
import type { Coord } from './lib/utils.js';
|
|
3
|
+
export declare enum AutosizeMode {
|
|
4
|
+
Children = 0,
|
|
5
|
+
Texture = 1
|
|
6
|
+
}
|
|
7
|
+
export declare enum AutosizeUpdateType {
|
|
8
|
+
None = 0,
|
|
9
|
+
Filtered = 1,
|
|
10
|
+
All = 2
|
|
11
|
+
}
|
|
12
|
+
export declare class Autosizer {
|
|
13
|
+
node: CoreNode;
|
|
14
|
+
id: number;
|
|
15
|
+
mode: AutosizeMode;
|
|
16
|
+
updateType: AutosizeUpdateType;
|
|
17
|
+
lastWidth: number;
|
|
18
|
+
lastHeight: number;
|
|
19
|
+
lastHasChanged: boolean;
|
|
20
|
+
flaggedChildren: number[];
|
|
21
|
+
childMap: Map<number, CoreNode>;
|
|
22
|
+
minX: number;
|
|
23
|
+
minY: number;
|
|
24
|
+
maxX: number;
|
|
25
|
+
maxY: number;
|
|
26
|
+
corners: [Coord, Coord, Coord, Coord];
|
|
27
|
+
constructor(node: CoreNode);
|
|
28
|
+
attach(node: CoreNode): void;
|
|
29
|
+
detach(node: CoreNode): void;
|
|
30
|
+
patch(id: number): void;
|
|
31
|
+
setUpdateType(updateType: AutosizeUpdateType): void;
|
|
32
|
+
setMode(mode: AutosizeMode): void;
|
|
33
|
+
update(): void;
|
|
34
|
+
destroy(): void;
|
|
35
|
+
}
|