@lightningjs/renderer 2.12.1 → 3.0.0-beta1
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/dist/exports/canvas-shaders.d.ts +10 -0
- package/dist/exports/canvas-shaders.js +27 -0
- package/dist/exports/canvas-shaders.js.map +1 -0
- package/dist/exports/canvas.d.ts +7 -1
- package/dist/exports/canvas.js +7 -1
- package/dist/exports/canvas.js.map +1 -1
- package/dist/exports/index.d.ts +15 -8
- package/dist/exports/index.js +7 -4
- package/dist/exports/index.js.map +1 -1
- package/dist/exports/webgl-shaders.d.ts +11 -0
- package/dist/exports/webgl-shaders.js +28 -0
- package/dist/exports/webgl-shaders.js.map +1 -0
- package/dist/exports/webgl.d.ts +9 -1
- package/dist/exports/webgl.js +9 -1
- package/dist/exports/webgl.js.map +1 -1
- package/dist/src/core/CoreNode.d.ts +19 -5
- package/dist/src/core/CoreNode.js +117 -24
- package/dist/src/core/CoreNode.js.map +1 -1
- package/dist/src/core/CoreShaderManager.d.ts +29 -71
- package/dist/src/core/CoreShaderManager.js +110 -97
- package/dist/src/core/CoreShaderManager.js.map +1 -1
- package/dist/src/core/CoreTextNode.js +1 -1
- package/dist/src/core/CoreTextNode.js.map +1 -1
- package/dist/src/core/CoreTextureManager.d.ts +13 -7
- package/dist/src/core/CoreTextureManager.js +92 -105
- package/dist/src/core/CoreTextureManager.js.map +1 -1
- package/dist/src/core/Stage.d.ts +15 -16
- package/dist/src/core/Stage.js +45 -32
- package/dist/src/core/Stage.js.map +1 -1
- package/dist/src/core/TextureMemoryManager.d.ts +16 -6
- package/dist/src/core/TextureMemoryManager.js +75 -17
- package/dist/src/core/TextureMemoryManager.js.map +1 -1
- package/dist/src/core/animations/CoreAnimation.d.ts +0 -1
- package/dist/src/core/animations/CoreAnimation.js +6 -52
- package/dist/src/core/animations/CoreAnimation.js.map +1 -1
- package/dist/src/core/lib/ImageWorker.d.ts +1 -1
- package/dist/src/core/lib/ImageWorker.js +13 -11
- package/dist/src/core/lib/ImageWorker.js.map +1 -1
- package/dist/src/core/lib/WebGlContextWrapper.d.ts +67 -54
- package/dist/src/core/lib/WebGlContextWrapper.js +126 -157
- package/dist/src/core/lib/WebGlContextWrapper.js.map +1 -1
- package/dist/src/core/lib/textureCompression.js +0 -1
- package/dist/src/core/lib/textureCompression.js.map +1 -1
- package/dist/src/core/lib/utils.d.ts +4 -0
- package/dist/src/core/lib/utils.js +26 -0
- package/dist/src/core/lib/utils.js.map +1 -1
- package/dist/src/core/lib/validateImageBitmap.d.ts +6 -0
- package/dist/src/core/lib/validateImageBitmap.js +68 -0
- package/dist/src/core/lib/validateImageBitmap.js.map +1 -0
- package/dist/src/core/platform.js +4 -3
- package/dist/src/core/platform.js.map +1 -1
- package/dist/src/core/renderers/CoreRenderer.d.ts +11 -21
- package/dist/src/core/renderers/CoreRenderer.js +0 -6
- package/dist/src/core/renderers/CoreRenderer.js.map +1 -1
- package/dist/src/core/renderers/CoreShaderNode.d.ts +59 -0
- package/dist/src/core/renderers/CoreShaderNode.js +107 -0
- package/dist/src/core/renderers/CoreShaderNode.js.map +1 -0
- package/dist/src/core/renderers/CoreShaderProgram.d.ts +4 -0
- package/{src/core/renderers/CoreShader.ts → dist/src/core/renderers/CoreShaderProgram.js} +2 -23
- package/dist/src/core/renderers/CoreShaderProgram.js.map +1 -0
- package/dist/src/core/renderers/canvas/CanvasRenderer.d.ts +36 -0
- package/dist/src/core/renderers/canvas/CanvasRenderer.js +212 -0
- package/dist/src/core/renderers/canvas/CanvasRenderer.js.map +1 -0
- package/dist/src/core/renderers/canvas/CanvasShaderNode.d.ts +21 -0
- package/dist/src/core/renderers/canvas/CanvasShaderNode.js +60 -0
- package/dist/src/core/renderers/canvas/CanvasShaderNode.js.map +1 -0
- package/dist/src/core/renderers/canvas/CanvasTexture.d.ts +16 -0
- package/dist/src/core/renderers/canvas/CanvasTexture.js +123 -0
- package/dist/src/core/renderers/canvas/CanvasTexture.js.map +1 -0
- package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.d.ts +0 -13
- package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js +192 -113
- package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js.map +1 -1
- package/dist/src/core/renderers/canvas/internal/ColorUtils.d.ts +2 -0
- package/dist/src/core/renderers/canvas/internal/ColorUtils.js +14 -0
- package/dist/src/core/renderers/canvas/internal/ColorUtils.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js +7 -12
- package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.d.ts +12 -0
- package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js +55 -0
- package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.d.ts +9 -0
- package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.js +38 -0
- package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlCtxTexture.d.ts +57 -0
- package/dist/src/core/renderers/webgl/WebGlCtxTexture.js +227 -0
- package/dist/src/core/renderers/webgl/WebGlCtxTexture.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlRenderOp.d.ts +36 -0
- package/dist/src/core/renderers/webgl/WebGlRenderOp.js +107 -0
- package/dist/src/core/renderers/webgl/WebGlRenderOp.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlRenderer.d.ts +134 -0
- package/dist/src/core/renderers/webgl/WebGlRenderer.js +546 -0
- package/dist/src/core/renderers/webgl/WebGlRenderer.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlShaderNode.d.ts +221 -0
- package/dist/src/core/renderers/webgl/WebGlShaderNode.js +334 -0
- package/dist/src/core/renderers/webgl/WebGlShaderNode.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlShaderProgram.d.ts +35 -0
- package/dist/src/core/renderers/webgl/WebGlShaderProgram.js +195 -0
- package/dist/src/core/renderers/webgl/WebGlShaderProgram.js.map +1 -0
- package/dist/src/core/renderers/webgl/internal/ShaderUtils.d.ts +32 -5
- package/dist/src/core/renderers/webgl/internal/ShaderUtils.js +50 -0
- package/dist/src/core/renderers/webgl/internal/ShaderUtils.js.map +1 -1
- package/dist/src/core/shaders/canvas/Border.d.ts +9 -0
- package/dist/src/core/shaders/canvas/Border.js +57 -0
- package/dist/src/core/shaders/canvas/Border.js.map +1 -0
- package/dist/src/core/shaders/canvas/HolePunch.d.ts +7 -0
- package/dist/src/core/shaders/canvas/HolePunch.js +38 -0
- package/dist/src/core/shaders/canvas/HolePunch.js.map +1 -0
- package/dist/src/core/shaders/canvas/LinearGradient.d.ts +10 -0
- package/dist/src/core/shaders/canvas/LinearGradient.js +46 -0
- package/dist/src/core/shaders/canvas/LinearGradient.js.map +1 -0
- package/dist/src/core/shaders/canvas/RadialGradient.d.ts +11 -0
- package/dist/src/core/shaders/canvas/RadialGradient.js +68 -0
- package/dist/src/core/shaders/canvas/RadialGradient.js.map +1 -0
- package/dist/src/core/shaders/canvas/Rounded.d.ts +7 -0
- package/dist/src/core/shaders/canvas/Rounded.js +33 -0
- package/dist/src/core/shaders/canvas/Rounded.js.map +1 -0
- package/dist/src/core/shaders/canvas/RoundedWithBorder.d.ts +7 -0
- package/dist/src/core/shaders/canvas/RoundedWithBorder.js +35 -0
- package/dist/src/core/shaders/canvas/RoundedWithBorder.js.map +1 -0
- package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.d.ts +8 -0
- package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js +39 -0
- package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js.map +1 -0
- package/dist/src/core/shaders/canvas/RoundedWithShadow.d.ts +7 -0
- package/dist/src/core/shaders/canvas/RoundedWithShadow.js +38 -0
- package/dist/src/core/shaders/canvas/RoundedWithShadow.js.map +1 -0
- package/dist/src/core/shaders/canvas/Shadow.d.ts +8 -0
- package/dist/src/core/shaders/canvas/Shadow.js +31 -0
- package/dist/src/core/shaders/canvas/Shadow.js.map +1 -0
- package/dist/src/core/shaders/canvas/utils/render.d.ts +5 -0
- package/dist/src/core/shaders/canvas/utils/render.js +84 -0
- package/dist/src/core/shaders/canvas/utils/render.js.map +1 -0
- package/dist/src/core/shaders/templates/BorderTemplate.d.ts +37 -0
- package/dist/src/core/shaders/templates/BorderTemplate.js +73 -0
- package/dist/src/core/shaders/templates/BorderTemplate.js.map +1 -0
- package/dist/src/core/shaders/templates/HolePunchTemplate.d.ts +46 -0
- package/dist/src/core/shaders/templates/HolePunchTemplate.js +35 -0
- package/dist/src/core/shaders/templates/HolePunchTemplate.js.map +1 -0
- package/dist/src/core/shaders/templates/LinearGradientTemplate.d.ts +23 -0
- package/dist/src/core/shaders/templates/LinearGradientTemplate.js +47 -0
- package/dist/src/core/shaders/templates/LinearGradientTemplate.js.map +1 -0
- package/dist/src/core/shaders/templates/RadialGradientTemplate.d.ts +31 -0
- package/dist/src/core/shaders/templates/RadialGradientTemplate.js +49 -0
- package/dist/src/core/shaders/templates/RadialGradientTemplate.js.map +1 -0
- package/dist/src/core/shaders/templates/RoundedTemplate.d.ts +29 -0
- package/dist/src/core/shaders/templates/RoundedTemplate.js +67 -0
- package/dist/src/core/shaders/templates/RoundedTemplate.js.map +1 -0
- package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.d.ts +7 -0
- package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.js +24 -0
- package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.js.map +1 -0
- package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.d.ts +6 -0
- package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.js +23 -0
- package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.js.map +1 -0
- package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.d.ts +6 -0
- package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.js +23 -0
- package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.js.map +1 -0
- package/dist/src/core/shaders/templates/ShadowTemplate.d.ts +34 -0
- package/dist/src/core/shaders/templates/ShadowTemplate.js +66 -0
- package/dist/src/core/shaders/templates/ShadowTemplate.js.map +1 -0
- package/dist/src/core/shaders/templates/shaderUtils.d.ts +5 -0
- package/dist/src/core/shaders/templates/shaderUtils.js +41 -0
- package/dist/src/core/shaders/templates/shaderUtils.js.map +1 -0
- package/dist/src/core/shaders/webgl/Border.d.ts +3 -0
- package/dist/src/core/shaders/webgl/Border.js +87 -0
- package/dist/src/core/shaders/webgl/Border.js.map +1 -0
- package/dist/src/core/shaders/webgl/Default.d.ts +2 -0
- package/dist/src/core/shaders/webgl/Default.js +86 -0
- package/dist/src/core/shaders/webgl/Default.js.map +1 -0
- package/dist/src/core/shaders/webgl/DefaultBatched.d.ts +2 -0
- package/dist/src/core/shaders/webgl/DefaultBatched.js +104 -0
- package/dist/src/core/shaders/webgl/DefaultBatched.js.map +1 -0
- package/dist/src/core/shaders/webgl/HolePunch.d.ts +3 -0
- package/dist/src/core/shaders/webgl/HolePunch.js +64 -0
- package/dist/src/core/shaders/webgl/HolePunch.js.map +1 -0
- package/dist/src/core/shaders/webgl/LinearGradient.d.ts +3 -0
- package/dist/src/core/shaders/webgl/LinearGradient.js +75 -0
- package/dist/src/core/shaders/webgl/LinearGradient.js.map +1 -0
- package/dist/src/core/shaders/webgl/RadialGradient.d.ts +3 -0
- package/dist/src/core/shaders/webgl/RadialGradient.js +73 -0
- package/dist/src/core/shaders/webgl/RadialGradient.js.map +1 -0
- package/dist/src/core/shaders/webgl/Rounded.d.ts +7 -0
- package/dist/src/core/shaders/webgl/Rounded.js +86 -0
- package/dist/src/core/shaders/webgl/Rounded.js.map +1 -0
- package/dist/src/core/shaders/webgl/RoundedWithBorder.d.ts +3 -0
- package/dist/src/core/shaders/webgl/RoundedWithBorder.js +97 -0
- package/dist/src/core/shaders/webgl/RoundedWithBorder.js.map +1 -0
- package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.d.ts +3 -0
- package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js +112 -0
- package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js.map +1 -0
- package/dist/src/core/shaders/webgl/RoundedWithShadow.d.ts +3 -0
- package/dist/src/core/shaders/webgl/RoundedWithShadow.js +84 -0
- package/dist/src/core/shaders/webgl/RoundedWithShadow.js.map +1 -0
- package/dist/src/core/shaders/webgl/SdfShader.d.ts +32 -0
- package/dist/src/core/shaders/webgl/SdfShader.js +116 -0
- package/dist/src/core/shaders/webgl/SdfShader.js.map +1 -0
- package/dist/src/core/shaders/webgl/Shadow.d.ts +3 -0
- package/dist/src/core/shaders/webgl/Shadow.js +110 -0
- package/dist/src/core/shaders/webgl/Shadow.js.map +1 -0
- package/dist/src/core/text-rendering/TextTextureRendererUtils.js.map +1 -1
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js +2 -2
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js.map +1 -1
- package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.d.ts +6 -0
- package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js.map +1 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.d.ts +2 -3
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js +34 -30
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js.map +1 -1
- package/dist/src/core/text-rendering/renderers/TextRenderer.d.ts +1 -4
- package/dist/src/core/text-rendering/renderers/TextRenderer.js.map +1 -1
- package/dist/src/core/textures/ImageTexture.js +10 -16
- package/dist/src/core/textures/ImageTexture.js.map +1 -1
- package/dist/src/core/textures/Texture.d.ts +1 -1
- package/dist/src/main-api/INode.d.ts +9 -9
- package/dist/src/main-api/Inspector.js +16 -2
- package/dist/src/main-api/Inspector.js.map +1 -1
- package/dist/src/main-api/Renderer.d.ts +35 -92
- package/dist/src/main-api/Renderer.js +11 -57
- package/dist/src/main-api/Renderer.js.map +1 -1
- package/dist/src/utils.d.ts +6 -0
- package/dist/src/utils.js +18 -0
- package/dist/src/utils.js.map +1 -1
- package/dist/tsconfig.dist.tsbuildinfo +1 -1
- package/exports/canvas-shaders.ts +28 -0
- package/exports/canvas.ts +7 -1
- package/exports/index.ts +17 -17
- package/exports/webgl-shaders.ts +28 -0
- package/exports/webgl.ts +13 -1
- package/package.json +3 -1
- package/src/core/CoreNode.test.ts +157 -153
- package/src/core/CoreNode.ts +173 -38
- package/src/core/CoreShaderManager.ts +127 -226
- package/src/core/CoreTextNode.ts +1 -8
- package/src/core/CoreTextureManager.ts +127 -126
- package/src/core/Stage.ts +62 -44
- package/src/core/TextureMemoryManager.ts +108 -27
- package/src/core/animations/CoreAnimation.ts +8 -64
- package/src/core/lib/ImageWorker.ts +20 -12
- package/src/core/lib/WebGlContextWrapper.ts +228 -236
- package/src/core/lib/textureCompression.ts +3 -3
- package/src/core/lib/utils.ts +51 -0
- package/src/core/lib/validateImageBitmap.ts +76 -0
- package/src/core/platform.ts +6 -3
- package/src/core/renderers/CoreRenderer.ts +19 -27
- package/src/core/renderers/CoreShaderNode.ts +171 -0
- package/src/core/renderers/{canvas/shaders/UnsupportedShader.ts → CoreShaderProgram.ts} +3 -28
- package/src/core/renderers/canvas/CanvasRenderer.ts +299 -0
- package/src/core/renderers/canvas/CanvasShaderNode.ts +99 -0
- package/src/core/renderers/canvas/{CanvasCoreTexture.ts → CanvasTexture.ts} +1 -1
- package/src/core/renderers/canvas/internal/C2DShaderUtils.ts +2 -13
- package/src/core/renderers/canvas/internal/ColorUtils.ts +16 -0
- package/src/core/renderers/webgl/{WebGlCoreCtxRenderTexture.ts → WebGlCtxRenderTexture.ts} +2 -2
- package/src/core/renderers/webgl/{WebGlCoreCtxSubTexture.ts → WebGlCtxSubTexture.ts} +2 -2
- package/src/core/renderers/webgl/{WebGlCoreCtxTexture.ts → WebGlCtxTexture.ts} +12 -14
- package/src/core/renderers/webgl/{WebGlCoreRenderOp.ts → WebGlRenderOp.ts} +56 -36
- package/src/core/renderers/webgl/{WebGlCoreRenderer.ts → WebGlRenderer.ts} +143 -243
- package/src/core/renderers/webgl/WebGlShaderNode.ts +433 -0
- package/src/core/renderers/webgl/WebGlShaderProgram.ts +310 -0
- package/src/core/renderers/webgl/internal/ShaderUtils.ts +143 -5
- package/src/core/shaders/canvas/Border.ts +78 -0
- package/src/core/shaders/canvas/HolePunch.ts +62 -0
- package/src/core/shaders/canvas/LinearGradient.ts +69 -0
- package/src/core/shaders/canvas/RadialGradient.ts +113 -0
- package/src/core/shaders/canvas/Rounded.ts +55 -0
- package/src/core/shaders/canvas/RoundedWithBorder.ts +68 -0
- package/src/core/shaders/canvas/RoundedWithBorderAndShadow.ts +88 -0
- package/src/core/shaders/canvas/RoundedWithShadow.ts +69 -0
- package/src/core/shaders/canvas/Shadow.ts +52 -0
- package/src/core/shaders/canvas/utils/render.ts +151 -0
- package/src/core/shaders/templates/BorderTemplate.ts +115 -0
- package/src/core/shaders/templates/HolePunchTemplate.ts +82 -0
- package/src/core/shaders/templates/LinearGradientTemplate.ts +71 -0
- package/src/core/shaders/templates/RadialGradientTemplate.ts +81 -0
- package/src/core/shaders/templates/RoundedTemplate.ts +98 -0
- package/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.ts +38 -0
- package/src/core/shaders/templates/RoundedWithBorderTemplate.ts +35 -0
- package/src/core/shaders/templates/RoundedWithShadowTemplate.ts +35 -0
- package/src/core/shaders/templates/ShadowTemplate.ts +106 -0
- package/src/core/shaders/templates/shaderUtils.ts +47 -0
- package/src/core/shaders/webgl/Border.ts +96 -0
- package/src/core/shaders/webgl/Default.ts +89 -0
- package/src/core/shaders/webgl/DefaultBatched.ts +129 -0
- package/src/core/shaders/webgl/HolePunch.ts +78 -0
- package/src/core/shaders/webgl/LinearGradient.ts +81 -0
- package/src/core/shaders/webgl/RadialGradient.ts +84 -0
- package/src/core/shaders/webgl/Rounded.ts +117 -0
- package/src/core/shaders/webgl/RoundedWithBorder.ts +114 -0
- package/src/core/shaders/webgl/RoundedWithBorderAndShadow.ts +133 -0
- package/src/core/shaders/webgl/RoundedWithShadow.ts +98 -0
- package/src/core/shaders/webgl/SdfShader.ts +137 -0
- package/src/core/shaders/webgl/Shadow.ts +115 -0
- package/src/core/text-rendering/TextTextureRendererUtils.ts +1 -1
- package/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.ts +2 -2
- package/src/core/text-rendering/renderers/LightningTextTextureRenderer.ts +12 -5
- package/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.ts +44 -56
- package/src/core/text-rendering/renderers/TextRenderer.ts +2 -9
- package/src/core/textures/ImageTexture.ts +11 -17
- package/src/core/textures/Texture.ts +1 -1
- package/src/main-api/INode.ts +11 -13
- package/src/main-api/Inspector.ts +19 -2
- package/src/main-api/Renderer.ts +59 -130
- package/src/utils.ts +19 -0
- package/src/core/renderers/canvas/CanvasCoreRenderer.ts +0 -375
- package/src/core/renderers/webgl/WebGlCoreShader.ts +0 -362
- package/src/core/renderers/webgl/shaders/DefaultShader.ts +0 -93
- package/src/core/renderers/webgl/shaders/DefaultShaderBatched.ts +0 -132
- package/src/core/renderers/webgl/shaders/DynamicShader.ts +0 -580
- package/src/core/renderers/webgl/shaders/RoundedRectangle.ts +0 -167
- package/src/core/renderers/webgl/shaders/SdfShader.ts +0 -204
- package/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.ts +0 -101
- package/src/core/renderers/webgl/shaders/effects/BorderEffect.ts +0 -87
- package/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.ts +0 -101
- package/src/core/renderers/webgl/shaders/effects/BorderRightEffect.ts +0 -101
- package/src/core/renderers/webgl/shaders/effects/BorderTopEffect.ts +0 -101
- package/src/core/renderers/webgl/shaders/effects/EffectUtils.ts +0 -159
- package/src/core/renderers/webgl/shaders/effects/FadeOutEffect.ts +0 -127
- package/src/core/renderers/webgl/shaders/effects/GlitchEffect.ts +0 -148
- package/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.ts +0 -67
- package/src/core/renderers/webgl/shaders/effects/HolePunchEffect.ts +0 -157
- package/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.ts +0 -171
- package/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.ts +0 -168
- package/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.ts +0 -187
- package/src/core/renderers/webgl/shaders/effects/RadiusEffect.ts +0 -110
- package/src/core/renderers/webgl/shaders/effects/ShaderEffect.ts +0 -196
- package/src/main-api/DynamicShaderController.ts +0 -104
- package/src/main-api/ShaderController.ts +0 -80
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
import { isProductionEnvironment } from '../utils.js';
|
|
20
20
|
import { getTimeStamp } from './platform.js';
|
|
21
21
|
import type { Stage } from './Stage.js';
|
|
22
|
-
import type
|
|
22
|
+
import { TextureType, type Texture } from './textures/Texture.js';
|
|
23
23
|
import { bytesToMb } from './utils.js';
|
|
24
24
|
|
|
25
25
|
export interface TextureMemoryManagerSettings {
|
|
@@ -53,13 +53,13 @@ export interface TextureMemoryManagerSettings {
|
|
|
53
53
|
targetThresholdLevel: number;
|
|
54
54
|
|
|
55
55
|
/**
|
|
56
|
-
* Interval between Texture Cleanups (in milliseconds)
|
|
56
|
+
* Interval between non-aggressive Texture Cleanups (in milliseconds)
|
|
57
57
|
*
|
|
58
58
|
* @remarks
|
|
59
|
-
* Texture Memory Manager will perform a Texture Cleanup no more
|
|
60
|
-
* frequently than this interval
|
|
59
|
+
* Texture Memory Manager will perform a non aggressive Texture Cleanup no more
|
|
60
|
+
* frequently than this interval when the scene becomes idle.
|
|
61
61
|
*
|
|
62
|
-
* @defaultValue `
|
|
62
|
+
* @defaultValue `5,000` (5 seconds)
|
|
63
63
|
*/
|
|
64
64
|
cleanupInterval: number;
|
|
65
65
|
|
|
@@ -80,6 +80,13 @@ export interface TextureMemoryManagerSettings {
|
|
|
80
80
|
* @defaultValue `25e6` (25 MB)
|
|
81
81
|
*/
|
|
82
82
|
baselineMemoryAllocation: number;
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Do not exceed critical threshold
|
|
86
|
+
*
|
|
87
|
+
* @defaultValue `false`
|
|
88
|
+
*/
|
|
89
|
+
doNotExceedCriticalThreshold: boolean;
|
|
83
90
|
}
|
|
84
91
|
|
|
85
92
|
export interface MemoryInfo {
|
|
@@ -117,7 +124,10 @@ export class TextureMemoryManager {
|
|
|
117
124
|
private debugLogging: boolean;
|
|
118
125
|
private lastCleanupTime = 0;
|
|
119
126
|
private baselineMemoryAllocation: number;
|
|
127
|
+
|
|
120
128
|
public criticalCleanupRequested = false;
|
|
129
|
+
public doNotExceedCriticalThreshold: boolean;
|
|
130
|
+
|
|
121
131
|
/**
|
|
122
132
|
* The current frame time in milliseconds
|
|
123
133
|
*
|
|
@@ -129,18 +139,22 @@ export class TextureMemoryManager {
|
|
|
129
139
|
public frameTime = 0;
|
|
130
140
|
|
|
131
141
|
constructor(private stage: Stage, settings: TextureMemoryManagerSettings) {
|
|
132
|
-
const { criticalThreshold } = settings;
|
|
142
|
+
const { criticalThreshold, doNotExceedCriticalThreshold } = settings;
|
|
143
|
+
this.doNotExceedCriticalThreshold = doNotExceedCriticalThreshold || false;
|
|
133
144
|
this.criticalThreshold = Math.round(criticalThreshold);
|
|
134
145
|
const targetFraction = Math.max(
|
|
135
146
|
0,
|
|
136
147
|
Math.min(1, settings.targetThresholdLevel),
|
|
137
148
|
);
|
|
138
|
-
this.targetThreshold = Math.round(criticalThreshold * targetFraction);
|
|
139
149
|
this.cleanupInterval = settings.cleanupInterval;
|
|
140
150
|
this.debugLogging = settings.debugLogging;
|
|
141
151
|
this.baselineMemoryAllocation = Math.round(
|
|
142
152
|
settings.baselineMemoryAllocation,
|
|
143
153
|
);
|
|
154
|
+
this.targetThreshold = Math.max(
|
|
155
|
+
Math.round(criticalThreshold * targetFraction),
|
|
156
|
+
this.baselineMemoryAllocation,
|
|
157
|
+
);
|
|
144
158
|
this.memUsed = Math.round(settings.baselineMemoryAllocation);
|
|
145
159
|
|
|
146
160
|
if (settings.debugLogging) {
|
|
@@ -229,24 +243,11 @@ export class TextureMemoryManager {
|
|
|
229
243
|
);
|
|
230
244
|
}
|
|
231
245
|
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
this.criticalCleanupRequested = false;
|
|
236
|
-
|
|
237
|
-
if (critical === true) {
|
|
238
|
-
this.stage.queueFrameEvent('criticalCleanup', {
|
|
239
|
-
memUsed: this.memUsed,
|
|
240
|
-
criticalThreshold: this.criticalThreshold,
|
|
241
|
-
});
|
|
242
|
-
}
|
|
243
|
-
|
|
244
|
-
if (this.debugLogging) {
|
|
245
|
-
console.log(
|
|
246
|
-
`[TextureMemoryManager] Cleaning up textures. Critical: ${critical}`,
|
|
247
|
-
);
|
|
248
|
-
}
|
|
246
|
+
checkCriticalCleanup() {
|
|
247
|
+
return this.memUsed > this.criticalThreshold;
|
|
248
|
+
}
|
|
249
249
|
|
|
250
|
+
cleanupQuick(critical: boolean) {
|
|
250
251
|
// Free non-renderable textures until we reach the target threshold
|
|
251
252
|
const memTarget = this.targetThreshold;
|
|
252
253
|
const txManager = this.stage.txManager;
|
|
@@ -255,10 +256,13 @@ export class TextureMemoryManager {
|
|
|
255
256
|
while (
|
|
256
257
|
this.memUsed >= memTarget &&
|
|
257
258
|
this.orphanedTextures.length > 0 &&
|
|
258
|
-
// if it a non-critical cleanup, we will only cleanup for 10ms
|
|
259
259
|
(critical || getTimeStamp() - timestamp < 10)
|
|
260
260
|
) {
|
|
261
|
-
const texture = this.orphanedTextures.shift()
|
|
261
|
+
const texture = this.orphanedTextures.shift();
|
|
262
|
+
|
|
263
|
+
if (texture === undefined) {
|
|
264
|
+
continue;
|
|
265
|
+
}
|
|
262
266
|
|
|
263
267
|
if (texture.renderable === true) {
|
|
264
268
|
// If the texture is renderable, we can't free it up
|
|
@@ -268,6 +272,80 @@ export class TextureMemoryManager {
|
|
|
268
272
|
texture.free();
|
|
269
273
|
txManager.removeTextureFromCache(texture);
|
|
270
274
|
}
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
cleanupDeep(critical: boolean) {
|
|
278
|
+
// Free non-renderable textures until we reach the target threshold
|
|
279
|
+
const memTarget = critical ? this.criticalThreshold : this.targetThreshold;
|
|
280
|
+
const txManager = this.stage.txManager;
|
|
281
|
+
|
|
282
|
+
// sort by renderability
|
|
283
|
+
const filteredAndSortedTextures: Texture[] = [];
|
|
284
|
+
const textures = [...this.loadedTextures.keys()];
|
|
285
|
+
for (let i = 0; i < textures.length; i++) {
|
|
286
|
+
const texture = textures[i];
|
|
287
|
+
if (texture === undefined) {
|
|
288
|
+
continue;
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
if (
|
|
292
|
+
texture.type === TextureType.image ||
|
|
293
|
+
texture.type === TextureType.noise ||
|
|
294
|
+
texture.type === TextureType.renderToTexture
|
|
295
|
+
) {
|
|
296
|
+
if (texture.renderable === true) {
|
|
297
|
+
filteredAndSortedTextures.push(texture);
|
|
298
|
+
} else {
|
|
299
|
+
filteredAndSortedTextures.unshift(texture);
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
while (this.memUsed >= memTarget && filteredAndSortedTextures.length > 0) {
|
|
305
|
+
const texture = filteredAndSortedTextures.shift();
|
|
306
|
+
if (texture === undefined) {
|
|
307
|
+
continue;
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
if (texture.preventCleanup === true) {
|
|
311
|
+
continue;
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
if (texture.renderable === true) {
|
|
315
|
+
break;
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
texture.free();
|
|
319
|
+
this.removeFromOrphanedTextures(texture);
|
|
320
|
+
txManager.removeTextureFromCache(texture);
|
|
321
|
+
txManager.removeTextureFromQueue(texture);
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
cleanup(aggressive: boolean = false) {
|
|
326
|
+
const critical = this.criticalCleanupRequested;
|
|
327
|
+
this.lastCleanupTime = this.frameTime;
|
|
328
|
+
|
|
329
|
+
if (critical === true) {
|
|
330
|
+
this.stage.queueFrameEvent('criticalCleanup', {
|
|
331
|
+
memUsed: this.memUsed,
|
|
332
|
+
criticalThreshold: this.criticalThreshold,
|
|
333
|
+
});
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
if (this.debugLogging === true) {
|
|
337
|
+
console.log(
|
|
338
|
+
`[TextureMemoryManager] Cleaning up textures. Critical: ${critical}. Aggressive: ${aggressive}`,
|
|
339
|
+
);
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
// try a quick cleanup first
|
|
343
|
+
this.cleanupQuick(critical);
|
|
344
|
+
|
|
345
|
+
// if we're still above the target threshold, do a deep cleanup
|
|
346
|
+
if (aggressive === true && this.memUsed >= this.criticalThreshold) {
|
|
347
|
+
this.cleanupDeep(critical);
|
|
348
|
+
}
|
|
271
349
|
|
|
272
350
|
if (this.memUsed >= this.criticalThreshold) {
|
|
273
351
|
this.stage.queueFrameEvent('criticalCleanupFailed', {
|
|
@@ -280,6 +358,8 @@ export class TextureMemoryManager {
|
|
|
280
358
|
`[TextureMemoryManager] Memory usage above critical threshold after cleanup: ${this.memUsed}`,
|
|
281
359
|
);
|
|
282
360
|
}
|
|
361
|
+
} else {
|
|
362
|
+
this.criticalCleanupRequested = false;
|
|
283
363
|
}
|
|
284
364
|
}
|
|
285
365
|
|
|
@@ -299,8 +379,9 @@ export class TextureMemoryManager {
|
|
|
299
379
|
acc + (texture.renderable ? this.loadedTextures.get(texture)! : 0)
|
|
300
380
|
);
|
|
301
381
|
},
|
|
302
|
-
|
|
382
|
+
this.baselineMemoryAllocation,
|
|
303
383
|
);
|
|
384
|
+
|
|
304
385
|
return {
|
|
305
386
|
criticalThreshold: this.criticalThreshold,
|
|
306
387
|
targetThreshold: this.targetThreshold,
|
|
@@ -46,7 +46,6 @@ export class CoreAnimation extends EventEmitter {
|
|
|
46
46
|
private timingFunction: (t: number) => number | undefined;
|
|
47
47
|
|
|
48
48
|
propValuesMap: PropValuesMap = {};
|
|
49
|
-
dynPropValuesMap: PropValuesMap | undefined = undefined;
|
|
50
49
|
|
|
51
50
|
constructor(
|
|
52
51
|
private node: CoreNode,
|
|
@@ -67,33 +66,18 @@ export class CoreAnimation extends EventEmitter {
|
|
|
67
66
|
key as keyof Omit<CoreNodeAnimateProps, 'shaderProps'>
|
|
68
67
|
] as number,
|
|
69
68
|
};
|
|
70
|
-
} else if (node.shader
|
|
69
|
+
} else if (key === 'shaderProps' && node.shader !== null) {
|
|
71
70
|
this.propValuesMap['shaderProps'] = {};
|
|
72
71
|
for (const key in props.shaderProps) {
|
|
72
|
+
let start = node.shader.props![key];
|
|
73
|
+
if (Array.isArray(start) === true) {
|
|
74
|
+
start = start[0];
|
|
75
|
+
}
|
|
73
76
|
this.propValuesMap['shaderProps'][key] = {
|
|
74
|
-
start
|
|
77
|
+
start,
|
|
75
78
|
target: props.shaderProps[key] as number,
|
|
76
79
|
};
|
|
77
80
|
}
|
|
78
|
-
} else {
|
|
79
|
-
const shaderPropKeys = Object.keys(props.shaderProps!);
|
|
80
|
-
const spLength = shaderPropKeys.length;
|
|
81
|
-
this.dynPropValuesMap = {};
|
|
82
|
-
for (let j = 0; j < spLength; j++) {
|
|
83
|
-
const effectName = shaderPropKeys[j]!;
|
|
84
|
-
const effect = props.shaderProps![effectName]!;
|
|
85
|
-
this.dynPropValuesMap[effectName] = {};
|
|
86
|
-
const effectProps = Object.entries(effect);
|
|
87
|
-
const eLength = effectProps.length;
|
|
88
|
-
|
|
89
|
-
for (let k = 0; k < eLength; k++) {
|
|
90
|
-
const [key, value] = effectProps[k]!;
|
|
91
|
-
this.dynPropValuesMap[effectName]![key] = {
|
|
92
|
-
start: node.shader.props[effectName][key],
|
|
93
|
-
target: value,
|
|
94
|
-
};
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
81
|
}
|
|
98
82
|
}
|
|
99
83
|
|
|
@@ -142,24 +126,10 @@ export class CoreAnimation extends EventEmitter {
|
|
|
142
126
|
}
|
|
143
127
|
if (this.propValuesMap['shaderProps'] !== undefined) {
|
|
144
128
|
this.restoreValues(
|
|
145
|
-
this.node.shader
|
|
129
|
+
this.node.shader!.props as Record<string, number>,
|
|
146
130
|
this.propValuesMap['shaderProps'],
|
|
147
131
|
);
|
|
148
132
|
}
|
|
149
|
-
|
|
150
|
-
if (this.dynPropValuesMap !== undefined) {
|
|
151
|
-
const dynEntries = Object.keys(this.dynPropValuesMap);
|
|
152
|
-
const dynEntriesL = dynEntries.length;
|
|
153
|
-
if (dynEntriesL > 0) {
|
|
154
|
-
for (let i = 0; i < dynEntriesL; i++) {
|
|
155
|
-
const key = dynEntries[i]!;
|
|
156
|
-
this.restoreValues(
|
|
157
|
-
this.node.shader.props[key],
|
|
158
|
-
this.dynPropValuesMap[key]!,
|
|
159
|
-
);
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
133
|
}
|
|
164
134
|
|
|
165
135
|
private reverseValues(valueMap: Record<string, PropValues>) {
|
|
@@ -185,17 +155,6 @@ export class CoreAnimation extends EventEmitter {
|
|
|
185
155
|
this.reverseValues(this.propValuesMap['shaderProps']);
|
|
186
156
|
}
|
|
187
157
|
|
|
188
|
-
if (this.dynPropValuesMap !== undefined) {
|
|
189
|
-
const dynEntries = Object.keys(this.dynPropValuesMap);
|
|
190
|
-
const dynEntriesL = dynEntries.length;
|
|
191
|
-
if (dynEntriesL > 0) {
|
|
192
|
-
for (let i = 0; i < dynEntriesL; i++) {
|
|
193
|
-
const key = dynEntries[i]!;
|
|
194
|
-
this.reverseValues(this.dynPropValuesMap[key]!);
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
|
|
199
158
|
// restore stop method if we are not looping
|
|
200
159
|
if (!this.settings.loop) {
|
|
201
160
|
this.settings.stopMethod = false;
|
|
@@ -308,27 +267,12 @@ export class CoreAnimation extends EventEmitter {
|
|
|
308
267
|
}
|
|
309
268
|
if (this.propValuesMap['shaderProps'] !== undefined) {
|
|
310
269
|
this.updateValues(
|
|
311
|
-
this.node.shader
|
|
270
|
+
this.node.shader!.props as Record<string, number>,
|
|
312
271
|
this.propValuesMap['shaderProps'],
|
|
313
272
|
easing,
|
|
314
273
|
);
|
|
315
274
|
}
|
|
316
275
|
|
|
317
|
-
if (this.dynPropValuesMap !== undefined) {
|
|
318
|
-
const dynEntries = Object.keys(this.dynPropValuesMap);
|
|
319
|
-
const dynEntriesL = dynEntries.length;
|
|
320
|
-
if (dynEntriesL > 0) {
|
|
321
|
-
for (let i = 0; i < dynEntriesL; i++) {
|
|
322
|
-
const key = dynEntries[i]!;
|
|
323
|
-
this.updateValues(
|
|
324
|
-
this.node.shader.props[key],
|
|
325
|
-
this.dynPropValuesMap[key]!,
|
|
326
|
-
easing,
|
|
327
|
-
);
|
|
328
|
-
}
|
|
329
|
-
}
|
|
330
|
-
}
|
|
331
|
-
|
|
332
276
|
if (this.progress < 1) {
|
|
333
277
|
this.emit('tick', { progress: this.progress });
|
|
334
278
|
}
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
* limitations under the License.
|
|
18
18
|
*/
|
|
19
19
|
|
|
20
|
-
import type { CreateImageBitmapSupport } from '../
|
|
20
|
+
import type { CreateImageBitmapSupport } from '../lib/validateImageBitmap.js';
|
|
21
21
|
import { type TextureData } from '../textures/Texture.js';
|
|
22
22
|
|
|
23
23
|
type MessageCallback = [(value: any) => void, (reason: any) => void];
|
|
@@ -102,12 +102,13 @@ function createImageWorker() {
|
|
|
102
102
|
reject(error);
|
|
103
103
|
});
|
|
104
104
|
return;
|
|
105
|
-
} else if (
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
105
|
+
} else if (
|
|
106
|
+
supportsOptionsCreateImageBitmap === false &&
|
|
107
|
+
supportsOptionsCreateImageBitmap === false
|
|
108
|
+
) {
|
|
109
|
+
// Fallback for browsers that do not support createImageBitmap with options
|
|
110
|
+
// this is supported for Chrome v50 to v52/54 that doesn't support options
|
|
111
|
+
createImageBitmap(blob)
|
|
111
112
|
.then(function (data) {
|
|
112
113
|
resolve({ data, premultiplyAlpha: premultiplyAlpha });
|
|
113
114
|
})
|
|
@@ -115,9 +116,11 @@ function createImageWorker() {
|
|
|
115
116
|
reject(error);
|
|
116
117
|
});
|
|
117
118
|
} else {
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
119
|
+
createImageBitmap(blob, {
|
|
120
|
+
premultiplyAlpha: withAlphaChannel ? 'premultiply' : 'none',
|
|
121
|
+
colorSpaceConversion: 'none',
|
|
122
|
+
imageOrientation: 'none',
|
|
123
|
+
})
|
|
121
124
|
.then(function (data) {
|
|
122
125
|
resolve({ data, premultiplyAlpha: premultiplyAlpha });
|
|
123
126
|
})
|
|
@@ -205,14 +208,19 @@ export class ImageWorkerManager {
|
|
|
205
208
|
let workerCode = `(${createImageWorker.toString()})()`;
|
|
206
209
|
|
|
207
210
|
// Replace placeholders with actual initialization values
|
|
208
|
-
if (createImageBitmapSupport.options) {
|
|
211
|
+
if (createImageBitmapSupport.options === true) {
|
|
209
212
|
workerCode = workerCode.replace(
|
|
210
213
|
'var supportsOptionsCreateImageBitmap = false;',
|
|
211
214
|
'var supportsOptionsCreateImageBitmap = true;',
|
|
212
215
|
);
|
|
213
216
|
}
|
|
214
217
|
|
|
215
|
-
if (createImageBitmapSupport.full) {
|
|
218
|
+
if (createImageBitmapSupport.full === true) {
|
|
219
|
+
workerCode = workerCode.replace(
|
|
220
|
+
'var supportsOptionsCreateImageBitmap = false;',
|
|
221
|
+
'var supportsOptionsCreateImageBitmap = true;',
|
|
222
|
+
);
|
|
223
|
+
|
|
216
224
|
workerCode = workerCode.replace(
|
|
217
225
|
'var supportsFullCreateImageBitmap = false;',
|
|
218
226
|
'var supportsFullCreateImageBitmap = true;',
|