@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
package/src/core/CoreNode.ts
CHANGED
|
@@ -55,7 +55,7 @@ import type { AnimationSettings } from './animations/CoreAnimation.js';
|
|
|
55
55
|
import type { IAnimationController } from '../common/IAnimationController.js';
|
|
56
56
|
import { CoreAnimation } from './animations/CoreAnimation.js';
|
|
57
57
|
import { CoreAnimationController } from './animations/CoreAnimationController.js';
|
|
58
|
-
import type {
|
|
58
|
+
import type { CoreShaderNode } from './renderers/CoreShaderNode.js';
|
|
59
59
|
|
|
60
60
|
export enum CoreNodeRenderState {
|
|
61
61
|
Init = 0,
|
|
@@ -195,6 +195,11 @@ export enum UpdateType {
|
|
|
195
195
|
* All
|
|
196
196
|
*/
|
|
197
197
|
All = 14335,
|
|
198
|
+
|
|
199
|
+
/**
|
|
200
|
+
* RecalcUniforms
|
|
201
|
+
*/
|
|
202
|
+
RecalcUniforms = 16384,
|
|
198
203
|
}
|
|
199
204
|
|
|
200
205
|
/**
|
|
@@ -268,6 +273,12 @@ export interface CoreNodeProps {
|
|
|
268
273
|
* @default `false`
|
|
269
274
|
*/
|
|
270
275
|
autosize: boolean;
|
|
276
|
+
/**
|
|
277
|
+
* Margin around the Node's bounds for preloading
|
|
278
|
+
*
|
|
279
|
+
* @default `null`
|
|
280
|
+
*/
|
|
281
|
+
boundsMargin: number | [number, number, number, number] | null;
|
|
271
282
|
/**
|
|
272
283
|
* Clipping Mode
|
|
273
284
|
*
|
|
@@ -441,7 +452,7 @@ export interface CoreNodeProps {
|
|
|
441
452
|
* Note: If this is a Text Node, the Shader will be managed by the Node's
|
|
442
453
|
* {@link TextRenderer} and should not be set explicitly.
|
|
443
454
|
*/
|
|
444
|
-
shader:
|
|
455
|
+
shader: CoreShaderNode<any> | null;
|
|
445
456
|
/**
|
|
446
457
|
* Image URL
|
|
447
458
|
*
|
|
@@ -725,7 +736,9 @@ export class CoreNode extends EventEmitter {
|
|
|
725
736
|
public globalTransform?: Matrix3d;
|
|
726
737
|
public scaleRotateTransform?: Matrix3d;
|
|
727
738
|
public localTransform?: Matrix3d;
|
|
739
|
+
public sceneGlobalTransform?: Matrix3d;
|
|
728
740
|
public renderCoords?: RenderCoords;
|
|
741
|
+
public sceneRenderCoords?: RenderCoords;
|
|
729
742
|
public renderBound?: Bound;
|
|
730
743
|
public strictBound?: Bound;
|
|
731
744
|
public preloadBound?: Bound;
|
|
@@ -752,20 +765,32 @@ export class CoreNode extends EventEmitter {
|
|
|
752
765
|
constructor(readonly stage: Stage, props: CoreNodeProps) {
|
|
753
766
|
super();
|
|
754
767
|
|
|
755
|
-
this.props = {
|
|
756
|
-
...props,
|
|
768
|
+
this.props = Object.assign({}, props, {
|
|
757
769
|
parent: null,
|
|
758
770
|
texture: null,
|
|
771
|
+
shader: null,
|
|
759
772
|
src: null,
|
|
760
773
|
rtt: false,
|
|
761
|
-
};
|
|
774
|
+
});
|
|
762
775
|
|
|
763
776
|
// Assign props to instance
|
|
764
777
|
this.parent = props.parent;
|
|
765
778
|
this.texture = props.texture;
|
|
779
|
+
this.shader = props.shader;
|
|
766
780
|
this.src = props.src;
|
|
767
781
|
this.rtt = props.rtt;
|
|
768
782
|
|
|
783
|
+
if (props.boundsMargin) {
|
|
784
|
+
this.boundsMargin = Array.isArray(props.boundsMargin)
|
|
785
|
+
? props.boundsMargin
|
|
786
|
+
: [
|
|
787
|
+
props.boundsMargin,
|
|
788
|
+
props.boundsMargin,
|
|
789
|
+
props.boundsMargin,
|
|
790
|
+
props.boundsMargin,
|
|
791
|
+
];
|
|
792
|
+
}
|
|
793
|
+
|
|
769
794
|
this.setUpdateType(
|
|
770
795
|
UpdateType.ScaleRotate |
|
|
771
796
|
UpdateType.Local |
|
|
@@ -1024,7 +1049,7 @@ export class CoreNode extends EventEmitter {
|
|
|
1024
1049
|
}
|
|
1025
1050
|
|
|
1026
1051
|
const parent = this.props.parent;
|
|
1027
|
-
let renderState = null;
|
|
1052
|
+
let renderState: CoreNodeRenderState | null = null;
|
|
1028
1053
|
|
|
1029
1054
|
// Handle specific RTT updates at this node level
|
|
1030
1055
|
if (this.updateType & UpdateType.RenderTexture && this.rtt) {
|
|
@@ -1034,23 +1059,48 @@ export class CoreNode extends EventEmitter {
|
|
|
1034
1059
|
if (this.updateType & UpdateType.Global) {
|
|
1035
1060
|
assertTruthy(this.localTransform);
|
|
1036
1061
|
|
|
1037
|
-
this.
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
);
|
|
1041
|
-
|
|
1042
|
-
if (this.parentHasRenderTexture && this.props.parent?.rtt) {
|
|
1062
|
+
if (this.parentHasRenderTexture === true && parent?.rtt === true) {
|
|
1063
|
+
// we are at the start of the RTT chain, so we need to reset the globalTransform
|
|
1064
|
+
// for correct RTT rendering
|
|
1043
1065
|
this.globalTransform = Matrix3d.identity();
|
|
1066
|
+
|
|
1067
|
+
// Maintain a full scene global transform for bounds detection
|
|
1068
|
+
this.sceneGlobalTransform = Matrix3d.copy(
|
|
1069
|
+
parent?.globalTransform || Matrix3d.identity(),
|
|
1070
|
+
).multiply(this.localTransform);
|
|
1071
|
+
} else if (
|
|
1072
|
+
this.parentHasRenderTexture === true &&
|
|
1073
|
+
parent?.rtt === false
|
|
1074
|
+
) {
|
|
1075
|
+
// we're part of an RTT chain but our parent is not the main RTT node
|
|
1076
|
+
// so we need to propogate the sceneGlobalTransform of the parent
|
|
1077
|
+
// to maintain a full scene global transform for bounds detection
|
|
1078
|
+
this.sceneGlobalTransform = Matrix3d.copy(
|
|
1079
|
+
parent?.sceneGlobalTransform || this.localTransform,
|
|
1080
|
+
).multiply(this.localTransform);
|
|
1081
|
+
|
|
1082
|
+
this.globalTransform = Matrix3d.copy(
|
|
1083
|
+
parent?.globalTransform || this.localTransform,
|
|
1084
|
+
this.globalTransform,
|
|
1085
|
+
);
|
|
1086
|
+
} else {
|
|
1087
|
+
this.globalTransform = Matrix3d.copy(
|
|
1088
|
+
parent?.globalTransform || this.localTransform,
|
|
1089
|
+
this.globalTransform,
|
|
1090
|
+
);
|
|
1044
1091
|
}
|
|
1045
1092
|
|
|
1046
|
-
if (parent) {
|
|
1093
|
+
if (parent !== null) {
|
|
1047
1094
|
this.globalTransform.multiply(this.localTransform);
|
|
1048
1095
|
}
|
|
1049
|
-
|
|
1050
1096
|
this.calculateRenderCoords();
|
|
1051
1097
|
this.updateBoundingRect();
|
|
1052
1098
|
|
|
1053
|
-
this.setUpdateType(
|
|
1099
|
+
this.setUpdateType(
|
|
1100
|
+
UpdateType.RenderState |
|
|
1101
|
+
UpdateType.Children |
|
|
1102
|
+
UpdateType.RecalcUniforms,
|
|
1103
|
+
);
|
|
1054
1104
|
this.childUpdateType |= UpdateType.Global;
|
|
1055
1105
|
|
|
1056
1106
|
if (this.clipping === true) {
|
|
@@ -1063,6 +1113,8 @@ export class CoreNode extends EventEmitter {
|
|
|
1063
1113
|
this.createRenderBounds();
|
|
1064
1114
|
this.setUpdateType(UpdateType.RenderState);
|
|
1065
1115
|
this.setUpdateType(UpdateType.Children);
|
|
1116
|
+
|
|
1117
|
+
this.childUpdateType |= UpdateType.RenderBounds;
|
|
1066
1118
|
}
|
|
1067
1119
|
|
|
1068
1120
|
if (this.updateType & UpdateType.RenderState) {
|
|
@@ -1150,9 +1202,18 @@ export class CoreNode extends EventEmitter {
|
|
|
1150
1202
|
this.props.strictBounds === true &&
|
|
1151
1203
|
this.renderState === CoreNodeRenderState.OutOfBounds
|
|
1152
1204
|
) {
|
|
1205
|
+
this.updateType &= ~UpdateType.RenderBounds; // remove render bounds update
|
|
1153
1206
|
return;
|
|
1154
1207
|
}
|
|
1155
1208
|
|
|
1209
|
+
if (
|
|
1210
|
+
this.shader?.update !== undefined &&
|
|
1211
|
+
(this.updateType & UpdateType.Local ||
|
|
1212
|
+
this.updateType & UpdateType.RecalcUniforms)
|
|
1213
|
+
) {
|
|
1214
|
+
this.shader.update();
|
|
1215
|
+
}
|
|
1216
|
+
|
|
1156
1217
|
if (this.updateType & UpdateType.Children && this.children.length > 0) {
|
|
1157
1218
|
for (let i = 0, length = this.children.length; i < length; i++) {
|
|
1158
1219
|
const child = this.children[i] as CoreNode;
|
|
@@ -1266,11 +1327,6 @@ export class CoreNode extends EventEmitter {
|
|
|
1266
1327
|
assertTruthy(this.strictBound);
|
|
1267
1328
|
assertTruthy(this.preloadBound);
|
|
1268
1329
|
|
|
1269
|
-
// if we are part of a parent render texture, we're always in bounds
|
|
1270
|
-
if (this.parentHasRenderTexture === true) {
|
|
1271
|
-
return this.getRTTParentRenderState() || CoreNodeRenderState.OutOfBounds;
|
|
1272
|
-
}
|
|
1273
|
-
|
|
1274
1330
|
if (boundInsideBound(this.renderBound, this.strictBound)) {
|
|
1275
1331
|
return CoreNodeRenderState.InViewport;
|
|
1276
1332
|
}
|
|
@@ -1296,7 +1352,9 @@ export class CoreNode extends EventEmitter {
|
|
|
1296
1352
|
}
|
|
1297
1353
|
|
|
1298
1354
|
updateBoundingRect() {
|
|
1299
|
-
const
|
|
1355
|
+
const transform = this.sceneGlobalTransform || this.globalTransform;
|
|
1356
|
+
const renderCoords = this.sceneRenderCoords || this.renderCoords;
|
|
1357
|
+
|
|
1300
1358
|
assertTruthy(transform);
|
|
1301
1359
|
assertTruthy(renderCoords);
|
|
1302
1360
|
|
|
@@ -1331,7 +1389,7 @@ export class CoreNode extends EventEmitter {
|
|
|
1331
1389
|
|
|
1332
1390
|
this.preloadBound = createPreloadBounds(
|
|
1333
1391
|
this.strictBound,
|
|
1334
|
-
this.
|
|
1392
|
+
this.boundsMargin as [number, number, number, number],
|
|
1335
1393
|
);
|
|
1336
1394
|
} else {
|
|
1337
1395
|
// no parent or parent does not have a bound, take the stage boundaries
|
|
@@ -1357,7 +1415,10 @@ export class CoreNode extends EventEmitter {
|
|
|
1357
1415
|
|
|
1358
1416
|
// clipping is enabled and we are in bounds create our own bounds
|
|
1359
1417
|
const { x, y, width, height } = this.props;
|
|
1360
|
-
|
|
1418
|
+
|
|
1419
|
+
// Pick the global transform if available, otherwise use the local transform
|
|
1420
|
+
// global transform is only available if the node in an RTT chain
|
|
1421
|
+
const { tx, ty } = this.sceneGlobalTransform || this.globalTransform || {};
|
|
1361
1422
|
const _x = tx ?? x;
|
|
1362
1423
|
const _y = ty ?? y;
|
|
1363
1424
|
this.strictBound = createBound(
|
|
@@ -1370,7 +1431,7 @@ export class CoreNode extends EventEmitter {
|
|
|
1370
1431
|
|
|
1371
1432
|
this.preloadBound = createPreloadBounds(
|
|
1372
1433
|
this.strictBound,
|
|
1373
|
-
this.
|
|
1434
|
+
this.boundsMargin as [number, number, number, number],
|
|
1374
1435
|
);
|
|
1375
1436
|
}
|
|
1376
1437
|
|
|
@@ -1487,13 +1548,11 @@ export class CoreNode extends EventEmitter {
|
|
|
1487
1548
|
}
|
|
1488
1549
|
|
|
1489
1550
|
calculateRenderCoords() {
|
|
1490
|
-
const { width, height
|
|
1491
|
-
|
|
1492
|
-
const { tx, ty, ta, tb, tc, td } = transform;
|
|
1551
|
+
const { width, height } = this;
|
|
1552
|
+
const { tx, ty, ta, tb, tc, td } = this.globalTransform!;
|
|
1493
1553
|
if (tb === 0 && tc === 0) {
|
|
1494
1554
|
const minX = tx;
|
|
1495
1555
|
const maxX = tx + width * ta;
|
|
1496
|
-
|
|
1497
1556
|
const minY = ty;
|
|
1498
1557
|
const maxY = ty + height * td;
|
|
1499
1558
|
this.renderCoords = RenderCoords.translate(
|
|
@@ -1528,6 +1587,55 @@ export class CoreNode extends EventEmitter {
|
|
|
1528
1587
|
this.renderCoords,
|
|
1529
1588
|
);
|
|
1530
1589
|
}
|
|
1590
|
+
if (this.sceneGlobalTransform === undefined) {
|
|
1591
|
+
return;
|
|
1592
|
+
}
|
|
1593
|
+
|
|
1594
|
+
const {
|
|
1595
|
+
tx: stx,
|
|
1596
|
+
ty: sty,
|
|
1597
|
+
ta: sta,
|
|
1598
|
+
tb: stb,
|
|
1599
|
+
tc: stc,
|
|
1600
|
+
td: std,
|
|
1601
|
+
} = this.sceneGlobalTransform;
|
|
1602
|
+
if (stb === 0 && stc === 0) {
|
|
1603
|
+
const minX = stx;
|
|
1604
|
+
const maxX = stx + width * sta;
|
|
1605
|
+
const minY = sty;
|
|
1606
|
+
const maxY = sty + height * std;
|
|
1607
|
+
this.sceneRenderCoords = RenderCoords.translate(
|
|
1608
|
+
//top-left
|
|
1609
|
+
minX,
|
|
1610
|
+
minY,
|
|
1611
|
+
//top-right
|
|
1612
|
+
maxX,
|
|
1613
|
+
minY,
|
|
1614
|
+
//bottom-right
|
|
1615
|
+
maxX,
|
|
1616
|
+
maxY,
|
|
1617
|
+
//bottom-left
|
|
1618
|
+
minX,
|
|
1619
|
+
maxY,
|
|
1620
|
+
this.sceneRenderCoords,
|
|
1621
|
+
);
|
|
1622
|
+
} else {
|
|
1623
|
+
this.sceneRenderCoords = RenderCoords.translate(
|
|
1624
|
+
//top-left
|
|
1625
|
+
stx,
|
|
1626
|
+
sty,
|
|
1627
|
+
//top-right
|
|
1628
|
+
stx + width * sta,
|
|
1629
|
+
sty + width * stc,
|
|
1630
|
+
//bottom-right
|
|
1631
|
+
stx + width * sta + height * stb,
|
|
1632
|
+
sty + width * stc + height * std,
|
|
1633
|
+
//bottom-left
|
|
1634
|
+
stx + height * stb,
|
|
1635
|
+
sty + height * std,
|
|
1636
|
+
this.sceneRenderCoords,
|
|
1637
|
+
);
|
|
1638
|
+
}
|
|
1531
1639
|
}
|
|
1532
1640
|
|
|
1533
1641
|
/**
|
|
@@ -1542,7 +1650,6 @@ export class CoreNode extends EventEmitter {
|
|
|
1542
1650
|
assertTruthy(this.globalTransform);
|
|
1543
1651
|
const { clippingRect, props, globalTransform: gt } = this;
|
|
1544
1652
|
const { clipping } = props;
|
|
1545
|
-
|
|
1546
1653
|
const isRotated = gt.tb !== 0 || gt.tc !== 0;
|
|
1547
1654
|
|
|
1548
1655
|
if (clipping === true && isRotated === false) {
|
|
@@ -1595,7 +1702,7 @@ export class CoreNode extends EventEmitter {
|
|
|
1595
1702
|
this.localTransform = undefined;
|
|
1596
1703
|
|
|
1597
1704
|
this.props.texture = null;
|
|
1598
|
-
this.props.shader = this.stage.
|
|
1705
|
+
this.props.shader = this.stage.defShaderNode;
|
|
1599
1706
|
|
|
1600
1707
|
while (this.children.length > 0) {
|
|
1601
1708
|
this.children[0]?.destroy();
|
|
@@ -1640,8 +1747,7 @@ export class CoreNode extends EventEmitter {
|
|
|
1640
1747
|
texture: this.texture || this.stage.defaultTexture,
|
|
1641
1748
|
textureOptions: this.textureOptions,
|
|
1642
1749
|
zIndex: this.zIndex,
|
|
1643
|
-
shader: this.
|
|
1644
|
-
shaderProps: this.shader.getResolvedProps(),
|
|
1750
|
+
shader: this.props.shader as CoreShaderNode<any>,
|
|
1645
1751
|
alpha: this.worldAlpha,
|
|
1646
1752
|
clippingRect: this.clippingRect,
|
|
1647
1753
|
tx: this.globalTransform.tx,
|
|
@@ -1887,6 +1993,31 @@ export class CoreNode extends EventEmitter {
|
|
|
1887
1993
|
this.props.autosize = value;
|
|
1888
1994
|
}
|
|
1889
1995
|
|
|
1996
|
+
get boundsMargin(): number | [number, number, number, number] | null {
|
|
1997
|
+
return (
|
|
1998
|
+
this.props.boundsMargin ??
|
|
1999
|
+
this.parent?.boundsMargin ??
|
|
2000
|
+
this.stage.boundsMargin
|
|
2001
|
+
);
|
|
2002
|
+
}
|
|
2003
|
+
|
|
2004
|
+
set boundsMargin(value: number | [number, number, number, number] | null) {
|
|
2005
|
+
if (value === this.props.boundsMargin) {
|
|
2006
|
+
return;
|
|
2007
|
+
}
|
|
2008
|
+
|
|
2009
|
+
if (value === null) {
|
|
2010
|
+
this.props.boundsMargin = value;
|
|
2011
|
+
} else {
|
|
2012
|
+
const bm: [number, number, number, number] = Array.isArray(value)
|
|
2013
|
+
? value
|
|
2014
|
+
: [value, value, value, value];
|
|
2015
|
+
|
|
2016
|
+
this.props.boundsMargin = bm;
|
|
2017
|
+
}
|
|
2018
|
+
this.setUpdateType(UpdateType.RenderBounds);
|
|
2019
|
+
}
|
|
2020
|
+
|
|
1890
2021
|
get clipping(): boolean {
|
|
1891
2022
|
return this.props.clipping;
|
|
1892
2023
|
}
|
|
@@ -2160,17 +2291,21 @@ export class CoreNode extends EventEmitter {
|
|
|
2160
2291
|
}
|
|
2161
2292
|
}
|
|
2162
2293
|
|
|
2163
|
-
get shader():
|
|
2294
|
+
get shader(): CoreShaderNode<any> | null {
|
|
2164
2295
|
return this.props.shader;
|
|
2165
2296
|
}
|
|
2166
2297
|
|
|
2167
|
-
set shader(
|
|
2168
|
-
if (this.props.shader ===
|
|
2298
|
+
set shader(shader: CoreShaderNode<any> | null) {
|
|
2299
|
+
if (this.props.shader === shader) {
|
|
2169
2300
|
return;
|
|
2170
2301
|
}
|
|
2171
|
-
|
|
2172
|
-
|
|
2173
|
-
|
|
2302
|
+
if (shader === null) {
|
|
2303
|
+
this.props.shader = this.stage.defShaderNode;
|
|
2304
|
+
this.setUpdateType(UpdateType.IsRenderable);
|
|
2305
|
+
return;
|
|
2306
|
+
}
|
|
2307
|
+
shader.attachNode(this);
|
|
2308
|
+
this.props.shader = shader;
|
|
2174
2309
|
this.setUpdateType(UpdateType.IsRenderable);
|
|
2175
2310
|
}
|
|
2176
2311
|
|