@lightningjs/renderer 2.16.0 → 3.0.0-beta10
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/COPYING +1 -0
- package/LICENSE +202 -202
- package/NOTICE +3 -3
- package/README.md +133 -147
- package/dist/exports/canvas.d.ts +8 -2
- package/dist/exports/canvas.js +8 -2
- package/dist/exports/canvas.js.map +1 -1
- package/dist/exports/index.d.ts +16 -13
- package/dist/exports/index.js +8 -9
- package/dist/exports/index.js.map +1 -1
- package/dist/exports/utils.d.ts +2 -1
- package/dist/exports/utils.js +2 -1
- package/dist/exports/utils.js.map +1 -1
- package/dist/exports/webgl.d.ts +11 -2
- package/dist/exports/webgl.js +11 -2
- package/dist/exports/webgl.js.map +1 -1
- package/dist/src/core/CoreNode.d.ts +47 -76
- package/dist/src/core/CoreNode.js +322 -309
- package/dist/src/core/CoreNode.js.map +1 -1
- package/dist/src/core/CoreShaderManager.d.ts +29 -73
- package/dist/src/core/CoreShaderManager.js +110 -97
- package/dist/src/core/CoreShaderManager.js.map +1 -1
- package/dist/src/core/CoreTextNode.d.ts +58 -87
- package/dist/src/core/CoreTextNode.js +243 -237
- package/dist/src/core/CoreTextNode.js.map +1 -1
- package/dist/src/core/CoreTextureManager.d.ts +2 -0
- package/dist/src/core/CoreTextureManager.js +12 -10
- package/dist/src/core/CoreTextureManager.js.map +1 -1
- package/dist/src/core/Stage.d.ts +58 -53
- package/dist/src/core/Stage.js +260 -196
- package/dist/src/core/Stage.js.map +1 -1
- package/dist/src/core/TextureMemoryManager.d.ts +3 -0
- package/dist/src/core/TextureMemoryManager.js +78 -74
- 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.js +1 -1
- package/dist/src/core/lib/ImageWorker.js.map +1 -1
- package/dist/src/core/lib/RenderCoords.d.ts +9 -10
- package/dist/src/core/lib/RenderCoords.js +43 -55
- package/dist/src/core/lib/RenderCoords.js.map +1 -1
- package/dist/src/core/lib/WebGlContextWrapper.d.ts +117 -55
- package/dist/src/core/lib/WebGlContextWrapper.js +196 -157
- package/dist/src/core/lib/WebGlContextWrapper.js.map +1 -1
- 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/lib/colorParser.d.ts +21 -0
- package/dist/src/core/lib/colorParser.js +72 -0
- package/dist/src/core/lib/colorParser.js.map +1 -0
- 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 +3 -1
- package/dist/src/core/lib/utils.js +19 -0
- 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/web/WebPlatform.js +29 -3
- package/dist/src/core/platforms/web/WebPlatform.js.map +1 -1
- package/dist/src/core/renderers/CoreRenderer.d.ts +15 -22
- package/dist/src/core/renderers/CoreRenderer.js +0 -6
- package/dist/src/core/renderers/CoreRenderer.js.map +1 -1
- package/dist/src/core/renderers/canvas/CanvasRenderer.d.ts +0 -2
- package/dist/src/core/renderers/canvas/CanvasRenderer.js +7 -21
- package/dist/src/core/renderers/canvas/CanvasRenderer.js.map +1 -1
- package/dist/src/core/renderers/canvas/CanvasShaderNode.js +2 -1
- package/dist/src/core/renderers/canvas/CanvasShaderNode.js.map +1 -1
- package/dist/src/core/renderers/canvas/CanvasTexture.d.ts +2 -2
- package/dist/src/core/renderers/canvas/CanvasTexture.js +8 -7
- package/dist/src/core/renderers/canvas/CanvasTexture.js.map +1 -1
- 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/WebGlCtxRenderTexture.js +3 -0
- package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlCtxTexture.d.ts +5 -6
- package/dist/src/core/renderers/webgl/WebGlCtxTexture.js +30 -18
- package/dist/src/core/renderers/webgl/WebGlCtxTexture.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlShaderProgram.d.ts +4 -2
- package/dist/src/core/renderers/webgl/WebGlShaderProgram.js +31 -13
- package/dist/src/core/renderers/webgl/WebGlShaderProgram.js.map +1 -1
- 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.js +1 -1
- package/dist/src/core/shaders/canvas/Border.js.map +1 -1
- package/dist/src/core/shaders/webgl/Border.js +82 -82
- package/dist/src/core/shaders/webgl/Default.js +47 -47
- package/dist/src/core/shaders/webgl/DefaultBatched.js +61 -61
- package/dist/src/core/shaders/webgl/HolePunch.js +32 -32
- package/dist/src/core/shaders/webgl/LinearGradient.js +36 -36
- package/dist/src/core/shaders/webgl/RadialGradient.js +33 -33
- package/dist/src/core/shaders/webgl/Rounded.js +71 -71
- package/dist/src/core/shaders/webgl/RoundedWithBorder.js +111 -111
- package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js +130 -130
- package/dist/src/core/shaders/webgl/RoundedWithShadow.js +54 -54
- package/dist/src/core/shaders/webgl/SdfShader.js +62 -62
- package/dist/src/core/shaders/webgl/Shadow.js +83 -83
- package/dist/src/core/text-rendering/CanvasFontHandler.d.ts +4 -4
- package/dist/src/core/text-rendering/CanvasFontHandler.js +19 -6
- package/dist/src/core/text-rendering/CanvasFontHandler.js.map +1 -1
- package/dist/src/core/text-rendering/CanvasTextRenderer.d.ts +18 -2
- package/dist/src/core/text-rendering/CanvasTextRenderer.js +296 -69
- package/dist/src/core/text-rendering/CanvasTextRenderer.js.map +1 -1
- package/dist/src/core/text-rendering/SdfFontHandler.d.ts +4 -4
- package/dist/src/core/text-rendering/SdfFontHandler.js +6 -6
- package/dist/src/core/text-rendering/SdfFontHandler.js.map +1 -1
- package/dist/src/core/text-rendering/SdfTextRenderer.d.ts +4 -8
- package/dist/src/core/text-rendering/SdfTextRenderer.js +68 -37
- package/dist/src/core/text-rendering/SdfTextRenderer.js.map +1 -1
- package/dist/src/core/text-rendering/TextRenderer.d.ts +37 -113
- package/dist/src/core/text-rendering/TextRenderer.js +1 -51
- package/dist/src/core/text-rendering/TextRenderer.js.map +1 -1
- package/dist/src/core/text-rendering/TextTextureRendererUtils.js.map +1 -1
- package/dist/src/core/text-rendering/canvas/Settings.d.ts +14 -3
- package/dist/src/core/text-rendering/canvas/Utils.d.ts +3 -2
- package/dist/src/core/text-rendering/canvas/Utils.js +9 -4
- package/dist/src/core/text-rendering/canvas/Utils.js.map +1 -1
- package/dist/src/core/text-rendering/canvas/calculateRenderInfo.d.ts +32 -9
- package/dist/src/core/text-rendering/canvas/calculateRenderInfo.js +52 -57
- package/dist/src/core/text-rendering/canvas/calculateRenderInfo.js.map +1 -1
- package/dist/src/core/text-rendering/canvas/draw.d.ts +3 -10
- package/dist/src/core/text-rendering/canvas/draw.js +26 -27
- package/dist/src/core/text-rendering/canvas/draw.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/CanvasTextRenderer.js +5 -0
- package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js.map +1 -1
- package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.d.ts +7 -1
- package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js +50 -2
- 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 +42 -83
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js.map +1 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.d.ts +1 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js +66 -8
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js.map +1 -1
- package/dist/src/core/text-rendering/renderers/TextRenderer.d.ts +14 -4
- package/dist/src/core/text-rendering/renderers/TextRenderer.js +3 -0
- package/dist/src/core/text-rendering/renderers/TextRenderer.js.map +1 -1
- package/dist/src/core/text-rendering/sdf/Utils.d.ts +26 -0
- package/dist/src/core/text-rendering/sdf/Utils.js +304 -0
- package/dist/src/core/text-rendering/sdf/Utils.js.map +1 -0
- package/dist/src/core/text-rendering/sdf/index.d.ts +1 -0
- package/{src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.ts → dist/src/core/text-rendering/sdf/index.js} +3 -21
- package/dist/src/core/text-rendering/sdf/index.js.map +1 -0
- package/dist/src/core/textures/ImageTexture.d.ts +1 -0
- package/dist/src/core/textures/ImageTexture.js +11 -4
- package/dist/src/core/textures/ImageTexture.js.map +1 -1
- package/dist/src/core/textures/Texture.d.ts +6 -1
- package/dist/src/core/textures/Texture.js.map +1 -1
- package/dist/src/main-api/INode.d.ts +9 -9
- package/dist/src/main-api/Inspector.d.ts +6 -1
- package/dist/src/main-api/Inspector.js +43 -7
- package/dist/src/main-api/Inspector.js.map +1 -1
- package/dist/src/main-api/Renderer.d.ts +83 -136
- package/dist/src/main-api/Renderer.js +139 -91
- package/dist/src/main-api/Renderer.js.map +1 -1
- package/dist/src/utils.d.ts +5 -4
- package/dist/src/utils.js +20 -9
- 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 +45 -39
- package/exports/index.ts +82 -89
- package/exports/inspector.ts +24 -24
- package/exports/utils.ts +50 -44
- package/exports/webgl-shaders.ts +28 -0
- package/exports/webgl.ts +52 -38
- package/package.json +4 -4
- package/src/common/CommonTypes.ts +146 -146
- package/src/common/EventEmitter.ts +77 -77
- package/src/common/IAnimationController.ts +92 -92
- package/src/common/IEventEmitter.ts +28 -28
- package/src/core/CoreNode.test.ts +202 -202
- package/src/core/CoreNode.ts +2491 -2487
- package/src/core/CoreShaderManager.ts +188 -292
- package/src/core/CoreTextNode.ts +443 -455
- package/src/core/CoreTextureManager.ts +565 -561
- package/src/core/Stage.ts +906 -826
- package/src/core/TextureMemoryManager.ts +445 -431
- package/src/core/animations/AnimationManager.ts +38 -38
- package/src/core/animations/CoreAnimation.ts +291 -347
- package/src/core/animations/CoreAnimationController.ts +166 -166
- package/src/core/lib/ContextSpy.ts +41 -41
- package/src/core/lib/ImageWorker.ts +286 -280
- package/src/core/lib/Matrix3d.ts +244 -244
- package/src/core/lib/RenderCoords.ts +71 -86
- package/src/core/lib/WebGlContextWrapper.ts +1381 -1332
- package/src/core/lib/colorCache.ts +20 -0
- package/src/core/{renderers/canvas/internal/ColorUtils.ts → lib/colorParser.ts} +85 -69
- package/src/core/lib/textureCompression.ts +152 -152
- package/src/core/lib/textureSvg.ts +78 -78
- package/src/core/lib/utils.ts +412 -388
- package/src/core/lib/validateImageBitmap.ts +87 -76
- package/src/core/platforms/Platform.ts +77 -0
- package/src/core/platforms/web/WebPlatform.ts +121 -0
- package/src/core/renderers/CoreContextTexture.ts +43 -43
- package/src/core/renderers/CoreRenderOp.ts +22 -22
- package/src/core/renderers/CoreRenderer.ts +110 -115
- package/src/core/renderers/CoreShaderNode.ts +175 -0
- package/{dist/src/core/renderers/CoreShader.js → src/core/renderers/CoreShaderProgram.ts} +23 -28
- package/src/core/renderers/canvas/CanvasRenderer.ts +283 -0
- package/src/core/renderers/canvas/CanvasShaderNode.ts +96 -0
- package/src/core/renderers/canvas/{CanvasCoreTexture.ts → CanvasTexture.ts} +156 -153
- package/src/core/renderers/webgl/{WebGlCoreCtxRenderTexture.ts → WebGlCtxRenderTexture.ts} +91 -91
- package/src/core/renderers/webgl/{WebGlCoreCtxSubTexture.ts → WebGlCtxSubTexture.ts} +50 -50
- package/src/core/renderers/webgl/{WebGlCoreCtxTexture.ts → WebGlCtxTexture.ts} +310 -313
- package/src/core/renderers/webgl/WebGlRenderOp.ts +167 -0
- package/src/core/renderers/webgl/{WebGlCoreRenderer.ts → WebGlRenderer.ts} +747 -821
- package/src/core/renderers/webgl/WebGlShaderNode.ts +435 -0
- package/src/core/renderers/webgl/WebGlShaderProgram.ts +341 -0
- package/src/core/renderers/webgl/internal/BufferCollection.ts +54 -54
- package/src/core/renderers/webgl/internal/RendererUtils.ts +155 -155
- package/src/core/renderers/webgl/internal/ShaderUtils.ts +281 -143
- package/src/core/renderers/webgl/internal/WebGlUtils.ts +35 -35
- package/src/core/shaders/canvas/Border.ts +75 -0
- package/src/core/shaders/canvas/HolePunch.ts +62 -0
- package/src/core/shaders/canvas/LinearGradient.ts +71 -0
- package/src/core/shaders/canvas/RadialGradient.ts +99 -0
- package/src/core/shaders/canvas/Rounded.ts +55 -0
- package/src/core/shaders/canvas/RoundedWithBorder.ts +74 -0
- package/src/core/shaders/canvas/RoundedWithBorderAndShadow.ts +90 -0
- package/src/core/shaders/canvas/RoundedWithShadow.ts +70 -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/{dist/src/core/shaders/templates/shaderUtils.js → src/core/shaders/templates/RoundedWithBorderTemplate.ts} +35 -41
- package/src/core/shaders/templates/RoundedWithShadowTemplate.ts +35 -0
- package/src/core/shaders/templates/ShadowTemplate.ts +106 -0
- package/src/core/shaders/utils.ts +46 -0
- package/src/core/shaders/webgl/Border.ts +116 -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 +75 -0
- package/src/core/shaders/webgl/LinearGradient.ts +82 -0
- package/src/core/shaders/webgl/RadialGradient.ts +85 -0
- package/src/core/shaders/webgl/Rounded.ts +117 -0
- package/src/core/shaders/webgl/RoundedWithBorder.ts +155 -0
- package/src/core/shaders/webgl/RoundedWithBorderAndShadow.ts +175 -0
- package/src/core/shaders/webgl/RoundedWithShadow.ts +98 -0
- package/src/core/shaders/webgl/SdfShader.ts +134 -0
- package/src/core/shaders/webgl/Shadow.ts +115 -0
- package/src/core/text-rendering/CanvasFontHandler.ts +176 -0
- package/src/core/text-rendering/CanvasTextRenderer.ts +622 -0
- package/src/core/text-rendering/SdfFontHandler.ts +517 -0
- package/src/core/text-rendering/SdfTextRenderer.ts +466 -0
- package/src/core/text-rendering/TextRenderer.ts +404 -0
- package/src/core/text-rendering/{TextTextureRendererUtils.ts → Utils.ts} +257 -263
- package/src/core/text-rendering/canvas/Settings.ts +99 -0
- package/src/core/text-rendering/canvas/Utils.test.ts +206 -0
- package/src/core/text-rendering/canvas/Utils.ts +178 -0
- package/src/core/text-rendering/canvas/calculateRenderInfo.ts +299 -0
- package/src/core/text-rendering/canvas/draw.ts +165 -0
- package/src/core/text-rendering/sdf/Utils.test.ts +402 -0
- package/src/core/text-rendering/sdf/Utils.ts +436 -0
- package/src/core/text-rendering/{renderers/SdfTextRenderer/internal/constants.ts → sdf/index.ts} +20 -32
- package/src/core/textures/ColorTexture.ts +102 -102
- package/src/core/textures/ImageTexture.ts +418 -400
- package/src/core/textures/NoiseTexture.ts +104 -104
- package/src/core/textures/RenderTexture.ts +85 -85
- package/src/core/textures/SubTexture.ts +205 -205
- package/src/core/textures/Texture.ts +381 -376
- package/src/core/utils.ts +227 -227
- package/src/env.d.ts +7 -7
- package/src/main-api/INode.ts +100 -101
- package/src/main-api/Inspector.ts +567 -522
- package/src/main-api/Renderer.ts +873 -807
- package/src/main-api/utils.ts +45 -45
- package/src/utils.ts +267 -248
- package/dist/src/core/platform.d.ts +0 -10
- package/dist/src/core/platform.js +0 -81
- package/dist/src/core/platform.js.map +0 -1
- package/dist/src/core/renderers/CoreShader.d.ts +0 -9
- package/dist/src/core/renderers/CoreShader.js.map +0 -1
- package/dist/src/core/renderers/canvas/CanvasCoreRenderer.d.ts +0 -33
- package/dist/src/core/renderers/canvas/CanvasCoreRenderer.js +0 -250
- package/dist/src/core/renderers/canvas/CanvasCoreRenderer.js.map +0 -1
- package/dist/src/core/renderers/canvas/CanvasCoreTexture.d.ts +0 -16
- package/dist/src/core/renderers/canvas/CanvasCoreTexture.js +0 -124
- package/dist/src/core/renderers/canvas/CanvasCoreTexture.js.map +0 -1
- package/dist/src/core/renderers/canvas/shaders/UnsupportedShader.d.ts +0 -10
- package/dist/src/core/renderers/canvas/shaders/UnsupportedShader.js +0 -43
- package/dist/src/core/renderers/canvas/shaders/UnsupportedShader.js.map +0 -1
- package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.d.ts +0 -12
- package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js +0 -58
- package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js.map +0 -1
- package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.d.ts +0 -9
- package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.js +0 -38
- package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.js.map +0 -1
- package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.d.ts +0 -56
- package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js +0 -239
- package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js.map +0 -1
- package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.d.ts +0 -34
- package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js +0 -114
- package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js.map +0 -1
- package/dist/src/core/renderers/webgl/WebGlCoreRenderer.d.ts +0 -133
- package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js +0 -616
- package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js.map +0 -1
- package/dist/src/core/renderers/webgl/WebGlCoreShader.d.ts +0 -83
- package/dist/src/core/renderers/webgl/WebGlCoreShader.js +0 -233
- package/dist/src/core/renderers/webgl/WebGlCoreShader.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/DefaultShader.d.ts +0 -9
- package/dist/src/core/renderers/webgl/shaders/DefaultShader.js +0 -87
- package/dist/src/core/renderers/webgl/shaders/DefaultShader.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.d.ts +0 -10
- package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js +0 -119
- package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/DynamicShader.d.ts +0 -29
- package/dist/src/core/renderers/webgl/shaders/DynamicShader.js +0 -413
- package/dist/src/core/renderers/webgl/shaders/DynamicShader.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.d.ts +0 -28
- package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js +0 -131
- package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/SdfShader.d.ts +0 -47
- package/dist/src/core/renderers/webgl/shaders/SdfShader.js +0 -160
- package/dist/src/core/renderers/webgl/shaders/SdfShader.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.d.ts +0 -31
- package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js +0 -71
- package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.d.ts +0 -30
- package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js +0 -58
- package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.d.ts +0 -31
- package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js +0 -71
- package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.d.ts +0 -31
- package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js +0 -71
- package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.d.ts +0 -31
- package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js +0 -71
- package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.d.ts +0 -9
- package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.js +0 -136
- package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.d.ts +0 -36
- package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js +0 -85
- package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.d.ts +0 -45
- package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.js +0 -104
- package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.d.ts +0 -22
- package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js +0 -45
- package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.d.ts +0 -58
- package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.js +0 -80
- package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.d.ts +0 -35
- package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js +0 -129
- package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.d.ts +0 -39
- package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js +0 -116
- package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.d.ts +0 -61
- package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js +0 -127
- package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.d.ts +0 -40
- package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js +0 -71
- package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.d.ts +0 -115
- package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.js +0 -61
- package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.js.map +0 -1
- package/dist/src/core/shaders/templates/shaderUtils.d.ts +0 -5
- package/dist/src/core/shaders/templates/shaderUtils.js.map +0 -1
- package/dist/src/core/shaders/webgl/Spinner.d.ts +0 -1
- package/dist/src/core/shaders/webgl/Spinner.js +0 -2
- package/dist/src/core/shaders/webgl/Spinner.js.map +0 -1
- package/dist/src/core/text-rendering/sdf/PeekableGenerator.d.ts +0 -12
- package/dist/src/core/text-rendering/sdf/PeekableGenerator.js +0 -61
- package/dist/src/core/text-rendering/sdf/PeekableGenerator.js.map +0 -1
- package/dist/src/core/text-rendering/sdf/SimpleFontShaper.d.ts +0 -45
- package/dist/src/core/text-rendering/sdf/SimpleFontShaper.js +0 -69
- package/dist/src/core/text-rendering/sdf/SimpleFontShaper.js.map +0 -1
- package/dist/src/main-api/DynamicShaderController.d.ts +0 -29
- package/dist/src/main-api/DynamicShaderController.js +0 -58
- package/dist/src/main-api/DynamicShaderController.js.map +0 -1
- package/dist/src/main-api/ShaderController.d.ts +0 -31
- package/dist/src/main-api/ShaderController.js +0 -37
- package/dist/src/main-api/ShaderController.js.map +0 -1
- package/scripts/please-use-pnpm.js +0 -13
- package/src/core/platform.ts +0 -100
- package/src/core/renderers/CoreShader.ts +0 -41
- package/src/core/renderers/canvas/CanvasCoreRenderer.ts +0 -375
- package/src/core/renderers/canvas/internal/C2DShaderUtils.ts +0 -231
- package/src/core/renderers/canvas/shaders/UnsupportedShader.ts +0 -48
- package/src/core/renderers/webgl/WebGlCoreRenderOp.ts +0 -125
- package/src/core/renderers/webgl/WebGlCoreShader.ts +0 -365
- 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/core/text-rendering/TextRenderingUtils.ts +0 -36
- 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 -808
- package/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.ts +0 -853
- 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/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/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 -557
- package/src/main-api/DynamicShaderController.ts +0 -104
- package/src/main-api/ShaderController.ts +0 -80
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
* See the License for the specific language governing permissions and
|
|
17
17
|
* limitations under the License.
|
|
18
18
|
*/
|
|
19
|
-
import { assertTruthy, getNewId,
|
|
19
|
+
import { assertTruthy, getNewId, mergeColorAlphaPremultiplied, } from '../utils.js';
|
|
20
20
|
import {} from './textures/Texture.js';
|
|
21
21
|
import { EventEmitter } from '../common/EventEmitter.js';
|
|
22
22
|
import { copyRect, intersectRect, createBound, boundInsideBound, boundLargeThanBound, createPreloadBounds, } from './lib/utils.js';
|
|
@@ -43,31 +43,23 @@ export var UpdateType;
|
|
|
43
43
|
*/
|
|
44
44
|
UpdateType[UpdateType["Children"] = 1] = "Children";
|
|
45
45
|
/**
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
* @remarks
|
|
49
|
-
* CoreNode Properties Updated:
|
|
50
|
-
* - `scaleRotateTransform`
|
|
51
|
-
*/
|
|
52
|
-
UpdateType[UpdateType["ScaleRotate"] = 2] = "ScaleRotate";
|
|
53
|
-
/**
|
|
54
|
-
* Translate transform update (x/y/width/height/pivot/mount)
|
|
46
|
+
* localTransform
|
|
55
47
|
*
|
|
56
48
|
* @remarks
|
|
57
49
|
* CoreNode Properties Updated:
|
|
58
50
|
* - `localTransform`
|
|
59
51
|
*/
|
|
60
|
-
UpdateType[UpdateType["Local"] =
|
|
52
|
+
UpdateType[UpdateType["Local"] = 2] = "Local";
|
|
61
53
|
/**
|
|
62
|
-
*
|
|
54
|
+
* globalTransform
|
|
63
55
|
*
|
|
64
|
-
* @remarks
|
|
56
|
+
* * @remarks
|
|
65
57
|
* CoreNode Properties Updated:
|
|
66
58
|
* - `globalTransform`
|
|
59
|
+
* - `renderBounds`
|
|
67
60
|
* - `renderCoords`
|
|
68
|
-
* - `renderBound`
|
|
69
61
|
*/
|
|
70
|
-
UpdateType[UpdateType["Global"] =
|
|
62
|
+
UpdateType[UpdateType["Global"] = 4] = "Global";
|
|
71
63
|
/**
|
|
72
64
|
* Clipping rect update
|
|
73
65
|
*
|
|
@@ -75,7 +67,7 @@ export var UpdateType;
|
|
|
75
67
|
* CoreNode Properties Updated:
|
|
76
68
|
* - `clippingRect`
|
|
77
69
|
*/
|
|
78
|
-
UpdateType[UpdateType["Clipping"] =
|
|
70
|
+
UpdateType[UpdateType["Clipping"] = 8] = "Clipping";
|
|
79
71
|
/**
|
|
80
72
|
* Calculated ZIndex update
|
|
81
73
|
*
|
|
@@ -83,7 +75,7 @@ export var UpdateType;
|
|
|
83
75
|
* CoreNode Properties Updated:
|
|
84
76
|
* - `calcZIndex`
|
|
85
77
|
*/
|
|
86
|
-
UpdateType[UpdateType["CalculatedZIndex"] =
|
|
78
|
+
UpdateType[UpdateType["CalculatedZIndex"] = 16] = "CalculatedZIndex";
|
|
87
79
|
/**
|
|
88
80
|
* Z-Index Sorted Children update
|
|
89
81
|
*
|
|
@@ -91,7 +83,7 @@ export var UpdateType;
|
|
|
91
83
|
* CoreNode Properties Updated:
|
|
92
84
|
* - `children` (sorts children by their `calcZIndex`)
|
|
93
85
|
*/
|
|
94
|
-
UpdateType[UpdateType["ZIndexSortedChildren"] =
|
|
86
|
+
UpdateType[UpdateType["ZIndexSortedChildren"] = 32] = "ZIndexSortedChildren";
|
|
95
87
|
/**
|
|
96
88
|
* Premultiplied Colors update
|
|
97
89
|
*
|
|
@@ -102,7 +94,7 @@ export var UpdateType;
|
|
|
102
94
|
* - `premultipliedColorBl`
|
|
103
95
|
* - `premultipliedColorBr`
|
|
104
96
|
*/
|
|
105
|
-
UpdateType[UpdateType["PremultipliedColors"] =
|
|
97
|
+
UpdateType[UpdateType["PremultipliedColors"] = 64] = "PremultipliedColors";
|
|
106
98
|
/**
|
|
107
99
|
* World Alpha update
|
|
108
100
|
*
|
|
@@ -110,7 +102,7 @@ export var UpdateType;
|
|
|
110
102
|
* CoreNode Properties Updated:
|
|
111
103
|
* - `worldAlpha` = `parent.worldAlpha` * `alpha`
|
|
112
104
|
*/
|
|
113
|
-
UpdateType[UpdateType["WorldAlpha"] =
|
|
105
|
+
UpdateType[UpdateType["WorldAlpha"] = 128] = "WorldAlpha";
|
|
114
106
|
/**
|
|
115
107
|
* Render State update
|
|
116
108
|
*
|
|
@@ -118,7 +110,7 @@ export var UpdateType;
|
|
|
118
110
|
* CoreNode Properties Updated:
|
|
119
111
|
* - `renderState`
|
|
120
112
|
*/
|
|
121
|
-
UpdateType[UpdateType["RenderState"] =
|
|
113
|
+
UpdateType[UpdateType["RenderState"] = 256] = "RenderState";
|
|
122
114
|
/**
|
|
123
115
|
* Is Renderable update
|
|
124
116
|
*
|
|
@@ -126,19 +118,23 @@ export var UpdateType;
|
|
|
126
118
|
* CoreNode Properties Updated:
|
|
127
119
|
* - `isRenderable`
|
|
128
120
|
*/
|
|
129
|
-
UpdateType[UpdateType["IsRenderable"] =
|
|
121
|
+
UpdateType[UpdateType["IsRenderable"] = 512] = "IsRenderable";
|
|
130
122
|
/**
|
|
131
123
|
* Render Texture update
|
|
132
124
|
*/
|
|
133
|
-
UpdateType[UpdateType["RenderTexture"] =
|
|
125
|
+
UpdateType[UpdateType["RenderTexture"] = 1024] = "RenderTexture";
|
|
134
126
|
/**
|
|
135
127
|
* Track if parent has render texture
|
|
136
128
|
*/
|
|
137
|
-
UpdateType[UpdateType["ParentRenderTexture"] =
|
|
129
|
+
UpdateType[UpdateType["ParentRenderTexture"] = 2048] = "ParentRenderTexture";
|
|
138
130
|
/**
|
|
139
131
|
* Render Bounds update
|
|
140
132
|
*/
|
|
141
|
-
UpdateType[UpdateType["RenderBounds"] =
|
|
133
|
+
UpdateType[UpdateType["RenderBounds"] = 4096] = "RenderBounds";
|
|
134
|
+
/**
|
|
135
|
+
* RecalcUniforms
|
|
136
|
+
*/
|
|
137
|
+
UpdateType[UpdateType["RecalcUniforms"] = 8192] = "RecalcUniforms";
|
|
142
138
|
/**
|
|
143
139
|
* None
|
|
144
140
|
*/
|
|
@@ -161,10 +157,11 @@ export class CoreNode extends EventEmitter {
|
|
|
161
157
|
children = [];
|
|
162
158
|
_id = getNewId();
|
|
163
159
|
props;
|
|
160
|
+
hasShaderUpdater = false;
|
|
161
|
+
hasColorProps = false;
|
|
164
162
|
updateType = UpdateType.All;
|
|
165
163
|
childUpdateType = UpdateType.None;
|
|
166
164
|
globalTransform;
|
|
167
|
-
scaleRotateTransform;
|
|
168
165
|
localTransform;
|
|
169
166
|
sceneGlobalTransform;
|
|
170
167
|
renderCoords;
|
|
@@ -179,6 +176,8 @@ export class CoreNode extends EventEmitter {
|
|
|
179
176
|
height: 0,
|
|
180
177
|
valid: false,
|
|
181
178
|
};
|
|
179
|
+
textureCoords;
|
|
180
|
+
updateTextureCoords = false;
|
|
182
181
|
isRenderable = false;
|
|
183
182
|
renderState = CoreNodeRenderState.Init;
|
|
184
183
|
worldAlpha = 1;
|
|
@@ -190,53 +189,79 @@ export class CoreNode extends EventEmitter {
|
|
|
190
189
|
hasRTTupdates = false;
|
|
191
190
|
parentHasRenderTexture = false;
|
|
192
191
|
rttParent = null;
|
|
192
|
+
/**
|
|
193
|
+
* only used when rtt = true
|
|
194
|
+
*/
|
|
195
|
+
framebufferDimensions = null;
|
|
193
196
|
destroyed = false;
|
|
194
197
|
constructor(stage, props) {
|
|
195
198
|
super();
|
|
196
199
|
this.stage = stage;
|
|
197
|
-
this.props = {
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
200
|
+
const p = (this.props = {});
|
|
201
|
+
// Fast-path assign only known keys
|
|
202
|
+
p.x = props.x;
|
|
203
|
+
p.y = props.y;
|
|
204
|
+
p.width = props.width;
|
|
205
|
+
p.height = props.height;
|
|
206
|
+
p.alpha = props.alpha;
|
|
207
|
+
p.autosize = props.autosize;
|
|
208
|
+
p.clipping = props.clipping;
|
|
209
|
+
p.color = props.color;
|
|
210
|
+
p.colorTop = props.colorTop;
|
|
211
|
+
p.colorBottom = props.colorBottom;
|
|
212
|
+
p.colorLeft = props.colorLeft;
|
|
213
|
+
p.colorRight = props.colorRight;
|
|
214
|
+
p.colorTl = props.colorTl;
|
|
215
|
+
p.colorTr = props.colorTr;
|
|
216
|
+
p.colorBl = props.colorBl;
|
|
217
|
+
p.colorBr = props.colorBr;
|
|
218
|
+
p.scaleX = props.scaleX;
|
|
219
|
+
p.scaleY = props.scaleY;
|
|
220
|
+
p.rotation = props.rotation;
|
|
221
|
+
p.pivotX = props.pivotX;
|
|
222
|
+
p.pivotY = props.pivotY;
|
|
223
|
+
p.mountX = props.mountX;
|
|
224
|
+
p.mountY = props.mountY;
|
|
225
|
+
p.mount = props.mount;
|
|
226
|
+
p.pivot = props.pivot;
|
|
227
|
+
p.strictBounds = props.strictBounds;
|
|
228
|
+
p.zIndex = props.zIndex;
|
|
229
|
+
p.zIndexLocked = props.zIndexLocked;
|
|
230
|
+
p.textureOptions = props.textureOptions;
|
|
231
|
+
p.data = props.data;
|
|
232
|
+
p.imageType = props.imageType;
|
|
233
|
+
p.srcX = props.srcX;
|
|
234
|
+
p.srcY = props.srcY;
|
|
235
|
+
p.srcWidth = props.srcWidth;
|
|
236
|
+
p.srcHeight = props.srcHeight;
|
|
237
|
+
p.parent = null;
|
|
238
|
+
p.texture = null;
|
|
239
|
+
p.shader = null;
|
|
240
|
+
p.src = null;
|
|
241
|
+
p.rtt = false;
|
|
242
|
+
p.boundsMargin = null;
|
|
243
|
+
// Assign props to instances
|
|
205
244
|
this.parent = props.parent;
|
|
206
245
|
this.texture = props.texture;
|
|
246
|
+
this.shader = props.shader;
|
|
207
247
|
this.src = props.src;
|
|
208
248
|
this.rtt = props.rtt;
|
|
249
|
+
this.boundsMargin = props.boundsMargin;
|
|
209
250
|
this.interactive = props.interactive;
|
|
210
|
-
|
|
211
|
-
this.boundsMargin = Array.isArray(props.boundsMargin)
|
|
212
|
-
? props.boundsMargin
|
|
213
|
-
: [
|
|
214
|
-
props.boundsMargin,
|
|
215
|
-
props.boundsMargin,
|
|
216
|
-
props.boundsMargin,
|
|
217
|
-
props.boundsMargin,
|
|
218
|
-
];
|
|
219
|
-
}
|
|
220
|
-
this.setUpdateType(UpdateType.ScaleRotate |
|
|
221
|
-
UpdateType.Local |
|
|
222
|
-
UpdateType.RenderBounds |
|
|
223
|
-
UpdateType.RenderState);
|
|
224
|
-
if (isProductionEnvironment() === false && props.preventCleanup === true) {
|
|
225
|
-
console.warn('CoreNode.preventCleanup: Is deprecated and will be removed in upcoming release, please use textureOptions.preventCleanup instead');
|
|
226
|
-
}
|
|
251
|
+
this.setUpdateType(UpdateType.Local | UpdateType.RenderBounds | UpdateType.RenderState);
|
|
227
252
|
// if the default texture isn't loaded yet, wait for it to load
|
|
228
253
|
// this only happens when the node is created before the stage is ready
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
this.setUpdateType(UpdateType.IsRenderable);
|
|
233
|
-
});
|
|
254
|
+
const dt = this.stage.defaultTexture;
|
|
255
|
+
if (dt !== null && dt.state !== 'loaded') {
|
|
256
|
+
dt.once('loaded', () => this.setUpdateType(UpdateType.IsRenderable));
|
|
234
257
|
}
|
|
235
258
|
}
|
|
236
259
|
//#region Textures
|
|
237
260
|
loadTexture() {
|
|
238
261
|
const { texture } = this.props;
|
|
239
|
-
|
|
262
|
+
if (!texture) {
|
|
263
|
+
return;
|
|
264
|
+
}
|
|
240
265
|
// If texture is already loaded / failed, trigger loaded event manually
|
|
241
266
|
// so that users get a consistent event experience.
|
|
242
267
|
// We do this in a microtask to allow listeners to be attached in the same
|
|
@@ -260,11 +285,9 @@ export class CoreNode extends EventEmitter {
|
|
|
260
285
|
return;
|
|
261
286
|
}
|
|
262
287
|
if (texture.state === 'loaded') {
|
|
263
|
-
assertTruthy(texture.dimensions);
|
|
264
288
|
this.onTextureLoaded(texture, texture.dimensions);
|
|
265
289
|
}
|
|
266
290
|
else if (texture.state === 'failed') {
|
|
267
|
-
assertTruthy(texture.error);
|
|
268
291
|
this.onTextureFailed(texture, texture.error);
|
|
269
292
|
}
|
|
270
293
|
else if (texture.state === 'freed') {
|
|
@@ -273,12 +296,14 @@ export class CoreNode extends EventEmitter {
|
|
|
273
296
|
});
|
|
274
297
|
}
|
|
275
298
|
unloadTexture() {
|
|
276
|
-
if (this.texture
|
|
277
|
-
|
|
278
|
-
this.texture.off('failed', this.onTextureFailed);
|
|
279
|
-
this.texture.off('freed', this.onTextureFreed);
|
|
280
|
-
this.texture.setRenderableOwner(this, false);
|
|
299
|
+
if (this.texture === null) {
|
|
300
|
+
return;
|
|
281
301
|
}
|
|
302
|
+
const texture = this.texture;
|
|
303
|
+
texture.off('loaded', this.onTextureLoaded);
|
|
304
|
+
texture.off('failed', this.onTextureFailed);
|
|
305
|
+
texture.off('freed', this.onTextureFreed);
|
|
306
|
+
texture.setRenderableOwner(this, false);
|
|
282
307
|
}
|
|
283
308
|
autosizeNode(dimensions) {
|
|
284
309
|
if (this.autosize) {
|
|
@@ -349,42 +374,32 @@ export class CoreNode extends EventEmitter {
|
|
|
349
374
|
const parent = this.props.parent;
|
|
350
375
|
if (!parent)
|
|
351
376
|
return;
|
|
352
|
-
|
|
353
|
-
// Inform the parent if it doesn’t already have a child update
|
|
354
|
-
parent.setUpdateType(UpdateType.Children);
|
|
355
|
-
}
|
|
377
|
+
parent.setUpdateType(UpdateType.Children);
|
|
356
378
|
}
|
|
357
379
|
sortChildren() {
|
|
358
380
|
this.children.sort((a, b) => a.calcZIndex - b.calcZIndex);
|
|
359
381
|
}
|
|
360
|
-
updateScaleRotateTransform() {
|
|
361
|
-
const { rotation, scaleX, scaleY } = this.props;
|
|
362
|
-
// optimize simple translation cases
|
|
363
|
-
if (rotation === 0 && scaleX === 1 && scaleY === 1) {
|
|
364
|
-
this.scaleRotateTransform = undefined;
|
|
365
|
-
return;
|
|
366
|
-
}
|
|
367
|
-
this.scaleRotateTransform = Matrix3d.rotate(rotation, this.scaleRotateTransform).scale(scaleX, scaleY);
|
|
368
|
-
}
|
|
369
382
|
updateLocalTransform() {
|
|
370
|
-
const
|
|
371
|
-
const
|
|
372
|
-
const
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
const
|
|
383
|
+
const p = this.props;
|
|
384
|
+
const { x, y, width, height } = p;
|
|
385
|
+
const mountTranslateX = p.mountX * width;
|
|
386
|
+
const mountTranslateY = p.mountY * height;
|
|
387
|
+
if (p.rotation !== 0 || p.scaleX !== 1 || p.scaleY !== 1) {
|
|
388
|
+
const pivotTranslateX = p.pivotX * width;
|
|
389
|
+
const pivotTranslateY = p.pivotY * height;
|
|
376
390
|
this.localTransform = Matrix3d.translate(x - mountTranslateX + pivotTranslateX, y - mountTranslateY + pivotTranslateY, this.localTransform)
|
|
377
|
-
.
|
|
391
|
+
.rotate(p.rotation)
|
|
392
|
+
.scale(p.scaleX, p.scaleY)
|
|
378
393
|
.translate(-pivotTranslateX, -pivotTranslateY);
|
|
379
394
|
}
|
|
380
395
|
else {
|
|
381
396
|
this.localTransform = Matrix3d.translate(x - mountTranslateX, y - mountTranslateY, this.localTransform);
|
|
382
397
|
}
|
|
383
398
|
// Handle 'contain' resize mode
|
|
384
|
-
const texture =
|
|
399
|
+
const texture = p.texture;
|
|
385
400
|
if (texture &&
|
|
386
401
|
texture.dimensions &&
|
|
387
|
-
|
|
402
|
+
p.textureOptions.resizeMode?.type === 'contain') {
|
|
388
403
|
let resizeModeScaleX = 1;
|
|
389
404
|
let resizeModeScaleY = 1;
|
|
390
405
|
let extraX = 0;
|
|
@@ -415,29 +430,33 @@ export class CoreNode extends EventEmitter {
|
|
|
415
430
|
.translate(extraX, extraY)
|
|
416
431
|
.scale(resizeModeScaleX, resizeModeScaleY);
|
|
417
432
|
}
|
|
418
|
-
this.setUpdateType(UpdateType.Global);
|
|
419
433
|
}
|
|
420
434
|
/**
|
|
421
435
|
* @todo: test for correct calculation flag
|
|
422
436
|
* @param delta
|
|
423
437
|
*/
|
|
424
438
|
update(delta, parentClippingRect) {
|
|
425
|
-
if (this.updateType
|
|
426
|
-
|
|
427
|
-
this.setUpdateType(UpdateType.Local);
|
|
439
|
+
if (this.updateType === UpdateType.None) {
|
|
440
|
+
return;
|
|
428
441
|
}
|
|
429
|
-
|
|
442
|
+
const props = this.props;
|
|
443
|
+
const parent = props.parent;
|
|
444
|
+
const parentHasRenderTexture = this.parentHasRenderTexture;
|
|
445
|
+
const hasParent = props.parent !== null;
|
|
446
|
+
let renderState = null;
|
|
447
|
+
let updateType = this.updateType;
|
|
448
|
+
let childUpdateType = this.childUpdateType;
|
|
449
|
+
let updateParent = false;
|
|
450
|
+
if (updateType & UpdateType.Local) {
|
|
430
451
|
this.updateLocalTransform();
|
|
431
|
-
|
|
452
|
+
updateType |= UpdateType.Global;
|
|
453
|
+
updateParent = hasParent;
|
|
432
454
|
}
|
|
433
|
-
const parent = this.props.parent;
|
|
434
|
-
let renderState = null;
|
|
435
455
|
// Handle specific RTT updates at this node level
|
|
436
|
-
if (
|
|
456
|
+
if (updateType & UpdateType.RenderTexture && this.rtt === true) {
|
|
437
457
|
this.hasRTTupdates = true;
|
|
438
458
|
}
|
|
439
|
-
if (
|
|
440
|
-
assertTruthy(this.localTransform);
|
|
459
|
+
if (updateType & UpdateType.Global) {
|
|
441
460
|
if (this.parentHasRenderTexture === true && parent?.rtt === true) {
|
|
442
461
|
// we are at the start of the RTT chain, so we need to reset the globalTransform
|
|
443
462
|
// for correct RTT rendering
|
|
@@ -461,22 +480,28 @@ export class CoreNode extends EventEmitter {
|
|
|
461
480
|
}
|
|
462
481
|
this.calculateRenderCoords();
|
|
463
482
|
this.updateBoundingRect();
|
|
464
|
-
|
|
465
|
-
|
|
483
|
+
updateType |=
|
|
484
|
+
UpdateType.RenderState |
|
|
485
|
+
UpdateType.Children |
|
|
486
|
+
UpdateType.RecalcUniforms;
|
|
487
|
+
updateParent = hasParent;
|
|
488
|
+
childUpdateType |= UpdateType.Global;
|
|
466
489
|
if (this.clipping === true) {
|
|
467
|
-
|
|
468
|
-
|
|
490
|
+
updateType |= UpdateType.Clipping | UpdateType.RenderBounds;
|
|
491
|
+
updateParent = hasParent;
|
|
492
|
+
childUpdateType |= UpdateType.RenderBounds;
|
|
469
493
|
}
|
|
470
494
|
}
|
|
471
|
-
if (
|
|
495
|
+
if (updateType & UpdateType.RenderBounds) {
|
|
472
496
|
this.createRenderBounds();
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
497
|
+
updateType |= UpdateType.RenderState | UpdateType.Children;
|
|
498
|
+
updateParent = hasParent;
|
|
499
|
+
childUpdateType |= UpdateType.RenderBounds;
|
|
476
500
|
}
|
|
477
|
-
if (
|
|
501
|
+
if (updateType & UpdateType.RenderState) {
|
|
478
502
|
renderState = this.checkRenderBounds();
|
|
479
|
-
|
|
503
|
+
updateType |= UpdateType.IsRenderable;
|
|
504
|
+
updateParent = hasParent;
|
|
480
505
|
// if we're not going out of bounds, update the render state
|
|
481
506
|
// this is done so the update loop can finish before we mark a node
|
|
482
507
|
// as out of bounds
|
|
@@ -484,59 +509,69 @@ export class CoreNode extends EventEmitter {
|
|
|
484
509
|
this.updateRenderState(renderState);
|
|
485
510
|
}
|
|
486
511
|
}
|
|
487
|
-
if (
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
}
|
|
491
|
-
else {
|
|
492
|
-
this.worldAlpha = this.props.alpha;
|
|
493
|
-
}
|
|
494
|
-
this.setUpdateType(UpdateType.Children |
|
|
512
|
+
if (updateType & UpdateType.WorldAlpha) {
|
|
513
|
+
this.worldAlpha = ((parent && parent.worldAlpha) || 1) * props.alpha;
|
|
514
|
+
updateType |=
|
|
495
515
|
UpdateType.PremultipliedColors |
|
|
496
|
-
|
|
497
|
-
|
|
516
|
+
UpdateType.Children |
|
|
517
|
+
UpdateType.IsRenderable;
|
|
518
|
+
updateParent = hasParent;
|
|
519
|
+
childUpdateType |= UpdateType.WorldAlpha;
|
|
498
520
|
}
|
|
499
|
-
if (
|
|
521
|
+
if (updateType & UpdateType.IsRenderable) {
|
|
500
522
|
this.updateIsRenderable();
|
|
501
523
|
}
|
|
502
|
-
if (
|
|
524
|
+
if (updateType & UpdateType.Clipping) {
|
|
503
525
|
this.calculateClippingRect(parentClippingRect);
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
}
|
|
508
|
-
if (
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
526
|
+
updateType |= UpdateType.Children;
|
|
527
|
+
updateParent = hasParent;
|
|
528
|
+
childUpdateType |= UpdateType.Clipping | UpdateType.RenderBounds;
|
|
529
|
+
}
|
|
530
|
+
if (updateType & UpdateType.PremultipliedColors) {
|
|
531
|
+
const alpha = this.worldAlpha;
|
|
532
|
+
const tl = props.colorTl;
|
|
533
|
+
const tr = props.colorTr;
|
|
534
|
+
const bl = props.colorBl;
|
|
535
|
+
const br = props.colorBr;
|
|
536
|
+
// Fast equality check (covers all 4 corners)
|
|
537
|
+
const same = tl === tr && tl === bl && tl === br;
|
|
538
|
+
const merged = mergeColorAlphaPremultiplied(tl, alpha, true);
|
|
539
|
+
this.premultipliedColorTl = merged;
|
|
540
|
+
if (same) {
|
|
514
541
|
this.premultipliedColorTr =
|
|
515
542
|
this.premultipliedColorBl =
|
|
516
543
|
this.premultipliedColorBr =
|
|
517
|
-
|
|
544
|
+
merged;
|
|
518
545
|
}
|
|
519
546
|
else {
|
|
520
|
-
this.premultipliedColorTr = mergeColorAlphaPremultiplied(
|
|
521
|
-
this.premultipliedColorBl = mergeColorAlphaPremultiplied(
|
|
522
|
-
this.premultipliedColorBr = mergeColorAlphaPremultiplied(
|
|
547
|
+
this.premultipliedColorTr = mergeColorAlphaPremultiplied(tr, alpha, true);
|
|
548
|
+
this.premultipliedColorBl = mergeColorAlphaPremultiplied(bl, alpha, true);
|
|
549
|
+
this.premultipliedColorBr = mergeColorAlphaPremultiplied(br, alpha, true);
|
|
523
550
|
}
|
|
524
551
|
}
|
|
552
|
+
if (updateParent === true) {
|
|
553
|
+
parent.setUpdateType(UpdateType.Children);
|
|
554
|
+
}
|
|
525
555
|
// No need to update zIndex if there is no parent
|
|
526
|
-
if (
|
|
556
|
+
if (updateType & UpdateType.CalculatedZIndex && parent !== null) {
|
|
527
557
|
this.calculateZIndex();
|
|
528
558
|
// Tell parent to re-sort children
|
|
529
559
|
parent.setUpdateType(UpdateType.ZIndexSortedChildren);
|
|
530
560
|
}
|
|
531
|
-
if (
|
|
561
|
+
if (props.strictBounds === true &&
|
|
532
562
|
this.renderState === CoreNodeRenderState.OutOfBounds) {
|
|
533
|
-
|
|
563
|
+
updateType &= ~UpdateType.RenderBounds; // remove render bounds update
|
|
534
564
|
return;
|
|
535
565
|
}
|
|
536
|
-
if (
|
|
566
|
+
if (updateType & UpdateType.RecalcUniforms &&
|
|
567
|
+
this.hasShaderUpdater === true) {
|
|
568
|
+
//this exists because the boolean hasShaderUpdater === true
|
|
569
|
+
this.shader.update();
|
|
570
|
+
}
|
|
571
|
+
if (updateType & UpdateType.Children && this.children.length > 0) {
|
|
537
572
|
for (let i = 0, length = this.children.length; i < length; i++) {
|
|
538
573
|
const child = this.children[i];
|
|
539
|
-
child.setUpdateType(
|
|
574
|
+
child.setUpdateType(childUpdateType);
|
|
540
575
|
if (child.updateType === 0) {
|
|
541
576
|
continue;
|
|
542
577
|
}
|
|
@@ -554,17 +589,21 @@ export class CoreNode extends EventEmitter {
|
|
|
554
589
|
}
|
|
555
590
|
}
|
|
556
591
|
// If the node has an RTT parent and requires a texture re-render, inform the RTT parent
|
|
557
|
-
// if (this.parentHasRenderTexture &&
|
|
592
|
+
// if (this.parentHasRenderTexture && updateType & UpdateType.RenderTexture) {
|
|
558
593
|
// @TODO have a more scoped down updateType for RTT updates
|
|
559
|
-
if (
|
|
594
|
+
if (parentHasRenderTexture === true) {
|
|
560
595
|
this.notifyParentRTTOfUpdate();
|
|
561
596
|
}
|
|
562
597
|
// Sorting children MUST happen after children have been updated so
|
|
563
598
|
// that they have the oppotunity to update their calculated zIndex.
|
|
564
|
-
if (
|
|
599
|
+
if (updateType & UpdateType.ZIndexSortedChildren) {
|
|
565
600
|
// reorder z-index
|
|
566
601
|
this.sortChildren();
|
|
567
602
|
}
|
|
603
|
+
if (this.updateTextureCoords === true) {
|
|
604
|
+
this.updateTextureCoords = false;
|
|
605
|
+
this.textureCoords = this.stage.renderer.getTextureCoords(this);
|
|
606
|
+
}
|
|
568
607
|
// If we're out of bounds, apply the render state now
|
|
569
608
|
// this is done so nodes can finish their entire update loop before
|
|
570
609
|
// being marked as out of bounds
|
|
@@ -576,7 +615,6 @@ export class CoreNode extends EventEmitter {
|
|
|
576
615
|
// notify children that we are going out of bounds
|
|
577
616
|
// we have to do this now before we stop processing the render tree
|
|
578
617
|
this.notifyChildrenRTTOfUpdate(renderState);
|
|
579
|
-
// this.childUpdateType |= UpdateType.RenderState;
|
|
580
618
|
}
|
|
581
619
|
}
|
|
582
620
|
// reset update type
|
|
@@ -590,13 +628,6 @@ export class CoreNode extends EventEmitter {
|
|
|
590
628
|
}
|
|
591
629
|
return rttNode;
|
|
592
630
|
}
|
|
593
|
-
getRTTParentRenderState() {
|
|
594
|
-
const rttNode = this.rttParent || this.findParentRTTNode();
|
|
595
|
-
if (!rttNode) {
|
|
596
|
-
return null;
|
|
597
|
-
}
|
|
598
|
-
return rttNode.renderState;
|
|
599
|
-
}
|
|
600
631
|
notifyChildrenRTTOfUpdate(renderState) {
|
|
601
632
|
for (const child of this.children) {
|
|
602
633
|
// force child to update render state
|
|
@@ -622,9 +653,6 @@ export class CoreNode extends EventEmitter {
|
|
|
622
653
|
}
|
|
623
654
|
}
|
|
624
655
|
checkRenderBounds() {
|
|
625
|
-
assertTruthy(this.renderBound);
|
|
626
|
-
assertTruthy(this.strictBound);
|
|
627
|
-
assertTruthy(this.preloadBound);
|
|
628
656
|
if (boundInsideBound(this.renderBound, this.strictBound)) {
|
|
629
657
|
return CoreNodeRenderState.InViewport;
|
|
630
658
|
}
|
|
@@ -643,22 +671,19 @@ export class CoreNode extends EventEmitter {
|
|
|
643
671
|
return CoreNodeRenderState.OutOfBounds;
|
|
644
672
|
}
|
|
645
673
|
updateBoundingRect() {
|
|
646
|
-
const transform = this.sceneGlobalTransform ||
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
if (tb === 0 || tc === 0) {
|
|
653
|
-
this.renderBound = createBound(x1, y1, x3, y3, this.renderBound);
|
|
674
|
+
const transform = (this.sceneGlobalTransform ||
|
|
675
|
+
this.globalTransform);
|
|
676
|
+
const renderCoords = (this.sceneRenderCoords ||
|
|
677
|
+
this.renderCoords);
|
|
678
|
+
if (transform.tb === 0 || transform.tc === 0) {
|
|
679
|
+
this.renderBound = createBound(renderCoords.x1, renderCoords.y1, renderCoords.x3, renderCoords.y3, this.renderBound);
|
|
654
680
|
}
|
|
655
681
|
else {
|
|
656
|
-
const {
|
|
682
|
+
const { x1, y1, x2, y2, x3, y3, x4, y4 } = renderCoords;
|
|
657
683
|
this.renderBound = createBound(Math.min(x1, x2, x3, x4), Math.min(y1, y2, y3, y4), Math.max(x1, x2, x3, x4), Math.max(y1, y2, y3, y4), this.renderBound);
|
|
658
684
|
}
|
|
659
685
|
}
|
|
660
686
|
createRenderBounds() {
|
|
661
|
-
assertTruthy(this.stage);
|
|
662
687
|
if (this.parent !== null && this.parent.strictBound !== undefined) {
|
|
663
688
|
// we have a parent with a valid bound, copy it
|
|
664
689
|
const parentBound = this.parent.strictBound;
|
|
@@ -713,7 +738,8 @@ export class CoreNode extends EventEmitter {
|
|
|
713
738
|
let newIsRenderable = false;
|
|
714
739
|
let needsTextureOwnership = false;
|
|
715
740
|
// If the node is out of bounds or has an alpha of 0, it is not renderable
|
|
716
|
-
if (this.
|
|
741
|
+
if (this.worldAlpha === 0 ||
|
|
742
|
+
this.renderState <= CoreNodeRenderState.OutOfBounds) {
|
|
717
743
|
this.updateTextureOwnership(false);
|
|
718
744
|
this.setRenderable(false);
|
|
719
745
|
return;
|
|
@@ -723,8 +749,11 @@ export class CoreNode extends EventEmitter {
|
|
|
723
749
|
// we're only renderable if the texture state is loaded
|
|
724
750
|
newIsRenderable = this.texture.state === 'loaded';
|
|
725
751
|
}
|
|
726
|
-
else if (
|
|
727
|
-
|
|
752
|
+
else if (
|
|
753
|
+
// check shader
|
|
754
|
+
(this.props.shader !== null || this.hasColorProps === true) &&
|
|
755
|
+
// check dimensions
|
|
756
|
+
(this.props.width !== 0 && this.props.height !== 0) === true) {
|
|
728
757
|
// This mean we have dimensions and a color set, so we can render a ColorTexture
|
|
729
758
|
if (this.stage.defaultTexture &&
|
|
730
759
|
this.stage.defaultTexture.state === 'loaded') {
|
|
@@ -734,23 +763,17 @@ export class CoreNode extends EventEmitter {
|
|
|
734
763
|
this.updateTextureOwnership(needsTextureOwnership);
|
|
735
764
|
this.setRenderable(newIsRenderable);
|
|
736
765
|
}
|
|
737
|
-
/**
|
|
738
|
-
* Checks if the node is renderable based on world alpha, dimensions and out of bounds status.
|
|
739
|
-
*/
|
|
740
|
-
checkBasicRenderability() {
|
|
741
|
-
if (this.worldAlpha === 0 || this.isOutOfBounds() === true) {
|
|
742
|
-
return false;
|
|
743
|
-
}
|
|
744
|
-
else {
|
|
745
|
-
return true;
|
|
746
|
-
}
|
|
747
|
-
}
|
|
748
766
|
/**
|
|
749
767
|
* Sets the renderable state and triggers changes if necessary.
|
|
750
768
|
* @param isRenderable - The new renderable state
|
|
751
769
|
*/
|
|
752
770
|
setRenderable(isRenderable) {
|
|
753
771
|
this.isRenderable = isRenderable;
|
|
772
|
+
if (isRenderable === true &&
|
|
773
|
+
this.stage.calculateTextureCoord === true &&
|
|
774
|
+
this.textureCoords === undefined) {
|
|
775
|
+
this.updateTextureCoords = true;
|
|
776
|
+
}
|
|
754
777
|
}
|
|
755
778
|
/**
|
|
756
779
|
* Changes the renderable state of the node.
|
|
@@ -758,38 +781,10 @@ export class CoreNode extends EventEmitter {
|
|
|
758
781
|
updateTextureOwnership(isRenderable) {
|
|
759
782
|
this.texture?.setRenderableOwner(this, isRenderable);
|
|
760
783
|
}
|
|
761
|
-
/**
|
|
762
|
-
* Checks if the node is out of the viewport bounds.
|
|
763
|
-
*/
|
|
764
|
-
isOutOfBounds() {
|
|
765
|
-
return this.renderState <= CoreNodeRenderState.OutOfBounds;
|
|
766
|
-
}
|
|
767
|
-
/**
|
|
768
|
-
* Checks if the node has dimensions (width/height)
|
|
769
|
-
*/
|
|
770
|
-
hasDimensions() {
|
|
771
|
-
return this.props.width !== 0 && this.props.height !== 0;
|
|
772
|
-
}
|
|
773
|
-
/**
|
|
774
|
-
* Checks if the node has any color properties set.
|
|
775
|
-
*/
|
|
776
|
-
hasColorProperties() {
|
|
777
|
-
return (this.props.color !== 0 ||
|
|
778
|
-
this.props.colorTop !== 0 ||
|
|
779
|
-
this.props.colorBottom !== 0 ||
|
|
780
|
-
this.props.colorLeft !== 0 ||
|
|
781
|
-
this.props.colorRight !== 0 ||
|
|
782
|
-
this.props.colorTl !== 0 ||
|
|
783
|
-
this.props.colorTr !== 0 ||
|
|
784
|
-
this.props.colorBl !== 0 ||
|
|
785
|
-
this.props.colorBr !== 0);
|
|
786
|
-
}
|
|
787
|
-
hasShader() {
|
|
788
|
-
return this.props.shader !== null;
|
|
789
|
-
}
|
|
790
784
|
calculateRenderCoords() {
|
|
791
785
|
const { width, height } = this;
|
|
792
|
-
const
|
|
786
|
+
const g = this.globalTransform;
|
|
787
|
+
const tx = g.tx, ty = g.ty, ta = g.ta, tb = g.tb, tc = g.tc, td = g.td;
|
|
793
788
|
if (tb === 0 && tc === 0) {
|
|
794
789
|
const minX = tx;
|
|
795
790
|
const maxX = tx + width * ta;
|
|
@@ -856,7 +851,6 @@ export class CoreNode extends EventEmitter {
|
|
|
856
851
|
* Finally, the node's parentClippingRect and clippingRect properties are updated.
|
|
857
852
|
*/
|
|
858
853
|
calculateClippingRect(parentClippingRect) {
|
|
859
|
-
assertTruthy(this.globalTransform);
|
|
860
854
|
const { clippingRect, props, globalTransform: gt } = this;
|
|
861
855
|
const { clipping } = props;
|
|
862
856
|
const isRotated = gt.tb !== 0 || gt.tc !== 0;
|
|
@@ -897,70 +891,62 @@ export class CoreNode extends EventEmitter {
|
|
|
897
891
|
if (this.destroyed === true) {
|
|
898
892
|
return;
|
|
899
893
|
}
|
|
894
|
+
this.removeAllListeners();
|
|
900
895
|
this.destroyed = true;
|
|
901
896
|
this.unloadTexture();
|
|
902
|
-
this.clippingRect.valid = false;
|
|
903
897
|
this.isRenderable = false;
|
|
904
|
-
|
|
905
|
-
this.renderBound = undefined;
|
|
906
|
-
this.strictBound = undefined;
|
|
907
|
-
this.preloadBound = undefined;
|
|
908
|
-
this.globalTransform = undefined;
|
|
909
|
-
this.scaleRotateTransform = undefined;
|
|
910
|
-
this.localTransform = undefined;
|
|
911
|
-
this.props.texture = null;
|
|
912
|
-
this.props.shader = this.stage.defShaderCtr;
|
|
898
|
+
// Kill children
|
|
913
899
|
while (this.children.length > 0) {
|
|
914
|
-
this.children[0]
|
|
900
|
+
this.children[0].destroy();
|
|
915
901
|
}
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
902
|
+
const parent = this.parent;
|
|
903
|
+
if (parent !== null) {
|
|
904
|
+
const index = parent.children.indexOf(this);
|
|
905
|
+
parent.children.splice(index, 1);
|
|
906
|
+
parent.setUpdateType(UpdateType.Children | UpdateType.ZIndexSortedChildren);
|
|
907
|
+
}
|
|
908
|
+
this.props.parent = null;
|
|
909
|
+
this.props.texture = null;
|
|
910
|
+
if (this.rtt === true) {
|
|
919
911
|
this.stage.renderer.removeRTTNode(this);
|
|
920
912
|
}
|
|
921
|
-
this.removeAllListeners();
|
|
922
913
|
}
|
|
923
914
|
renderQuads(renderer) {
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
if (!renderer.renderToTextureActive) {
|
|
928
|
-
return;
|
|
929
|
-
}
|
|
930
|
-
// Prevent quad rendering if parent render texture is not the active render texture
|
|
931
|
-
if (this.parentRenderTexture !== renderer.activeRttNode) {
|
|
915
|
+
if (this.parentHasRenderTexture === true) {
|
|
916
|
+
const rtt = renderer.renderToTextureActive;
|
|
917
|
+
if (rtt === false || this.parentRenderTexture !== renderer.activeRttNode)
|
|
932
918
|
return;
|
|
933
|
-
}
|
|
934
919
|
}
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
920
|
+
const p = this.props;
|
|
921
|
+
const t = this.globalTransform;
|
|
922
|
+
const coords = this.renderCoords;
|
|
923
|
+
const texture = p.texture || this.stage.defaultTexture;
|
|
938
924
|
renderer.addQuad({
|
|
939
|
-
width:
|
|
940
|
-
height:
|
|
925
|
+
width: p.width,
|
|
926
|
+
height: p.height,
|
|
941
927
|
colorTl: this.premultipliedColorTl,
|
|
942
928
|
colorTr: this.premultipliedColorTr,
|
|
943
929
|
colorBl: this.premultipliedColorBl,
|
|
944
930
|
colorBr: this.premultipliedColorBr,
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
zIndex: this.zIndex,
|
|
950
|
-
shader: this.shader.shader,
|
|
951
|
-
shaderProps: this.shader.getResolvedProps(),
|
|
931
|
+
texture,
|
|
932
|
+
textureOptions: p.textureOptions,
|
|
933
|
+
textureCoords: this.textureCoords,
|
|
934
|
+
shader: p.shader,
|
|
952
935
|
alpha: this.worldAlpha,
|
|
953
936
|
clippingRect: this.clippingRect,
|
|
954
|
-
tx:
|
|
955
|
-
ty:
|
|
956
|
-
ta:
|
|
957
|
-
tb:
|
|
958
|
-
tc:
|
|
959
|
-
td:
|
|
960
|
-
renderCoords:
|
|
961
|
-
rtt:
|
|
937
|
+
tx: t.tx,
|
|
938
|
+
ty: t.ty,
|
|
939
|
+
ta: t.ta,
|
|
940
|
+
tb: t.tb,
|
|
941
|
+
tc: t.tc,
|
|
942
|
+
td: t.td,
|
|
943
|
+
renderCoords: coords,
|
|
944
|
+
rtt: p.rtt,
|
|
945
|
+
zIndex: this.calcZIndex,
|
|
962
946
|
parentHasRenderTexture: this.parentHasRenderTexture,
|
|
963
|
-
framebufferDimensions: this.
|
|
947
|
+
framebufferDimensions: this.parentHasRenderTexture
|
|
948
|
+
? this.parentFramebufferDimensions
|
|
949
|
+
: null,
|
|
964
950
|
});
|
|
965
951
|
}
|
|
966
952
|
//#region Properties
|
|
@@ -1006,13 +992,12 @@ export class CoreNode extends EventEmitter {
|
|
|
1006
992
|
}
|
|
1007
993
|
set width(value) {
|
|
1008
994
|
if (this.props.width !== value) {
|
|
995
|
+
this.textureCoords = undefined;
|
|
1009
996
|
this.props.width = value;
|
|
1010
997
|
this.setUpdateType(UpdateType.Local);
|
|
1011
|
-
if (this.props.rtt) {
|
|
1012
|
-
this.
|
|
1013
|
-
|
|
1014
|
-
height: this.height,
|
|
1015
|
-
});
|
|
998
|
+
if (this.props.rtt === true) {
|
|
999
|
+
this.framebufferDimensions.width = value;
|
|
1000
|
+
this.texture = this.stage.txManager.createTexture('RenderTexture', this.framebufferDimensions);
|
|
1016
1001
|
this.setUpdateType(UpdateType.RenderTexture);
|
|
1017
1002
|
}
|
|
1018
1003
|
}
|
|
@@ -1022,13 +1007,12 @@ export class CoreNode extends EventEmitter {
|
|
|
1022
1007
|
}
|
|
1023
1008
|
set height(value) {
|
|
1024
1009
|
if (this.props.height !== value) {
|
|
1010
|
+
this.textureCoords = undefined;
|
|
1025
1011
|
this.props.height = value;
|
|
1026
1012
|
this.setUpdateType(UpdateType.Local);
|
|
1027
|
-
if (this.props.rtt) {
|
|
1028
|
-
this.
|
|
1029
|
-
|
|
1030
|
-
height: this.height,
|
|
1031
|
-
});
|
|
1013
|
+
if (this.props.rtt === true) {
|
|
1014
|
+
this.framebufferDimensions.height = value;
|
|
1015
|
+
this.texture = this.stage.txManager.createTexture('RenderTexture', this.framebufferDimensions);
|
|
1032
1016
|
this.setUpdateType(UpdateType.RenderTexture);
|
|
1033
1017
|
}
|
|
1034
1018
|
}
|
|
@@ -1050,7 +1034,7 @@ export class CoreNode extends EventEmitter {
|
|
|
1050
1034
|
set scaleX(value) {
|
|
1051
1035
|
if (this.props.scaleX !== value) {
|
|
1052
1036
|
this.props.scaleX = value;
|
|
1053
|
-
this.setUpdateType(UpdateType.
|
|
1037
|
+
this.setUpdateType(UpdateType.Local);
|
|
1054
1038
|
}
|
|
1055
1039
|
}
|
|
1056
1040
|
get scaleY() {
|
|
@@ -1059,7 +1043,7 @@ export class CoreNode extends EventEmitter {
|
|
|
1059
1043
|
set scaleY(value) {
|
|
1060
1044
|
if (this.props.scaleY !== value) {
|
|
1061
1045
|
this.props.scaleY = value;
|
|
1062
|
-
this.setUpdateType(UpdateType.
|
|
1046
|
+
this.setUpdateType(UpdateType.Local);
|
|
1063
1047
|
}
|
|
1064
1048
|
}
|
|
1065
1049
|
get mount() {
|
|
@@ -1126,7 +1110,7 @@ export class CoreNode extends EventEmitter {
|
|
|
1126
1110
|
set rotation(value) {
|
|
1127
1111
|
if (this.props.rotation !== value) {
|
|
1128
1112
|
this.props.rotation = value;
|
|
1129
|
-
this.setUpdateType(UpdateType.
|
|
1113
|
+
this.setUpdateType(UpdateType.Local);
|
|
1130
1114
|
}
|
|
1131
1115
|
}
|
|
1132
1116
|
get alpha() {
|
|
@@ -1147,9 +1131,18 @@ export class CoreNode extends EventEmitter {
|
|
|
1147
1131
|
this.props.autosize = value;
|
|
1148
1132
|
}
|
|
1149
1133
|
get boundsMargin() {
|
|
1150
|
-
|
|
1151
|
-
|
|
1152
|
-
|
|
1134
|
+
const props = this.props;
|
|
1135
|
+
if (props.boundsMargin !== null) {
|
|
1136
|
+
return props.boundsMargin;
|
|
1137
|
+
}
|
|
1138
|
+
const parent = this.parent;
|
|
1139
|
+
if (parent !== null) {
|
|
1140
|
+
const margin = parent.boundsMargin;
|
|
1141
|
+
if (margin !== undefined) {
|
|
1142
|
+
return margin;
|
|
1143
|
+
}
|
|
1144
|
+
}
|
|
1145
|
+
return this.stage.boundsMargin;
|
|
1153
1146
|
}
|
|
1154
1147
|
set boundsMargin(value) {
|
|
1155
1148
|
if (value === this.props.boundsMargin) {
|
|
@@ -1178,11 +1171,20 @@ export class CoreNode extends EventEmitter {
|
|
|
1178
1171
|
return this.props.color;
|
|
1179
1172
|
}
|
|
1180
1173
|
set color(value) {
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
|
|
1174
|
+
const p = this.props;
|
|
1175
|
+
if (p.color === value)
|
|
1176
|
+
return;
|
|
1177
|
+
p.color = value;
|
|
1178
|
+
const has = value > 0;
|
|
1179
|
+
this.hasColorProps = has;
|
|
1180
|
+
if (p.colorTop !== value)
|
|
1181
|
+
this.colorTop = value;
|
|
1182
|
+
if (p.colorBottom !== value)
|
|
1183
|
+
this.colorBottom = value;
|
|
1184
|
+
if (p.colorLeft !== value)
|
|
1185
|
+
this.colorLeft = value;
|
|
1186
|
+
if (p.colorRight !== value)
|
|
1187
|
+
this.colorRight = value;
|
|
1186
1188
|
this.setUpdateType(UpdateType.PremultipliedColors);
|
|
1187
1189
|
}
|
|
1188
1190
|
get colorTop() {
|
|
@@ -1194,6 +1196,7 @@ export class CoreNode extends EventEmitter {
|
|
|
1194
1196
|
this.colorTr = value;
|
|
1195
1197
|
}
|
|
1196
1198
|
this.props.colorTop = value;
|
|
1199
|
+
this.hasColorProps = value > 0;
|
|
1197
1200
|
this.setUpdateType(UpdateType.PremultipliedColors);
|
|
1198
1201
|
}
|
|
1199
1202
|
get colorBottom() {
|
|
@@ -1205,6 +1208,7 @@ export class CoreNode extends EventEmitter {
|
|
|
1205
1208
|
this.colorBr = value;
|
|
1206
1209
|
}
|
|
1207
1210
|
this.props.colorBottom = value;
|
|
1211
|
+
this.hasColorProps = value > 0;
|
|
1208
1212
|
this.setUpdateType(UpdateType.PremultipliedColors);
|
|
1209
1213
|
}
|
|
1210
1214
|
get colorLeft() {
|
|
@@ -1216,6 +1220,7 @@ export class CoreNode extends EventEmitter {
|
|
|
1216
1220
|
this.colorBl = value;
|
|
1217
1221
|
}
|
|
1218
1222
|
this.props.colorLeft = value;
|
|
1223
|
+
this.hasColorProps = value > 0;
|
|
1219
1224
|
this.setUpdateType(UpdateType.PremultipliedColors);
|
|
1220
1225
|
}
|
|
1221
1226
|
get colorRight() {
|
|
@@ -1227,6 +1232,7 @@ export class CoreNode extends EventEmitter {
|
|
|
1227
1232
|
this.colorBr = value;
|
|
1228
1233
|
}
|
|
1229
1234
|
this.props.colorRight = value;
|
|
1235
|
+
this.hasColorProps = value > 0;
|
|
1230
1236
|
this.setUpdateType(UpdateType.PremultipliedColors);
|
|
1231
1237
|
}
|
|
1232
1238
|
get colorTl() {
|
|
@@ -1234,6 +1240,7 @@ export class CoreNode extends EventEmitter {
|
|
|
1234
1240
|
}
|
|
1235
1241
|
set colorTl(value) {
|
|
1236
1242
|
this.props.colorTl = value;
|
|
1243
|
+
this.hasColorProps = value > 0;
|
|
1237
1244
|
this.setUpdateType(UpdateType.PremultipliedColors);
|
|
1238
1245
|
}
|
|
1239
1246
|
get colorTr() {
|
|
@@ -1241,6 +1248,7 @@ export class CoreNode extends EventEmitter {
|
|
|
1241
1248
|
}
|
|
1242
1249
|
set colorTr(value) {
|
|
1243
1250
|
this.props.colorTr = value;
|
|
1251
|
+
this.hasColorProps = value > 0;
|
|
1244
1252
|
this.setUpdateType(UpdateType.PremultipliedColors);
|
|
1245
1253
|
}
|
|
1246
1254
|
get colorBl() {
|
|
@@ -1248,6 +1256,7 @@ export class CoreNode extends EventEmitter {
|
|
|
1248
1256
|
}
|
|
1249
1257
|
set colorBl(value) {
|
|
1250
1258
|
this.props.colorBl = value;
|
|
1259
|
+
this.hasColorProps = value > 0;
|
|
1251
1260
|
this.setUpdateType(UpdateType.PremultipliedColors);
|
|
1252
1261
|
}
|
|
1253
1262
|
get colorBr() {
|
|
@@ -1255,6 +1264,7 @@ export class CoreNode extends EventEmitter {
|
|
|
1255
1264
|
}
|
|
1256
1265
|
set colorBr(value) {
|
|
1257
1266
|
this.props.colorBr = value;
|
|
1267
|
+
this.hasColorProps = value > 0;
|
|
1258
1268
|
this.setUpdateType(UpdateType.PremultipliedColors);
|
|
1259
1269
|
}
|
|
1260
1270
|
// we're only interested in parent zIndex to test
|
|
@@ -1290,7 +1300,6 @@ export class CoreNode extends EventEmitter {
|
|
|
1290
1300
|
this.props.parent = newParent;
|
|
1291
1301
|
if (oldParent) {
|
|
1292
1302
|
const index = oldParent.children.indexOf(this);
|
|
1293
|
-
assertTruthy(index !== -1, "CoreNode.parent: Node not found in old parent's children!");
|
|
1294
1303
|
oldParent.children.splice(index, 1);
|
|
1295
1304
|
oldParent.setUpdateType(UpdateType.Children | UpdateType.ZIndexSortedChildren);
|
|
1296
1305
|
}
|
|
@@ -1305,19 +1314,9 @@ export class CoreNode extends EventEmitter {
|
|
|
1305
1314
|
this.applyRTTInheritance(newParent);
|
|
1306
1315
|
}
|
|
1307
1316
|
}
|
|
1308
|
-
this.updateScaleRotateTransform();
|
|
1309
1317
|
// fetch render bounds from parent
|
|
1310
1318
|
this.setUpdateType(UpdateType.RenderBounds | UpdateType.Children);
|
|
1311
1319
|
}
|
|
1312
|
-
get preventCleanup() {
|
|
1313
|
-
return this.props.textureOptions.preventCleanup || false;
|
|
1314
|
-
}
|
|
1315
|
-
set preventCleanup(value) {
|
|
1316
|
-
if (isProductionEnvironment() === false) {
|
|
1317
|
-
console.warn('CoreNode.preventCleanup: Is deprecated and will be removed in upcoming release, please use textureOptions.preventCleanup instead');
|
|
1318
|
-
}
|
|
1319
|
-
this.props.textureOptions.preventCleanup = value;
|
|
1320
|
-
}
|
|
1321
1320
|
get rtt() {
|
|
1322
1321
|
return this.props.rtt;
|
|
1323
1322
|
}
|
|
@@ -1339,10 +1338,11 @@ export class CoreNode extends EventEmitter {
|
|
|
1339
1338
|
}
|
|
1340
1339
|
}
|
|
1341
1340
|
initRenderTexture() {
|
|
1342
|
-
this.
|
|
1341
|
+
this.framebufferDimensions = {
|
|
1343
1342
|
width: this.width,
|
|
1344
1343
|
height: this.height,
|
|
1345
|
-
}
|
|
1344
|
+
};
|
|
1345
|
+
this.texture = this.stage.txManager.createTexture('RenderTexture', this.framebufferDimensions);
|
|
1346
1346
|
this.stage.renderer.renderToTexture(this);
|
|
1347
1347
|
}
|
|
1348
1348
|
cleanupRenderTexture() {
|
|
@@ -1350,6 +1350,7 @@ export class CoreNode extends EventEmitter {
|
|
|
1350
1350
|
this.clearRTTInheritance();
|
|
1351
1351
|
this.hasRTTupdates = false;
|
|
1352
1352
|
this.texture = null;
|
|
1353
|
+
this.framebufferDimensions = null;
|
|
1353
1354
|
}
|
|
1354
1355
|
markChildrenWithRTT(node = null) {
|
|
1355
1356
|
const parent = node || this;
|
|
@@ -1386,12 +1387,22 @@ export class CoreNode extends EventEmitter {
|
|
|
1386
1387
|
get shader() {
|
|
1387
1388
|
return this.props.shader;
|
|
1388
1389
|
}
|
|
1389
|
-
set shader(
|
|
1390
|
-
if (this.props.shader ===
|
|
1390
|
+
set shader(shader) {
|
|
1391
|
+
if (this.props.shader === shader) {
|
|
1391
1392
|
return;
|
|
1392
1393
|
}
|
|
1393
|
-
|
|
1394
|
-
|
|
1394
|
+
if (shader === null) {
|
|
1395
|
+
this.hasShaderUpdater = false;
|
|
1396
|
+
this.props.shader = this.stage.defShaderNode;
|
|
1397
|
+
this.setUpdateType(UpdateType.IsRenderable);
|
|
1398
|
+
return;
|
|
1399
|
+
}
|
|
1400
|
+
if (shader.shaderKey !== 'default') {
|
|
1401
|
+
this.hasShaderUpdater = shader.update !== undefined;
|
|
1402
|
+
shader.attachNode(this);
|
|
1403
|
+
}
|
|
1404
|
+
this.props.shader = shader;
|
|
1405
|
+
this.setUpdateType(UpdateType.IsRenderable | UpdateType.RecalcUniforms);
|
|
1395
1406
|
}
|
|
1396
1407
|
get src() {
|
|
1397
1408
|
return this.props.src;
|
|
@@ -1450,16 +1461,14 @@ export class CoreNode extends EventEmitter {
|
|
|
1450
1461
|
this.props.srcY = value;
|
|
1451
1462
|
}
|
|
1452
1463
|
/**
|
|
1453
|
-
* Returns the framebuffer dimensions of the
|
|
1454
|
-
* If the node has a render texture, the dimensions are the same as the node's dimensions.
|
|
1455
|
-
* If the node does not have a render texture, the dimensions are inherited from the parent.
|
|
1456
|
-
* If the node parent has a render texture and the node is a render texture, the nodes dimensions are used.
|
|
1464
|
+
* Returns the framebuffer dimensions of the RTT parent
|
|
1457
1465
|
*/
|
|
1458
|
-
get
|
|
1459
|
-
if (this.
|
|
1460
|
-
return this.
|
|
1466
|
+
get parentFramebufferDimensions() {
|
|
1467
|
+
if (this.rttParent !== null) {
|
|
1468
|
+
return this.rttParent.framebufferDimensions;
|
|
1461
1469
|
}
|
|
1462
|
-
|
|
1470
|
+
this.rttParent = this.findParentRTTNode();
|
|
1471
|
+
return this.rttParent.framebufferDimensions;
|
|
1463
1472
|
}
|
|
1464
1473
|
/**
|
|
1465
1474
|
* Returns the parent render texture node if it exists.
|
|
@@ -1483,9 +1492,9 @@ export class CoreNode extends EventEmitter {
|
|
|
1483
1492
|
}
|
|
1484
1493
|
const oldTexture = this.props.texture;
|
|
1485
1494
|
if (oldTexture) {
|
|
1486
|
-
oldTexture.setRenderableOwner(this, false);
|
|
1487
1495
|
this.unloadTexture();
|
|
1488
1496
|
}
|
|
1497
|
+
this.textureCoords = undefined;
|
|
1489
1498
|
this.props.texture = value;
|
|
1490
1499
|
if (value !== null) {
|
|
1491
1500
|
value.setRenderableOwner(this, this.isRenderable);
|
|
@@ -1499,6 +1508,20 @@ export class CoreNode extends EventEmitter {
|
|
|
1499
1508
|
get textureOptions() {
|
|
1500
1509
|
return this.props.textureOptions;
|
|
1501
1510
|
}
|
|
1511
|
+
set interactive(value) {
|
|
1512
|
+
this.props.interactive = value;
|
|
1513
|
+
// Update Stage's interactive Set
|
|
1514
|
+
if (value === true) {
|
|
1515
|
+
this.stage.interactiveNodes.add(this);
|
|
1516
|
+
}
|
|
1517
|
+
}
|
|
1518
|
+
get interactive() {
|
|
1519
|
+
return this.props.interactive;
|
|
1520
|
+
}
|
|
1521
|
+
setRTTUpdates(type) {
|
|
1522
|
+
this.hasRTTupdates = true;
|
|
1523
|
+
this.parent?.setRTTUpdates(type);
|
|
1524
|
+
}
|
|
1502
1525
|
get strictBounds() {
|
|
1503
1526
|
return this.props.strictBounds;
|
|
1504
1527
|
}
|
|
@@ -1510,16 +1533,6 @@ export class CoreNode extends EventEmitter {
|
|
|
1510
1533
|
this.setUpdateType(UpdateType.RenderBounds | UpdateType.Children);
|
|
1511
1534
|
this.childUpdateType |= UpdateType.RenderBounds | UpdateType.Children;
|
|
1512
1535
|
}
|
|
1513
|
-
set interactive(value) {
|
|
1514
|
-
this.props.interactive = value;
|
|
1515
|
-
// Update Stage's interactive Set
|
|
1516
|
-
if (value === true) {
|
|
1517
|
-
this.stage.interactiveNodes.add(this);
|
|
1518
|
-
}
|
|
1519
|
-
}
|
|
1520
|
-
get interactive() {
|
|
1521
|
-
return this.props.interactive;
|
|
1522
|
-
}
|
|
1523
1536
|
animate(props, settings) {
|
|
1524
1537
|
const animation = new CoreAnimation(this, props, settings);
|
|
1525
1538
|
const controller = new CoreAnimationController(this.stage.animationManager, animation);
|