@lightningjs/renderer 3.0.0-beta1 → 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 +1 -1
- package/dist/exports/canvas.js +1 -1
- package/dist/exports/canvas.js.map +1 -1
- package/dist/exports/index.d.ts +1 -5
- package/dist/exports/index.js +1 -5
- 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 +2 -1
- package/dist/exports/webgl.js +2 -1
- package/dist/exports/webgl.js.map +1 -1
- package/dist/src/core/CoreNode.d.ts +45 -69
- package/dist/src/core/CoreNode.js +323 -305
- package/dist/src/core/CoreNode.js.map +1 -1
- package/dist/src/core/CoreShaderManager.d.ts +3 -5
- 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 +9 -11
- package/dist/src/core/CoreTextureManager.js +80 -91
- package/dist/src/core/CoreTextureManager.js.map +1 -1
- package/dist/src/core/Stage.d.ts +75 -31
- package/dist/src/core/Stage.js +270 -136
- package/dist/src/core/Stage.js.map +1 -1
- package/dist/src/core/TextureMemoryManager.d.ts +10 -1
- package/dist/src/core/TextureMemoryManager.js +112 -78
- package/dist/src/core/TextureMemoryManager.js.map +1 -1
- package/dist/src/core/animations/CoreAnimation.js +5 -0
- package/dist/src/core/animations/CoreAnimation.js.map +1 -1
- package/dist/src/core/animations/CoreAnimationController.d.ts +1 -0
- package/dist/src/core/animations/CoreAnimationController.js +11 -4
- package/dist/src/core/animations/CoreAnimationController.js.map +1 -1
- package/dist/src/core/lib/ImageWorker.js +3 -2
- 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 +51 -2
- package/dist/src/core/lib/WebGlContextWrapper.js +92 -22
- 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/utils.d.ts +3 -0
- package/dist/src/core/lib/utils.js +42 -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/Platform.d.ts +37 -0
- package/dist/src/{main-api/IRenderDriver.js → core/platforms/Platform.js} +4 -2
- package/dist/src/core/platforms/Platform.js.map +1 -0
- package/dist/src/core/platforms/web/WebPlatform.d.ts +9 -0
- package/dist/src/core/platforms/web/WebPlatform.js +84 -0
- package/dist/src/core/platforms/web/WebPlatform.js.map +1 -0
- package/dist/src/core/renderers/CoreContextTexture.d.ts +1 -1
- package/dist/src/core/renderers/CoreRenderer.d.ts +5 -2
- package/dist/src/core/renderers/CoreRenderer.js.map +1 -1
- package/dist/src/core/renderers/CoreShaderNode.d.ts +3 -3
- package/dist/src/core/renderers/CoreShaderNode.js +8 -2
- package/dist/src/core/renderers/CoreShaderNode.js.map +1 -1
- package/dist/src/core/renderers/canvas/CanvasRenderer.d.ts +1 -2
- package/dist/src/core/renderers/canvas/CanvasRenderer.js +10 -21
- package/dist/src/core/renderers/canvas/CanvasRenderer.js.map +1 -1
- package/dist/src/core/renderers/canvas/CanvasShaderNode.js +3 -5
- 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 +11 -9
- package/dist/src/core/renderers/canvas/CanvasTexture.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 -21
- package/dist/src/core/renderers/webgl/WebGlCtxTexture.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlRenderOp.d.ts +10 -2
- package/dist/src/core/renderers/webgl/WebGlRenderOp.js +37 -19
- package/dist/src/core/renderers/webgl/WebGlRenderOp.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlRenderer.d.ts +5 -3
- package/dist/src/core/renderers/webgl/WebGlRenderer.js +144 -117
- package/dist/src/core/renderers/webgl/WebGlRenderer.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlShaderNode.d.ts +2 -1
- package/dist/src/core/renderers/webgl/WebGlShaderNode.js +1 -4
- package/dist/src/core/renderers/webgl/WebGlShaderNode.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlShaderProgram.d.ts +5 -3
- package/dist/src/core/renderers/webgl/WebGlShaderProgram.js +55 -31
- package/dist/src/core/renderers/webgl/WebGlShaderProgram.js.map +1 -1
- package/dist/src/core/renderers/webgl/internal/ShaderUtils.js +35 -35
- 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/canvas/LinearGradient.js +5 -3
- package/dist/src/core/shaders/canvas/LinearGradient.js.map +1 -1
- package/dist/src/core/shaders/canvas/RadialGradient.js +13 -11
- package/dist/src/core/shaders/canvas/RadialGradient.js.map +1 -1
- package/dist/src/core/shaders/canvas/RoundedWithBorder.js +14 -6
- package/dist/src/core/shaders/canvas/RoundedWithBorder.js.map +1 -1
- package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js +10 -8
- package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js.map +1 -1
- package/dist/src/core/shaders/canvas/RoundedWithShadow.js +7 -5
- package/dist/src/core/shaders/canvas/RoundedWithShadow.js.map +1 -1
- package/dist/src/core/shaders/templates/BorderTemplate.d.ts +1 -1
- package/dist/src/core/shaders/templates/BorderTemplate.js +1 -1
- package/dist/src/core/shaders/templates/BorderTemplate.js.map +1 -1
- package/dist/src/core/shaders/templates/HolePunchTemplate.js +1 -1
- package/dist/src/core/shaders/templates/HolePunchTemplate.js.map +1 -1
- package/dist/src/core/shaders/templates/RoundedTemplate.js +1 -1
- package/dist/src/core/shaders/templates/RoundedTemplate.js.map +1 -1
- package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.d.ts +1 -1
- package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.d.ts +1 -1
- package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.d.ts +1 -1
- package/dist/src/core/shaders/templates/ShadowTemplate.d.ts +1 -1
- package/dist/src/core/shaders/{templates/shaderUtils.d.ts → utils.d.ts} +1 -1
- package/dist/src/core/shaders/{templates/shaderUtils.js → utils.js} +2 -2
- package/dist/src/core/shaders/utils.js.map +1 -0
- package/dist/src/core/shaders/webgl/Border.js +86 -63
- package/dist/src/core/shaders/webgl/Border.js.map +1 -1
- 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 +36 -35
- package/dist/src/core/shaders/webgl/HolePunch.js.map +1 -1
- package/dist/src/core/shaders/webgl/LinearGradient.js +41 -40
- package/dist/src/core/shaders/webgl/LinearGradient.js.map +1 -1
- package/dist/src/core/shaders/webgl/RadialGradient.js +39 -38
- package/dist/src/core/shaders/webgl/RadialGradient.js.map +1 -1
- package/dist/src/core/shaders/webgl/Rounded.js +71 -71
- package/dist/src/core/shaders/webgl/RoundedWithBorder.js +115 -72
- package/dist/src/core/shaders/webgl/RoundedWithBorder.js.map +1 -1
- package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js +138 -88
- package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js.map +1 -1
- package/dist/src/core/shaders/webgl/RoundedWithShadow.js +54 -54
- package/dist/src/core/shaders/webgl/SdfShader.js +63 -63
- package/dist/src/core/shaders/webgl/SdfShader.js.map +1 -1
- package/dist/src/core/shaders/webgl/Shadow.js +83 -83
- package/dist/src/core/text-rendering/CanvasFontHandler.d.ts +25 -0
- package/dist/src/core/text-rendering/CanvasFontHandler.js +130 -0
- package/dist/src/core/text-rendering/CanvasFontHandler.js.map +1 -0
- package/dist/src/core/text-rendering/CanvasTextRenderer.d.ts +22 -0
- package/dist/src/core/text-rendering/CanvasTextRenderer.js +366 -0
- package/dist/src/core/text-rendering/CanvasTextRenderer.js.map +1 -0
- package/dist/src/core/text-rendering/SdfFontHandler.d.ts +137 -0
- package/dist/src/core/text-rendering/SdfFontHandler.js +336 -0
- package/dist/src/core/text-rendering/SdfFontHandler.js.map +1 -0
- package/dist/src/core/text-rendering/SdfTextRenderer.d.ts +17 -0
- package/dist/src/core/text-rendering/SdfTextRenderer.js +355 -0
- package/dist/src/core/text-rendering/SdfTextRenderer.js.map +1 -0
- package/dist/src/core/text-rendering/TextRenderer.d.ts +349 -0
- package/dist/src/{main-api/ICoreDriver.js → core/text-rendering/TextRenderer.js} +1 -1
- package/dist/src/core/text-rendering/TextRenderer.js.map +1 -0
- package/dist/src/core/text-rendering/Utils.d.ts +71 -0
- package/dist/src/core/text-rendering/Utils.js +212 -0
- package/dist/src/core/text-rendering/Utils.js.map +1 -0
- package/dist/src/core/text-rendering/canvas/Settings.d.ts +64 -0
- package/dist/src/core/{renderers/CoreShader.js → text-rendering/canvas/Settings.js} +3 -11
- package/dist/src/core/text-rendering/canvas/Settings.js.map +1 -0
- package/dist/src/core/text-rendering/canvas/Utils.d.ts +20 -0
- package/dist/src/core/text-rendering/canvas/Utils.js +144 -0
- package/dist/src/core/text-rendering/canvas/Utils.js.map +1 -0
- package/dist/src/core/text-rendering/canvas/calculateRenderInfo.d.ts +60 -0
- package/dist/src/core/text-rendering/canvas/calculateRenderInfo.js +183 -0
- package/dist/src/core/text-rendering/canvas/calculateRenderInfo.js.map +1 -0
- package/dist/src/core/text-rendering/canvas/draw.d.ts +5 -0
- package/dist/src/core/text-rendering/canvas/draw.js +132 -0
- package/dist/src/core/text-rendering/canvas/draw.js.map +1 -0
- 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 +1 -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.js +9 -54
- 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 +13 -0
- 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/dist/src/{main-api/texture-usage-trackers/TextureUsageTracker.js → core/text-rendering/sdf/index.js} +3 -11
- package/dist/src/core/text-rendering/sdf/index.js.map +1 -0
- package/dist/src/core/textures/ImageTexture.d.ts +4 -3
- package/dist/src/core/textures/ImageTexture.js +36 -9
- package/dist/src/core/textures/ImageTexture.js.map +1 -1
- package/dist/src/core/textures/Texture.d.ts +21 -2
- package/dist/src/core/textures/Texture.js +37 -6
- package/dist/src/core/textures/Texture.js.map +1 -1
- package/dist/src/core/utils.d.ts +1 -1
- package/dist/src/main-api/INode.d.ts +2 -2
- 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 +122 -46
- package/dist/src/main-api/Renderer.js +174 -37
- package/dist/src/main-api/Renderer.js.map +1 -1
- package/dist/src/utils.d.ts +1 -6
- package/dist/src/utils.js +2 -9
- package/dist/src/utils.js.map +1 -1
- package/dist/tsconfig.dist.tsbuildinfo +1 -1
- package/exports/canvas-shaders.ts +28 -28
- package/exports/canvas.ts +45 -45
- package/exports/index.ts +82 -89
- package/exports/inspector.ts +24 -24
- package/exports/utils.ts +50 -44
- package/exports/webgl-shaders.ts +28 -28
- package/exports/webgl.ts +52 -50
- package/package.json +2 -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 -203
- package/src/core/CoreNode.ts +2491 -2476
- package/src/core/CoreShaderManager.ts +188 -193
- package/src/core/CoreTextNode.ts +443 -448
- package/src/core/CoreTextureManager.ts +565 -597
- package/src/core/Stage.ts +906 -740
- package/src/core/TextureMemoryManager.ts +445 -395
- package/src/core/animations/AnimationManager.ts +38 -38
- package/src/core/animations/CoreAnimation.ts +291 -284
- package/src/core/animations/CoreAnimationController.ts +166 -157
- package/src/core/lib/ContextSpy.ts +41 -41
- package/src/core/lib/ImageWorker.ts +286 -279
- package/src/core/lib/Matrix3d.ts +244 -244
- package/src/core/lib/RenderCoords.ts +71 -86
- package/src/core/lib/WebGlContextWrapper.ts +1381 -1324
- package/src/core/lib/colorCache.ts +20 -0
- package/src/core/{renderers/canvas/internal/ColorUtils.ts → lib/colorParser.ts} +85 -85
- package/src/core/lib/textureCompression.ts +152 -152
- package/src/core/lib/textureSvg.ts +78 -78
- package/src/core/lib/utils.ts +412 -361
- 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 -107
- package/src/core/renderers/CoreShaderNode.ts +175 -171
- package/src/core/renderers/CoreShaderProgram.ts +23 -23
- package/src/core/renderers/canvas/CanvasRenderer.ts +283 -299
- package/src/core/renderers/canvas/CanvasShaderNode.ts +96 -99
- package/src/core/renderers/canvas/CanvasTexture.ts +156 -153
- package/src/core/renderers/webgl/WebGlCtxRenderTexture.ts +91 -86
- package/src/core/renderers/webgl/WebGlCtxSubTexture.ts +50 -50
- package/src/core/renderers/webgl/WebGlCtxTexture.ts +310 -301
- package/src/core/renderers/webgl/WebGlRenderOp.ts +167 -145
- package/src/core/renderers/webgl/WebGlRenderer.ts +747 -715
- package/src/core/renderers/webgl/WebGlShaderNode.ts +435 -433
- package/src/core/renderers/webgl/WebGlShaderProgram.ts +341 -310
- 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 -281
- package/src/core/renderers/webgl/internal/WebGlUtils.ts +35 -35
- package/src/core/shaders/canvas/Border.ts +75 -78
- package/src/core/shaders/canvas/HolePunch.ts +62 -62
- package/src/core/shaders/canvas/LinearGradient.ts +71 -69
- package/src/core/shaders/canvas/RadialGradient.ts +99 -113
- package/src/core/shaders/canvas/Rounded.ts +55 -55
- package/src/core/shaders/canvas/RoundedWithBorder.ts +74 -68
- package/src/core/shaders/canvas/RoundedWithBorderAndShadow.ts +90 -88
- package/src/core/shaders/canvas/RoundedWithShadow.ts +70 -69
- package/src/core/shaders/canvas/Shadow.ts +52 -52
- package/src/core/shaders/canvas/utils/render.ts +151 -151
- package/src/core/shaders/templates/BorderTemplate.ts +115 -115
- package/src/core/shaders/templates/HolePunchTemplate.ts +82 -82
- package/src/core/shaders/templates/LinearGradientTemplate.ts +71 -71
- package/src/core/shaders/templates/RadialGradientTemplate.ts +81 -81
- package/src/core/shaders/templates/RoundedTemplate.ts +98 -98
- package/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.ts +38 -38
- package/src/core/shaders/templates/RoundedWithBorderTemplate.ts +35 -35
- package/src/core/shaders/templates/RoundedWithShadowTemplate.ts +35 -35
- package/src/core/shaders/templates/ShadowTemplate.ts +106 -106
- package/src/core/shaders/{templates/shaderUtils.ts → utils.ts} +46 -47
- package/src/core/shaders/webgl/Border.ts +116 -96
- package/src/core/shaders/webgl/Default.ts +89 -89
- package/src/core/shaders/webgl/DefaultBatched.ts +129 -129
- package/src/core/shaders/webgl/HolePunch.ts +75 -78
- package/src/core/shaders/webgl/LinearGradient.ts +82 -81
- package/src/core/shaders/webgl/RadialGradient.ts +85 -84
- package/src/core/shaders/webgl/Rounded.ts +117 -117
- package/src/core/shaders/webgl/RoundedWithBorder.ts +155 -114
- package/src/core/shaders/webgl/RoundedWithBorderAndShadow.ts +175 -133
- package/src/core/shaders/webgl/RoundedWithShadow.ts +98 -98
- package/src/core/shaders/webgl/SdfShader.ts +134 -137
- package/src/core/shaders/webgl/Shadow.ts +115 -115
- 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/sdf/index.ts +20 -0
- package/src/core/textures/ColorTexture.ts +102 -102
- package/src/core/textures/ImageTexture.ts +418 -376
- 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 -337
- package/src/core/utils.ts +227 -227
- package/src/env.d.ts +7 -7
- package/src/main-api/INode.ts +100 -99
- package/src/main-api/Inspector.ts +567 -522
- package/src/main-api/Renderer.ts +873 -649
- package/src/main-api/utils.ts +45 -45
- package/src/utils.ts +267 -267
- package/dist/exports/core-api.d.ts +0 -74
- package/dist/exports/core-api.js +0 -96
- package/dist/exports/core-api.js.map +0 -1
- package/dist/exports/main-api.d.ts +0 -30
- package/dist/exports/main-api.js +0 -45
- package/dist/exports/main-api.js.map +0 -1
- package/dist/src/core/CoreExtension.d.ts +0 -12
- package/dist/src/core/CoreExtension.js +0 -29
- package/dist/src/core/CoreExtension.js.map +0 -1
- package/dist/src/core/CoreStuff.d.ts +0 -1
- package/dist/src/core/CoreStuff.js +0 -138
- package/dist/src/core/CoreStuff.js.map +0 -1
- package/dist/src/core/CoreTexturizer.d.ts +0 -14
- package/dist/src/core/CoreTexturizer.js +0 -47
- package/dist/src/core/CoreTexturizer.js.map +0 -1
- package/dist/src/core/LngNode.d.ts +0 -736
- package/dist/src/core/LngNode.js +0 -1174
- package/dist/src/core/LngNode.js.map +0 -1
- package/dist/src/core/Matrix2DContext.d.ts +0 -15
- package/dist/src/core/Matrix2DContext.js +0 -45
- package/dist/src/core/Matrix2DContext.js.map +0 -1
- package/dist/src/core/ShaderNode.d.ts +0 -10
- package/dist/src/core/ShaderNode.js +0 -30
- package/dist/src/core/ShaderNode.js.map +0 -1
- package/dist/src/core/TextNode.d.ts +0 -103
- package/dist/src/core/TextNode.js +0 -331
- package/dist/src/core/TextNode.js.map +0 -1
- package/dist/src/core/lib/Coords.d.ts +0 -14
- package/dist/src/core/lib/Coords.js +0 -55
- package/dist/src/core/lib/Coords.js.map +0 -1
- package/dist/src/core/lib/glm/common.d.ts +0 -162
- package/dist/src/core/lib/glm/common.js +0 -81
- package/dist/src/core/lib/glm/common.js.map +0 -1
- package/dist/src/core/lib/glm/index.d.ts +0 -11
- package/dist/src/core/lib/glm/index.js +0 -30
- package/dist/src/core/lib/glm/index.js.map +0 -1
- package/dist/src/core/lib/glm/mat2.d.ts +0 -219
- package/dist/src/core/lib/glm/mat2.js +0 -396
- package/dist/src/core/lib/glm/mat2.js.map +0 -1
- package/dist/src/core/lib/glm/mat2d.d.ts +0 -237
- package/dist/src/core/lib/glm/mat2d.js +0 -442
- package/dist/src/core/lib/glm/mat2d.js.map +0 -1
- package/dist/src/core/lib/glm/mat3.d.ts +0 -283
- package/dist/src/core/lib/glm/mat3.js +0 -680
- package/dist/src/core/lib/glm/mat3.js.map +0 -1
- package/dist/src/core/lib/glm/mat4.d.ts +0 -550
- package/dist/src/core/lib/glm/mat4.js +0 -1802
- package/dist/src/core/lib/glm/mat4.js.map +0 -1
- package/dist/src/core/lib/glm/quat.d.ts +0 -363
- package/dist/src/core/lib/glm/quat.js +0 -693
- package/dist/src/core/lib/glm/quat.js.map +0 -1
- package/dist/src/core/lib/glm/quat2.d.ts +0 -356
- package/dist/src/core/lib/glm/quat2.js +0 -754
- package/dist/src/core/lib/glm/quat2.js.map +0 -1
- package/dist/src/core/lib/glm/vec2.d.ts +0 -365
- package/dist/src/core/lib/glm/vec2.js +0 -569
- package/dist/src/core/lib/glm/vec2.js.map +0 -1
- package/dist/src/core/lib/glm/vec3.d.ts +0 -406
- package/dist/src/core/lib/glm/vec3.js +0 -720
- package/dist/src/core/lib/glm/vec3.js.map +0 -1
- package/dist/src/core/lib/glm/vec4.d.ts +0 -330
- package/dist/src/core/lib/glm/vec4.js +0 -608
- package/dist/src/core/lib/glm/vec4.js.map +0 -1
- package/dist/src/core/platform.d.ts +0 -10
- package/dist/src/core/platform.js +0 -56
- package/dist/src/core/platform.js.map +0 -1
- package/dist/src/core/renderers/CoreShader.d.ts +0 -9
- package/dist/src/core/renderers/CoreShader.js.map +0 -1
- package/dist/src/core/renderers/CoreShaderManager.d.ts +0 -19
- package/dist/src/core/renderers/CoreShaderManager.js +0 -33
- package/dist/src/core/renderers/CoreShaderManager.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 -123
- 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 -55
- 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 -57
- package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js +0 -227
- 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 -613
- 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 -231
- package/dist/src/core/renderers/webgl/WebGlCoreShader.js.map +0 -1
- package/dist/src/core/renderers/webgl/WebGlCoreShaderManager.d.ts +0 -27
- package/dist/src/core/renderers/webgl/WebGlCoreShaderManager.js +0 -82
- package/dist/src/core/renderers/webgl/WebGlCoreShaderManager.js.map +0 -1
- package/dist/src/core/renderers/webgl/WebGlCoreShaderProgram.d.ts +0 -11
- package/dist/src/core/renderers/webgl/WebGlCoreShaderProgram.js +0 -34
- package/dist/src/core/renderers/webgl/WebGlCoreShaderProgram.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/scene/Scene.d.ts +0 -59
- package/dist/src/core/scene/Scene.js +0 -106
- package/dist/src/core/scene/Scene.js.map +0 -1
- package/dist/src/core/shaders/templates/shaderUtils.js.map +0 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.d.ts +0 -20
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.js +0 -55
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.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/ICoreDriver.d.ts +0 -27
- package/dist/src/main-api/ICoreDriver.js.map +0 -1
- package/dist/src/main-api/IRenderDriver.d.ts +0 -20
- package/dist/src/main-api/IRenderDriver.js.map +0 -1
- package/dist/src/main-api/IShaderController.d.ts +0 -14
- package/dist/src/main-api/IShaderController.js +0 -30
- package/dist/src/main-api/IShaderController.js.map +0 -1
- package/dist/src/main-api/IShaderNode.d.ts +0 -17
- package/dist/src/main-api/IShaderNode.js +0 -19
- package/dist/src/main-api/IShaderNode.js.map +0 -1
- package/dist/src/main-api/RendererMain.d.ts +0 -375
- package/dist/src/main-api/RendererMain.js +0 -365
- package/dist/src/main-api/RendererMain.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/dist/src/main-api/texture-usage-trackers/FinalizationRegistryTextureUsageTracker.d.ts +0 -9
- package/dist/src/main-api/texture-usage-trackers/FinalizationRegistryTextureUsageTracker.js +0 -38
- package/dist/src/main-api/texture-usage-trackers/FinalizationRegistryTextureUsageTracker.js.map +0 -1
- package/dist/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.d.ts +0 -56
- package/dist/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.js +0 -101
- package/dist/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.js.map +0 -1
- package/dist/src/main-api/texture-usage-trackers/TextureUsageTracker.d.ts +0 -32
- package/dist/src/main-api/texture-usage-trackers/TextureUsageTracker.js.map +0 -1
- package/dist/src/render-drivers/main/MainCoreDriver.d.ts +0 -24
- package/dist/src/render-drivers/main/MainCoreDriver.js +0 -118
- package/dist/src/render-drivers/main/MainCoreDriver.js.map +0 -1
- package/dist/src/render-drivers/main/MainOnlyNode.d.ts +0 -99
- package/dist/src/render-drivers/main/MainOnlyNode.js +0 -396
- package/dist/src/render-drivers/main/MainOnlyNode.js.map +0 -1
- package/dist/src/render-drivers/main/MainOnlyShaderController.d.ts +0 -6
- package/dist/src/render-drivers/main/MainOnlyShaderController.js +0 -15
- package/dist/src/render-drivers/main/MainOnlyShaderController.js.map +0 -1
- package/dist/src/render-drivers/main/MainOnlyShaderNode.d.ts +0 -7
- package/dist/src/render-drivers/main/MainOnlyShaderNode.js +0 -34
- package/dist/src/render-drivers/main/MainOnlyShaderNode.js.map +0 -1
- package/dist/src/render-drivers/main/MainOnlyTextNode.d.ts +0 -47
- package/dist/src/render-drivers/main/MainOnlyTextNode.js +0 -205
- package/dist/src/render-drivers/main/MainOnlyTextNode.js.map +0 -1
- package/dist/src/render-drivers/main/MainRenderDriver.d.ts +0 -17
- package/dist/src/render-drivers/main/MainRenderDriver.js +0 -88
- package/dist/src/render-drivers/main/MainRenderDriver.js.map +0 -1
- package/dist/src/render-drivers/threadx/NodeStruct.d.ts +0 -90
- package/dist/src/render-drivers/threadx/NodeStruct.js +0 -281
- package/dist/src/render-drivers/threadx/NodeStruct.js.map +0 -1
- package/dist/src/render-drivers/threadx/SharedNode.d.ts +0 -39
- package/dist/src/render-drivers/threadx/SharedNode.js +0 -60
- package/dist/src/render-drivers/threadx/SharedNode.js.map +0 -1
- package/dist/src/render-drivers/threadx/TextNodeStruct.d.ts +0 -44
- package/dist/src/render-drivers/threadx/TextNodeStruct.js +0 -201
- package/dist/src/render-drivers/threadx/TextNodeStruct.js.map +0 -1
- package/dist/src/render-drivers/threadx/ThreadXCoreDriver.d.ts +0 -28
- package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js +0 -234
- package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js.map +0 -1
- package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.d.ts +0 -20
- package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.js +0 -84
- package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.js.map +0 -1
- package/dist/src/render-drivers/threadx/ThreadXMainNode.d.ts +0 -44
- package/dist/src/render-drivers/threadx/ThreadXMainNode.js +0 -154
- package/dist/src/render-drivers/threadx/ThreadXMainNode.js.map +0 -1
- package/dist/src/render-drivers/threadx/ThreadXMainShaderController.d.ts +0 -6
- package/dist/src/render-drivers/threadx/ThreadXMainShaderController.js +0 -16
- package/dist/src/render-drivers/threadx/ThreadXMainShaderController.js.map +0 -1
- package/dist/src/render-drivers/threadx/ThreadXMainShaderNode.d.ts +0 -7
- package/dist/src/render-drivers/threadx/ThreadXMainShaderNode.js +0 -15
- package/dist/src/render-drivers/threadx/ThreadXMainShaderNode.js.map +0 -1
- package/dist/src/render-drivers/threadx/ThreadXMainTextNode.d.ts +0 -28
- package/dist/src/render-drivers/threadx/ThreadXMainTextNode.js +0 -55
- package/dist/src/render-drivers/threadx/ThreadXMainTextNode.js.map +0 -1
- package/dist/src/render-drivers/threadx/ThreadXRenderDriver.d.ts +0 -21
- package/dist/src/render-drivers/threadx/ThreadXRenderDriver.js +0 -198
- package/dist/src/render-drivers/threadx/ThreadXRenderDriver.js.map +0 -1
- package/dist/src/render-drivers/threadx/ThreadXRendererMessage.d.ts +0 -70
- package/dist/src/render-drivers/threadx/ThreadXRendererMessage.js +0 -32
- package/dist/src/render-drivers/threadx/ThreadXRendererMessage.js.map +0 -1
- package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.d.ts +0 -19
- package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.js +0 -177
- package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.js.map +0 -1
- package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.d.ts +0 -27
- package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.js +0 -108
- package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.js.map +0 -1
- package/dist/src/render-drivers/threadx/worker/renderer.d.ts +0 -1
- package/dist/src/render-drivers/threadx/worker/renderer.js +0 -145
- package/dist/src/render-drivers/threadx/worker/renderer.js.map +0 -1
- package/dist/src/render-drivers/utils.d.ts +0 -12
- package/dist/src/render-drivers/utils.js +0 -69
- package/dist/src/render-drivers/utils.js.map +0 -1
- package/scripts/please-use-pnpm.js +0 -13
- package/src/core/platform.ts +0 -64
- package/src/core/renderers/canvas/internal/C2DShaderUtils.ts +0 -220
- package/src/core/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 -815
- package/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.ts +0 -841
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.test.ts +0 -48
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.ts +0 -66
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.ts +0 -52
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.ts +0 -32
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.ts +0 -117
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.test.ts +0 -133
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.ts +0 -38
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.ts +0 -408
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.test.ts +0 -49
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.ts +0 -52
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.test.ts +0 -205
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.ts +0 -93
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.ts +0 -40
- package/src/core/text-rendering/renderers/TextRenderer.ts +0 -550
|
@@ -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
|
*/
|
|
@@ -147,10 +143,6 @@ export var UpdateType;
|
|
|
147
143
|
* All
|
|
148
144
|
*/
|
|
149
145
|
UpdateType[UpdateType["All"] = 14335] = "All";
|
|
150
|
-
/**
|
|
151
|
-
* RecalcUniforms
|
|
152
|
-
*/
|
|
153
|
-
UpdateType[UpdateType["RecalcUniforms"] = 16384] = "RecalcUniforms";
|
|
154
146
|
})(UpdateType || (UpdateType = {}));
|
|
155
147
|
/**
|
|
156
148
|
* A visual Node in the Renderer scene graph.
|
|
@@ -165,10 +157,11 @@ export class CoreNode extends EventEmitter {
|
|
|
165
157
|
children = [];
|
|
166
158
|
_id = getNewId();
|
|
167
159
|
props;
|
|
160
|
+
hasShaderUpdater = false;
|
|
161
|
+
hasColorProps = false;
|
|
168
162
|
updateType = UpdateType.All;
|
|
169
163
|
childUpdateType = UpdateType.None;
|
|
170
164
|
globalTransform;
|
|
171
|
-
scaleRotateTransform;
|
|
172
165
|
localTransform;
|
|
173
166
|
sceneGlobalTransform;
|
|
174
167
|
renderCoords;
|
|
@@ -183,6 +176,8 @@ export class CoreNode extends EventEmitter {
|
|
|
183
176
|
height: 0,
|
|
184
177
|
valid: false,
|
|
185
178
|
};
|
|
179
|
+
textureCoords;
|
|
180
|
+
updateTextureCoords = false;
|
|
186
181
|
isRenderable = false;
|
|
187
182
|
renderState = CoreNodeRenderState.Init;
|
|
188
183
|
worldAlpha = 1;
|
|
@@ -194,52 +189,79 @@ export class CoreNode extends EventEmitter {
|
|
|
194
189
|
hasRTTupdates = false;
|
|
195
190
|
parentHasRenderTexture = false;
|
|
196
191
|
rttParent = null;
|
|
192
|
+
/**
|
|
193
|
+
* only used when rtt = true
|
|
194
|
+
*/
|
|
195
|
+
framebufferDimensions = null;
|
|
196
|
+
destroyed = false;
|
|
197
197
|
constructor(stage, props) {
|
|
198
198
|
super();
|
|
199
199
|
this.stage = stage;
|
|
200
|
-
this.props =
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
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
|
|
208
244
|
this.parent = props.parent;
|
|
209
245
|
this.texture = props.texture;
|
|
210
246
|
this.shader = props.shader;
|
|
211
247
|
this.src = props.src;
|
|
212
248
|
this.rtt = props.rtt;
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
: [
|
|
217
|
-
props.boundsMargin,
|
|
218
|
-
props.boundsMargin,
|
|
219
|
-
props.boundsMargin,
|
|
220
|
-
props.boundsMargin,
|
|
221
|
-
];
|
|
222
|
-
}
|
|
223
|
-
this.setUpdateType(UpdateType.ScaleRotate |
|
|
224
|
-
UpdateType.Local |
|
|
225
|
-
UpdateType.RenderBounds |
|
|
226
|
-
UpdateType.RenderState);
|
|
227
|
-
if (isProductionEnvironment() === false && props.preventCleanup === true) {
|
|
228
|
-
console.warn('CoreNode.preventCleanup: Is deprecated and will be removed in upcoming release, please use textureOptions.preventCleanup instead');
|
|
229
|
-
}
|
|
249
|
+
this.boundsMargin = props.boundsMargin;
|
|
250
|
+
this.interactive = props.interactive;
|
|
251
|
+
this.setUpdateType(UpdateType.Local | UpdateType.RenderBounds | UpdateType.RenderState);
|
|
230
252
|
// if the default texture isn't loaded yet, wait for it to load
|
|
231
253
|
// this only happens when the node is created before the stage is ready
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
this.setUpdateType(UpdateType.IsRenderable);
|
|
236
|
-
});
|
|
254
|
+
const dt = this.stage.defaultTexture;
|
|
255
|
+
if (dt !== null && dt.state !== 'loaded') {
|
|
256
|
+
dt.once('loaded', () => this.setUpdateType(UpdateType.IsRenderable));
|
|
237
257
|
}
|
|
238
258
|
}
|
|
239
259
|
//#region Textures
|
|
240
260
|
loadTexture() {
|
|
241
261
|
const { texture } = this.props;
|
|
242
|
-
|
|
262
|
+
if (!texture) {
|
|
263
|
+
return;
|
|
264
|
+
}
|
|
243
265
|
// If texture is already loaded / failed, trigger loaded event manually
|
|
244
266
|
// so that users get a consistent event experience.
|
|
245
267
|
// We do this in a microtask to allow listeners to be attached in the same
|
|
@@ -263,11 +285,9 @@ export class CoreNode extends EventEmitter {
|
|
|
263
285
|
return;
|
|
264
286
|
}
|
|
265
287
|
if (texture.state === 'loaded') {
|
|
266
|
-
assertTruthy(texture.dimensions);
|
|
267
288
|
this.onTextureLoaded(texture, texture.dimensions);
|
|
268
289
|
}
|
|
269
290
|
else if (texture.state === 'failed') {
|
|
270
|
-
assertTruthy(texture.error);
|
|
271
291
|
this.onTextureFailed(texture, texture.error);
|
|
272
292
|
}
|
|
273
293
|
else if (texture.state === 'freed') {
|
|
@@ -276,12 +296,14 @@ export class CoreNode extends EventEmitter {
|
|
|
276
296
|
});
|
|
277
297
|
}
|
|
278
298
|
unloadTexture() {
|
|
279
|
-
if (this.texture
|
|
280
|
-
|
|
281
|
-
this.texture.off('failed', this.onTextureFailed);
|
|
282
|
-
this.texture.off('freed', this.onTextureFreed);
|
|
283
|
-
this.texture.setRenderableOwner(this, false);
|
|
299
|
+
if (this.texture === null) {
|
|
300
|
+
return;
|
|
284
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);
|
|
285
307
|
}
|
|
286
308
|
autosizeNode(dimensions) {
|
|
287
309
|
if (this.autosize) {
|
|
@@ -312,6 +334,9 @@ export class CoreNode extends EventEmitter {
|
|
|
312
334
|
}
|
|
313
335
|
};
|
|
314
336
|
onTextureFailed = (_, error) => {
|
|
337
|
+
// immediately set isRenderable to false, so that we handle the error
|
|
338
|
+
// without waiting for the next frame loop
|
|
339
|
+
this.isRenderable = false;
|
|
315
340
|
this.setUpdateType(UpdateType.IsRenderable);
|
|
316
341
|
// If parent has a render texture, flag that we need to update
|
|
317
342
|
if (this.parentHasRenderTexture) {
|
|
@@ -323,6 +348,9 @@ export class CoreNode extends EventEmitter {
|
|
|
323
348
|
});
|
|
324
349
|
};
|
|
325
350
|
onTextureFreed = () => {
|
|
351
|
+
// immediately set isRenderable to false, so that we handle the error
|
|
352
|
+
// without waiting for the next frame loop
|
|
353
|
+
this.isRenderable = false;
|
|
326
354
|
this.setUpdateType(UpdateType.IsRenderable);
|
|
327
355
|
// If parent has a render texture, flag that we need to update
|
|
328
356
|
if (this.parentHasRenderTexture) {
|
|
@@ -346,42 +374,32 @@ export class CoreNode extends EventEmitter {
|
|
|
346
374
|
const parent = this.props.parent;
|
|
347
375
|
if (!parent)
|
|
348
376
|
return;
|
|
349
|
-
|
|
350
|
-
// Inform the parent if it doesn’t already have a child update
|
|
351
|
-
parent.setUpdateType(UpdateType.Children);
|
|
352
|
-
}
|
|
377
|
+
parent.setUpdateType(UpdateType.Children);
|
|
353
378
|
}
|
|
354
379
|
sortChildren() {
|
|
355
380
|
this.children.sort((a, b) => a.calcZIndex - b.calcZIndex);
|
|
356
381
|
}
|
|
357
|
-
updateScaleRotateTransform() {
|
|
358
|
-
const { rotation, scaleX, scaleY } = this.props;
|
|
359
|
-
// optimize simple translation cases
|
|
360
|
-
if (rotation === 0 && scaleX === 1 && scaleY === 1) {
|
|
361
|
-
this.scaleRotateTransform = undefined;
|
|
362
|
-
return;
|
|
363
|
-
}
|
|
364
|
-
this.scaleRotateTransform = Matrix3d.rotate(rotation, this.scaleRotateTransform).scale(scaleX, scaleY);
|
|
365
|
-
}
|
|
366
382
|
updateLocalTransform() {
|
|
367
|
-
const
|
|
368
|
-
const
|
|
369
|
-
const
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
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;
|
|
373
390
|
this.localTransform = Matrix3d.translate(x - mountTranslateX + pivotTranslateX, y - mountTranslateY + pivotTranslateY, this.localTransform)
|
|
374
|
-
.
|
|
391
|
+
.rotate(p.rotation)
|
|
392
|
+
.scale(p.scaleX, p.scaleY)
|
|
375
393
|
.translate(-pivotTranslateX, -pivotTranslateY);
|
|
376
394
|
}
|
|
377
395
|
else {
|
|
378
396
|
this.localTransform = Matrix3d.translate(x - mountTranslateX, y - mountTranslateY, this.localTransform);
|
|
379
397
|
}
|
|
380
398
|
// Handle 'contain' resize mode
|
|
381
|
-
const texture =
|
|
399
|
+
const texture = p.texture;
|
|
382
400
|
if (texture &&
|
|
383
401
|
texture.dimensions &&
|
|
384
|
-
|
|
402
|
+
p.textureOptions.resizeMode?.type === 'contain') {
|
|
385
403
|
let resizeModeScaleX = 1;
|
|
386
404
|
let resizeModeScaleY = 1;
|
|
387
405
|
let extraX = 0;
|
|
@@ -412,29 +430,33 @@ export class CoreNode extends EventEmitter {
|
|
|
412
430
|
.translate(extraX, extraY)
|
|
413
431
|
.scale(resizeModeScaleX, resizeModeScaleY);
|
|
414
432
|
}
|
|
415
|
-
this.setUpdateType(UpdateType.Global);
|
|
416
433
|
}
|
|
417
434
|
/**
|
|
418
435
|
* @todo: test for correct calculation flag
|
|
419
436
|
* @param delta
|
|
420
437
|
*/
|
|
421
438
|
update(delta, parentClippingRect) {
|
|
422
|
-
if (this.updateType
|
|
423
|
-
|
|
424
|
-
this.setUpdateType(UpdateType.Local);
|
|
439
|
+
if (this.updateType === UpdateType.None) {
|
|
440
|
+
return;
|
|
425
441
|
}
|
|
426
|
-
|
|
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) {
|
|
427
451
|
this.updateLocalTransform();
|
|
428
|
-
|
|
452
|
+
updateType |= UpdateType.Global;
|
|
453
|
+
updateParent = hasParent;
|
|
429
454
|
}
|
|
430
|
-
const parent = this.props.parent;
|
|
431
|
-
let renderState = null;
|
|
432
455
|
// Handle specific RTT updates at this node level
|
|
433
|
-
if (
|
|
456
|
+
if (updateType & UpdateType.RenderTexture && this.rtt === true) {
|
|
434
457
|
this.hasRTTupdates = true;
|
|
435
458
|
}
|
|
436
|
-
if (
|
|
437
|
-
assertTruthy(this.localTransform);
|
|
459
|
+
if (updateType & UpdateType.Global) {
|
|
438
460
|
if (this.parentHasRenderTexture === true && parent?.rtt === true) {
|
|
439
461
|
// we are at the start of the RTT chain, so we need to reset the globalTransform
|
|
440
462
|
// for correct RTT rendering
|
|
@@ -458,24 +480,28 @@ export class CoreNode extends EventEmitter {
|
|
|
458
480
|
}
|
|
459
481
|
this.calculateRenderCoords();
|
|
460
482
|
this.updateBoundingRect();
|
|
461
|
-
|
|
462
|
-
UpdateType.
|
|
463
|
-
|
|
464
|
-
|
|
483
|
+
updateType |=
|
|
484
|
+
UpdateType.RenderState |
|
|
485
|
+
UpdateType.Children |
|
|
486
|
+
UpdateType.RecalcUniforms;
|
|
487
|
+
updateParent = hasParent;
|
|
488
|
+
childUpdateType |= UpdateType.Global;
|
|
465
489
|
if (this.clipping === true) {
|
|
466
|
-
|
|
467
|
-
|
|
490
|
+
updateType |= UpdateType.Clipping | UpdateType.RenderBounds;
|
|
491
|
+
updateParent = hasParent;
|
|
492
|
+
childUpdateType |= UpdateType.RenderBounds;
|
|
468
493
|
}
|
|
469
494
|
}
|
|
470
|
-
if (
|
|
495
|
+
if (updateType & UpdateType.RenderBounds) {
|
|
471
496
|
this.createRenderBounds();
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
497
|
+
updateType |= UpdateType.RenderState | UpdateType.Children;
|
|
498
|
+
updateParent = hasParent;
|
|
499
|
+
childUpdateType |= UpdateType.RenderBounds;
|
|
475
500
|
}
|
|
476
|
-
if (
|
|
501
|
+
if (updateType & UpdateType.RenderState) {
|
|
477
502
|
renderState = this.checkRenderBounds();
|
|
478
|
-
|
|
503
|
+
updateType |= UpdateType.IsRenderable;
|
|
504
|
+
updateParent = hasParent;
|
|
479
505
|
// if we're not going out of bounds, update the render state
|
|
480
506
|
// this is done so the update loop can finish before we mark a node
|
|
481
507
|
// as out of bounds
|
|
@@ -483,64 +509,69 @@ export class CoreNode extends EventEmitter {
|
|
|
483
509
|
this.updateRenderState(renderState);
|
|
484
510
|
}
|
|
485
511
|
}
|
|
486
|
-
if (
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
}
|
|
490
|
-
else {
|
|
491
|
-
this.worldAlpha = this.props.alpha;
|
|
492
|
-
}
|
|
493
|
-
this.setUpdateType(UpdateType.Children |
|
|
512
|
+
if (updateType & UpdateType.WorldAlpha) {
|
|
513
|
+
this.worldAlpha = ((parent && parent.worldAlpha) || 1) * props.alpha;
|
|
514
|
+
updateType |=
|
|
494
515
|
UpdateType.PremultipliedColors |
|
|
495
|
-
|
|
496
|
-
|
|
516
|
+
UpdateType.Children |
|
|
517
|
+
UpdateType.IsRenderable;
|
|
518
|
+
updateParent = hasParent;
|
|
519
|
+
childUpdateType |= UpdateType.WorldAlpha;
|
|
497
520
|
}
|
|
498
|
-
if (
|
|
521
|
+
if (updateType & UpdateType.IsRenderable) {
|
|
499
522
|
this.updateIsRenderable();
|
|
500
523
|
}
|
|
501
|
-
if (
|
|
524
|
+
if (updateType & UpdateType.Clipping) {
|
|
502
525
|
this.calculateClippingRect(parentClippingRect);
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
}
|
|
507
|
-
if (
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
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) {
|
|
513
541
|
this.premultipliedColorTr =
|
|
514
542
|
this.premultipliedColorBl =
|
|
515
543
|
this.premultipliedColorBr =
|
|
516
|
-
|
|
544
|
+
merged;
|
|
517
545
|
}
|
|
518
546
|
else {
|
|
519
|
-
this.premultipliedColorTr = mergeColorAlphaPremultiplied(
|
|
520
|
-
this.premultipliedColorBl = mergeColorAlphaPremultiplied(
|
|
521
|
-
this.premultipliedColorBr = mergeColorAlphaPremultiplied(
|
|
547
|
+
this.premultipliedColorTr = mergeColorAlphaPremultiplied(tr, alpha, true);
|
|
548
|
+
this.premultipliedColorBl = mergeColorAlphaPremultiplied(bl, alpha, true);
|
|
549
|
+
this.premultipliedColorBr = mergeColorAlphaPremultiplied(br, alpha, true);
|
|
522
550
|
}
|
|
523
551
|
}
|
|
552
|
+
if (updateParent === true) {
|
|
553
|
+
parent.setUpdateType(UpdateType.Children);
|
|
554
|
+
}
|
|
524
555
|
// No need to update zIndex if there is no parent
|
|
525
|
-
if (
|
|
556
|
+
if (updateType & UpdateType.CalculatedZIndex && parent !== null) {
|
|
526
557
|
this.calculateZIndex();
|
|
527
558
|
// Tell parent to re-sort children
|
|
528
559
|
parent.setUpdateType(UpdateType.ZIndexSortedChildren);
|
|
529
560
|
}
|
|
530
|
-
if (
|
|
561
|
+
if (props.strictBounds === true &&
|
|
531
562
|
this.renderState === CoreNodeRenderState.OutOfBounds) {
|
|
532
|
-
|
|
563
|
+
updateType &= ~UpdateType.RenderBounds; // remove render bounds update
|
|
533
564
|
return;
|
|
534
565
|
}
|
|
535
|
-
if (
|
|
536
|
-
|
|
537
|
-
|
|
566
|
+
if (updateType & UpdateType.RecalcUniforms &&
|
|
567
|
+
this.hasShaderUpdater === true) {
|
|
568
|
+
//this exists because the boolean hasShaderUpdater === true
|
|
538
569
|
this.shader.update();
|
|
539
570
|
}
|
|
540
|
-
if (
|
|
571
|
+
if (updateType & UpdateType.Children && this.children.length > 0) {
|
|
541
572
|
for (let i = 0, length = this.children.length; i < length; i++) {
|
|
542
573
|
const child = this.children[i];
|
|
543
|
-
child.setUpdateType(
|
|
574
|
+
child.setUpdateType(childUpdateType);
|
|
544
575
|
if (child.updateType === 0) {
|
|
545
576
|
continue;
|
|
546
577
|
}
|
|
@@ -558,17 +589,21 @@ export class CoreNode extends EventEmitter {
|
|
|
558
589
|
}
|
|
559
590
|
}
|
|
560
591
|
// If the node has an RTT parent and requires a texture re-render, inform the RTT parent
|
|
561
|
-
// if (this.parentHasRenderTexture &&
|
|
592
|
+
// if (this.parentHasRenderTexture && updateType & UpdateType.RenderTexture) {
|
|
562
593
|
// @TODO have a more scoped down updateType for RTT updates
|
|
563
|
-
if (
|
|
594
|
+
if (parentHasRenderTexture === true) {
|
|
564
595
|
this.notifyParentRTTOfUpdate();
|
|
565
596
|
}
|
|
566
597
|
// Sorting children MUST happen after children have been updated so
|
|
567
598
|
// that they have the oppotunity to update their calculated zIndex.
|
|
568
|
-
if (
|
|
599
|
+
if (updateType & UpdateType.ZIndexSortedChildren) {
|
|
569
600
|
// reorder z-index
|
|
570
601
|
this.sortChildren();
|
|
571
602
|
}
|
|
603
|
+
if (this.updateTextureCoords === true) {
|
|
604
|
+
this.updateTextureCoords = false;
|
|
605
|
+
this.textureCoords = this.stage.renderer.getTextureCoords(this);
|
|
606
|
+
}
|
|
572
607
|
// If we're out of bounds, apply the render state now
|
|
573
608
|
// this is done so nodes can finish their entire update loop before
|
|
574
609
|
// being marked as out of bounds
|
|
@@ -580,7 +615,6 @@ export class CoreNode extends EventEmitter {
|
|
|
580
615
|
// notify children that we are going out of bounds
|
|
581
616
|
// we have to do this now before we stop processing the render tree
|
|
582
617
|
this.notifyChildrenRTTOfUpdate(renderState);
|
|
583
|
-
// this.childUpdateType |= UpdateType.RenderState;
|
|
584
618
|
}
|
|
585
619
|
}
|
|
586
620
|
// reset update type
|
|
@@ -594,13 +628,6 @@ export class CoreNode extends EventEmitter {
|
|
|
594
628
|
}
|
|
595
629
|
return rttNode;
|
|
596
630
|
}
|
|
597
|
-
getRTTParentRenderState() {
|
|
598
|
-
const rttNode = this.rttParent || this.findParentRTTNode();
|
|
599
|
-
if (!rttNode) {
|
|
600
|
-
return null;
|
|
601
|
-
}
|
|
602
|
-
return rttNode.renderState;
|
|
603
|
-
}
|
|
604
631
|
notifyChildrenRTTOfUpdate(renderState) {
|
|
605
632
|
for (const child of this.children) {
|
|
606
633
|
// force child to update render state
|
|
@@ -626,9 +653,6 @@ export class CoreNode extends EventEmitter {
|
|
|
626
653
|
}
|
|
627
654
|
}
|
|
628
655
|
checkRenderBounds() {
|
|
629
|
-
assertTruthy(this.renderBound);
|
|
630
|
-
assertTruthy(this.strictBound);
|
|
631
|
-
assertTruthy(this.preloadBound);
|
|
632
656
|
if (boundInsideBound(this.renderBound, this.strictBound)) {
|
|
633
657
|
return CoreNodeRenderState.InViewport;
|
|
634
658
|
}
|
|
@@ -647,22 +671,19 @@ export class CoreNode extends EventEmitter {
|
|
|
647
671
|
return CoreNodeRenderState.OutOfBounds;
|
|
648
672
|
}
|
|
649
673
|
updateBoundingRect() {
|
|
650
|
-
const transform = this.sceneGlobalTransform ||
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
if (tb === 0 || tc === 0) {
|
|
657
|
-
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);
|
|
658
680
|
}
|
|
659
681
|
else {
|
|
660
|
-
const {
|
|
682
|
+
const { x1, y1, x2, y2, x3, y3, x4, y4 } = renderCoords;
|
|
661
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);
|
|
662
684
|
}
|
|
663
685
|
}
|
|
664
686
|
createRenderBounds() {
|
|
665
|
-
assertTruthy(this.stage);
|
|
666
687
|
if (this.parent !== null && this.parent.strictBound !== undefined) {
|
|
667
688
|
// we have a parent with a valid bound, copy it
|
|
668
689
|
const parentBound = this.parent.strictBound;
|
|
@@ -717,7 +738,8 @@ export class CoreNode extends EventEmitter {
|
|
|
717
738
|
let newIsRenderable = false;
|
|
718
739
|
let needsTextureOwnership = false;
|
|
719
740
|
// If the node is out of bounds or has an alpha of 0, it is not renderable
|
|
720
|
-
if (this.
|
|
741
|
+
if (this.worldAlpha === 0 ||
|
|
742
|
+
this.renderState <= CoreNodeRenderState.OutOfBounds) {
|
|
721
743
|
this.updateTextureOwnership(false);
|
|
722
744
|
this.setRenderable(false);
|
|
723
745
|
return;
|
|
@@ -727,8 +749,11 @@ export class CoreNode extends EventEmitter {
|
|
|
727
749
|
// we're only renderable if the texture state is loaded
|
|
728
750
|
newIsRenderable = this.texture.state === 'loaded';
|
|
729
751
|
}
|
|
730
|
-
else if (
|
|
731
|
-
|
|
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) {
|
|
732
757
|
// This mean we have dimensions and a color set, so we can render a ColorTexture
|
|
733
758
|
if (this.stage.defaultTexture &&
|
|
734
759
|
this.stage.defaultTexture.state === 'loaded') {
|
|
@@ -738,23 +763,17 @@ export class CoreNode extends EventEmitter {
|
|
|
738
763
|
this.updateTextureOwnership(needsTextureOwnership);
|
|
739
764
|
this.setRenderable(newIsRenderable);
|
|
740
765
|
}
|
|
741
|
-
/**
|
|
742
|
-
* Checks if the node is renderable based on world alpha, dimensions and out of bounds status.
|
|
743
|
-
*/
|
|
744
|
-
checkBasicRenderability() {
|
|
745
|
-
if (this.worldAlpha === 0 || this.isOutOfBounds() === true) {
|
|
746
|
-
return false;
|
|
747
|
-
}
|
|
748
|
-
else {
|
|
749
|
-
return true;
|
|
750
|
-
}
|
|
751
|
-
}
|
|
752
766
|
/**
|
|
753
767
|
* Sets the renderable state and triggers changes if necessary.
|
|
754
768
|
* @param isRenderable - The new renderable state
|
|
755
769
|
*/
|
|
756
770
|
setRenderable(isRenderable) {
|
|
757
771
|
this.isRenderable = isRenderable;
|
|
772
|
+
if (isRenderable === true &&
|
|
773
|
+
this.stage.calculateTextureCoord === true &&
|
|
774
|
+
this.textureCoords === undefined) {
|
|
775
|
+
this.updateTextureCoords = true;
|
|
776
|
+
}
|
|
758
777
|
}
|
|
759
778
|
/**
|
|
760
779
|
* Changes the renderable state of the node.
|
|
@@ -762,38 +781,10 @@ export class CoreNode extends EventEmitter {
|
|
|
762
781
|
updateTextureOwnership(isRenderable) {
|
|
763
782
|
this.texture?.setRenderableOwner(this, isRenderable);
|
|
764
783
|
}
|
|
765
|
-
/**
|
|
766
|
-
* Checks if the node is out of the viewport bounds.
|
|
767
|
-
*/
|
|
768
|
-
isOutOfBounds() {
|
|
769
|
-
return this.renderState <= CoreNodeRenderState.OutOfBounds;
|
|
770
|
-
}
|
|
771
|
-
/**
|
|
772
|
-
* Checks if the node has dimensions (width/height)
|
|
773
|
-
*/
|
|
774
|
-
hasDimensions() {
|
|
775
|
-
return this.props.width !== 0 && this.props.height !== 0;
|
|
776
|
-
}
|
|
777
|
-
/**
|
|
778
|
-
* Checks if the node has any color properties set.
|
|
779
|
-
*/
|
|
780
|
-
hasColorProperties() {
|
|
781
|
-
return (this.props.color !== 0 ||
|
|
782
|
-
this.props.colorTop !== 0 ||
|
|
783
|
-
this.props.colorBottom !== 0 ||
|
|
784
|
-
this.props.colorLeft !== 0 ||
|
|
785
|
-
this.props.colorRight !== 0 ||
|
|
786
|
-
this.props.colorTl !== 0 ||
|
|
787
|
-
this.props.colorTr !== 0 ||
|
|
788
|
-
this.props.colorBl !== 0 ||
|
|
789
|
-
this.props.colorBr !== 0);
|
|
790
|
-
}
|
|
791
|
-
hasShader() {
|
|
792
|
-
return this.props.shader !== null;
|
|
793
|
-
}
|
|
794
784
|
calculateRenderCoords() {
|
|
795
785
|
const { width, height } = this;
|
|
796
|
-
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;
|
|
797
788
|
if (tb === 0 && tc === 0) {
|
|
798
789
|
const minX = tx;
|
|
799
790
|
const maxX = tx + width * ta;
|
|
@@ -860,7 +851,6 @@ export class CoreNode extends EventEmitter {
|
|
|
860
851
|
* Finally, the node's parentClippingRect and clippingRect properties are updated.
|
|
861
852
|
*/
|
|
862
853
|
calculateClippingRect(parentClippingRect) {
|
|
863
|
-
assertTruthy(this.globalTransform);
|
|
864
854
|
const { clippingRect, props, globalTransform: gt } = this;
|
|
865
855
|
const { clipping } = props;
|
|
866
856
|
const isRotated = gt.tb !== 0 || gt.tc !== 0;
|
|
@@ -898,68 +888,65 @@ export class CoreNode extends EventEmitter {
|
|
|
898
888
|
* Destroy the node and cleanup all resources
|
|
899
889
|
*/
|
|
900
890
|
destroy() {
|
|
891
|
+
if (this.destroyed === true) {
|
|
892
|
+
return;
|
|
893
|
+
}
|
|
894
|
+
this.removeAllListeners();
|
|
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.defShaderNode;
|
|
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.props.shader,
|
|
931
|
+
texture,
|
|
932
|
+
textureOptions: p.textureOptions,
|
|
933
|
+
textureCoords: this.textureCoords,
|
|
934
|
+
shader: p.shader,
|
|
951
935
|
alpha: this.worldAlpha,
|
|
952
936
|
clippingRect: this.clippingRect,
|
|
953
|
-
tx:
|
|
954
|
-
ty:
|
|
955
|
-
ta:
|
|
956
|
-
tb:
|
|
957
|
-
tc:
|
|
958
|
-
td:
|
|
959
|
-
renderCoords:
|
|
960
|
-
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,
|
|
961
946
|
parentHasRenderTexture: this.parentHasRenderTexture,
|
|
962
|
-
framebufferDimensions: this.
|
|
947
|
+
framebufferDimensions: this.parentHasRenderTexture
|
|
948
|
+
? this.parentFramebufferDimensions
|
|
949
|
+
: null,
|
|
963
950
|
});
|
|
964
951
|
}
|
|
965
952
|
//#region Properties
|
|
@@ -1005,13 +992,12 @@ export class CoreNode extends EventEmitter {
|
|
|
1005
992
|
}
|
|
1006
993
|
set width(value) {
|
|
1007
994
|
if (this.props.width !== value) {
|
|
995
|
+
this.textureCoords = undefined;
|
|
1008
996
|
this.props.width = value;
|
|
1009
997
|
this.setUpdateType(UpdateType.Local);
|
|
1010
|
-
if (this.props.rtt) {
|
|
1011
|
-
this.
|
|
1012
|
-
|
|
1013
|
-
height: this.height,
|
|
1014
|
-
});
|
|
998
|
+
if (this.props.rtt === true) {
|
|
999
|
+
this.framebufferDimensions.width = value;
|
|
1000
|
+
this.texture = this.stage.txManager.createTexture('RenderTexture', this.framebufferDimensions);
|
|
1015
1001
|
this.setUpdateType(UpdateType.RenderTexture);
|
|
1016
1002
|
}
|
|
1017
1003
|
}
|
|
@@ -1021,13 +1007,12 @@ export class CoreNode extends EventEmitter {
|
|
|
1021
1007
|
}
|
|
1022
1008
|
set height(value) {
|
|
1023
1009
|
if (this.props.height !== value) {
|
|
1010
|
+
this.textureCoords = undefined;
|
|
1024
1011
|
this.props.height = value;
|
|
1025
1012
|
this.setUpdateType(UpdateType.Local);
|
|
1026
|
-
if (this.props.rtt) {
|
|
1027
|
-
this.
|
|
1028
|
-
|
|
1029
|
-
height: this.height,
|
|
1030
|
-
});
|
|
1013
|
+
if (this.props.rtt === true) {
|
|
1014
|
+
this.framebufferDimensions.height = value;
|
|
1015
|
+
this.texture = this.stage.txManager.createTexture('RenderTexture', this.framebufferDimensions);
|
|
1031
1016
|
this.setUpdateType(UpdateType.RenderTexture);
|
|
1032
1017
|
}
|
|
1033
1018
|
}
|
|
@@ -1049,7 +1034,7 @@ export class CoreNode extends EventEmitter {
|
|
|
1049
1034
|
set scaleX(value) {
|
|
1050
1035
|
if (this.props.scaleX !== value) {
|
|
1051
1036
|
this.props.scaleX = value;
|
|
1052
|
-
this.setUpdateType(UpdateType.
|
|
1037
|
+
this.setUpdateType(UpdateType.Local);
|
|
1053
1038
|
}
|
|
1054
1039
|
}
|
|
1055
1040
|
get scaleY() {
|
|
@@ -1058,7 +1043,7 @@ export class CoreNode extends EventEmitter {
|
|
|
1058
1043
|
set scaleY(value) {
|
|
1059
1044
|
if (this.props.scaleY !== value) {
|
|
1060
1045
|
this.props.scaleY = value;
|
|
1061
|
-
this.setUpdateType(UpdateType.
|
|
1046
|
+
this.setUpdateType(UpdateType.Local);
|
|
1062
1047
|
}
|
|
1063
1048
|
}
|
|
1064
1049
|
get mount() {
|
|
@@ -1125,7 +1110,7 @@ export class CoreNode extends EventEmitter {
|
|
|
1125
1110
|
set rotation(value) {
|
|
1126
1111
|
if (this.props.rotation !== value) {
|
|
1127
1112
|
this.props.rotation = value;
|
|
1128
|
-
this.setUpdateType(UpdateType.
|
|
1113
|
+
this.setUpdateType(UpdateType.Local);
|
|
1129
1114
|
}
|
|
1130
1115
|
}
|
|
1131
1116
|
get alpha() {
|
|
@@ -1146,9 +1131,18 @@ export class CoreNode extends EventEmitter {
|
|
|
1146
1131
|
this.props.autosize = value;
|
|
1147
1132
|
}
|
|
1148
1133
|
get boundsMargin() {
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
|
|
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;
|
|
1152
1146
|
}
|
|
1153
1147
|
set boundsMargin(value) {
|
|
1154
1148
|
if (value === this.props.boundsMargin) {
|
|
@@ -1177,11 +1171,20 @@ export class CoreNode extends EventEmitter {
|
|
|
1177
1171
|
return this.props.color;
|
|
1178
1172
|
}
|
|
1179
1173
|
set color(value) {
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
|
|
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;
|
|
1185
1188
|
this.setUpdateType(UpdateType.PremultipliedColors);
|
|
1186
1189
|
}
|
|
1187
1190
|
get colorTop() {
|
|
@@ -1193,6 +1196,7 @@ export class CoreNode extends EventEmitter {
|
|
|
1193
1196
|
this.colorTr = value;
|
|
1194
1197
|
}
|
|
1195
1198
|
this.props.colorTop = value;
|
|
1199
|
+
this.hasColorProps = value > 0;
|
|
1196
1200
|
this.setUpdateType(UpdateType.PremultipliedColors);
|
|
1197
1201
|
}
|
|
1198
1202
|
get colorBottom() {
|
|
@@ -1204,6 +1208,7 @@ export class CoreNode extends EventEmitter {
|
|
|
1204
1208
|
this.colorBr = value;
|
|
1205
1209
|
}
|
|
1206
1210
|
this.props.colorBottom = value;
|
|
1211
|
+
this.hasColorProps = value > 0;
|
|
1207
1212
|
this.setUpdateType(UpdateType.PremultipliedColors);
|
|
1208
1213
|
}
|
|
1209
1214
|
get colorLeft() {
|
|
@@ -1215,6 +1220,7 @@ export class CoreNode extends EventEmitter {
|
|
|
1215
1220
|
this.colorBl = value;
|
|
1216
1221
|
}
|
|
1217
1222
|
this.props.colorLeft = value;
|
|
1223
|
+
this.hasColorProps = value > 0;
|
|
1218
1224
|
this.setUpdateType(UpdateType.PremultipliedColors);
|
|
1219
1225
|
}
|
|
1220
1226
|
get colorRight() {
|
|
@@ -1226,6 +1232,7 @@ export class CoreNode extends EventEmitter {
|
|
|
1226
1232
|
this.colorBr = value;
|
|
1227
1233
|
}
|
|
1228
1234
|
this.props.colorRight = value;
|
|
1235
|
+
this.hasColorProps = value > 0;
|
|
1229
1236
|
this.setUpdateType(UpdateType.PremultipliedColors);
|
|
1230
1237
|
}
|
|
1231
1238
|
get colorTl() {
|
|
@@ -1233,6 +1240,7 @@ export class CoreNode extends EventEmitter {
|
|
|
1233
1240
|
}
|
|
1234
1241
|
set colorTl(value) {
|
|
1235
1242
|
this.props.colorTl = value;
|
|
1243
|
+
this.hasColorProps = value > 0;
|
|
1236
1244
|
this.setUpdateType(UpdateType.PremultipliedColors);
|
|
1237
1245
|
}
|
|
1238
1246
|
get colorTr() {
|
|
@@ -1240,6 +1248,7 @@ export class CoreNode extends EventEmitter {
|
|
|
1240
1248
|
}
|
|
1241
1249
|
set colorTr(value) {
|
|
1242
1250
|
this.props.colorTr = value;
|
|
1251
|
+
this.hasColorProps = value > 0;
|
|
1243
1252
|
this.setUpdateType(UpdateType.PremultipliedColors);
|
|
1244
1253
|
}
|
|
1245
1254
|
get colorBl() {
|
|
@@ -1247,6 +1256,7 @@ export class CoreNode extends EventEmitter {
|
|
|
1247
1256
|
}
|
|
1248
1257
|
set colorBl(value) {
|
|
1249
1258
|
this.props.colorBl = value;
|
|
1259
|
+
this.hasColorProps = value > 0;
|
|
1250
1260
|
this.setUpdateType(UpdateType.PremultipliedColors);
|
|
1251
1261
|
}
|
|
1252
1262
|
get colorBr() {
|
|
@@ -1254,6 +1264,7 @@ export class CoreNode extends EventEmitter {
|
|
|
1254
1264
|
}
|
|
1255
1265
|
set colorBr(value) {
|
|
1256
1266
|
this.props.colorBr = value;
|
|
1267
|
+
this.hasColorProps = value > 0;
|
|
1257
1268
|
this.setUpdateType(UpdateType.PremultipliedColors);
|
|
1258
1269
|
}
|
|
1259
1270
|
// we're only interested in parent zIndex to test
|
|
@@ -1289,7 +1300,6 @@ export class CoreNode extends EventEmitter {
|
|
|
1289
1300
|
this.props.parent = newParent;
|
|
1290
1301
|
if (oldParent) {
|
|
1291
1302
|
const index = oldParent.children.indexOf(this);
|
|
1292
|
-
assertTruthy(index !== -1, "CoreNode.parent: Node not found in old parent's children!");
|
|
1293
1303
|
oldParent.children.splice(index, 1);
|
|
1294
1304
|
oldParent.setUpdateType(UpdateType.Children | UpdateType.ZIndexSortedChildren);
|
|
1295
1305
|
}
|
|
@@ -1304,19 +1314,9 @@ export class CoreNode extends EventEmitter {
|
|
|
1304
1314
|
this.applyRTTInheritance(newParent);
|
|
1305
1315
|
}
|
|
1306
1316
|
}
|
|
1307
|
-
this.updateScaleRotateTransform();
|
|
1308
1317
|
// fetch render bounds from parent
|
|
1309
1318
|
this.setUpdateType(UpdateType.RenderBounds | UpdateType.Children);
|
|
1310
1319
|
}
|
|
1311
|
-
get preventCleanup() {
|
|
1312
|
-
return this.props.textureOptions.preventCleanup || false;
|
|
1313
|
-
}
|
|
1314
|
-
set preventCleanup(value) {
|
|
1315
|
-
if (isProductionEnvironment() === false) {
|
|
1316
|
-
console.warn('CoreNode.preventCleanup: Is deprecated and will be removed in upcoming release, please use textureOptions.preventCleanup instead');
|
|
1317
|
-
}
|
|
1318
|
-
this.props.textureOptions.preventCleanup = value;
|
|
1319
|
-
}
|
|
1320
1320
|
get rtt() {
|
|
1321
1321
|
return this.props.rtt;
|
|
1322
1322
|
}
|
|
@@ -1338,10 +1338,11 @@ export class CoreNode extends EventEmitter {
|
|
|
1338
1338
|
}
|
|
1339
1339
|
}
|
|
1340
1340
|
initRenderTexture() {
|
|
1341
|
-
this.
|
|
1341
|
+
this.framebufferDimensions = {
|
|
1342
1342
|
width: this.width,
|
|
1343
1343
|
height: this.height,
|
|
1344
|
-
}
|
|
1344
|
+
};
|
|
1345
|
+
this.texture = this.stage.txManager.createTexture('RenderTexture', this.framebufferDimensions);
|
|
1345
1346
|
this.stage.renderer.renderToTexture(this);
|
|
1346
1347
|
}
|
|
1347
1348
|
cleanupRenderTexture() {
|
|
@@ -1349,6 +1350,7 @@ export class CoreNode extends EventEmitter {
|
|
|
1349
1350
|
this.clearRTTInheritance();
|
|
1350
1351
|
this.hasRTTupdates = false;
|
|
1351
1352
|
this.texture = null;
|
|
1353
|
+
this.framebufferDimensions = null;
|
|
1352
1354
|
}
|
|
1353
1355
|
markChildrenWithRTT(node = null) {
|
|
1354
1356
|
const parent = node || this;
|
|
@@ -1390,13 +1392,17 @@ export class CoreNode extends EventEmitter {
|
|
|
1390
1392
|
return;
|
|
1391
1393
|
}
|
|
1392
1394
|
if (shader === null) {
|
|
1395
|
+
this.hasShaderUpdater = false;
|
|
1393
1396
|
this.props.shader = this.stage.defShaderNode;
|
|
1394
1397
|
this.setUpdateType(UpdateType.IsRenderable);
|
|
1395
1398
|
return;
|
|
1396
1399
|
}
|
|
1397
|
-
shader.
|
|
1400
|
+
if (shader.shaderKey !== 'default') {
|
|
1401
|
+
this.hasShaderUpdater = shader.update !== undefined;
|
|
1402
|
+
shader.attachNode(this);
|
|
1403
|
+
}
|
|
1398
1404
|
this.props.shader = shader;
|
|
1399
|
-
this.setUpdateType(UpdateType.IsRenderable);
|
|
1405
|
+
this.setUpdateType(UpdateType.IsRenderable | UpdateType.RecalcUniforms);
|
|
1400
1406
|
}
|
|
1401
1407
|
get src() {
|
|
1402
1408
|
return this.props.src;
|
|
@@ -1455,16 +1461,14 @@ export class CoreNode extends EventEmitter {
|
|
|
1455
1461
|
this.props.srcY = value;
|
|
1456
1462
|
}
|
|
1457
1463
|
/**
|
|
1458
|
-
* Returns the framebuffer dimensions of the
|
|
1459
|
-
* If the node has a render texture, the dimensions are the same as the node's dimensions.
|
|
1460
|
-
* If the node does not have a render texture, the dimensions are inherited from the parent.
|
|
1461
|
-
* 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
|
|
1462
1465
|
*/
|
|
1463
|
-
get
|
|
1464
|
-
if (this.
|
|
1465
|
-
return this.
|
|
1466
|
+
get parentFramebufferDimensions() {
|
|
1467
|
+
if (this.rttParent !== null) {
|
|
1468
|
+
return this.rttParent.framebufferDimensions;
|
|
1466
1469
|
}
|
|
1467
|
-
|
|
1470
|
+
this.rttParent = this.findParentRTTNode();
|
|
1471
|
+
return this.rttParent.framebufferDimensions;
|
|
1468
1472
|
}
|
|
1469
1473
|
/**
|
|
1470
1474
|
* Returns the parent render texture node if it exists.
|
|
@@ -1488,9 +1492,9 @@ export class CoreNode extends EventEmitter {
|
|
|
1488
1492
|
}
|
|
1489
1493
|
const oldTexture = this.props.texture;
|
|
1490
1494
|
if (oldTexture) {
|
|
1491
|
-
oldTexture.setRenderableOwner(this, false);
|
|
1492
1495
|
this.unloadTexture();
|
|
1493
1496
|
}
|
|
1497
|
+
this.textureCoords = undefined;
|
|
1494
1498
|
this.props.texture = value;
|
|
1495
1499
|
if (value !== null) {
|
|
1496
1500
|
value.setRenderableOwner(this, this.isRenderable);
|
|
@@ -1504,6 +1508,20 @@ export class CoreNode extends EventEmitter {
|
|
|
1504
1508
|
get textureOptions() {
|
|
1505
1509
|
return this.props.textureOptions;
|
|
1506
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
|
+
}
|
|
1507
1525
|
get strictBounds() {
|
|
1508
1526
|
return this.props.strictBounds;
|
|
1509
1527
|
}
|