@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
|
@@ -1,26 +1,9 @@
|
|
|
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
1
|
import { Texture, TextureType } from './Texture.js';
|
|
20
2
|
import { isCompressedTextureContainer, loadCompressedTexture, } from '../lib/textureCompression.js';
|
|
21
|
-
import { convertUrlToAbsolute, isBase64Image } from '../lib/utils.js';
|
|
3
|
+
import { convertUrlToAbsolute, dataURIToBlob, isBase64Image, } from '../lib/utils.js';
|
|
22
4
|
import { isSvgImage, loadSvg } from '../lib/textureSvg.js';
|
|
23
|
-
import { fetchJson } from '../
|
|
5
|
+
import { fetchJson } from '../lib/utils.js';
|
|
6
|
+
import { ENABLE_COMPRESSED_TEXTURES, isProductionEnvironment, } from '../../utils.js';
|
|
24
7
|
/**
|
|
25
8
|
* Texture consisting of an image loaded from a URL
|
|
26
9
|
*
|
|
@@ -36,29 +19,41 @@ import { fetchJson } from '../text-rendering/font-face-types/utils.js';
|
|
|
36
19
|
* {@link ImageTextureProps.premultiplyAlpha} prop to `false`.
|
|
37
20
|
*/
|
|
38
21
|
export class ImageTexture extends Texture {
|
|
22
|
+
platform;
|
|
39
23
|
props;
|
|
40
24
|
type = TextureType.image;
|
|
41
25
|
constructor(txManager, props) {
|
|
42
26
|
super(txManager);
|
|
43
|
-
this.
|
|
27
|
+
this.platform = txManager.platform;
|
|
28
|
+
this.props = props;
|
|
29
|
+
this.maxRetryCount = props.maxRetryCount;
|
|
44
30
|
}
|
|
45
31
|
hasAlphaChannel(mimeType) {
|
|
46
32
|
return mimeType.indexOf('image/png') !== -1;
|
|
47
33
|
}
|
|
48
34
|
async loadImageFallback(src, hasAlpha) {
|
|
49
35
|
const img = new Image();
|
|
50
|
-
if (isBase64Image(src) === false) {
|
|
36
|
+
if (typeof src === 'string' && isBase64Image(src) === false) {
|
|
51
37
|
img.crossOrigin = 'anonymous';
|
|
52
38
|
}
|
|
53
|
-
return new Promise((resolve) => {
|
|
39
|
+
return new Promise((resolve, reject) => {
|
|
54
40
|
img.onload = () => {
|
|
55
41
|
resolve({ data: img, premultiplyAlpha: hasAlpha });
|
|
56
42
|
};
|
|
57
|
-
img.onerror = () => {
|
|
58
|
-
|
|
59
|
-
|
|
43
|
+
img.onerror = (err) => {
|
|
44
|
+
const errorMessage = err instanceof Error
|
|
45
|
+
? err.message
|
|
46
|
+
: err instanceof Event
|
|
47
|
+
? `Image loading failed for ${img.src}`
|
|
48
|
+
: 'Unknown image loading error';
|
|
49
|
+
reject(new Error(`Image loading failed: ${errorMessage}`));
|
|
60
50
|
};
|
|
61
|
-
|
|
51
|
+
if (src instanceof Blob) {
|
|
52
|
+
img.src = URL.createObjectURL(src);
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
img.src = src;
|
|
56
|
+
}
|
|
62
57
|
});
|
|
63
58
|
}
|
|
64
59
|
async createImageBitmap(blob, premultiplyAlpha, sx, sy, sw, sh) {
|
|
@@ -66,7 +61,7 @@ export class ImageTexture extends Texture {
|
|
|
66
61
|
const imageBitmapSupported = this.txManager.imageBitmapSupported;
|
|
67
62
|
if (imageBitmapSupported.full === true && sw !== null && sh !== null) {
|
|
68
63
|
// createImageBitmap with crop
|
|
69
|
-
const bitmap = await createImageBitmap(blob, sx || 0, sy || 0, sw, sh, {
|
|
64
|
+
const bitmap = await this.platform.createImageBitmap(blob, sx || 0, sy || 0, sw, sh, {
|
|
70
65
|
premultiplyAlpha: hasAlphaChannel ? 'premultiply' : 'none',
|
|
71
66
|
colorSpaceConversion: 'none',
|
|
72
67
|
imageOrientation: 'none',
|
|
@@ -77,12 +72,12 @@ export class ImageTexture extends Texture {
|
|
|
77
72
|
// basic createImageBitmap without options or crop
|
|
78
73
|
// this is supported for Chrome v50 to v52/54 that doesn't support options
|
|
79
74
|
return {
|
|
80
|
-
data: await createImageBitmap(blob),
|
|
75
|
+
data: await this.platform.createImageBitmap(blob),
|
|
81
76
|
premultiplyAlpha: hasAlphaChannel,
|
|
82
77
|
};
|
|
83
78
|
}
|
|
84
79
|
// default createImageBitmap without crop but with options
|
|
85
|
-
const bitmap = await createImageBitmap(blob, {
|
|
80
|
+
const bitmap = await this.platform.createImageBitmap(blob, {
|
|
86
81
|
premultiplyAlpha: hasAlphaChannel ? 'premultiply' : 'none',
|
|
87
82
|
colorSpaceConversion: 'none',
|
|
88
83
|
imageOrientation: 'none',
|
|
@@ -97,7 +92,13 @@ export class ImageTexture extends Texture {
|
|
|
97
92
|
this.txManager.imageWorkerManager !== null) {
|
|
98
93
|
return this.txManager.imageWorkerManager.getImage(src, premultiplyAlpha, sx, sy, sw, sh);
|
|
99
94
|
}
|
|
100
|
-
|
|
95
|
+
let blob;
|
|
96
|
+
if (isBase64Image(src) === true) {
|
|
97
|
+
blob = dataURIToBlob(src);
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
blob = await fetchJson(src, 'blob').then((response) => response);
|
|
101
|
+
}
|
|
101
102
|
return this.createImageBitmap(blob, premultiplyAlpha, sx, sy, sw, sh);
|
|
102
103
|
}
|
|
103
104
|
return this.loadImageFallback(src, premultiplyAlpha ?? true);
|
|
@@ -119,22 +120,6 @@ export class ImageTexture extends Texture {
|
|
|
119
120
|
data: null,
|
|
120
121
|
};
|
|
121
122
|
}
|
|
122
|
-
let width, height;
|
|
123
|
-
// check if resp.data is typeof Uint8ClampedArray else
|
|
124
|
-
// use resp.data.width and resp.data.height
|
|
125
|
-
if (resp.data instanceof Uint8Array) {
|
|
126
|
-
width = this.props.width ?? 0;
|
|
127
|
-
height = this.props.height ?? 0;
|
|
128
|
-
}
|
|
129
|
-
else {
|
|
130
|
-
width = resp.data?.width ?? (this.props.width || 0);
|
|
131
|
-
height = resp.data?.height ?? (this.props.height || 0);
|
|
132
|
-
}
|
|
133
|
-
// we're loaded!
|
|
134
|
-
this.setState('fetched', {
|
|
135
|
-
width,
|
|
136
|
-
height,
|
|
137
|
-
});
|
|
138
123
|
return {
|
|
139
124
|
data: resp.data,
|
|
140
125
|
premultiplyAlpha: this.props.premultiplyAlpha ?? true,
|
|
@@ -148,6 +133,15 @@ export class ImageTexture extends Texture {
|
|
|
148
133
|
};
|
|
149
134
|
}
|
|
150
135
|
if (typeof src !== 'string') {
|
|
136
|
+
if (src instanceof Blob) {
|
|
137
|
+
if (this.txManager.hasCreateImageBitmap === true) {
|
|
138
|
+
const { sx, sy, sw, sh } = this.props;
|
|
139
|
+
return this.createImageBitmap(src, premultiplyAlpha, sx, sy, sw, sh);
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
return this.loadImageFallback(src, premultiplyAlpha ?? true);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
151
145
|
if (src instanceof ImageData) {
|
|
152
146
|
return {
|
|
153
147
|
data: src,
|
|
@@ -164,15 +158,13 @@ export class ImageTexture extends Texture {
|
|
|
164
158
|
return this.loadImage(absoluteSrc);
|
|
165
159
|
}
|
|
166
160
|
if (type === 'svg') {
|
|
167
|
-
return loadSvg(absoluteSrc, this.props.
|
|
161
|
+
return loadSvg(absoluteSrc, this.props.w, this.props.h, this.props.sx, this.props.sy, this.props.sw, this.props.sh);
|
|
168
162
|
}
|
|
169
163
|
if (isSvgImage(src) === true) {
|
|
170
|
-
return loadSvg(absoluteSrc, this.props.
|
|
171
|
-
}
|
|
172
|
-
if (type === 'compressed') {
|
|
173
|
-
return loadCompressedTexture(absoluteSrc);
|
|
164
|
+
return loadSvg(absoluteSrc, this.props.w, this.props.h, this.props.sx, this.props.sy, this.props.sw, this.props.sh);
|
|
174
165
|
}
|
|
175
|
-
if (
|
|
166
|
+
if (ENABLE_COMPRESSED_TEXTURES &&
|
|
167
|
+
(type === 'compressed' || isCompressedTextureContainer(src) === true)) {
|
|
176
168
|
return loadCompressedTexture(absoluteSrc);
|
|
177
169
|
}
|
|
178
170
|
// default
|
|
@@ -184,22 +176,20 @@ export class ImageTexture extends Texture {
|
|
|
184
176
|
* @returns The cache key as a string, or `false` if the key cannot be generated.
|
|
185
177
|
*/
|
|
186
178
|
static makeCacheKey(props) {
|
|
187
|
-
const resolvedProps = ImageTexture.resolveDefaults(props);
|
|
188
179
|
// Only cache key-able textures; prioritise key
|
|
189
|
-
const key =
|
|
180
|
+
const key = props.key || props.src;
|
|
190
181
|
if (typeof key !== 'string') {
|
|
191
182
|
return false;
|
|
192
183
|
}
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
dimensionProps += resolvedProps.sh || '';
|
|
184
|
+
let cacheKey = `ImageTexture,${key},${props.premultiplyAlpha ?? 'true'},${props.maxRetryCount}`;
|
|
185
|
+
if (props.sh !== null && props.sw !== null) {
|
|
186
|
+
cacheKey += ',';
|
|
187
|
+
cacheKey += props.sx ?? '';
|
|
188
|
+
cacheKey += props.sy ?? '';
|
|
189
|
+
cacheKey += props.sw || '';
|
|
190
|
+
cacheKey += props.sh || '';
|
|
201
191
|
}
|
|
202
|
-
return
|
|
192
|
+
return cacheKey;
|
|
203
193
|
}
|
|
204
194
|
static resolveDefaults(props) {
|
|
205
195
|
return {
|
|
@@ -207,12 +197,13 @@ export class ImageTexture extends Texture {
|
|
|
207
197
|
premultiplyAlpha: props.premultiplyAlpha ?? true, // null,
|
|
208
198
|
key: props.key ?? null,
|
|
209
199
|
type: props.type ?? null,
|
|
210
|
-
|
|
211
|
-
|
|
200
|
+
w: props.w ?? null,
|
|
201
|
+
h: props.h ?? null,
|
|
212
202
|
sx: props.sx ?? null,
|
|
213
203
|
sy: props.sy ?? null,
|
|
214
204
|
sw: props.sw ?? null,
|
|
215
205
|
sh: props.sh ?? null,
|
|
206
|
+
maxRetryCount: props.maxRetryCount ?? 5,
|
|
216
207
|
};
|
|
217
208
|
}
|
|
218
209
|
static z$__type__Props;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImageTexture.js","sourceRoot":"","sources":["../../../../src/core/textures/ImageTexture.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ImageTexture.js","sourceRoot":"","sources":["../../../../src/core/textures/ImageTexture.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,13 +9,13 @@ export interface NoiseTextureProps {
|
|
|
9
9
|
*
|
|
10
10
|
* @default 128
|
|
11
11
|
*/
|
|
12
|
-
|
|
12
|
+
w?: number;
|
|
13
13
|
/**
|
|
14
14
|
* Height of texture
|
|
15
15
|
*
|
|
16
16
|
* @default 128
|
|
17
17
|
*/
|
|
18
|
-
|
|
18
|
+
h?: number;
|
|
19
19
|
/**
|
|
20
20
|
* A number value that can be varied to force new textures to be generated
|
|
21
21
|
*
|
|
@@ -35,7 +35,7 @@ export interface NoiseTextureProps {
|
|
|
35
35
|
export declare class NoiseTexture extends Texture {
|
|
36
36
|
props: Required<NoiseTextureProps>;
|
|
37
37
|
type: TextureType;
|
|
38
|
-
constructor(txManager: CoreTextureManager, props: NoiseTextureProps);
|
|
38
|
+
constructor(txManager: CoreTextureManager, props: Required<NoiseTextureProps>);
|
|
39
39
|
getTextureSource(): Promise<TextureData>;
|
|
40
40
|
static makeCacheKey(props: NoiseTextureProps): string | false;
|
|
41
41
|
static resolveDefaults(props: NoiseTextureProps): Required<NoiseTextureProps>;
|
|
@@ -1,21 +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
1
|
import { Texture, TextureType } from './Texture.js';
|
|
20
2
|
/**
|
|
21
3
|
* Texture consisting of a random grid of greyscale pixels
|
|
@@ -31,11 +13,11 @@ export class NoiseTexture extends Texture {
|
|
|
31
13
|
type = TextureType.noise;
|
|
32
14
|
constructor(txManager, props) {
|
|
33
15
|
super(txManager);
|
|
34
|
-
this.props =
|
|
16
|
+
this.props = props;
|
|
35
17
|
}
|
|
36
18
|
async getTextureSource() {
|
|
37
|
-
const {
|
|
38
|
-
const size =
|
|
19
|
+
const { w, h } = this.props;
|
|
20
|
+
const size = w * h * 4;
|
|
39
21
|
const pixelData8 = new Uint8ClampedArray(size);
|
|
40
22
|
for (let i = 0; i < size; i += 4) {
|
|
41
23
|
const v = Math.floor(Math.random() * 256);
|
|
@@ -44,9 +26,9 @@ export class NoiseTexture extends Texture {
|
|
|
44
26
|
pixelData8[i + 2] = v;
|
|
45
27
|
pixelData8[i + 3] = 255;
|
|
46
28
|
}
|
|
47
|
-
|
|
29
|
+
// Noise Texture data ready - dimensions will be set during upload
|
|
48
30
|
return {
|
|
49
|
-
data: new ImageData(pixelData8,
|
|
31
|
+
data: new ImageData(pixelData8, w, h),
|
|
50
32
|
};
|
|
51
33
|
}
|
|
52
34
|
static makeCacheKey(props) {
|
|
@@ -54,12 +36,12 @@ export class NoiseTexture extends Texture {
|
|
|
54
36
|
return false;
|
|
55
37
|
}
|
|
56
38
|
const resolvedProps = NoiseTexture.resolveDefaults(props);
|
|
57
|
-
return `NoiseTexture,${resolvedProps.
|
|
39
|
+
return `NoiseTexture,${resolvedProps.w},${resolvedProps.h},${resolvedProps.cacheId}`;
|
|
58
40
|
}
|
|
59
41
|
static resolveDefaults(props) {
|
|
60
42
|
return {
|
|
61
|
-
|
|
62
|
-
|
|
43
|
+
w: props.w ?? 128,
|
|
44
|
+
h: props.h ?? 128,
|
|
63
45
|
cacheId: props.cacheId ?? 0,
|
|
64
46
|
};
|
|
65
47
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NoiseTexture.js","sourceRoot":"","sources":["../../../../src/core/textures/NoiseTexture.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"NoiseTexture.js","sourceRoot":"","sources":["../../../../src/core/textures/NoiseTexture.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAoB,MAAM,cAAc,CAAC;AA0BtE;;;;;;;;GAQG;AACH,MAAM,OAAO,YAAa,SAAQ,OAAO;IACvC,KAAK,CAA8B;IAEnB,IAAI,GAAgB,WAAW,CAAC,KAAK,CAAC;IAEtD,YACE,SAA6B,EAC7B,KAAkC;QAElC,KAAK,CAAC,SAAS,CAAC,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAEQ,KAAK,CAAC,gBAAgB;QAC7B,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAC5B,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACvB,MAAM,UAAU,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;YAC1C,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAClB,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YACtB,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YACtB,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;QAC1B,CAAC;QAED,kEAAkE;QAClE,OAAO;YACL,IAAI,EAAE,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;SACtC,CAAC;IACJ,CAAC;IAED,MAAM,CAAU,YAAY,CAAC,KAAwB;QACnD,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,aAAa,GAAG,YAAY,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC1D,OAAO,gBAAgB,aAAa,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC;IACvF,CAAC;IAED,MAAM,CAAU,eAAe,CAC7B,KAAwB;QAExB,OAAO;YACL,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,GAAG;YACjB,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,GAAG;YACjB,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,CAAC;SAC5B,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,eAAe,CAAoB;CAC3C"}
|
|
@@ -8,21 +8,21 @@ export interface RenderTextureProps {
|
|
|
8
8
|
* WebGL Texture width
|
|
9
9
|
* @default 256
|
|
10
10
|
*/
|
|
11
|
-
|
|
11
|
+
w?: number;
|
|
12
12
|
/**
|
|
13
13
|
* WebGL Texture height
|
|
14
14
|
* @default 256
|
|
15
15
|
*/
|
|
16
|
-
|
|
16
|
+
h?: number;
|
|
17
17
|
}
|
|
18
18
|
export declare class RenderTexture extends Texture {
|
|
19
19
|
props: Required<RenderTextureProps>;
|
|
20
20
|
type: TextureType;
|
|
21
|
-
constructor(txManager: CoreTextureManager, props
|
|
22
|
-
get
|
|
23
|
-
set
|
|
24
|
-
get
|
|
25
|
-
set
|
|
21
|
+
constructor(txManager: CoreTextureManager, props: Required<RenderTextureProps>);
|
|
22
|
+
get w(): number;
|
|
23
|
+
set w(value: number);
|
|
24
|
+
get h(): number;
|
|
25
|
+
set h(value: number);
|
|
26
26
|
getTextureSource(): Promise<TextureData>;
|
|
27
27
|
static resolveDefaults(props: RenderTextureProps): Required<RenderTextureProps>;
|
|
28
28
|
static z$__type__Props: RenderTextureProps;
|
|
@@ -1,43 +1,25 @@
|
|
|
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
1
|
import { Texture, TextureType } from './Texture.js';
|
|
20
2
|
export class RenderTexture extends Texture {
|
|
21
3
|
props;
|
|
22
4
|
type = TextureType.renderToTexture;
|
|
23
5
|
constructor(txManager, props) {
|
|
24
6
|
super(txManager);
|
|
25
|
-
this.props =
|
|
7
|
+
this.props = props;
|
|
26
8
|
}
|
|
27
|
-
get
|
|
28
|
-
return this.props.
|
|
9
|
+
get w() {
|
|
10
|
+
return this.props.w;
|
|
29
11
|
}
|
|
30
|
-
set
|
|
31
|
-
this.props.
|
|
12
|
+
set w(value) {
|
|
13
|
+
this.props.w = value;
|
|
32
14
|
}
|
|
33
|
-
get
|
|
34
|
-
return this.props.
|
|
15
|
+
get h() {
|
|
16
|
+
return this.props.h;
|
|
35
17
|
}
|
|
36
|
-
set
|
|
37
|
-
this.props.
|
|
18
|
+
set h(value) {
|
|
19
|
+
this.props.h = value;
|
|
38
20
|
}
|
|
39
21
|
async getTextureSource() {
|
|
40
|
-
|
|
22
|
+
// Render texture data ready - dimensions will be set during upload
|
|
41
23
|
return {
|
|
42
24
|
data: null,
|
|
43
25
|
premultiplyAlpha: null,
|
|
@@ -45,8 +27,8 @@ export class RenderTexture extends Texture {
|
|
|
45
27
|
}
|
|
46
28
|
static resolveDefaults(props) {
|
|
47
29
|
return {
|
|
48
|
-
|
|
49
|
-
|
|
30
|
+
w: props.w || 256,
|
|
31
|
+
h: props.h || 256,
|
|
50
32
|
};
|
|
51
33
|
}
|
|
52
34
|
static z$__type__Props;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderTexture.js","sourceRoot":"","sources":["../../../../src/core/textures/RenderTexture.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RenderTexture.js","sourceRoot":"","sources":["../../../../src/core/textures/RenderTexture.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAoB,MAAM,cAAc,CAAC;AAmBtE,MAAM,OAAO,aAAc,SAAQ,OAAO;IACxC,KAAK,CAA+B;IAEpB,IAAI,GAAgB,WAAW,CAAC,eAAe,CAAC;IAEhE,YACE,SAA6B,EAC7B,KAAmC;QAEnC,KAAK,CAAC,SAAS,CAAC,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACtB,CAAC;IAED,IAAI,CAAC,CAAC,KAAa;QACjB,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACtB,CAAC;IAED,IAAI,CAAC,CAAC,KAAa;QACjB,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC;IACvB,CAAC;IAEQ,KAAK,CAAC,gBAAgB;QAC7B,mEAAmE;QACnE,OAAO;YACL,IAAI,EAAE,IAAI;YACV,gBAAgB,EAAE,IAAI;SACvB,CAAC;IACJ,CAAC;IAED,MAAM,CAAU,eAAe,CAC7B,KAAyB;QAEzB,OAAO;YACL,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,GAAG;YACjB,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,GAAG;SAClB,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,eAAe,CAAqB;CAC5C"}
|
|
@@ -27,11 +27,11 @@ export interface SubTextureProps {
|
|
|
27
27
|
*
|
|
28
28
|
* @default 0
|
|
29
29
|
*/
|
|
30
|
-
|
|
30
|
+
w?: number;
|
|
31
31
|
/**
|
|
32
32
|
* The height of the sub-texture in pixels
|
|
33
33
|
**/
|
|
34
|
-
|
|
34
|
+
h?: number;
|
|
35
35
|
}
|
|
36
36
|
/**
|
|
37
37
|
* A Texture that is a sub-region of another Texture.
|
|
@@ -40,21 +40,19 @@ export interface SubTextureProps {
|
|
|
40
40
|
* The parent texture can be a Sprite Sheet/Texture Atlas and set using the
|
|
41
41
|
* {@link SubTextureProps.texture} prop. The sub-region relative to the parent
|
|
42
42
|
* texture is defined with the {@link SubTextureProps.x},
|
|
43
|
-
* {@link SubTextureProps.y}, {@link SubTextureProps.
|
|
44
|
-
* {@link SubTextureProps.
|
|
43
|
+
* {@link SubTextureProps.y}, {@link SubTextureProps.w}, and
|
|
44
|
+
* {@link SubTextureProps.h} pixel values.
|
|
45
45
|
*/
|
|
46
46
|
export declare class SubTexture extends Texture {
|
|
47
47
|
props: Required<SubTextureProps>;
|
|
48
48
|
parentTexture: Texture;
|
|
49
49
|
type: TextureType;
|
|
50
|
-
|
|
50
|
+
subtextureId: string;
|
|
51
|
+
constructor(txManager: CoreTextureManager, props: Required<SubTextureProps>);
|
|
51
52
|
private onParentTxLoaded;
|
|
52
53
|
private onParentTxFailed;
|
|
53
|
-
private onParentTxFetched;
|
|
54
|
-
private onParentTxFetching;
|
|
55
54
|
private onParentTxLoading;
|
|
56
55
|
private onParentTxFreed;
|
|
57
|
-
private forwardParentTxState;
|
|
58
56
|
onChangeIsRenderable(isRenderable: boolean): void;
|
|
59
57
|
getTextureSource(): Promise<TextureData>;
|
|
60
58
|
static makeCacheKey(props: SubTextureProps): string | false;
|
|
@@ -1,24 +1,7 @@
|
|
|
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
1
|
import { assertTruthy } from '../../utils.js';
|
|
20
2
|
import { ImageTexture } from './ImageTexture.js';
|
|
21
3
|
import { Texture, TextureType, } from './Texture.js';
|
|
4
|
+
let subTextureId = 0;
|
|
22
5
|
/**
|
|
23
6
|
* A Texture that is a sub-region of another Texture.
|
|
24
7
|
*
|
|
@@ -26,22 +9,23 @@ import { Texture, TextureType, } from './Texture.js';
|
|
|
26
9
|
* The parent texture can be a Sprite Sheet/Texture Atlas and set using the
|
|
27
10
|
* {@link SubTextureProps.texture} prop. The sub-region relative to the parent
|
|
28
11
|
* texture is defined with the {@link SubTextureProps.x},
|
|
29
|
-
* {@link SubTextureProps.y}, {@link SubTextureProps.
|
|
30
|
-
* {@link SubTextureProps.
|
|
12
|
+
* {@link SubTextureProps.y}, {@link SubTextureProps.w}, and
|
|
13
|
+
* {@link SubTextureProps.h} pixel values.
|
|
31
14
|
*/
|
|
32
15
|
export class SubTexture extends Texture {
|
|
33
16
|
props;
|
|
34
17
|
parentTexture;
|
|
35
18
|
type = TextureType.subTexture;
|
|
19
|
+
subtextureId = `subtexture-${subTextureId++}`;
|
|
36
20
|
constructor(txManager, props) {
|
|
37
21
|
super(txManager);
|
|
38
|
-
this.props =
|
|
22
|
+
this.props = props;
|
|
39
23
|
assertTruthy(this.props.texture, 'SubTexture requires a parent texture');
|
|
40
24
|
assertTruthy(this.props.texture instanceof ImageTexture, 'SubTexture requires an ImageTexture parent');
|
|
41
25
|
// Resolve parent texture from cache or fallback to provided texture
|
|
42
26
|
this.parentTexture = txManager.resolveParentTexture(this.props.texture);
|
|
43
|
-
if (this.renderableOwners.
|
|
44
|
-
this.parentTexture.setRenderableOwner(this, true);
|
|
27
|
+
if (this.renderableOwners.length > 0) {
|
|
28
|
+
this.parentTexture.setRenderableOwner(this.subtextureId, true);
|
|
45
29
|
}
|
|
46
30
|
// If parent texture is already loaded / failed, trigger loaded event manually
|
|
47
31
|
// so that users get a consistent event experience.
|
|
@@ -49,27 +33,19 @@ export class SubTexture extends Texture {
|
|
|
49
33
|
// synchronous task after calling loadTexture()
|
|
50
34
|
queueMicrotask(() => {
|
|
51
35
|
const parentTx = this.parentTexture;
|
|
52
|
-
if (parentTx.state === 'loaded') {
|
|
36
|
+
if (parentTx.state === 'loaded' && parentTx.dimensions !== null) {
|
|
53
37
|
this.onParentTxLoaded(parentTx, parentTx.dimensions);
|
|
54
38
|
}
|
|
55
|
-
else if (parentTx.state === 'fetching') {
|
|
56
|
-
this.onParentTxFetching();
|
|
57
|
-
}
|
|
58
|
-
else if (parentTx.state === 'fetched') {
|
|
59
|
-
this.onParentTxFetched();
|
|
60
|
-
}
|
|
61
39
|
else if (parentTx.state === 'loading') {
|
|
62
40
|
this.onParentTxLoading();
|
|
63
41
|
}
|
|
64
|
-
else if (parentTx.state === 'failed') {
|
|
42
|
+
else if (parentTx.state === 'failed' && parentTx.error !== null) {
|
|
65
43
|
this.onParentTxFailed(parentTx, parentTx.error);
|
|
66
44
|
}
|
|
67
45
|
else if (parentTx.state === 'freed') {
|
|
68
46
|
this.onParentTxFreed();
|
|
69
47
|
}
|
|
70
|
-
parentTx.on('fetched', this.onParentTxFetched);
|
|
71
48
|
parentTx.on('loading', this.onParentTxLoading);
|
|
72
|
-
parentTx.on('fetching', this.onParentTxFetching);
|
|
73
49
|
parentTx.on('loaded', this.onParentTxLoaded);
|
|
74
50
|
parentTx.on('failed', this.onParentTxFailed);
|
|
75
51
|
parentTx.on('freed', this.onParentTxFreed);
|
|
@@ -78,40 +54,28 @@ export class SubTexture extends Texture {
|
|
|
78
54
|
onParentTxLoaded = () => {
|
|
79
55
|
// We ignore the parent's passed dimensions, and simply use the SubTexture's
|
|
80
56
|
// configured dimensions (because that's all that matters here)
|
|
81
|
-
this.
|
|
82
|
-
|
|
83
|
-
|
|
57
|
+
this.setState('loaded', {
|
|
58
|
+
w: this.props.w,
|
|
59
|
+
h: this.props.h,
|
|
84
60
|
});
|
|
85
61
|
};
|
|
86
62
|
onParentTxFailed = (target, error) => {
|
|
87
|
-
this.
|
|
88
|
-
|
|
89
|
-
onParentTxFetched = () => {
|
|
90
|
-
this.forwardParentTxState('fetched', {
|
|
91
|
-
width: this.props.width,
|
|
92
|
-
height: this.props.height,
|
|
93
|
-
});
|
|
94
|
-
};
|
|
95
|
-
onParentTxFetching = () => {
|
|
96
|
-
this.forwardParentTxState('fetching');
|
|
63
|
+
this.retryCount = this.parentTexture.retryCount - 1;
|
|
64
|
+
this.setState('failed', error);
|
|
97
65
|
};
|
|
98
66
|
onParentTxLoading = () => {
|
|
99
|
-
this.
|
|
67
|
+
this.setState('loading');
|
|
100
68
|
};
|
|
101
69
|
onParentTxFreed = () => {
|
|
102
|
-
this.
|
|
70
|
+
this.setState('freed');
|
|
103
71
|
};
|
|
104
|
-
forwardParentTxState(state, errorOrDimensions) {
|
|
105
|
-
this.setState(state, errorOrDimensions);
|
|
106
|
-
}
|
|
107
72
|
onChangeIsRenderable(isRenderable) {
|
|
108
73
|
// Propagate the renderable owner change to the parent texture
|
|
109
|
-
this.parentTexture.setRenderableOwner(this, isRenderable);
|
|
74
|
+
this.parentTexture.setRenderableOwner(this.subtextureId, isRenderable);
|
|
110
75
|
}
|
|
111
76
|
async getTextureSource() {
|
|
112
77
|
// Check if parent texture is loaded
|
|
113
78
|
return new Promise((resolve, reject) => {
|
|
114
|
-
this.setState('fetched');
|
|
115
79
|
resolve({
|
|
116
80
|
data: this.props,
|
|
117
81
|
});
|
|
@@ -126,8 +90,8 @@ export class SubTexture extends Texture {
|
|
|
126
90
|
texture: props.texture,
|
|
127
91
|
x: props.x || 0,
|
|
128
92
|
y: props.y || 0,
|
|
129
|
-
|
|
130
|
-
|
|
93
|
+
w: props.w || 0,
|
|
94
|
+
h: props.h || 0,
|
|
131
95
|
};
|
|
132
96
|
}
|
|
133
97
|
static z$__type__Props;
|