@lightningtv/renderer 3.0.0-beta1 → 3.2.3
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 +140 -102
- package/dist/src/core/CoreNode.js +812 -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 +82 -139
- 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 +83 -8
- 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/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 +1015 -656
- package/src/core/CoreShaderManager.ts +3 -21
- package/src/core/CoreTextNode.ts +457 -314
- package/src/core/CoreTextureManager.ts +110 -167
- 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/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
|
@@ -1,31 +1,21 @@
|
|
|
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
|
import type { CoreTextureManager } from '../CoreTextureManager.js';
|
|
21
2
|
import { Texture, TextureType, type TextureData } from './Texture.js';
|
|
22
3
|
import {
|
|
23
4
|
isCompressedTextureContainer,
|
|
24
5
|
loadCompressedTexture,
|
|
25
6
|
} from '../lib/textureCompression.js';
|
|
26
|
-
import {
|
|
7
|
+
import {
|
|
8
|
+
convertUrlToAbsolute,
|
|
9
|
+
dataURIToBlob,
|
|
10
|
+
isBase64Image,
|
|
11
|
+
} from '../lib/utils.js';
|
|
27
12
|
import { isSvgImage, loadSvg } from '../lib/textureSvg.js';
|
|
28
|
-
import { fetchJson } from '../
|
|
13
|
+
import { fetchJson } from '../lib/utils.js';
|
|
14
|
+
import type { Platform } from '../platforms/Platform.js';
|
|
15
|
+
import {
|
|
16
|
+
ENABLE_COMPRESSED_TEXTURES,
|
|
17
|
+
isProductionEnvironment,
|
|
18
|
+
} from '../../utils.js';
|
|
29
19
|
|
|
30
20
|
/**
|
|
31
21
|
* Properties of the {@link ImageTexture}
|
|
@@ -40,7 +30,7 @@ export interface ImageTextureProps {
|
|
|
40
30
|
*
|
|
41
31
|
* @default ''
|
|
42
32
|
*/
|
|
43
|
-
src?: string | ImageData | (() => ImageData | null);
|
|
33
|
+
src?: string | Blob | ImageData | (() => ImageData | null);
|
|
44
34
|
/**
|
|
45
35
|
* Whether to premultiply the alpha channel into the color channels of the
|
|
46
36
|
* image.
|
|
@@ -61,12 +51,12 @@ export interface ImageTextureProps {
|
|
|
61
51
|
* Width of the image to be used as a texture. If not provided, the image's
|
|
62
52
|
* natural width will be used.
|
|
63
53
|
*/
|
|
64
|
-
|
|
54
|
+
w?: number | null;
|
|
65
55
|
/**
|
|
66
56
|
* Height of the image to be used as a texture. If not provided, the image's
|
|
67
57
|
* natural height will be used.
|
|
68
58
|
*/
|
|
69
|
-
|
|
59
|
+
h?: number | null;
|
|
70
60
|
/**
|
|
71
61
|
* Type, indicate an image type for overriding type detection
|
|
72
62
|
*
|
|
@@ -103,6 +93,12 @@ export interface ImageTextureProps {
|
|
|
103
93
|
* @default null
|
|
104
94
|
*/
|
|
105
95
|
sy?: number | null;
|
|
96
|
+
/**
|
|
97
|
+
* Maximum number of times to retry loading the image if it fails.
|
|
98
|
+
*
|
|
99
|
+
* @default 5
|
|
100
|
+
*/
|
|
101
|
+
maxRetryCount?: number;
|
|
106
102
|
}
|
|
107
103
|
|
|
108
104
|
/**
|
|
@@ -120,40 +116,57 @@ export interface ImageTextureProps {
|
|
|
120
116
|
* {@link ImageTextureProps.premultiplyAlpha} prop to `false`.
|
|
121
117
|
*/
|
|
122
118
|
export class ImageTexture extends Texture {
|
|
123
|
-
|
|
119
|
+
private platform: Platform;
|
|
124
120
|
|
|
121
|
+
public props: Required<ImageTextureProps>;
|
|
125
122
|
public override type: TextureType = TextureType.image;
|
|
126
123
|
|
|
127
|
-
constructor(
|
|
124
|
+
constructor(
|
|
125
|
+
txManager: CoreTextureManager,
|
|
126
|
+
props: Required<ImageTextureProps>,
|
|
127
|
+
) {
|
|
128
128
|
super(txManager);
|
|
129
|
-
|
|
129
|
+
|
|
130
|
+
this.platform = txManager.platform;
|
|
131
|
+
this.props = props;
|
|
132
|
+
this.maxRetryCount = props.maxRetryCount as number;
|
|
130
133
|
}
|
|
131
134
|
|
|
132
135
|
hasAlphaChannel(mimeType: string) {
|
|
133
136
|
return mimeType.indexOf('image/png') !== -1;
|
|
134
137
|
}
|
|
135
138
|
|
|
136
|
-
async loadImageFallback(src: string, hasAlpha: boolean) {
|
|
139
|
+
async loadImageFallback(src: string | Blob, hasAlpha: boolean) {
|
|
137
140
|
const img = new Image();
|
|
138
141
|
|
|
139
|
-
if (isBase64Image(src) === false) {
|
|
142
|
+
if (typeof src === 'string' && isBase64Image(src) === false) {
|
|
140
143
|
img.crossOrigin = 'anonymous';
|
|
141
144
|
}
|
|
142
145
|
|
|
143
|
-
return new Promise<{
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
146
|
+
return new Promise<{
|
|
147
|
+
data: HTMLImageElement | null;
|
|
148
|
+
premultiplyAlpha: boolean;
|
|
149
|
+
}>((resolve, reject) => {
|
|
150
|
+
img.onload = () => {
|
|
151
|
+
resolve({ data: img, premultiplyAlpha: hasAlpha });
|
|
152
|
+
};
|
|
148
153
|
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
154
|
+
img.onerror = (err) => {
|
|
155
|
+
const errorMessage =
|
|
156
|
+
err instanceof Error
|
|
157
|
+
? err.message
|
|
158
|
+
: err instanceof Event
|
|
159
|
+
? `Image loading failed for ${img.src}`
|
|
160
|
+
: 'Unknown image loading error';
|
|
161
|
+
reject(new Error(`Image loading failed: ${errorMessage}`));
|
|
162
|
+
};
|
|
153
163
|
|
|
164
|
+
if (src instanceof Blob) {
|
|
165
|
+
img.src = URL.createObjectURL(src);
|
|
166
|
+
} else {
|
|
154
167
|
img.src = src;
|
|
155
|
-
}
|
|
156
|
-
);
|
|
168
|
+
}
|
|
169
|
+
});
|
|
157
170
|
}
|
|
158
171
|
|
|
159
172
|
async createImageBitmap(
|
|
@@ -172,23 +185,30 @@ export class ImageTexture extends Texture {
|
|
|
172
185
|
|
|
173
186
|
if (imageBitmapSupported.full === true && sw !== null && sh !== null) {
|
|
174
187
|
// createImageBitmap with crop
|
|
175
|
-
const bitmap = await createImageBitmap(
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
188
|
+
const bitmap = await this.platform.createImageBitmap(
|
|
189
|
+
blob,
|
|
190
|
+
sx || 0,
|
|
191
|
+
sy || 0,
|
|
192
|
+
sw,
|
|
193
|
+
sh,
|
|
194
|
+
{
|
|
195
|
+
premultiplyAlpha: hasAlphaChannel ? 'premultiply' : 'none',
|
|
196
|
+
colorSpaceConversion: 'none',
|
|
197
|
+
imageOrientation: 'none',
|
|
198
|
+
},
|
|
199
|
+
);
|
|
180
200
|
return { data: bitmap, premultiplyAlpha: hasAlphaChannel };
|
|
181
201
|
} else if (imageBitmapSupported.basic === true) {
|
|
182
202
|
// basic createImageBitmap without options or crop
|
|
183
203
|
// this is supported for Chrome v50 to v52/54 that doesn't support options
|
|
184
204
|
return {
|
|
185
|
-
data: await createImageBitmap(blob),
|
|
205
|
+
data: await this.platform.createImageBitmap(blob),
|
|
186
206
|
premultiplyAlpha: hasAlphaChannel,
|
|
187
207
|
};
|
|
188
208
|
}
|
|
189
209
|
|
|
190
210
|
// default createImageBitmap without crop but with options
|
|
191
|
-
const bitmap = await createImageBitmap(blob, {
|
|
211
|
+
const bitmap = await this.platform.createImageBitmap(blob, {
|
|
192
212
|
premultiplyAlpha: hasAlphaChannel ? 'premultiply' : 'none',
|
|
193
213
|
colorSpaceConversion: 'none',
|
|
194
214
|
imageOrientation: 'none',
|
|
@@ -215,9 +235,16 @@ export class ImageTexture extends Texture {
|
|
|
215
235
|
);
|
|
216
236
|
}
|
|
217
237
|
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
)
|
|
238
|
+
let blob;
|
|
239
|
+
|
|
240
|
+
if (isBase64Image(src) === true) {
|
|
241
|
+
blob = dataURIToBlob(src);
|
|
242
|
+
} else {
|
|
243
|
+
blob = await fetchJson(src, 'blob').then(
|
|
244
|
+
(response) => response as Blob,
|
|
245
|
+
);
|
|
246
|
+
}
|
|
247
|
+
|
|
221
248
|
return this.createImageBitmap(blob, premultiplyAlpha, sx, sy, sw, sh);
|
|
222
249
|
}
|
|
223
250
|
|
|
@@ -225,11 +252,12 @@ export class ImageTexture extends Texture {
|
|
|
225
252
|
}
|
|
226
253
|
|
|
227
254
|
override async getTextureSource(): Promise<TextureData> {
|
|
228
|
-
let resp;
|
|
255
|
+
let resp: TextureData;
|
|
229
256
|
try {
|
|
230
257
|
resp = await this.determineImageTypeAndLoadImage();
|
|
231
258
|
} catch (e) {
|
|
232
259
|
this.setState('failed', e as Error);
|
|
260
|
+
|
|
233
261
|
return {
|
|
234
262
|
data: null,
|
|
235
263
|
};
|
|
@@ -242,23 +270,6 @@ export class ImageTexture extends Texture {
|
|
|
242
270
|
};
|
|
243
271
|
}
|
|
244
272
|
|
|
245
|
-
let width, height;
|
|
246
|
-
// check if resp.data is typeof Uint8ClampedArray else
|
|
247
|
-
// use resp.data.width and resp.data.height
|
|
248
|
-
if (resp.data instanceof Uint8Array) {
|
|
249
|
-
width = this.props.width ?? 0;
|
|
250
|
-
height = this.props.height ?? 0;
|
|
251
|
-
} else {
|
|
252
|
-
width = resp.data?.width ?? (this.props.width || 0);
|
|
253
|
-
height = resp.data?.height ?? (this.props.height || 0);
|
|
254
|
-
}
|
|
255
|
-
|
|
256
|
-
// we're loaded!
|
|
257
|
-
this.setState('fetched', {
|
|
258
|
-
width,
|
|
259
|
-
height,
|
|
260
|
-
});
|
|
261
|
-
|
|
262
273
|
return {
|
|
263
274
|
data: resp.data,
|
|
264
275
|
premultiplyAlpha: this.props.premultiplyAlpha ?? true,
|
|
@@ -274,6 +285,14 @@ export class ImageTexture extends Texture {
|
|
|
274
285
|
}
|
|
275
286
|
|
|
276
287
|
if (typeof src !== 'string') {
|
|
288
|
+
if (src instanceof Blob) {
|
|
289
|
+
if (this.txManager.hasCreateImageBitmap === true) {
|
|
290
|
+
const { sx, sy, sw, sh } = this.props;
|
|
291
|
+
return this.createImageBitmap(src, premultiplyAlpha, sx, sy, sw, sh);
|
|
292
|
+
} else {
|
|
293
|
+
return this.loadImageFallback(src, premultiplyAlpha ?? true);
|
|
294
|
+
}
|
|
295
|
+
}
|
|
277
296
|
if (src instanceof ImageData) {
|
|
278
297
|
return {
|
|
279
298
|
data: src,
|
|
@@ -294,8 +313,8 @@ export class ImageTexture extends Texture {
|
|
|
294
313
|
if (type === 'svg') {
|
|
295
314
|
return loadSvg(
|
|
296
315
|
absoluteSrc,
|
|
297
|
-
this.props.
|
|
298
|
-
this.props.
|
|
316
|
+
this.props.w,
|
|
317
|
+
this.props.h,
|
|
299
318
|
this.props.sx,
|
|
300
319
|
this.props.sy,
|
|
301
320
|
this.props.sw,
|
|
@@ -306,8 +325,8 @@ export class ImageTexture extends Texture {
|
|
|
306
325
|
if (isSvgImage(src) === true) {
|
|
307
326
|
return loadSvg(
|
|
308
327
|
absoluteSrc,
|
|
309
|
-
this.props.
|
|
310
|
-
this.props.
|
|
328
|
+
this.props.w,
|
|
329
|
+
this.props.h,
|
|
311
330
|
this.props.sx,
|
|
312
331
|
this.props.sy,
|
|
313
332
|
this.props.sw,
|
|
@@ -315,11 +334,10 @@ export class ImageTexture extends Texture {
|
|
|
315
334
|
);
|
|
316
335
|
}
|
|
317
336
|
|
|
318
|
-
if (
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
if (isCompressedTextureContainer(src) === true) {
|
|
337
|
+
if (
|
|
338
|
+
ENABLE_COMPRESSED_TEXTURES &&
|
|
339
|
+
(type === 'compressed' || isCompressedTextureContainer(src) === true)
|
|
340
|
+
) {
|
|
323
341
|
return loadCompressedTexture(absoluteSrc);
|
|
324
342
|
}
|
|
325
343
|
|
|
@@ -333,26 +351,25 @@ export class ImageTexture extends Texture {
|
|
|
333
351
|
* @returns The cache key as a string, or `false` if the key cannot be generated.
|
|
334
352
|
*/
|
|
335
353
|
static override makeCacheKey(props: ImageTextureProps): string | false {
|
|
336
|
-
const resolvedProps = ImageTexture.resolveDefaults(props);
|
|
337
354
|
// Only cache key-able textures; prioritise key
|
|
338
|
-
const key =
|
|
355
|
+
const key = props.key || props.src;
|
|
339
356
|
if (typeof key !== 'string') {
|
|
340
357
|
return false;
|
|
341
358
|
}
|
|
342
359
|
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
360
|
+
let cacheKey = `ImageTexture,${key},${props.premultiplyAlpha ?? 'true'},${
|
|
361
|
+
props.maxRetryCount
|
|
362
|
+
}`;
|
|
363
|
+
|
|
364
|
+
if (props.sh !== null && props.sw !== null) {
|
|
365
|
+
cacheKey += ',';
|
|
366
|
+
cacheKey += props.sx ?? '';
|
|
367
|
+
cacheKey += props.sy ?? '';
|
|
368
|
+
cacheKey += props.sw || '';
|
|
369
|
+
cacheKey += props.sh || '';
|
|
351
370
|
}
|
|
352
371
|
|
|
353
|
-
return
|
|
354
|
-
resolvedProps.premultiplyAlpha ?? 'true'
|
|
355
|
-
}${dimensionProps}`;
|
|
372
|
+
return cacheKey;
|
|
356
373
|
}
|
|
357
374
|
|
|
358
375
|
static override resolveDefaults(
|
|
@@ -363,12 +380,13 @@ export class ImageTexture extends Texture {
|
|
|
363
380
|
premultiplyAlpha: props.premultiplyAlpha ?? true, // null,
|
|
364
381
|
key: props.key ?? null,
|
|
365
382
|
type: props.type ?? null,
|
|
366
|
-
|
|
367
|
-
|
|
383
|
+
w: props.w ?? null,
|
|
384
|
+
h: props.h ?? null,
|
|
368
385
|
sx: props.sx ?? null,
|
|
369
386
|
sy: props.sy ?? null,
|
|
370
387
|
sw: props.sw ?? null,
|
|
371
388
|
sh: props.sh ?? null,
|
|
389
|
+
maxRetryCount: props.maxRetryCount ?? 5,
|
|
372
390
|
};
|
|
373
391
|
}
|
|
374
392
|
|
|
@@ -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
|
import type { CoreTextureManager } from '../CoreTextureManager.js';
|
|
21
2
|
import { Texture, TextureType, type TextureData } from './Texture.js';
|
|
22
3
|
|
|
@@ -29,13 +10,13 @@ export interface NoiseTextureProps {
|
|
|
29
10
|
*
|
|
30
11
|
* @default 128
|
|
31
12
|
*/
|
|
32
|
-
|
|
13
|
+
w?: number;
|
|
33
14
|
/**
|
|
34
15
|
* Height of texture
|
|
35
16
|
*
|
|
36
17
|
* @default 128
|
|
37
18
|
*/
|
|
38
|
-
|
|
19
|
+
h?: number;
|
|
39
20
|
/**
|
|
40
21
|
* A number value that can be varied to force new textures to be generated
|
|
41
22
|
*
|
|
@@ -58,14 +39,17 @@ export class NoiseTexture extends Texture {
|
|
|
58
39
|
|
|
59
40
|
public override type: TextureType = TextureType.noise;
|
|
60
41
|
|
|
61
|
-
constructor(
|
|
42
|
+
constructor(
|
|
43
|
+
txManager: CoreTextureManager,
|
|
44
|
+
props: Required<NoiseTextureProps>,
|
|
45
|
+
) {
|
|
62
46
|
super(txManager);
|
|
63
|
-
this.props =
|
|
47
|
+
this.props = props;
|
|
64
48
|
}
|
|
65
49
|
|
|
66
50
|
override async getTextureSource(): Promise<TextureData> {
|
|
67
|
-
const {
|
|
68
|
-
const size =
|
|
51
|
+
const { w, h } = this.props;
|
|
52
|
+
const size = w * h * 4;
|
|
69
53
|
const pixelData8 = new Uint8ClampedArray(size);
|
|
70
54
|
for (let i = 0; i < size; i += 4) {
|
|
71
55
|
const v = Math.floor(Math.random() * 256);
|
|
@@ -75,10 +59,9 @@ export class NoiseTexture extends Texture {
|
|
|
75
59
|
pixelData8[i + 3] = 255;
|
|
76
60
|
}
|
|
77
61
|
|
|
78
|
-
|
|
79
|
-
|
|
62
|
+
// Noise Texture data ready - dimensions will be set during upload
|
|
80
63
|
return {
|
|
81
|
-
data: new ImageData(pixelData8,
|
|
64
|
+
data: new ImageData(pixelData8, w, h),
|
|
82
65
|
};
|
|
83
66
|
}
|
|
84
67
|
|
|
@@ -87,15 +70,15 @@ export class NoiseTexture extends Texture {
|
|
|
87
70
|
return false;
|
|
88
71
|
}
|
|
89
72
|
const resolvedProps = NoiseTexture.resolveDefaults(props);
|
|
90
|
-
return `NoiseTexture,${resolvedProps.
|
|
73
|
+
return `NoiseTexture,${resolvedProps.w},${resolvedProps.h},${resolvedProps.cacheId}`;
|
|
91
74
|
}
|
|
92
75
|
|
|
93
76
|
static override resolveDefaults(
|
|
94
77
|
props: NoiseTextureProps,
|
|
95
78
|
): Required<NoiseTextureProps> {
|
|
96
79
|
return {
|
|
97
|
-
|
|
98
|
-
|
|
80
|
+
w: props.w ?? 128,
|
|
81
|
+
h: props.h ?? 128,
|
|
99
82
|
cacheId: props.cacheId ?? 0,
|
|
100
83
|
};
|
|
101
84
|
}
|
|
@@ -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
|
import type { CoreTextureManager } from '../CoreTextureManager.js';
|
|
21
2
|
import { Texture, TextureType, type TextureData } from './Texture.js';
|
|
22
3
|
|
|
@@ -28,13 +9,13 @@ export interface RenderTextureProps {
|
|
|
28
9
|
* WebGL Texture width
|
|
29
10
|
* @default 256
|
|
30
11
|
*/
|
|
31
|
-
|
|
12
|
+
w?: number;
|
|
32
13
|
|
|
33
14
|
/**
|
|
34
15
|
* WebGL Texture height
|
|
35
16
|
* @default 256
|
|
36
17
|
*/
|
|
37
|
-
|
|
18
|
+
h?: number;
|
|
38
19
|
}
|
|
39
20
|
|
|
40
21
|
export class RenderTexture extends Texture {
|
|
@@ -42,30 +23,32 @@ export class RenderTexture extends Texture {
|
|
|
42
23
|
|
|
43
24
|
public override type: TextureType = TextureType.renderToTexture;
|
|
44
25
|
|
|
45
|
-
constructor(
|
|
26
|
+
constructor(
|
|
27
|
+
txManager: CoreTextureManager,
|
|
28
|
+
props: Required<RenderTextureProps>,
|
|
29
|
+
) {
|
|
46
30
|
super(txManager);
|
|
47
|
-
this.props =
|
|
31
|
+
this.props = props;
|
|
48
32
|
}
|
|
49
33
|
|
|
50
|
-
get
|
|
51
|
-
return this.props.
|
|
34
|
+
get w() {
|
|
35
|
+
return this.props.w;
|
|
52
36
|
}
|
|
53
37
|
|
|
54
|
-
set
|
|
55
|
-
this.props.
|
|
38
|
+
set w(value: number) {
|
|
39
|
+
this.props.w = value;
|
|
56
40
|
}
|
|
57
41
|
|
|
58
|
-
get
|
|
59
|
-
return this.props.
|
|
42
|
+
get h() {
|
|
43
|
+
return this.props.h;
|
|
60
44
|
}
|
|
61
45
|
|
|
62
|
-
set
|
|
63
|
-
this.props.
|
|
46
|
+
set h(value: number) {
|
|
47
|
+
this.props.h = value;
|
|
64
48
|
}
|
|
65
49
|
|
|
66
50
|
override async getTextureSource(): Promise<TextureData> {
|
|
67
|
-
|
|
68
|
-
|
|
51
|
+
// Render texture data ready - dimensions will be set during upload
|
|
69
52
|
return {
|
|
70
53
|
data: null,
|
|
71
54
|
premultiplyAlpha: null,
|
|
@@ -76,8 +59,8 @@ export class RenderTexture extends Texture {
|
|
|
76
59
|
props: RenderTextureProps,
|
|
77
60
|
): Required<RenderTextureProps> {
|
|
78
61
|
return {
|
|
79
|
-
|
|
80
|
-
|
|
62
|
+
w: props.w || 256,
|
|
63
|
+
h: props.h || 256,
|
|
81
64
|
};
|
|
82
65
|
}
|
|
83
66
|
|