@lightningtv/renderer 3.0.0-beta1 → 3.2.4
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/NOTICE +4 -0
- package/README.md +22 -28
- package/dist/exports/canvas-shaders.js +0 -16
- package/dist/exports/canvas-shaders.js.map +1 -1
- package/dist/exports/canvas.d.ts +1 -1
- package/dist/exports/canvas.js +1 -19
- package/dist/exports/canvas.js.map +1 -1
- package/dist/exports/index.d.ts +2 -5
- package/dist/exports/index.js +1 -23
- package/dist/exports/index.js.map +1 -1
- package/dist/exports/inspector.js +0 -18
- package/dist/exports/inspector.js.map +1 -1
- package/dist/exports/utils.d.ts +2 -1
- package/dist/exports/utils.js +2 -19
- package/dist/exports/utils.js.map +1 -1
- package/dist/exports/webgl-shaders.js +0 -16
- package/dist/exports/webgl-shaders.js.map +1 -1
- package/dist/exports/webgl.d.ts +2 -1
- package/dist/exports/webgl.js +2 -19
- package/dist/exports/webgl.js.map +1 -1
- package/dist/src/common/CommonTypes.d.ts +15 -3
- package/dist/src/common/CommonTypes.js +0 -18
- package/dist/src/common/CommonTypes.js.map +1 -1
- package/dist/src/common/EventEmitter.js +0 -18
- package/dist/src/common/EventEmitter.js.map +1 -1
- package/dist/src/common/IEventEmitter.js +0 -16
- package/dist/src/common/IEventEmitter.js.map +1 -1
- package/dist/src/core/Autosizer.d.ts +35 -0
- package/dist/src/core/Autosizer.js +178 -0
- package/dist/src/core/Autosizer.js.map +1 -0
- package/dist/src/core/CoreNode.d.ts +139 -101
- package/dist/src/core/CoreNode.js +813 -528
- package/dist/src/core/CoreNode.js.map +1 -1
- package/dist/src/core/CoreShaderManager.d.ts +3 -3
- package/dist/src/core/CoreShaderManager.js +0 -18
- package/dist/src/core/CoreShaderManager.js.map +1 -1
- package/dist/src/core/CoreTextNode.d.ts +75 -87
- package/dist/src/core/CoreTextNode.js +380 -258
- package/dist/src/core/CoreTextNode.js.map +1 -1
- package/dist/src/core/CoreTextureManager.d.ts +25 -14
- package/dist/src/core/CoreTextureManager.js +83 -140
- package/dist/src/core/CoreTextureManager.js.map +1 -1
- package/dist/src/core/Stage.d.ts +102 -36
- package/dist/src/core/Stage.js +424 -191
- package/dist/src/core/Stage.js.map +1 -1
- package/dist/src/core/TextureError.d.ts +11 -0
- package/dist/src/core/TextureError.js +37 -0
- package/dist/src/core/TextureError.js.map +1 -0
- package/dist/src/core/TextureMemoryManager.d.ts +11 -4
- package/dist/src/core/TextureMemoryManager.js +114 -134
- package/dist/src/core/TextureMemoryManager.js.map +1 -1
- package/dist/src/core/animations/AnimationManager.js +0 -18
- package/dist/src/core/animations/AnimationManager.js.map +1 -1
- package/dist/src/core/animations/CoreAnimation.d.ts +3 -3
- package/dist/src/core/animations/CoreAnimation.js +8 -24
- 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 -22
- package/dist/src/core/animations/CoreAnimationController.js.map +1 -1
- package/dist/src/core/lib/ContextSpy.js +0 -18
- package/dist/src/core/lib/ContextSpy.js.map +1 -1
- package/dist/src/core/lib/ImageWorker.d.ts +2 -2
- package/dist/src/core/lib/ImageWorker.js +33 -31
- package/dist/src/core/lib/ImageWorker.js.map +1 -1
- package/dist/src/core/lib/Matrix3d.d.ts +1 -0
- package/dist/src/core/lib/Matrix3d.js +7 -19
- package/dist/src/core/lib/Matrix3d.js.map +1 -1
- package/dist/src/core/lib/RenderCoords.d.ts +9 -10
- package/dist/src/core/lib/RenderCoords.js +27 -55
- package/dist/src/core/lib/RenderCoords.js.map +1 -1
- package/dist/src/core/lib/WebGlContextWrapper.d.ts +78 -3
- package/dist/src/core/lib/WebGlContextWrapper.js +150 -25
- package/dist/src/core/lib/WebGlContextWrapper.js.map +1 -1
- package/dist/src/core/lib/collectionUtils.d.ts +5 -0
- package/dist/src/core/lib/collectionUtils.js +82 -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/{renderers/canvas/internal/ColorUtils.js → lib/colorParser.js} +1 -19
- package/dist/src/core/lib/colorParser.js.map +1 -0
- package/dist/src/core/lib/textureCompression.d.ts +14 -2
- package/dist/src/core/lib/textureCompression.js +320 -85
- package/dist/src/core/lib/textureCompression.js.map +1 -1
- package/dist/src/core/lib/textureSvg.js +0 -18
- package/dist/src/core/lib/textureSvg.js.map +1 -1
- package/dist/src/core/lib/utils.d.ts +8 -1
- package/dist/src/core/lib/utils.js +44 -20
- 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/platforms/Platform.d.ts +42 -0
- package/dist/src/core/platforms/Platform.js +4 -0
- package/dist/src/core/platforms/Platform.js.map +1 -0
- package/dist/src/core/platforms/web/WebPlatform.d.ts +10 -0
- package/dist/src/core/platforms/web/WebPlatform.js +90 -0
- package/dist/src/core/platforms/web/WebPlatform.js.map +1 -0
- package/dist/src/core/renderers/CoreContextTexture.d.ts +2 -1
- package/dist/src/core/renderers/CoreContextTexture.js +0 -18
- package/dist/src/core/renderers/CoreContextTexture.js.map +1 -1
- package/dist/src/core/renderers/CoreRenderOp.js +0 -18
- package/dist/src/core/renderers/CoreRenderOp.js.map +1 -1
- package/dist/src/core/renderers/CoreRenderer.d.ts +15 -3
- package/dist/src/core/renderers/CoreRenderer.js +1 -18
- package/dist/src/core/renderers/CoreRenderer.js.map +1 -1
- package/dist/src/core/renderers/CoreShaderNode.d.ts +13 -3
- package/dist/src/core/renderers/CoreShaderNode.js +25 -2
- package/dist/src/core/renderers/CoreShaderNode.js.map +1 -1
- package/dist/src/core/renderers/CoreShaderProgram.js +0 -18
- package/dist/src/core/renderers/CoreShaderProgram.js.map +1 -1
- package/dist/src/core/renderers/canvas/CanvasRenderer.d.ts +4 -5
- package/dist/src/core/renderers/canvas/CanvasRenderer.js +89 -83
- package/dist/src/core/renderers/canvas/CanvasRenderer.js.map +1 -1
- package/dist/src/core/renderers/canvas/CanvasShaderNode.js +3 -21
- 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 +18 -31
- package/dist/src/core/renderers/canvas/CanvasTexture.js.map +1 -1
- package/dist/src/core/renderers/webgl/BatchRenderOp.d.ts +25 -0
- package/dist/src/core/renderers/webgl/BatchRenderOp.js +60 -0
- package/dist/src/core/renderers/webgl/BatchRenderOp.js.map +1 -0
- package/dist/src/core/renderers/webgl/SdfRenderOp.d.ts +33 -0
- package/dist/src/core/renderers/webgl/SdfRenderOp.js +80 -0
- package/dist/src/core/renderers/webgl/SdfRenderOp.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.d.ts +2 -0
- package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js +14 -24
- package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.d.ts +13 -0
- package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.js +34 -23
- package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlCtxTexture.d.ts +16 -6
- package/dist/src/core/renderers/webgl/WebGlCtxTexture.js +102 -70
- package/dist/src/core/renderers/webgl/WebGlCtxTexture.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlRenderer.d.ts +34 -20
- package/dist/src/core/renderers/webgl/WebGlRenderer.js +319 -195
- package/dist/src/core/renderers/webgl/WebGlRenderer.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlShaderNode.d.ts +2 -3
- package/dist/src/core/renderers/webgl/WebGlShaderNode.js +1 -4
- package/dist/src/core/renderers/webgl/WebGlShaderNode.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlShaderProgram.d.ts +9 -7
- package/dist/src/core/renderers/webgl/WebGlShaderProgram.js +99 -48
- package/dist/src/core/renderers/webgl/WebGlShaderProgram.js.map +1 -1
- package/dist/src/core/renderers/webgl/internal/BufferCollection.d.ts +1 -0
- package/dist/src/core/renderers/webgl/internal/BufferCollection.js +12 -21
- package/dist/src/core/renderers/webgl/internal/BufferCollection.js.map +1 -1
- package/dist/src/core/renderers/webgl/internal/RendererUtils.js +0 -18
- package/dist/src/core/renderers/webgl/internal/RendererUtils.js.map +1 -1
- package/dist/src/core/renderers/webgl/internal/ShaderUtils.js +0 -18
- package/dist/src/core/renderers/webgl/internal/ShaderUtils.js.map +1 -1
- package/dist/src/core/renderers/webgl/internal/WebGlUtils.js +0 -18
- package/dist/src/core/renderers/webgl/internal/WebGlUtils.js.map +1 -1
- package/dist/src/core/shaders/canvas/Border.d.ts +8 -2
- package/dist/src/core/shaders/canvas/Border.js +67 -41
- package/dist/src/core/shaders/canvas/Border.js.map +1 -1
- package/dist/src/core/shaders/canvas/HolePunch.js +3 -19
- package/dist/src/core/shaders/canvas/HolePunch.js.map +1 -1
- package/dist/src/core/shaders/canvas/LinearGradient.js +7 -21
- package/dist/src/core/shaders/canvas/LinearGradient.js.map +1 -1
- package/dist/src/core/shaders/canvas/RadialGradient.js +14 -28
- package/dist/src/core/shaders/canvas/RadialGradient.js.map +1 -1
- package/dist/src/core/shaders/canvas/Rounded.js +1 -17
- 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 +44 -22
- 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 +47 -25
- package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js.map +1 -1
- package/dist/src/core/shaders/canvas/RoundedWithShadow.js +9 -21
- package/dist/src/core/shaders/canvas/RoundedWithShadow.js.map +1 -1
- package/dist/src/core/shaders/canvas/Shadow.js +0 -16
- 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 -34
- package/dist/src/core/shaders/canvas/utils/render.js.map +1 -1
- package/dist/src/core/shaders/templates/BorderTemplate.d.ts +12 -2
- package/dist/src/core/shaders/templates/BorderTemplate.js +31 -27
- package/dist/src/core/shaders/templates/BorderTemplate.js.map +1 -1
- package/dist/src/core/shaders/templates/HolePunchTemplate.d.ts +2 -2
- package/dist/src/core/shaders/templates/HolePunchTemplate.js +3 -19
- package/dist/src/core/shaders/templates/HolePunchTemplate.js.map +1 -1
- package/dist/src/core/shaders/templates/LinearGradientTemplate.js +0 -16
- package/dist/src/core/shaders/templates/LinearGradientTemplate.js.map +1 -1
- package/dist/src/core/shaders/templates/RadialGradientTemplate.d.ts +8 -6
- package/dist/src/core/shaders/templates/RadialGradientTemplate.js +2 -18
- package/dist/src/core/shaders/templates/RadialGradientTemplate.js.map +1 -1
- package/dist/src/core/shaders/templates/RoundedTemplate.js +1 -17
- 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/RoundedWithBorderAndShadowTemplate.js +0 -16
- package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.js.map +1 -1
- package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.d.ts +4 -2
- package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.js +3 -17
- package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.js.map +1 -1
- package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.d.ts +1 -1
- package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.js +0 -16
- package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.js.map +1 -1
- package/dist/src/core/shaders/templates/ShadowTemplate.d.ts +1 -1
- package/dist/src/core/shaders/templates/ShadowTemplate.js +0 -16
- package/dist/src/core/shaders/templates/ShadowTemplate.js.map +1 -1
- package/dist/src/core/shaders/{templates/shaderUtils.d.ts → utils.d.ts} +1 -1
- package/dist/src/core/shaders/utils.js +25 -0
- package/dist/src/core/shaders/utils.js.map +1 -0
- package/dist/src/core/shaders/webgl/Border.js +118 -51
- package/dist/src/core/shaders/webgl/Border.js.map +1 -1
- package/dist/src/core/shaders/webgl/Default.js +6 -41
- package/dist/src/core/shaders/webgl/Default.js.map +1 -1
- package/dist/src/core/shaders/webgl/HolePunch.js +4 -19
- package/dist/src/core/shaders/webgl/HolePunch.js.map +1 -1
- package/dist/src/core/shaders/webgl/LinearGradient.js +73 -34
- package/dist/src/core/shaders/webgl/LinearGradient.js.map +1 -1
- package/dist/src/core/shaders/webgl/RadialGradient.js +56 -48
- package/dist/src/core/shaders/webgl/RadialGradient.js.map +1 -1
- package/dist/src/core/shaders/webgl/Rounded.js +25 -23
- package/dist/src/core/shaders/webgl/Rounded.js.map +1 -1
- package/dist/src/core/shaders/webgl/RoundedWithBorder.js +160 -55
- package/dist/src/core/shaders/webgl/RoundedWithBorder.js.map +1 -1
- package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js +168 -58
- package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js.map +1 -1
- package/dist/src/core/shaders/webgl/RoundedWithShadow.js +73 -34
- 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 +8 -36
- package/dist/src/core/shaders/webgl/SdfShader.js.map +1 -1
- package/dist/src/core/shaders/webgl/Shadow.js +39 -34
- 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 +206 -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 +139 -0
- package/dist/src/core/text-rendering/CanvasTextRenderer.js.map +1 -0
- package/dist/src/core/text-rendering/SdfFontHandler.d.ts +167 -0
- package/dist/src/core/text-rendering/SdfFontHandler.js +371 -0
- package/dist/src/core/text-rendering/SdfFontHandler.js.map +1 -0
- package/dist/src/core/text-rendering/SdfTextRenderer.d.ts +18 -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 +384 -0
- package/dist/src/core/text-rendering/TextRenderer.js +2 -0
- package/dist/src/core/text-rendering/TextRenderer.js.map +1 -0
- package/dist/src/core/text-rendering/Utils.d.ts +30 -0
- package/dist/src/core/text-rendering/Utils.js +66 -0
- package/dist/src/core/text-rendering/Utils.js.map +1 -0
- package/dist/src/core/textures/ColorTexture.d.ts +1 -1
- package/dist/src/core/textures/ColorTexture.js +3 -22
- package/dist/src/core/textures/ColorTexture.js.map +1 -1
- package/dist/src/core/textures/ImageTexture.d.ts +13 -6
- package/dist/src/core/textures/ImageTexture.js +57 -66
- 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 -26
- 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 -30
- package/dist/src/core/textures/RenderTexture.js.map +1 -1
- package/dist/src/core/textures/SubTexture.d.ts +6 -8
- package/dist/src/core/textures/SubTexture.js +19 -55
- package/dist/src/core/textures/SubTexture.js.map +1 -1
- package/dist/src/core/textures/Texture.d.ts +90 -12
- package/dist/src/core/textures/Texture.js +160 -35
- 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 -19
- package/dist/src/core/utils.js.map +1 -1
- package/dist/src/main-api/INode.js.map +1 -1
- package/dist/src/main-api/Inspector.d.ts +135 -2
- package/dist/src/main-api/Inspector.js +507 -30
- package/dist/src/main-api/Inspector.js.map +1 -1
- package/dist/src/main-api/Renderer.d.ts +294 -81
- package/dist/src/main-api/Renderer.js +225 -96
- package/dist/src/main-api/Renderer.js.map +1 -1
- package/dist/src/utils.d.ts +19 -6
- package/dist/src/utils.js +32 -27
- package/dist/src/utils.js.map +1 -1
- package/dist/tsconfig.dist.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/exports/canvas-shaders.ts +0 -17
- package/exports/canvas.ts +1 -19
- package/exports/index.ts +6 -27
- package/exports/inspector.ts +0 -19
- package/exports/utils.ts +7 -19
- package/exports/webgl-shaders.ts +0 -16
- package/exports/webgl.ts +3 -20
- package/package.json +23 -22
- package/src/common/CommonTypes.ts +20 -22
- package/src/common/EventEmitter.ts +0 -19
- package/src/common/IAnimationController.ts +0 -18
- package/src/common/IEventEmitter.ts +0 -17
- package/src/core/Autosizer.ts +205 -0
- package/src/core/CoreNode.test.ts +376 -45
- package/src/core/CoreNode.ts +1017 -656
- package/src/core/CoreShaderManager.ts +3 -21
- package/src/core/CoreTextNode.ts +457 -314
- package/src/core/CoreTextureManager.ts +123 -168
- package/src/core/Stage.ts +526 -236
- package/src/core/TextureError.ts +46 -0
- package/src/core/TextureMemoryManager.ts +150 -167
- package/src/core/animations/AnimationManager.ts +0 -19
- package/src/core/animations/CoreAnimation.ts +15 -32
- package/src/core/animations/CoreAnimationController.ts +13 -23
- package/src/core/lib/ContextSpy.ts +0 -19
- package/src/core/lib/ImageWorker.ts +45 -32
- package/src/core/lib/Matrix3d.ts +7 -20
- package/src/core/lib/RenderCoords.ts +36 -67
- package/src/core/lib/WebGlContextWrapper.ts +196 -72
- package/src/core/lib/collectionUtils.ts +99 -0
- package/src/core/lib/colorCache.ts +20 -0
- package/src/core/{renderers/canvas/internal/ColorUtils.ts → lib/colorParser.ts} +2 -21
- package/src/core/lib/textureCompression.ts +433 -93
- package/src/core/lib/textureSvg.ts +0 -19
- package/src/core/lib/utils.ts +58 -19
- package/src/core/lib/validateImageBitmap.ts +17 -6
- package/src/core/platforms/Platform.ts +64 -0
- package/src/core/platforms/web/WebPlatform.ts +132 -0
- package/src/core/renderers/CoreContextTexture.ts +2 -20
- package/src/core/renderers/CoreRenderOp.ts +0 -19
- package/src/core/renderers/CoreRenderer.ts +16 -23
- package/src/core/renderers/CoreShaderNode.ts +37 -6
- package/src/core/renderers/CoreShaderProgram.ts +0 -19
- package/src/core/renderers/canvas/CanvasRenderer.ts +108 -137
- package/src/core/renderers/canvas/CanvasShaderNode.ts +3 -23
- package/src/core/renderers/canvas/CanvasTexture.ts +25 -37
- package/src/core/renderers/webgl/SdfRenderOp.ts +88 -0
- package/src/core/renderers/webgl/WebGlCtxRenderTexture.ts +18 -34
- package/src/core/renderers/webgl/WebGlCtxSubTexture.ts +50 -24
- package/src/core/renderers/webgl/WebGlCtxTexture.ts +134 -103
- package/src/core/renderers/webgl/WebGlRenderer.ts +368 -233
- package/src/core/renderers/webgl/WebGlShaderNode.ts +4 -7
- package/src/core/renderers/webgl/WebGlShaderProgram.ts +122 -76
- package/src/core/renderers/webgl/internal/BufferCollection.ts +15 -23
- package/src/core/renderers/webgl/internal/RendererUtils.ts +0 -19
- package/src/core/renderers/webgl/internal/ShaderUtils.ts +0 -19
- package/src/core/renderers/webgl/internal/WebGlUtils.ts +0 -19
- package/src/core/shaders/canvas/Border.ts +91 -50
- package/src/core/shaders/canvas/HolePunch.ts +4 -28
- package/src/core/shaders/canvas/LinearGradient.ts +10 -25
- package/src/core/shaders/canvas/RadialGradient.ts +23 -54
- package/src/core/shaders/canvas/Rounded.ts +2 -19
- package/src/core/shaders/canvas/RoundedWithBorder.ts +72 -35
- package/src/core/shaders/canvas/RoundedWithBorderAndShadow.ts +77 -47
- package/src/core/shaders/canvas/RoundedWithShadow.ts +21 -34
- package/src/core/shaders/canvas/Shadow.ts +0 -17
- package/src/core/shaders/canvas/utils/render.ts +45 -53
- package/src/core/shaders/templates/BorderTemplate.ts +42 -29
- package/src/core/shaders/templates/HolePunchTemplate.ts +5 -22
- package/src/core/shaders/templates/LinearGradientTemplate.ts +0 -17
- package/src/core/shaders/templates/RadialGradientTemplate.ts +10 -25
- package/src/core/shaders/templates/RoundedTemplate.ts +1 -18
- package/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.ts +1 -18
- package/src/core/shaders/templates/RoundedWithBorderTemplate.ts +7 -19
- package/src/core/shaders/templates/RoundedWithShadowTemplate.ts +1 -18
- package/src/core/shaders/templates/ShadowTemplate.ts +1 -18
- package/src/core/shaders/utils.ts +30 -0
- package/src/core/shaders/webgl/Border.ts +118 -55
- package/src/core/shaders/webgl/Default.ts +6 -43
- package/src/core/shaders/webgl/HolePunch.ts +4 -24
- package/src/core/shaders/webgl/LinearGradient.ts +73 -35
- package/src/core/shaders/webgl/RadialGradient.ts +58 -51
- package/src/core/shaders/webgl/Rounded.ts +25 -45
- package/src/core/shaders/webgl/RoundedWithBorder.ts +161 -63
- package/src/core/shaders/webgl/RoundedWithBorderAndShadow.ts +169 -68
- package/src/core/shaders/webgl/RoundedWithShadow.ts +73 -39
- package/src/core/shaders/webgl/SdfShader.ts +8 -41
- package/src/core/shaders/webgl/Shadow.ts +39 -35
- package/src/core/text-rendering/CanvasFontHandler.ts +285 -0
- package/src/core/text-rendering/CanvasTextRenderer.ts +236 -0
- package/src/core/text-rendering/SdfFontHandler.ts +566 -0
- package/src/core/text-rendering/SdfTextRenderer.ts +406 -0
- package/src/core/text-rendering/TextLayoutEngine.ts +672 -0
- package/src/core/text-rendering/TextRenderer.ts +426 -0
- package/src/core/text-rendering/Utils.ts +80 -0
- package/src/core/text-rendering/tests/TextLayoutEngine.test.ts +434 -0
- package/src/core/textures/ColorTexture.ts +7 -24
- package/src/core/textures/ImageTexture.ts +110 -92
- package/src/core/textures/NoiseTexture.ts +14 -31
- package/src/core/textures/RenderTexture.ts +18 -35
- package/src/core/textures/SubTexture.ts +25 -65
- package/src/core/textures/Texture.ts +214 -46
- package/src/core/utils.ts +9 -26
- package/src/main-api/INode.ts +0 -18
- package/src/main-api/Inspector.ts +794 -38
- package/src/main-api/Renderer.ts +519 -159
- package/src/utils.ts +64 -29
- package/dist/src/core/platform.d.ts +0 -10
- package/dist/src/core/platform.js +0 -56
- package/dist/src/core/platform.js.map +0 -1
- package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.d.ts +0 -1
- package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js +0 -217
- package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js.map +0 -1
- package/dist/src/core/renderers/canvas/internal/ColorUtils.js.map +0 -1
- package/dist/src/core/renderers/webgl/WebGlRenderOp.d.ts +0 -36
- package/dist/src/core/renderers/webgl/WebGlRenderOp.js +0 -107
- package/dist/src/core/renderers/webgl/WebGlRenderOp.js.map +0 -1
- package/dist/src/core/shaders/templates/shaderUtils.js +0 -41
- package/dist/src/core/shaders/templates/shaderUtils.js.map +0 -1
- package/dist/src/core/shaders/webgl/DefaultBatched.d.ts +0 -2
- package/dist/src/core/shaders/webgl/DefaultBatched.js +0 -104
- package/dist/src/core/shaders/webgl/DefaultBatched.js.map +0 -1
- package/dist/src/core/text-rendering/TextRenderingUtils.d.ts +0 -12
- package/dist/src/core/text-rendering/TextRenderingUtils.js +0 -14
- package/dist/src/core/text-rendering/TextRenderingUtils.js.map +0 -1
- package/dist/src/core/text-rendering/TextTextureRendererUtils.d.ts +0 -72
- package/dist/src/core/text-rendering/TextTextureRendererUtils.js +0 -217
- package/dist/src/core/text-rendering/TextTextureRendererUtils.js.map +0 -1
- package/dist/src/core/text-rendering/TrFontManager.d.ts +0 -26
- package/dist/src/core/text-rendering/TrFontManager.js +0 -131
- package/dist/src/core/text-rendering/TrFontManager.js.map +0 -1
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.d.ts +0 -39
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js +0 -125
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js.map +0 -1
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.d.ts +0 -103
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.js +0 -21
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.js.map +0 -1
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.d.ts +0 -62
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.js +0 -88
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.js.map +0 -1
- package/dist/src/core/text-rendering/font-face-types/TrFontFace.d.ts +0 -118
- package/dist/src/core/text-rendering/font-face-types/TrFontFace.js +0 -63
- package/dist/src/core/text-rendering/font-face-types/TrFontFace.js.map +0 -1
- package/dist/src/core/text-rendering/font-face-types/WebTrFontFace.d.ts +0 -14
- package/dist/src/core/text-rendering/font-face-types/WebTrFontFace.js +0 -66
- package/dist/src/core/text-rendering/font-face-types/WebTrFontFace.js.map +0 -1
- package/dist/src/core/text-rendering/font-face-types/utils.d.ts +0 -1
- package/dist/src/core/text-rendering/font-face-types/utils.js +0 -38
- package/dist/src/core/text-rendering/font-face-types/utils.js.map +0 -1
- package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.d.ts +0 -59
- package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js +0 -397
- package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js.map +0 -1
- package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.d.ts +0 -126
- package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js +0 -551
- package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js.map +0 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.d.ts +0 -91
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js +0 -611
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js.map +0 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.d.ts +0 -12
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.js +0 -61
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.js.map +0 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.d.ts +0 -33
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.js +0 -52
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.js.map +0 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.d.ts +0 -13
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.js +0 -32
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.js.map +0 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.d.ts +0 -23
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.js +0 -84
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.js.map +0 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.d.ts +0 -4
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.js +0 -34
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.js.map +0 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.d.ts +0 -20
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js +0 -308
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js.map +0 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.d.ts +0 -10
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.js +0 -40
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.js.map +0 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.d.ts +0 -26
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.js +0 -70
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.js.map +0 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.d.ts +0 -16
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.js +0 -39
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.js.map +0 -1
- package/dist/src/core/text-rendering/renderers/TextRenderer.d.ts +0 -370
- package/dist/src/core/text-rendering/renderers/TextRenderer.js +0 -178
- package/dist/src/core/text-rendering/renderers/TextRenderer.js.map +0 -1
- package/scripts/please-use-pnpm.js +0 -13
- package/src/core/platform.ts +0 -64
- package/src/core/renderers/canvas/internal/C2DShaderUtils.ts +0 -220
- package/src/core/renderers/webgl/WebGlRenderOp.ts +0 -145
- package/src/core/shaders/templates/shaderUtils.ts +0 -47
- package/src/core/shaders/webgl/DefaultBatched.ts +0 -129
- package/src/core/text-rendering/TextRenderingUtils.ts +0 -36
- package/src/core/text-rendering/TextTextureRendererUtils.ts +0 -263
- package/src/core/text-rendering/TrFontManager.ts +0 -183
- package/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.ts +0 -176
- package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.ts +0 -139
- package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.test.ts +0 -173
- package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.ts +0 -171
- package/src/core/text-rendering/font-face-types/TrFontFace.ts +0 -187
- package/src/core/text-rendering/font-face-types/WebTrFontFace.ts +0 -94
- package/src/core/text-rendering/font-face-types/utils.ts +0 -39
- package/src/core/text-rendering/renderers/CanvasTextRenderer.ts +0 -509
- package/src/core/text-rendering/renderers/LightningTextTextureRenderer.ts +0 -815
- package/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.ts +0 -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/{renderers/canvas/internal/ColorUtils.d.ts → lib/colorParser.d.ts} +0 -0
|
@@ -2,7 +2,12 @@
|
|
|
2
2
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
3
3
|
/* eslint-disable @typescript-eslint/no-unsafe-argument */
|
|
4
4
|
|
|
5
|
-
import { assertTruthy } from '../../utils.js';
|
|
5
|
+
import { assertTruthy, isProductionEnvironment } from '../../utils.js';
|
|
6
|
+
import type {
|
|
7
|
+
Vec2,
|
|
8
|
+
Vec3,
|
|
9
|
+
Vec4,
|
|
10
|
+
} from '../renderers/webgl/internal/ShaderUtils.js';
|
|
6
11
|
import { isWebGl2 } from '../renderers/webgl/internal/WebGlUtils.js';
|
|
7
12
|
|
|
8
13
|
/**
|
|
@@ -45,6 +50,7 @@ export class WebGlContextWrapper {
|
|
|
45
50
|
private boundArrayBuffer: WebGLBuffer | null;
|
|
46
51
|
private boundElementArrayBuffer: WebGLBuffer | null;
|
|
47
52
|
private curProgram: WebGLProgram | null;
|
|
53
|
+
private curUniformLocations: Record<string, WebGLUniformLocation> = {};
|
|
48
54
|
//#endregion Cached WebGL State
|
|
49
55
|
|
|
50
56
|
//#region Canvas
|
|
@@ -67,6 +73,7 @@ export class WebGlContextWrapper {
|
|
|
67
73
|
public readonly TEXTURE_WRAP_S;
|
|
68
74
|
public readonly TEXTURE_WRAP_T;
|
|
69
75
|
public readonly LINEAR;
|
|
76
|
+
public readonly LINEAR_MIPMAP_LINEAR;
|
|
70
77
|
public readonly CLAMP_TO_EDGE;
|
|
71
78
|
public readonly RGB;
|
|
72
79
|
public readonly RGBA;
|
|
@@ -158,6 +165,7 @@ export class WebGlContextWrapper {
|
|
|
158
165
|
this.TEXTURE_WRAP_S = gl.TEXTURE_WRAP_S;
|
|
159
166
|
this.TEXTURE_WRAP_T = gl.TEXTURE_WRAP_T;
|
|
160
167
|
this.LINEAR = gl.LINEAR;
|
|
168
|
+
this.LINEAR_MIPMAP_LINEAR = gl.LINEAR_MIPMAP_LINEAR;
|
|
161
169
|
this.CLAMP_TO_EDGE = gl.CLAMP_TO_EDGE;
|
|
162
170
|
this.RGB = gl.RGB;
|
|
163
171
|
this.RGBA = gl.RGBA;
|
|
@@ -621,6 +629,32 @@ export class WebGlContextWrapper {
|
|
|
621
629
|
this.gl.bufferData(this.gl.ARRAY_BUFFER, data, usage);
|
|
622
630
|
}
|
|
623
631
|
|
|
632
|
+
/**
|
|
633
|
+
* ```
|
|
634
|
+
* gl.bindBuffer(gl.ARRAY_BUFFER, buffer); // if needed
|
|
635
|
+
* gl.bufferSubData(gl.ARRAY_BUFFER, dstByteOffset, data);
|
|
636
|
+
* ```
|
|
637
|
+
*
|
|
638
|
+
* @remarks
|
|
639
|
+
* **WebGL Combo**: `gl.bindBuffer` is only called when the buffer changes.
|
|
640
|
+
* Used to surgically update a subset of the GPU buffer without reallocating it.
|
|
641
|
+
*
|
|
642
|
+
* @param buffer
|
|
643
|
+
* @param dstByteOffset - Byte offset into the GPU buffer where `data` will be written
|
|
644
|
+
* @param data
|
|
645
|
+
*/
|
|
646
|
+
arrayBufferSubData(
|
|
647
|
+
buffer: WebGLBuffer | null,
|
|
648
|
+
dstByteOffset: number,
|
|
649
|
+
data: ArrayBufferView,
|
|
650
|
+
) {
|
|
651
|
+
if (this.boundArrayBuffer !== buffer) {
|
|
652
|
+
this.gl.bindBuffer(this.gl.ARRAY_BUFFER, buffer);
|
|
653
|
+
this.boundArrayBuffer = buffer;
|
|
654
|
+
}
|
|
655
|
+
this.gl.bufferSubData(this.gl.ARRAY_BUFFER, dstByteOffset, data);
|
|
656
|
+
}
|
|
657
|
+
|
|
624
658
|
/**
|
|
625
659
|
* ```
|
|
626
660
|
* gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, buffer);
|
|
@@ -684,16 +718,23 @@ export class WebGlContextWrapper {
|
|
|
684
718
|
* @param program
|
|
685
719
|
* @returns object with numbers
|
|
686
720
|
*/
|
|
687
|
-
getUniformLocations(
|
|
721
|
+
getUniformLocations(
|
|
722
|
+
program: WebGLProgram,
|
|
723
|
+
): Record<string, WebGLUniformLocation> {
|
|
688
724
|
const gl = this.gl;
|
|
689
725
|
const length = gl.getProgramParameter(
|
|
690
726
|
program,
|
|
691
727
|
gl.ACTIVE_UNIFORMS,
|
|
692
728
|
) as number;
|
|
693
|
-
const result = {} as Record<string,
|
|
729
|
+
const result = {} as Record<string, WebGLUniformLocation>;
|
|
694
730
|
for (let i = 0; i < length; i++) {
|
|
695
|
-
const
|
|
696
|
-
|
|
731
|
+
const info = gl.getActiveUniform(program, i) as WebGLActiveInfo;
|
|
732
|
+
//remove bracket + value from uniform name;
|
|
733
|
+
let name = info.name.replace(/\[.*?\]/g, '');
|
|
734
|
+
result[name] = gl.getUniformLocation(
|
|
735
|
+
program,
|
|
736
|
+
name,
|
|
737
|
+
) as WebGLUniformLocation;
|
|
697
738
|
}
|
|
698
739
|
return result;
|
|
699
740
|
}
|
|
@@ -703,16 +744,17 @@ export class WebGlContextWrapper {
|
|
|
703
744
|
* @param program
|
|
704
745
|
* @returns object with numbers
|
|
705
746
|
*/
|
|
706
|
-
getAttributeLocations(program: WebGLProgram):
|
|
747
|
+
getAttributeLocations(program: WebGLProgram): string[] {
|
|
707
748
|
const gl = this.gl;
|
|
708
749
|
const length = gl.getProgramParameter(
|
|
709
750
|
program,
|
|
710
751
|
gl.ACTIVE_ATTRIBUTES,
|
|
711
752
|
) as number;
|
|
712
|
-
|
|
753
|
+
|
|
754
|
+
const result: string[] = [];
|
|
713
755
|
for (let i = 0; i < length; i++) {
|
|
714
756
|
const { name } = gl.getActiveAttrib(program, i) as WebGLActiveInfo;
|
|
715
|
-
result[name] =
|
|
757
|
+
result[gl.getAttribLocation(program, name)] = name;
|
|
716
758
|
}
|
|
717
759
|
return result;
|
|
718
760
|
}
|
|
@@ -725,12 +767,16 @@ export class WebGlContextWrapper {
|
|
|
725
767
|
* @param program
|
|
726
768
|
* @returns
|
|
727
769
|
*/
|
|
728
|
-
useProgram(
|
|
770
|
+
useProgram(
|
|
771
|
+
program: WebGLProgram | null,
|
|
772
|
+
uniformLocations: Record<string, WebGLUniformLocation>,
|
|
773
|
+
) {
|
|
729
774
|
if (this.curProgram === program) {
|
|
730
775
|
return;
|
|
731
776
|
}
|
|
732
777
|
this.gl.useProgram(program);
|
|
733
778
|
this.curProgram = program;
|
|
779
|
+
this.curUniformLocations = uniformLocations;
|
|
734
780
|
}
|
|
735
781
|
|
|
736
782
|
/**
|
|
@@ -740,10 +786,7 @@ export class WebGlContextWrapper {
|
|
|
740
786
|
* @param v0 - The value to set.
|
|
741
787
|
*/
|
|
742
788
|
uniform1f(location: string, v0: number) {
|
|
743
|
-
this.gl.uniform1f(
|
|
744
|
-
this.gl.getUniformLocation(this.curProgram!, location),
|
|
745
|
-
v0,
|
|
746
|
-
);
|
|
789
|
+
this.gl.uniform1f(this.curUniformLocations[location] || null, v0);
|
|
747
790
|
}
|
|
748
791
|
|
|
749
792
|
/**
|
|
@@ -753,10 +796,7 @@ export class WebGlContextWrapper {
|
|
|
753
796
|
* @param value - The array of values to set.
|
|
754
797
|
*/
|
|
755
798
|
uniform1fv(location: string, value: Float32Array) {
|
|
756
|
-
this.gl.uniform1fv(
|
|
757
|
-
this.gl.getUniformLocation(this.curProgram!, location),
|
|
758
|
-
value,
|
|
759
|
-
);
|
|
799
|
+
this.gl.uniform1fv(this.curUniformLocations[location] || null, value);
|
|
760
800
|
}
|
|
761
801
|
|
|
762
802
|
/**
|
|
@@ -766,10 +806,7 @@ export class WebGlContextWrapper {
|
|
|
766
806
|
* @param v0 - The value to set.
|
|
767
807
|
*/
|
|
768
808
|
uniform1i(location: string, v0: number) {
|
|
769
|
-
this.gl.uniform1i(
|
|
770
|
-
this.gl.getUniformLocation(this.curProgram!, location),
|
|
771
|
-
v0,
|
|
772
|
-
);
|
|
809
|
+
this.gl.uniform1i(this.curUniformLocations[location] || null, v0);
|
|
773
810
|
}
|
|
774
811
|
|
|
775
812
|
/**
|
|
@@ -779,10 +816,7 @@ export class WebGlContextWrapper {
|
|
|
779
816
|
* @param value - The array of values to set.
|
|
780
817
|
*/
|
|
781
818
|
uniform1iv(location: string, value: Int32Array) {
|
|
782
|
-
this.gl.uniform1iv(
|
|
783
|
-
this.gl.getUniformLocation(this.curProgram!, location),
|
|
784
|
-
value,
|
|
785
|
-
);
|
|
819
|
+
this.gl.uniform1iv(this.curUniformLocations[location] || null, value);
|
|
786
820
|
}
|
|
787
821
|
|
|
788
822
|
/**
|
|
@@ -793,10 +827,20 @@ export class WebGlContextWrapper {
|
|
|
793
827
|
* @param v1 - The second component of the vector.
|
|
794
828
|
*/
|
|
795
829
|
uniform2f(location: string, v0: number, v1: number) {
|
|
830
|
+
this.gl.uniform2f(this.curUniformLocations[location] || null, v0, v1);
|
|
831
|
+
}
|
|
832
|
+
|
|
833
|
+
/**
|
|
834
|
+
* Sets the value of a vec3 uniform variable.
|
|
835
|
+
*
|
|
836
|
+
* @param location - The location of the uniform variable.
|
|
837
|
+
* @param v - array of 4 numbers.
|
|
838
|
+
*/
|
|
839
|
+
uniform2fa(location: string, value: Vec2) {
|
|
796
840
|
this.gl.uniform2f(
|
|
797
|
-
this.
|
|
798
|
-
|
|
799
|
-
|
|
841
|
+
this.curUniformLocations[location] || null,
|
|
842
|
+
value[0],
|
|
843
|
+
value[1],
|
|
800
844
|
);
|
|
801
845
|
}
|
|
802
846
|
|
|
@@ -807,10 +851,7 @@ export class WebGlContextWrapper {
|
|
|
807
851
|
* @param value - The array of vec2 values to set.
|
|
808
852
|
*/
|
|
809
853
|
uniform2fv(location: string, value: Float32Array) {
|
|
810
|
-
this.gl.uniform2fv(
|
|
811
|
-
this.gl.getUniformLocation(this.curProgram!, location),
|
|
812
|
-
value,
|
|
813
|
-
);
|
|
854
|
+
this.gl.uniform2fv(this.curUniformLocations[location] || null, value);
|
|
814
855
|
}
|
|
815
856
|
|
|
816
857
|
/**
|
|
@@ -821,11 +862,7 @@ export class WebGlContextWrapper {
|
|
|
821
862
|
* @param v1 - The second component of the vector.
|
|
822
863
|
*/
|
|
823
864
|
uniform2i(location: string, v0: number, v1: number) {
|
|
824
|
-
this.gl.uniform2i(
|
|
825
|
-
this.gl.getUniformLocation(this.curProgram!, location),
|
|
826
|
-
v0,
|
|
827
|
-
v1,
|
|
828
|
-
);
|
|
865
|
+
this.gl.uniform2i(this.curUniformLocations[location] || null, v0, v1);
|
|
829
866
|
}
|
|
830
867
|
|
|
831
868
|
/**
|
|
@@ -835,10 +872,7 @@ export class WebGlContextWrapper {
|
|
|
835
872
|
* @param value - The array of ivec2 values to set.
|
|
836
873
|
*/
|
|
837
874
|
uniform2iv(location: string, value: Int32Array) {
|
|
838
|
-
this.gl.uniform2iv(
|
|
839
|
-
this.gl.getUniformLocation(this.curProgram!, location),
|
|
840
|
-
value,
|
|
841
|
-
);
|
|
875
|
+
this.gl.uniform2iv(this.curUniformLocations[location] || null, value);
|
|
842
876
|
}
|
|
843
877
|
|
|
844
878
|
/**
|
|
@@ -850,11 +884,21 @@ export class WebGlContextWrapper {
|
|
|
850
884
|
* @param v2 - The third component of the vector.
|
|
851
885
|
*/
|
|
852
886
|
uniform3f(location: string, v0: number, v1: number, v2: number) {
|
|
887
|
+
this.gl.uniform3f(this.curUniformLocations[location] || null, v0, v1, v2);
|
|
888
|
+
}
|
|
889
|
+
|
|
890
|
+
/**
|
|
891
|
+
* Sets the value of a vec3 uniform variable.
|
|
892
|
+
*
|
|
893
|
+
* @param location - The location of the uniform variable.
|
|
894
|
+
* @param v - array of 4 numbers.
|
|
895
|
+
*/
|
|
896
|
+
uniform3fa(location: string, value: Vec3) {
|
|
853
897
|
this.gl.uniform3f(
|
|
854
|
-
this.
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
898
|
+
this.curUniformLocations[location] || null,
|
|
899
|
+
value[0],
|
|
900
|
+
value[1],
|
|
901
|
+
value[2],
|
|
858
902
|
);
|
|
859
903
|
}
|
|
860
904
|
|
|
@@ -865,10 +909,7 @@ export class WebGlContextWrapper {
|
|
|
865
909
|
* @param value - The array of vec3 values to set.
|
|
866
910
|
*/
|
|
867
911
|
uniform3fv(location: string, value: Float32Array) {
|
|
868
|
-
this.gl.uniform3fv(
|
|
869
|
-
this.gl.getUniformLocation(this.curProgram!, location),
|
|
870
|
-
value,
|
|
871
|
-
);
|
|
912
|
+
this.gl.uniform3fv(this.curUniformLocations[location] || null, value);
|
|
872
913
|
}
|
|
873
914
|
|
|
874
915
|
/**
|
|
@@ -880,12 +921,7 @@ export class WebGlContextWrapper {
|
|
|
880
921
|
* @param v2 - The third component of the vector.
|
|
881
922
|
*/
|
|
882
923
|
uniform3i(location: string, v0: number, v1: number, v2: number) {
|
|
883
|
-
this.gl.uniform3i(
|
|
884
|
-
this.gl.getUniformLocation(this.curProgram!, location),
|
|
885
|
-
v0,
|
|
886
|
-
v1,
|
|
887
|
-
v2,
|
|
888
|
-
);
|
|
924
|
+
this.gl.uniform3i(this.curUniformLocations[location] || null, v0, v1, v2);
|
|
889
925
|
}
|
|
890
926
|
|
|
891
927
|
/**
|
|
@@ -895,10 +931,7 @@ export class WebGlContextWrapper {
|
|
|
895
931
|
* @param value - The array of ivec3 values to set.
|
|
896
932
|
*/
|
|
897
933
|
uniform3iv(location: string, value: Int32Array) {
|
|
898
|
-
this.gl.uniform3iv(
|
|
899
|
-
this.gl.getUniformLocation(this.curProgram!, location),
|
|
900
|
-
value,
|
|
901
|
-
);
|
|
934
|
+
this.gl.uniform3iv(this.curUniformLocations[location] || null, value);
|
|
902
935
|
}
|
|
903
936
|
|
|
904
937
|
/**
|
|
@@ -912,7 +945,7 @@ export class WebGlContextWrapper {
|
|
|
912
945
|
*/
|
|
913
946
|
uniform4f(location: string, v0: number, v1: number, v2: number, v3: number) {
|
|
914
947
|
this.gl.uniform4f(
|
|
915
|
-
this.
|
|
948
|
+
this.curUniformLocations[location] || null,
|
|
916
949
|
v0,
|
|
917
950
|
v1,
|
|
918
951
|
v2,
|
|
@@ -920,6 +953,22 @@ export class WebGlContextWrapper {
|
|
|
920
953
|
);
|
|
921
954
|
}
|
|
922
955
|
|
|
956
|
+
/**
|
|
957
|
+
* Sets the value of a vec4 uniform variable.
|
|
958
|
+
*
|
|
959
|
+
* @param location - The location of the uniform variable.
|
|
960
|
+
* @param v - array of 4 numbers.
|
|
961
|
+
*/
|
|
962
|
+
uniform4fa(location: string, value: Vec4) {
|
|
963
|
+
this.gl.uniform4f(
|
|
964
|
+
this.curUniformLocations[location] || null,
|
|
965
|
+
value[0],
|
|
966
|
+
value[1],
|
|
967
|
+
value[2],
|
|
968
|
+
value[3],
|
|
969
|
+
);
|
|
970
|
+
}
|
|
971
|
+
|
|
923
972
|
/**
|
|
924
973
|
* Sets the value of a vec4 array uniform variable.
|
|
925
974
|
*
|
|
@@ -927,10 +976,7 @@ export class WebGlContextWrapper {
|
|
|
927
976
|
* @param value - The array of vec4 values to set.
|
|
928
977
|
*/
|
|
929
978
|
uniform4fv(location: string, value: Float32Array) {
|
|
930
|
-
this.gl.uniform4fv(
|
|
931
|
-
this.gl.getUniformLocation(this.curProgram!, location),
|
|
932
|
-
value,
|
|
933
|
-
);
|
|
979
|
+
this.gl.uniform4fv(this.curUniformLocations[location] || null, value);
|
|
934
980
|
}
|
|
935
981
|
|
|
936
982
|
/**
|
|
@@ -944,7 +990,7 @@ export class WebGlContextWrapper {
|
|
|
944
990
|
*/
|
|
945
991
|
uniform4i(location: string, v0: number, v1: number, v2: number, v3: number) {
|
|
946
992
|
this.gl.uniform4i(
|
|
947
|
-
this.
|
|
993
|
+
this.curUniformLocations[location] || null,
|
|
948
994
|
v0,
|
|
949
995
|
v1,
|
|
950
996
|
v2,
|
|
@@ -959,10 +1005,7 @@ export class WebGlContextWrapper {
|
|
|
959
1005
|
* @param value - The array of ivec4 values to set.
|
|
960
1006
|
*/
|
|
961
1007
|
uniform4iv(location: string, value: Int32Array) {
|
|
962
|
-
this.gl.uniform4iv(
|
|
963
|
-
this.gl.getUniformLocation(this.curProgram!, location),
|
|
964
|
-
value,
|
|
965
|
-
);
|
|
1008
|
+
this.gl.uniform4iv(this.curUniformLocations[location] || null, value);
|
|
966
1009
|
}
|
|
967
1010
|
|
|
968
1011
|
/**
|
|
@@ -974,7 +1017,7 @@ export class WebGlContextWrapper {
|
|
|
974
1017
|
*/
|
|
975
1018
|
uniformMatrix2fv(location: string, value: Float32Array) {
|
|
976
1019
|
this.gl.uniformMatrix2fv(
|
|
977
|
-
this.
|
|
1020
|
+
this.curUniformLocations[location] || null,
|
|
978
1021
|
false,
|
|
979
1022
|
value,
|
|
980
1023
|
);
|
|
@@ -987,7 +1030,7 @@ export class WebGlContextWrapper {
|
|
|
987
1030
|
*/
|
|
988
1031
|
uniformMatrix3fv(location: string, value: Float32Array) {
|
|
989
1032
|
this.gl.uniformMatrix3fv(
|
|
990
|
-
this.
|
|
1033
|
+
this.curUniformLocations[location] || null,
|
|
991
1034
|
false,
|
|
992
1035
|
value,
|
|
993
1036
|
);
|
|
@@ -1000,7 +1043,7 @@ export class WebGlContextWrapper {
|
|
|
1000
1043
|
*/
|
|
1001
1044
|
uniformMatrix4fv(location: string, value: Float32Array) {
|
|
1002
1045
|
this.gl.uniformMatrix4fv(
|
|
1003
|
-
this.
|
|
1046
|
+
this.curUniformLocations[location] || null,
|
|
1004
1047
|
false,
|
|
1005
1048
|
value,
|
|
1006
1049
|
);
|
|
@@ -1032,6 +1075,19 @@ export class WebGlContextWrapper {
|
|
|
1032
1075
|
this.gl.drawElements(mode, count, type, offset);
|
|
1033
1076
|
}
|
|
1034
1077
|
|
|
1078
|
+
/**
|
|
1079
|
+
* ```
|
|
1080
|
+
* gl.drawArrays(mode, first, count);
|
|
1081
|
+
* ```
|
|
1082
|
+
*
|
|
1083
|
+
* @param mode
|
|
1084
|
+
* @param first
|
|
1085
|
+
* @param count
|
|
1086
|
+
*/
|
|
1087
|
+
drawArrays(mode: GLenum, first: GLint, count: GLsizei) {
|
|
1088
|
+
this.gl.drawArrays(mode, first, count);
|
|
1089
|
+
}
|
|
1090
|
+
|
|
1035
1091
|
/**
|
|
1036
1092
|
* ```
|
|
1037
1093
|
* gl.drawArrays(mode, first, count);
|
|
@@ -1269,6 +1325,74 @@ export class WebGlContextWrapper {
|
|
|
1269
1325
|
deleteShader(shader: WebGLShader) {
|
|
1270
1326
|
this.gl.deleteShader(shader);
|
|
1271
1327
|
}
|
|
1328
|
+
|
|
1329
|
+
/**
|
|
1330
|
+
* ```
|
|
1331
|
+
* gl.deleteBuffer(buffer);
|
|
1332
|
+
* ```
|
|
1333
|
+
*
|
|
1334
|
+
* @param buffer - The buffer to delete
|
|
1335
|
+
*/
|
|
1336
|
+
deleteBuffer(buffer: WebGLBuffer) {
|
|
1337
|
+
const { gl } = this;
|
|
1338
|
+
gl.deleteBuffer(buffer);
|
|
1339
|
+
|
|
1340
|
+
// Reset bound buffers if they match the deleted buffer
|
|
1341
|
+
if (this.boundArrayBuffer === buffer) {
|
|
1342
|
+
this.boundArrayBuffer = null;
|
|
1343
|
+
}
|
|
1344
|
+
}
|
|
1345
|
+
|
|
1346
|
+
/**
|
|
1347
|
+
* ```
|
|
1348
|
+
* gl.deleteVertexArray(vertexArray);
|
|
1349
|
+
* ```
|
|
1350
|
+
*
|
|
1351
|
+
* @param vertexArray - The vertex array object to delete
|
|
1352
|
+
*/
|
|
1353
|
+
deleteVertexArray(vertexArray: WebGLVertexArrayObject) {
|
|
1354
|
+
if (this.isWebGl2()) {
|
|
1355
|
+
(this.gl as WebGL2RenderingContext).deleteVertexArray(vertexArray);
|
|
1356
|
+
}
|
|
1357
|
+
}
|
|
1358
|
+
|
|
1359
|
+
/**
|
|
1360
|
+
* Check for WebGL errors and return error information
|
|
1361
|
+
* @param operation Description of the operation for error reporting
|
|
1362
|
+
* @returns Object with error information or null if no error
|
|
1363
|
+
*/
|
|
1364
|
+
checkError(
|
|
1365
|
+
operation: string,
|
|
1366
|
+
): { error: number; errorName: string; message: string } | null {
|
|
1367
|
+
const error = this.getError();
|
|
1368
|
+
if (error !== 0) {
|
|
1369
|
+
// 0 is GL_NO_ERROR
|
|
1370
|
+
let errorName = 'UNKNOWN_ERROR';
|
|
1371
|
+
switch (error) {
|
|
1372
|
+
case this.INVALID_ENUM:
|
|
1373
|
+
errorName = 'INVALID_ENUM';
|
|
1374
|
+
break;
|
|
1375
|
+
case 0x0501: // GL_INVALID_VALUE
|
|
1376
|
+
errorName = 'INVALID_VALUE';
|
|
1377
|
+
break;
|
|
1378
|
+
case this.INVALID_OPERATION:
|
|
1379
|
+
errorName = 'INVALID_OPERATION';
|
|
1380
|
+
break;
|
|
1381
|
+
case 0x0505: // GL_OUT_OF_MEMORY
|
|
1382
|
+
errorName = 'OUT_OF_MEMORY';
|
|
1383
|
+
break;
|
|
1384
|
+
case 0x9242: // GL_CONTEXT_LOST_WEBGL
|
|
1385
|
+
errorName = 'CONTEXT_LOST_WEBGL';
|
|
1386
|
+
break;
|
|
1387
|
+
}
|
|
1388
|
+
|
|
1389
|
+
const message = `WebGL ${errorName} (0x${error.toString(
|
|
1390
|
+
16,
|
|
1391
|
+
)}) during ${operation}`;
|
|
1392
|
+
return { error, errorName, message };
|
|
1393
|
+
}
|
|
1394
|
+
return null;
|
|
1395
|
+
}
|
|
1272
1396
|
}
|
|
1273
1397
|
|
|
1274
1398
|
// prettier-ignore
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import type { CoreNode } from '../CoreNode.js';
|
|
2
|
+
|
|
3
|
+
//Bucket sort implementation for sorting CoreNode arrays by zIndex
|
|
4
|
+
export const bucketSortByZIndex = (nodes: CoreNode[], min: number): void => {
|
|
5
|
+
const buckets: CoreNode[][] = [];
|
|
6
|
+
const bucketIndices: number[] = [];
|
|
7
|
+
//distribute nodes into buckets
|
|
8
|
+
for (let i = 0; i < nodes.length; i++) {
|
|
9
|
+
const node = nodes[i]!;
|
|
10
|
+
const index = node.props.zIndex - min;
|
|
11
|
+
//create bucket if it doesn't exist
|
|
12
|
+
if (buckets[index] === undefined) {
|
|
13
|
+
buckets[index] = [];
|
|
14
|
+
bucketIndices.push(index);
|
|
15
|
+
}
|
|
16
|
+
buckets[index]!.push(node);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
//sort each bucket using insertion sort
|
|
20
|
+
for (let i = 1; i < bucketIndices.length; i++) {
|
|
21
|
+
const key = bucketIndices[i]!;
|
|
22
|
+
let j = i - 1;
|
|
23
|
+
while (j >= 0 && bucketIndices[j]! > key) {
|
|
24
|
+
bucketIndices[j + 1] = bucketIndices[j]!;
|
|
25
|
+
j--;
|
|
26
|
+
}
|
|
27
|
+
bucketIndices[j + 1] = key;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
//flatten buckets
|
|
31
|
+
let idx = 0;
|
|
32
|
+
for (let i = 0; i < bucketIndices.length; i++) {
|
|
33
|
+
const bucket = buckets[bucketIndices[i]!]!;
|
|
34
|
+
for (let j = 0; j < bucket.length; j++) {
|
|
35
|
+
nodes[idx++] = bucket[j]!;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
//clean up
|
|
40
|
+
buckets.length = 0;
|
|
41
|
+
bucketIndices.length = 0;
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
export const incrementalRepositionByZIndex = (
|
|
45
|
+
changedNodes: CoreNode[],
|
|
46
|
+
nodes: CoreNode[],
|
|
47
|
+
): void => {
|
|
48
|
+
for (let i = 0; i < changedNodes.length; i++) {
|
|
49
|
+
const node = changedNodes[i]!;
|
|
50
|
+
const currentIndex = findChildIndexById(node, nodes);
|
|
51
|
+
if (currentIndex === -1) continue;
|
|
52
|
+
|
|
53
|
+
const targetZIndex = node.props.zIndex;
|
|
54
|
+
|
|
55
|
+
//binary search for correct insertion position
|
|
56
|
+
let left = 0;
|
|
57
|
+
let right = nodes.length;
|
|
58
|
+
|
|
59
|
+
while (left < right) {
|
|
60
|
+
const mid = (left + right) >>> 1;
|
|
61
|
+
if (nodes[mid]!.props.zIndex <= targetZIndex) {
|
|
62
|
+
left = mid + 1;
|
|
63
|
+
} else {
|
|
64
|
+
right = mid;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
//adjust target position if it's after the current position
|
|
69
|
+
const targetIndex = left > currentIndex ? left - 1 : left;
|
|
70
|
+
|
|
71
|
+
//only reposition if target is different from current
|
|
72
|
+
if (targetIndex !== currentIndex) {
|
|
73
|
+
nodes.splice(currentIndex, 1);
|
|
74
|
+
nodes.splice(targetIndex, 0, node);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
export const findChildIndexById = (
|
|
80
|
+
node: CoreNode,
|
|
81
|
+
children: CoreNode[],
|
|
82
|
+
): number => {
|
|
83
|
+
for (let i = 0; i < children.length; i++) {
|
|
84
|
+
const child = children[i]!;
|
|
85
|
+
|
|
86
|
+
// @ts-ignore - accessing protected property
|
|
87
|
+
if (child._id === node._id) {
|
|
88
|
+
return i;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return -1;
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
export const removeChild = (node: CoreNode, children: CoreNode[]): void => {
|
|
95
|
+
const index = findChildIndexById(node, children);
|
|
96
|
+
if (index !== -1) {
|
|
97
|
+
children.splice(index, 1);
|
|
98
|
+
}
|
|
99
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { parseToAbgrString, parseToRgbaString } from './colorParser.js';
|
|
2
|
+
|
|
3
|
+
const parsedArgbColors: Map<number, string> = new Map();
|
|
4
|
+
const parsedRgbaColors: Map<number, string> = new Map();
|
|
5
|
+
|
|
6
|
+
export function normalizeCanvasColor(color: number, isRGBA: boolean = false) {
|
|
7
|
+
let targetCache = isRGBA === true ? parsedRgbaColors : parsedArgbColors;
|
|
8
|
+
let out = targetCache.get(color);
|
|
9
|
+
if (out !== undefined) {
|
|
10
|
+
return out;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
if (isRGBA === true) {
|
|
14
|
+
out = parseToRgbaString(color);
|
|
15
|
+
} else {
|
|
16
|
+
out = parseToAbgrString(color);
|
|
17
|
+
}
|
|
18
|
+
targetCache.set(color, out);
|
|
19
|
+
return out;
|
|
20
|
+
}
|
|
@@ -1,22 +1,3 @@
|
|
|
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 2023 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
|
-
|
|
20
1
|
export interface IParsedColor {
|
|
21
2
|
isWhite: boolean;
|
|
22
3
|
a: number;
|
|
@@ -47,7 +28,7 @@ export function parseColor(abgr: number): IParsedColor {
|
|
|
47
28
|
return { isWhite: false, a, r, g, b };
|
|
48
29
|
}
|
|
49
30
|
|
|
50
|
-
export function parseToAbgrString(abgr: number) {
|
|
31
|
+
export function parseToAbgrString(abgr: number): string {
|
|
51
32
|
const a = ((abgr >>> 24) & 0xff) / 255;
|
|
52
33
|
const b = (abgr >>> 16) & 0xff & 0xff;
|
|
53
34
|
const g = (abgr >>> 8) & 0xff & 0xff;
|
|
@@ -55,7 +36,7 @@ export function parseToAbgrString(abgr: number) {
|
|
|
55
36
|
return `rgba(${r},${g},${b},${a})`;
|
|
56
37
|
}
|
|
57
38
|
|
|
58
|
-
export function parseToRgbaString(rgba: number) {
|
|
39
|
+
export function parseToRgbaString(rgba: number): string {
|
|
59
40
|
const r = (rgba >>> 24) & 0xff;
|
|
60
41
|
const g = (rgba >>> 16) & 0xff & 0xff;
|
|
61
42
|
const b = (rgba >>> 8) & 0xff & 0xff;
|