@lightningjs/renderer 3.0.0-beta6 → 3.0.0-beta8
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 +147 -147
- 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/src/core/CoreNode.d.ts +33 -49
- package/dist/src/core/CoreNode.js +268 -255
- package/dist/src/core/CoreNode.js.map +1 -1
- package/dist/src/core/CoreTextNode.d.ts +1 -1
- package/dist/src/core/CoreTextNode.js +14 -15
- package/dist/src/core/CoreTextNode.js.map +1 -1
- package/dist/src/core/CoreTextureManager.js +11 -4
- package/dist/src/core/CoreTextureManager.js.map +1 -1
- package/dist/src/core/Stage.d.ts +27 -26
- package/dist/src/core/Stage.js +88 -36
- package/dist/src/core/Stage.js.map +1 -1
- package/dist/src/core/TextureMemoryManager.d.ts +9 -0
- package/dist/src/core/TextureMemoryManager.js +78 -48
- 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 +7 -1
- package/dist/src/core/animations/CoreAnimationController.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/utils.d.ts +1 -0
- package/dist/src/core/lib/utils.js +3 -0
- package/dist/src/core/lib/utils.js.map +1 -1
- package/dist/src/core/renderers/CoreRenderer.d.ts +1 -0
- package/dist/src/core/renderers/CoreRenderer.js.map +1 -1
- package/dist/src/core/renderers/CoreShaderNode.d.ts +1 -0
- package/dist/src/core/renderers/CoreShaderNode.js +9 -0
- package/dist/src/core/renderers/CoreShaderNode.js.map +1 -1
- package/dist/src/core/renderers/canvas/CanvasRenderer.d.ts +1 -0
- package/dist/src/core/renderers/canvas/CanvasRenderer.js +3 -0
- package/dist/src/core/renderers/canvas/CanvasRenderer.js.map +1 -1
- package/dist/src/core/renderers/canvas/CanvasShaderNode.js +1 -4
- package/dist/src/core/renderers/canvas/CanvasShaderNode.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlCtxTexture.js +0 -3
- package/dist/src/core/renderers/webgl/WebGlCtxTexture.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlRenderer.d.ts +2 -2
- package/dist/src/core/renderers/webgl/WebGlRenderer.js +57 -57
- package/dist/src/core/renderers/webgl/WebGlRenderer.js.map +1 -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/internal/ShaderUtils.js +35 -35
- 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 +7 -5
- 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 +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 +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 +111 -100
- package/dist/src/core/shaders/webgl/RoundedWithBorder.js.map +1 -1
- package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js +136 -123
- 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 +62 -62
- package/dist/src/core/shaders/webgl/Shadow.js +83 -83
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js +0 -50
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js.map +1 -1
- package/dist/src/core/textures/ImageTexture.d.ts +1 -1
- package/dist/src/core/textures/ImageTexture.js +6 -1
- package/dist/src/core/textures/ImageTexture.js.map +1 -1
- package/dist/src/core/textures/Texture.d.ts +8 -0
- package/dist/src/core/textures/Texture.js +13 -0
- package/dist/src/core/textures/Texture.js.map +1 -1
- package/dist/src/core/utils.d.ts +1 -1
- package/dist/src/main-api/Inspector.d.ts +6 -1
- package/dist/src/main-api/Inspector.js +42 -4
- package/dist/src/main-api/Inspector.js.map +1 -1
- package/dist/src/main-api/Renderer.d.ts +62 -43
- package/dist/src/main-api/Renderer.js +119 -31
- package/dist/src/main-api/Renderer.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 +90 -90
- package/exports/inspector.ts +24 -24
- package/exports/utils.ts +50 -44
- package/exports/webgl-shaders.ts +28 -28
- package/exports/webgl.ts +50 -50
- package/package.json +1 -2
- 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 +2483 -2469
- package/src/core/CoreShaderManager.ts +188 -188
- package/src/core/CoreTextNode.ts +451 -448
- package/src/core/CoreTextureManager.ts +608 -600
- package/src/core/Stage.ts +800 -751
- package/src/core/TextureMemoryManager.ts +435 -394
- package/src/core/animations/AnimationManager.ts +38 -38
- package/src/core/animations/CoreAnimation.ts +291 -284
- package/src/core/animations/CoreAnimationController.ts +164 -157
- 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 -71
- package/src/core/lib/WebGlContextWrapper.ts +1374 -1374
- package/src/core/lib/textureCompression.ts +152 -152
- package/src/core/lib/textureSvg.ts +78 -78
- package/src/core/lib/utils.ts +390 -386
- package/src/core/lib/validateImageBitmap.ts +87 -87
- package/src/core/platforms/Platform.ts +77 -77
- package/src/core/platforms/web/WebPlatform.ts +84 -84
- package/src/core/renderers/CoreContextTexture.ts +43 -43
- package/src/core/renderers/CoreRenderOp.ts +22 -22
- package/src/core/renderers/CoreRenderer.ts +110 -109
- package/src/core/renderers/CoreShaderNode.ts +175 -165
- package/src/core/renderers/CoreShaderProgram.ts +23 -23
- package/src/core/renderers/canvas/CanvasRenderer.ts +302 -298
- package/src/core/renderers/canvas/CanvasShaderNode.ts +96 -99
- package/src/core/renderers/canvas/CanvasTexture.ts +156 -156
- package/src/core/renderers/canvas/internal/C2DShaderUtils.ts +220 -220
- package/src/core/renderers/canvas/internal/ColorUtils.ts +85 -85
- package/src/core/renderers/webgl/WebGlCtxRenderTexture.ts +86 -86
- package/src/core/renderers/webgl/WebGlCtxSubTexture.ts +50 -50
- package/src/core/renderers/webgl/WebGlCtxTexture.ts +298 -301
- package/src/core/renderers/webgl/WebGlRenderOp.ts +161 -161
- package/src/core/renderers/webgl/WebGlRenderer.ts +747 -750
- package/src/core/renderers/webgl/WebGlShaderNode.ts +435 -437
- package/src/core/renderers/webgl/WebGlShaderProgram.ts +318 -318
- 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 +78 -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 -72
- 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 -116
- 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 -144
- package/src/core/shaders/webgl/RoundedWithBorderAndShadow.ts +175 -166
- package/src/core/shaders/webgl/RoundedWithShadow.ts +98 -98
- package/src/core/shaders/webgl/SdfShader.ts +134 -134
- package/src/core/shaders/webgl/Shadow.ts +115 -115
- package/src/core/text-rendering/TextRenderingUtils.ts +36 -36
- package/src/core/text-rendering/TextTextureRendererUtils.ts +263 -263
- package/src/core/text-rendering/TrFontManager.ts +183 -183
- package/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.ts +176 -176
- package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.ts +139 -139
- package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.test.ts +173 -173
- package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.ts +171 -171
- package/src/core/text-rendering/font-face-types/TrFontFace.ts +187 -187
- package/src/core/text-rendering/font-face-types/WebTrFontFace.ts +94 -94
- package/src/core/text-rendering/font-face-types/utils.ts +39 -39
- package/src/core/text-rendering/renderers/CanvasTextRenderer.ts +514 -514
- package/src/core/text-rendering/renderers/LightningTextTextureRenderer.ts +863 -863
- package/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.ts +793 -849
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.test.ts +48 -48
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.ts +66 -66
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.ts +52 -52
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.ts +32 -32
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.ts +117 -117
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.test.ts +133 -133
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.ts +38 -38
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.ts +497 -497
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.test.ts +49 -49
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.ts +52 -52
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.test.ts +205 -205
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.ts +93 -93
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.ts +40 -40
- package/src/core/text-rendering/renderers/TextRenderer.ts +567 -567
- package/src/core/textures/ColorTexture.ts +102 -102
- package/src/core/textures/ImageTexture.ts +418 -410
- 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 +372 -358
- package/src/core/utils.ts +227 -227
- package/src/env.d.ts +7 -7
- package/src/main-api/INode.ts +100 -100
- package/src/main-api/Inspector.ts +569 -522
- package/src/main-api/Renderer.ts +818 -673
- 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 +0 -28
- 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 +0 -20
- 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 +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 +0 -28
- 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
|
@@ -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, mergeColorAlphaPremultiplied,
|
|
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
|
*/
|
|
@@ -146,11 +142,7 @@ export var UpdateType;
|
|
|
146
142
|
/**
|
|
147
143
|
* All
|
|
148
144
|
*/
|
|
149
|
-
UpdateType[UpdateType["All"] =
|
|
150
|
-
/**
|
|
151
|
-
* RecalcUniforms
|
|
152
|
-
*/
|
|
153
|
-
UpdateType[UpdateType["RecalcUniforms"] = 16384] = "RecalcUniforms";
|
|
145
|
+
UpdateType[UpdateType["All"] = 16383] = "All";
|
|
154
146
|
})(UpdateType || (UpdateType = {}));
|
|
155
147
|
/**
|
|
156
148
|
* A visual Node in the Renderer scene graph.
|
|
@@ -166,10 +158,10 @@ export class CoreNode extends EventEmitter {
|
|
|
166
158
|
_id = getNewId();
|
|
167
159
|
props;
|
|
168
160
|
hasShaderUpdater = false;
|
|
161
|
+
hasColorProps = false;
|
|
169
162
|
updateType = UpdateType.All;
|
|
170
163
|
childUpdateType = UpdateType.None;
|
|
171
164
|
globalTransform;
|
|
172
|
-
scaleRotateTransform;
|
|
173
165
|
localTransform;
|
|
174
166
|
sceneGlobalTransform;
|
|
175
167
|
renderCoords;
|
|
@@ -201,50 +193,75 @@ export class CoreNode extends EventEmitter {
|
|
|
201
193
|
* only used when rtt = true
|
|
202
194
|
*/
|
|
203
195
|
framebufferDimensions = null;
|
|
196
|
+
destroyed = false;
|
|
204
197
|
constructor(stage, props) {
|
|
205
198
|
super();
|
|
206
199
|
this.stage = stage;
|
|
207
|
-
this.props = {
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
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;
|
|
215
243
|
// Assign props to instances
|
|
216
244
|
this.parent = props.parent;
|
|
217
245
|
this.texture = props.texture;
|
|
218
246
|
this.shader = props.shader;
|
|
219
247
|
this.src = props.src;
|
|
220
248
|
this.rtt = props.rtt;
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
: [
|
|
225
|
-
props.boundsMargin,
|
|
226
|
-
props.boundsMargin,
|
|
227
|
-
props.boundsMargin,
|
|
228
|
-
props.boundsMargin,
|
|
229
|
-
];
|
|
230
|
-
}
|
|
231
|
-
this.setUpdateType(UpdateType.ScaleRotate |
|
|
232
|
-
UpdateType.Local |
|
|
233
|
-
UpdateType.RenderBounds |
|
|
234
|
-
UpdateType.RenderState);
|
|
249
|
+
this.boundsMargin = props.boundsMargin;
|
|
250
|
+
this.interactive = props.interactive;
|
|
251
|
+
this.setUpdateType(UpdateType.Local | UpdateType.RenderBounds | UpdateType.RenderState);
|
|
235
252
|
// if the default texture isn't loaded yet, wait for it to load
|
|
236
253
|
// this only happens when the node is created before the stage is ready
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
this.setUpdateType(UpdateType.IsRenderable);
|
|
241
|
-
});
|
|
254
|
+
const dt = this.stage.defaultTexture;
|
|
255
|
+
if (dt !== null && dt.state !== 'loaded') {
|
|
256
|
+
dt.once('loaded', () => this.setUpdateType(UpdateType.IsRenderable));
|
|
242
257
|
}
|
|
243
258
|
}
|
|
244
259
|
//#region Textures
|
|
245
260
|
loadTexture() {
|
|
246
261
|
const { texture } = this.props;
|
|
247
|
-
|
|
262
|
+
if (!texture) {
|
|
263
|
+
return;
|
|
264
|
+
}
|
|
248
265
|
// If texture is already loaded / failed, trigger loaded event manually
|
|
249
266
|
// so that users get a consistent event experience.
|
|
250
267
|
// We do this in a microtask to allow listeners to be attached in the same
|
|
@@ -268,11 +285,9 @@ export class CoreNode extends EventEmitter {
|
|
|
268
285
|
return;
|
|
269
286
|
}
|
|
270
287
|
if (texture.state === 'loaded') {
|
|
271
|
-
assertTruthy(texture.dimensions);
|
|
272
288
|
this.onTextureLoaded(texture, texture.dimensions);
|
|
273
289
|
}
|
|
274
290
|
else if (texture.state === 'failed') {
|
|
275
|
-
assertTruthy(texture.error);
|
|
276
291
|
this.onTextureFailed(texture, texture.error);
|
|
277
292
|
}
|
|
278
293
|
else if (texture.state === 'freed') {
|
|
@@ -281,12 +296,14 @@ export class CoreNode extends EventEmitter {
|
|
|
281
296
|
});
|
|
282
297
|
}
|
|
283
298
|
unloadTexture() {
|
|
284
|
-
if (this.texture
|
|
285
|
-
|
|
286
|
-
this.texture.off('failed', this.onTextureFailed);
|
|
287
|
-
this.texture.off('freed', this.onTextureFreed);
|
|
288
|
-
this.texture.setRenderableOwner(this, false);
|
|
299
|
+
if (this.texture === null) {
|
|
300
|
+
return;
|
|
289
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);
|
|
290
307
|
}
|
|
291
308
|
autosizeNode(dimensions) {
|
|
292
309
|
if (this.autosize) {
|
|
@@ -351,42 +368,32 @@ export class CoreNode extends EventEmitter {
|
|
|
351
368
|
const parent = this.props.parent;
|
|
352
369
|
if (!parent)
|
|
353
370
|
return;
|
|
354
|
-
|
|
355
|
-
// Inform the parent if it doesn’t already have a child update
|
|
356
|
-
parent.setUpdateType(UpdateType.Children);
|
|
357
|
-
}
|
|
371
|
+
parent.setUpdateType(UpdateType.Children);
|
|
358
372
|
}
|
|
359
373
|
sortChildren() {
|
|
360
374
|
this.children.sort((a, b) => a.calcZIndex - b.calcZIndex);
|
|
361
375
|
}
|
|
362
|
-
updateScaleRotateTransform() {
|
|
363
|
-
const { rotation, scaleX, scaleY } = this.props;
|
|
364
|
-
// optimize simple translation cases
|
|
365
|
-
if (rotation === 0 && scaleX === 1 && scaleY === 1) {
|
|
366
|
-
this.scaleRotateTransform = undefined;
|
|
367
|
-
return;
|
|
368
|
-
}
|
|
369
|
-
this.scaleRotateTransform = Matrix3d.rotate(rotation, this.scaleRotateTransform).scale(scaleX, scaleY);
|
|
370
|
-
}
|
|
371
376
|
updateLocalTransform() {
|
|
372
|
-
const
|
|
373
|
-
const
|
|
374
|
-
const
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
const
|
|
377
|
+
const p = this.props;
|
|
378
|
+
const { x, y, width, height } = p;
|
|
379
|
+
const mountTranslateX = p.mountX * width;
|
|
380
|
+
const mountTranslateY = p.mountY * height;
|
|
381
|
+
if (p.rotation !== 0 || p.scaleX !== 1 || p.scaleY !== 1) {
|
|
382
|
+
const pivotTranslateX = p.pivotX * width;
|
|
383
|
+
const pivotTranslateY = p.pivotY * height;
|
|
378
384
|
this.localTransform = Matrix3d.translate(x - mountTranslateX + pivotTranslateX, y - mountTranslateY + pivotTranslateY, this.localTransform)
|
|
379
|
-
.
|
|
385
|
+
.rotate(p.rotation)
|
|
386
|
+
.scale(p.scaleX, p.scaleY)
|
|
380
387
|
.translate(-pivotTranslateX, -pivotTranslateY);
|
|
381
388
|
}
|
|
382
389
|
else {
|
|
383
390
|
this.localTransform = Matrix3d.translate(x - mountTranslateX, y - mountTranslateY, this.localTransform);
|
|
384
391
|
}
|
|
385
392
|
// Handle 'contain' resize mode
|
|
386
|
-
const texture =
|
|
393
|
+
const texture = p.texture;
|
|
387
394
|
if (texture &&
|
|
388
395
|
texture.dimensions &&
|
|
389
|
-
|
|
396
|
+
p.textureOptions.resizeMode?.type === 'contain') {
|
|
390
397
|
let resizeModeScaleX = 1;
|
|
391
398
|
let resizeModeScaleY = 1;
|
|
392
399
|
let extraX = 0;
|
|
@@ -417,29 +424,33 @@ export class CoreNode extends EventEmitter {
|
|
|
417
424
|
.translate(extraX, extraY)
|
|
418
425
|
.scale(resizeModeScaleX, resizeModeScaleY);
|
|
419
426
|
}
|
|
420
|
-
this.setUpdateType(UpdateType.Global);
|
|
421
427
|
}
|
|
422
428
|
/**
|
|
423
429
|
* @todo: test for correct calculation flag
|
|
424
430
|
* @param delta
|
|
425
431
|
*/
|
|
426
432
|
update(delta, parentClippingRect) {
|
|
427
|
-
if (this.updateType
|
|
428
|
-
|
|
429
|
-
this.setUpdateType(UpdateType.Local);
|
|
433
|
+
if (this.updateType === UpdateType.None) {
|
|
434
|
+
return;
|
|
430
435
|
}
|
|
431
|
-
|
|
436
|
+
const props = this.props;
|
|
437
|
+
const parent = props.parent;
|
|
438
|
+
const parentHasRenderTexture = this.parentHasRenderTexture;
|
|
439
|
+
const hasParent = props.parent !== null;
|
|
440
|
+
let renderState = null;
|
|
441
|
+
let updateType = this.updateType;
|
|
442
|
+
let childUpdateType = this.childUpdateType;
|
|
443
|
+
let updateParent = false;
|
|
444
|
+
if (updateType & UpdateType.Local) {
|
|
432
445
|
this.updateLocalTransform();
|
|
433
|
-
|
|
446
|
+
updateType |= UpdateType.Global;
|
|
447
|
+
updateParent = hasParent;
|
|
434
448
|
}
|
|
435
|
-
const parent = this.props.parent;
|
|
436
|
-
let renderState = null;
|
|
437
449
|
// Handle specific RTT updates at this node level
|
|
438
|
-
if (
|
|
450
|
+
if (updateType & UpdateType.RenderTexture && this.rtt === true) {
|
|
439
451
|
this.hasRTTupdates = true;
|
|
440
452
|
}
|
|
441
|
-
if (
|
|
442
|
-
assertTruthy(this.localTransform);
|
|
453
|
+
if (updateType & UpdateType.Global) {
|
|
443
454
|
if (this.parentHasRenderTexture === true && parent?.rtt === true) {
|
|
444
455
|
// we are at the start of the RTT chain, so we need to reset the globalTransform
|
|
445
456
|
// for correct RTT rendering
|
|
@@ -463,24 +474,28 @@ export class CoreNode extends EventEmitter {
|
|
|
463
474
|
}
|
|
464
475
|
this.calculateRenderCoords();
|
|
465
476
|
this.updateBoundingRect();
|
|
466
|
-
|
|
467
|
-
UpdateType.
|
|
468
|
-
|
|
469
|
-
|
|
477
|
+
updateType |=
|
|
478
|
+
UpdateType.RenderState |
|
|
479
|
+
UpdateType.Children |
|
|
480
|
+
UpdateType.RecalcUniforms;
|
|
481
|
+
updateParent = hasParent;
|
|
482
|
+
childUpdateType |= UpdateType.Global;
|
|
470
483
|
if (this.clipping === true) {
|
|
471
|
-
|
|
472
|
-
|
|
484
|
+
updateType |= UpdateType.Clipping | UpdateType.RenderBounds;
|
|
485
|
+
updateParent = hasParent;
|
|
486
|
+
childUpdateType |= UpdateType.RenderBounds;
|
|
473
487
|
}
|
|
474
488
|
}
|
|
475
|
-
if (
|
|
489
|
+
if (updateType & UpdateType.RenderBounds) {
|
|
476
490
|
this.createRenderBounds();
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
491
|
+
updateType |= UpdateType.RenderState | UpdateType.Children;
|
|
492
|
+
updateParent = hasParent;
|
|
493
|
+
childUpdateType |= UpdateType.RenderBounds;
|
|
480
494
|
}
|
|
481
|
-
if (
|
|
495
|
+
if (updateType & UpdateType.RenderState) {
|
|
482
496
|
renderState = this.checkRenderBounds();
|
|
483
|
-
|
|
497
|
+
updateType |= UpdateType.IsRenderable;
|
|
498
|
+
updateParent = hasParent;
|
|
484
499
|
// if we're not going out of bounds, update the render state
|
|
485
500
|
// this is done so the update loop can finish before we mark a node
|
|
486
501
|
// as out of bounds
|
|
@@ -488,64 +503,69 @@ export class CoreNode extends EventEmitter {
|
|
|
488
503
|
this.updateRenderState(renderState);
|
|
489
504
|
}
|
|
490
505
|
}
|
|
491
|
-
if (
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
}
|
|
495
|
-
else {
|
|
496
|
-
this.worldAlpha = this.props.alpha;
|
|
497
|
-
}
|
|
498
|
-
this.setUpdateType(UpdateType.Children |
|
|
506
|
+
if (updateType & UpdateType.WorldAlpha) {
|
|
507
|
+
this.worldAlpha = ((parent && parent.worldAlpha) || 1) * props.alpha;
|
|
508
|
+
updateType |=
|
|
499
509
|
UpdateType.PremultipliedColors |
|
|
500
|
-
|
|
501
|
-
|
|
510
|
+
UpdateType.Children |
|
|
511
|
+
UpdateType.IsRenderable;
|
|
512
|
+
updateParent = hasParent;
|
|
513
|
+
childUpdateType |= UpdateType.WorldAlpha;
|
|
502
514
|
}
|
|
503
|
-
if (
|
|
515
|
+
if (updateType & UpdateType.IsRenderable) {
|
|
504
516
|
this.updateIsRenderable();
|
|
505
517
|
}
|
|
506
|
-
if (
|
|
518
|
+
if (updateType & UpdateType.Clipping) {
|
|
507
519
|
this.calculateClippingRect(parentClippingRect);
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
}
|
|
512
|
-
if (
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
520
|
+
updateType |= UpdateType.Children;
|
|
521
|
+
updateParent = hasParent;
|
|
522
|
+
childUpdateType |= UpdateType.Clipping | UpdateType.RenderBounds;
|
|
523
|
+
}
|
|
524
|
+
if (updateType & UpdateType.PremultipliedColors) {
|
|
525
|
+
const alpha = this.worldAlpha;
|
|
526
|
+
const tl = props.colorTl;
|
|
527
|
+
const tr = props.colorTr;
|
|
528
|
+
const bl = props.colorBl;
|
|
529
|
+
const br = props.colorBr;
|
|
530
|
+
// Fast equality check (covers all 4 corners)
|
|
531
|
+
const same = tl === tr && tl === bl && tl === br;
|
|
532
|
+
const merged = mergeColorAlphaPremultiplied(tl, alpha, true);
|
|
533
|
+
this.premultipliedColorTl = merged;
|
|
534
|
+
if (same) {
|
|
518
535
|
this.premultipliedColorTr =
|
|
519
536
|
this.premultipliedColorBl =
|
|
520
537
|
this.premultipliedColorBr =
|
|
521
|
-
|
|
538
|
+
merged;
|
|
522
539
|
}
|
|
523
540
|
else {
|
|
524
|
-
this.premultipliedColorTr = mergeColorAlphaPremultiplied(
|
|
525
|
-
this.premultipliedColorBl = mergeColorAlphaPremultiplied(
|
|
526
|
-
this.premultipliedColorBr = mergeColorAlphaPremultiplied(
|
|
541
|
+
this.premultipliedColorTr = mergeColorAlphaPremultiplied(tr, alpha, true);
|
|
542
|
+
this.premultipliedColorBl = mergeColorAlphaPremultiplied(bl, alpha, true);
|
|
543
|
+
this.premultipliedColorBr = mergeColorAlphaPremultiplied(br, alpha, true);
|
|
527
544
|
}
|
|
528
545
|
}
|
|
546
|
+
if (updateParent === true) {
|
|
547
|
+
parent.setUpdateType(UpdateType.Children);
|
|
548
|
+
}
|
|
529
549
|
// No need to update zIndex if there is no parent
|
|
530
|
-
if (
|
|
550
|
+
if (updateType & UpdateType.CalculatedZIndex && parent !== null) {
|
|
531
551
|
this.calculateZIndex();
|
|
532
552
|
// Tell parent to re-sort children
|
|
533
553
|
parent.setUpdateType(UpdateType.ZIndexSortedChildren);
|
|
534
554
|
}
|
|
535
|
-
if (
|
|
555
|
+
if (props.strictBounds === true &&
|
|
536
556
|
this.renderState === CoreNodeRenderState.OutOfBounds) {
|
|
537
|
-
|
|
557
|
+
updateType &= ~UpdateType.RenderBounds; // remove render bounds update
|
|
538
558
|
return;
|
|
539
559
|
}
|
|
540
|
-
if (
|
|
560
|
+
if (updateType & UpdateType.RecalcUniforms &&
|
|
541
561
|
this.hasShaderUpdater === true) {
|
|
542
562
|
//this exists because the boolean hasShaderUpdater === true
|
|
543
563
|
this.shader.update();
|
|
544
564
|
}
|
|
545
|
-
if (
|
|
565
|
+
if (updateType & UpdateType.Children && this.children.length > 0) {
|
|
546
566
|
for (let i = 0, length = this.children.length; i < length; i++) {
|
|
547
567
|
const child = this.children[i];
|
|
548
|
-
child.setUpdateType(
|
|
568
|
+
child.setUpdateType(childUpdateType);
|
|
549
569
|
if (child.updateType === 0) {
|
|
550
570
|
continue;
|
|
551
571
|
}
|
|
@@ -563,14 +583,14 @@ export class CoreNode extends EventEmitter {
|
|
|
563
583
|
}
|
|
564
584
|
}
|
|
565
585
|
// If the node has an RTT parent and requires a texture re-render, inform the RTT parent
|
|
566
|
-
// if (this.parentHasRenderTexture &&
|
|
586
|
+
// if (this.parentHasRenderTexture && updateType & UpdateType.RenderTexture) {
|
|
567
587
|
// @TODO have a more scoped down updateType for RTT updates
|
|
568
|
-
if (
|
|
588
|
+
if (parentHasRenderTexture === true) {
|
|
569
589
|
this.notifyParentRTTOfUpdate();
|
|
570
590
|
}
|
|
571
591
|
// Sorting children MUST happen after children have been updated so
|
|
572
592
|
// that they have the oppotunity to update their calculated zIndex.
|
|
573
|
-
if (
|
|
593
|
+
if (updateType & UpdateType.ZIndexSortedChildren) {
|
|
574
594
|
// reorder z-index
|
|
575
595
|
this.sortChildren();
|
|
576
596
|
}
|
|
@@ -589,7 +609,6 @@ export class CoreNode extends EventEmitter {
|
|
|
589
609
|
// notify children that we are going out of bounds
|
|
590
610
|
// we have to do this now before we stop processing the render tree
|
|
591
611
|
this.notifyChildrenRTTOfUpdate(renderState);
|
|
592
|
-
// this.childUpdateType |= UpdateType.RenderState;
|
|
593
612
|
}
|
|
594
613
|
}
|
|
595
614
|
// reset update type
|
|
@@ -628,9 +647,6 @@ export class CoreNode extends EventEmitter {
|
|
|
628
647
|
}
|
|
629
648
|
}
|
|
630
649
|
checkRenderBounds() {
|
|
631
|
-
assertTruthy(this.renderBound);
|
|
632
|
-
assertTruthy(this.strictBound);
|
|
633
|
-
assertTruthy(this.preloadBound);
|
|
634
650
|
if (boundInsideBound(this.renderBound, this.strictBound)) {
|
|
635
651
|
return CoreNodeRenderState.InViewport;
|
|
636
652
|
}
|
|
@@ -649,10 +665,8 @@ export class CoreNode extends EventEmitter {
|
|
|
649
665
|
return CoreNodeRenderState.OutOfBounds;
|
|
650
666
|
}
|
|
651
667
|
updateBoundingRect() {
|
|
652
|
-
const transform = this.sceneGlobalTransform || this.globalTransform;
|
|
653
|
-
const renderCoords = this.sceneRenderCoords || this.renderCoords;
|
|
654
|
-
assertTruthy(transform);
|
|
655
|
-
assertTruthy(renderCoords);
|
|
668
|
+
const transform = (this.sceneGlobalTransform || this.globalTransform);
|
|
669
|
+
const renderCoords = (this.sceneRenderCoords || this.renderCoords);
|
|
656
670
|
if (transform.tb === 0 || transform.tc === 0) {
|
|
657
671
|
this.renderBound = createBound(renderCoords.x1, renderCoords.y1, renderCoords.x3, renderCoords.y3, this.renderBound);
|
|
658
672
|
}
|
|
@@ -716,7 +730,8 @@ export class CoreNode extends EventEmitter {
|
|
|
716
730
|
let newIsRenderable = false;
|
|
717
731
|
let needsTextureOwnership = false;
|
|
718
732
|
// If the node is out of bounds or has an alpha of 0, it is not renderable
|
|
719
|
-
if (this.
|
|
733
|
+
if (this.worldAlpha === 0 ||
|
|
734
|
+
this.renderState <= CoreNodeRenderState.OutOfBounds) {
|
|
720
735
|
this.updateTextureOwnership(false);
|
|
721
736
|
this.setRenderable(false);
|
|
722
737
|
return;
|
|
@@ -726,8 +741,11 @@ export class CoreNode extends EventEmitter {
|
|
|
726
741
|
// we're only renderable if the texture state is loaded
|
|
727
742
|
newIsRenderable = this.texture.state === 'loaded';
|
|
728
743
|
}
|
|
729
|
-
else if (
|
|
730
|
-
|
|
744
|
+
else if (
|
|
745
|
+
// check shader
|
|
746
|
+
(this.props.shader !== null || this.hasColorProps === true) &&
|
|
747
|
+
// check dimensions
|
|
748
|
+
(this.props.width !== 0 && this.props.height !== 0) === true) {
|
|
731
749
|
// This mean we have dimensions and a color set, so we can render a ColorTexture
|
|
732
750
|
if (this.stage.defaultTexture &&
|
|
733
751
|
this.stage.defaultTexture.state === 'loaded') {
|
|
@@ -737,17 +755,6 @@ export class CoreNode extends EventEmitter {
|
|
|
737
755
|
this.updateTextureOwnership(needsTextureOwnership);
|
|
738
756
|
this.setRenderable(newIsRenderable);
|
|
739
757
|
}
|
|
740
|
-
/**
|
|
741
|
-
* Checks if the node is renderable based on world alpha, dimensions and out of bounds status.
|
|
742
|
-
*/
|
|
743
|
-
checkBasicRenderability() {
|
|
744
|
-
if (this.worldAlpha === 0 || this.isOutOfBounds() === true) {
|
|
745
|
-
return false;
|
|
746
|
-
}
|
|
747
|
-
else {
|
|
748
|
-
return true;
|
|
749
|
-
}
|
|
750
|
-
}
|
|
751
758
|
/**
|
|
752
759
|
* Sets the renderable state and triggers changes if necessary.
|
|
753
760
|
* @param isRenderable - The new renderable state
|
|
@@ -766,38 +773,10 @@ export class CoreNode extends EventEmitter {
|
|
|
766
773
|
updateTextureOwnership(isRenderable) {
|
|
767
774
|
this.texture?.setRenderableOwner(this, isRenderable);
|
|
768
775
|
}
|
|
769
|
-
/**
|
|
770
|
-
* Checks if the node is out of the viewport bounds.
|
|
771
|
-
*/
|
|
772
|
-
isOutOfBounds() {
|
|
773
|
-
return this.renderState <= CoreNodeRenderState.OutOfBounds;
|
|
774
|
-
}
|
|
775
|
-
/**
|
|
776
|
-
* Checks if the node has dimensions (width/height)
|
|
777
|
-
*/
|
|
778
|
-
hasDimensions() {
|
|
779
|
-
return this.props.width !== 0 && this.props.height !== 0;
|
|
780
|
-
}
|
|
781
|
-
/**
|
|
782
|
-
* Checks if the node has any color properties set.
|
|
783
|
-
*/
|
|
784
|
-
hasColorProperties() {
|
|
785
|
-
return (this.props.color !== 0 ||
|
|
786
|
-
this.props.colorTop !== 0 ||
|
|
787
|
-
this.props.colorBottom !== 0 ||
|
|
788
|
-
this.props.colorLeft !== 0 ||
|
|
789
|
-
this.props.colorRight !== 0 ||
|
|
790
|
-
this.props.colorTl !== 0 ||
|
|
791
|
-
this.props.colorTr !== 0 ||
|
|
792
|
-
this.props.colorBl !== 0 ||
|
|
793
|
-
this.props.colorBr !== 0);
|
|
794
|
-
}
|
|
795
|
-
hasShader() {
|
|
796
|
-
return this.props.shader !== null;
|
|
797
|
-
}
|
|
798
776
|
calculateRenderCoords() {
|
|
799
777
|
const { width, height } = this;
|
|
800
|
-
const
|
|
778
|
+
const g = this.globalTransform;
|
|
779
|
+
const tx = g.tx, ty = g.ty, ta = g.ta, tb = g.tb, tc = g.tc, td = g.td;
|
|
801
780
|
if (tb === 0 && tc === 0) {
|
|
802
781
|
const minX = tx;
|
|
803
782
|
const maxX = tx + width * ta;
|
|
@@ -864,7 +843,6 @@ export class CoreNode extends EventEmitter {
|
|
|
864
843
|
* Finally, the node's parentClippingRect and clippingRect properties are updated.
|
|
865
844
|
*/
|
|
866
845
|
calculateClippingRect(parentClippingRect) {
|
|
867
|
-
assertTruthy(this.globalTransform);
|
|
868
846
|
const { clippingRect, props, globalTransform: gt } = this;
|
|
869
847
|
const { clipping } = props;
|
|
870
848
|
const isRotated = gt.tb !== 0 || gt.tc !== 0;
|
|
@@ -902,68 +880,63 @@ export class CoreNode extends EventEmitter {
|
|
|
902
880
|
* Destroy the node and cleanup all resources
|
|
903
881
|
*/
|
|
904
882
|
destroy() {
|
|
883
|
+
if (this.destroyed === true) {
|
|
884
|
+
return;
|
|
885
|
+
}
|
|
886
|
+
this.removeAllListeners();
|
|
887
|
+
this.destroyed = true;
|
|
905
888
|
this.unloadTexture();
|
|
906
|
-
this.clippingRect.valid = false;
|
|
907
889
|
this.isRenderable = false;
|
|
908
|
-
|
|
909
|
-
this.renderBound = undefined;
|
|
910
|
-
this.strictBound = undefined;
|
|
911
|
-
this.preloadBound = undefined;
|
|
912
|
-
this.globalTransform = undefined;
|
|
913
|
-
this.scaleRotateTransform = undefined;
|
|
914
|
-
this.localTransform = undefined;
|
|
915
|
-
this.props.texture = null;
|
|
916
|
-
this.props.shader = null;
|
|
890
|
+
// Kill children
|
|
917
891
|
while (this.children.length > 0) {
|
|
918
|
-
this.children[0]
|
|
892
|
+
this.children[0].destroy();
|
|
919
893
|
}
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
894
|
+
const parent = this.parent;
|
|
895
|
+
if (parent !== null) {
|
|
896
|
+
const index = parent.children.indexOf(this);
|
|
897
|
+
parent.children.splice(index, 1);
|
|
898
|
+
parent.setUpdateType(UpdateType.Children | UpdateType.ZIndexSortedChildren);
|
|
899
|
+
}
|
|
900
|
+
this.props.parent = null;
|
|
901
|
+
this.props.texture = null;
|
|
902
|
+
if (this.rtt === true) {
|
|
923
903
|
this.stage.renderer.removeRTTNode(this);
|
|
924
904
|
}
|
|
925
|
-
this.removeAllListeners();
|
|
926
905
|
}
|
|
927
906
|
renderQuads(renderer) {
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
if (!renderer.renderToTextureActive) {
|
|
932
|
-
return;
|
|
933
|
-
}
|
|
934
|
-
// Prevent quad rendering if parent render texture is not the active render texture
|
|
935
|
-
if (this.parentRenderTexture !== renderer.activeRttNode) {
|
|
907
|
+
if (this.parentHasRenderTexture === true) {
|
|
908
|
+
const rtt = renderer.renderToTextureActive;
|
|
909
|
+
if (rtt === false || this.parentRenderTexture !== renderer.activeRttNode)
|
|
936
910
|
return;
|
|
937
|
-
}
|
|
938
911
|
}
|
|
939
|
-
|
|
940
|
-
|
|
912
|
+
const p = this.props;
|
|
913
|
+
const t = this.globalTransform;
|
|
914
|
+
const coords = this.renderCoords;
|
|
915
|
+
const texture = p.texture || this.stage.defaultTexture;
|
|
941
916
|
renderer.addQuad({
|
|
942
|
-
width:
|
|
943
|
-
height:
|
|
917
|
+
width: p.width,
|
|
918
|
+
height: p.height,
|
|
944
919
|
colorTl: this.premultipliedColorTl,
|
|
945
920
|
colorTr: this.premultipliedColorTr,
|
|
946
921
|
colorBl: this.premultipliedColorBl,
|
|
947
922
|
colorBr: this.premultipliedColorBr,
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
texture: this.texture || this.stage.defaultTexture,
|
|
951
|
-
textureOptions: this.textureOptions,
|
|
923
|
+
texture,
|
|
924
|
+
textureOptions: p.textureOptions,
|
|
952
925
|
textureCoords: this.textureCoords,
|
|
953
|
-
|
|
954
|
-
shader: this.props.shader,
|
|
926
|
+
shader: p.shader,
|
|
955
927
|
alpha: this.worldAlpha,
|
|
956
928
|
clippingRect: this.clippingRect,
|
|
957
|
-
tx:
|
|
958
|
-
ty:
|
|
959
|
-
ta:
|
|
960
|
-
tb:
|
|
961
|
-
tc:
|
|
962
|
-
td:
|
|
963
|
-
renderCoords:
|
|
964
|
-
rtt:
|
|
929
|
+
tx: t.tx,
|
|
930
|
+
ty: t.ty,
|
|
931
|
+
ta: t.ta,
|
|
932
|
+
tb: t.tb,
|
|
933
|
+
tc: t.tc,
|
|
934
|
+
td: t.td,
|
|
935
|
+
renderCoords: coords,
|
|
936
|
+
rtt: p.rtt,
|
|
937
|
+
zIndex: this.calcZIndex,
|
|
965
938
|
parentHasRenderTexture: this.parentHasRenderTexture,
|
|
966
|
-
framebufferDimensions: this.parentHasRenderTexture
|
|
939
|
+
framebufferDimensions: this.parentHasRenderTexture
|
|
967
940
|
? this.parentFramebufferDimensions
|
|
968
941
|
: null,
|
|
969
942
|
});
|
|
@@ -1011,6 +984,7 @@ export class CoreNode extends EventEmitter {
|
|
|
1011
984
|
}
|
|
1012
985
|
set width(value) {
|
|
1013
986
|
if (this.props.width !== value) {
|
|
987
|
+
this.textureCoords = undefined;
|
|
1014
988
|
this.props.width = value;
|
|
1015
989
|
this.setUpdateType(UpdateType.Local);
|
|
1016
990
|
if (this.props.rtt === true) {
|
|
@@ -1025,6 +999,7 @@ export class CoreNode extends EventEmitter {
|
|
|
1025
999
|
}
|
|
1026
1000
|
set height(value) {
|
|
1027
1001
|
if (this.props.height !== value) {
|
|
1002
|
+
this.textureCoords = undefined;
|
|
1028
1003
|
this.props.height = value;
|
|
1029
1004
|
this.setUpdateType(UpdateType.Local);
|
|
1030
1005
|
if (this.props.rtt === true) {
|
|
@@ -1051,7 +1026,7 @@ export class CoreNode extends EventEmitter {
|
|
|
1051
1026
|
set scaleX(value) {
|
|
1052
1027
|
if (this.props.scaleX !== value) {
|
|
1053
1028
|
this.props.scaleX = value;
|
|
1054
|
-
this.setUpdateType(UpdateType.
|
|
1029
|
+
this.setUpdateType(UpdateType.Local);
|
|
1055
1030
|
}
|
|
1056
1031
|
}
|
|
1057
1032
|
get scaleY() {
|
|
@@ -1060,7 +1035,7 @@ export class CoreNode extends EventEmitter {
|
|
|
1060
1035
|
set scaleY(value) {
|
|
1061
1036
|
if (this.props.scaleY !== value) {
|
|
1062
1037
|
this.props.scaleY = value;
|
|
1063
|
-
this.setUpdateType(UpdateType.
|
|
1038
|
+
this.setUpdateType(UpdateType.Local);
|
|
1064
1039
|
}
|
|
1065
1040
|
}
|
|
1066
1041
|
get mount() {
|
|
@@ -1127,7 +1102,7 @@ export class CoreNode extends EventEmitter {
|
|
|
1127
1102
|
set rotation(value) {
|
|
1128
1103
|
if (this.props.rotation !== value) {
|
|
1129
1104
|
this.props.rotation = value;
|
|
1130
|
-
this.setUpdateType(UpdateType.
|
|
1105
|
+
this.setUpdateType(UpdateType.Local);
|
|
1131
1106
|
}
|
|
1132
1107
|
}
|
|
1133
1108
|
get alpha() {
|
|
@@ -1148,9 +1123,18 @@ export class CoreNode extends EventEmitter {
|
|
|
1148
1123
|
this.props.autosize = value;
|
|
1149
1124
|
}
|
|
1150
1125
|
get boundsMargin() {
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
|
|
1126
|
+
const props = this.props;
|
|
1127
|
+
if (props.boundsMargin !== null) {
|
|
1128
|
+
return props.boundsMargin;
|
|
1129
|
+
}
|
|
1130
|
+
const parent = this.parent;
|
|
1131
|
+
if (parent !== null) {
|
|
1132
|
+
const margin = parent.boundsMargin;
|
|
1133
|
+
if (margin !== undefined) {
|
|
1134
|
+
return margin;
|
|
1135
|
+
}
|
|
1136
|
+
}
|
|
1137
|
+
return this.stage.boundsMargin;
|
|
1154
1138
|
}
|
|
1155
1139
|
set boundsMargin(value) {
|
|
1156
1140
|
if (value === this.props.boundsMargin) {
|
|
@@ -1179,11 +1163,20 @@ export class CoreNode extends EventEmitter {
|
|
|
1179
1163
|
return this.props.color;
|
|
1180
1164
|
}
|
|
1181
1165
|
set color(value) {
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1166
|
+
const p = this.props;
|
|
1167
|
+
if (p.color === value)
|
|
1168
|
+
return;
|
|
1169
|
+
p.color = value;
|
|
1170
|
+
const has = value > 0;
|
|
1171
|
+
this.hasColorProps = has;
|
|
1172
|
+
if (p.colorTop !== value)
|
|
1173
|
+
this.colorTop = value;
|
|
1174
|
+
if (p.colorBottom !== value)
|
|
1175
|
+
this.colorBottom = value;
|
|
1176
|
+
if (p.colorLeft !== value)
|
|
1177
|
+
this.colorLeft = value;
|
|
1178
|
+
if (p.colorRight !== value)
|
|
1179
|
+
this.colorRight = value;
|
|
1187
1180
|
this.setUpdateType(UpdateType.PremultipliedColors);
|
|
1188
1181
|
}
|
|
1189
1182
|
get colorTop() {
|
|
@@ -1195,6 +1188,7 @@ export class CoreNode extends EventEmitter {
|
|
|
1195
1188
|
this.colorTr = value;
|
|
1196
1189
|
}
|
|
1197
1190
|
this.props.colorTop = value;
|
|
1191
|
+
this.hasColorProps = value > 0;
|
|
1198
1192
|
this.setUpdateType(UpdateType.PremultipliedColors);
|
|
1199
1193
|
}
|
|
1200
1194
|
get colorBottom() {
|
|
@@ -1206,6 +1200,7 @@ export class CoreNode extends EventEmitter {
|
|
|
1206
1200
|
this.colorBr = value;
|
|
1207
1201
|
}
|
|
1208
1202
|
this.props.colorBottom = value;
|
|
1203
|
+
this.hasColorProps = value > 0;
|
|
1209
1204
|
this.setUpdateType(UpdateType.PremultipliedColors);
|
|
1210
1205
|
}
|
|
1211
1206
|
get colorLeft() {
|
|
@@ -1217,6 +1212,7 @@ export class CoreNode extends EventEmitter {
|
|
|
1217
1212
|
this.colorBl = value;
|
|
1218
1213
|
}
|
|
1219
1214
|
this.props.colorLeft = value;
|
|
1215
|
+
this.hasColorProps = value > 0;
|
|
1220
1216
|
this.setUpdateType(UpdateType.PremultipliedColors);
|
|
1221
1217
|
}
|
|
1222
1218
|
get colorRight() {
|
|
@@ -1228,6 +1224,7 @@ export class CoreNode extends EventEmitter {
|
|
|
1228
1224
|
this.colorBr = value;
|
|
1229
1225
|
}
|
|
1230
1226
|
this.props.colorRight = value;
|
|
1227
|
+
this.hasColorProps = value > 0;
|
|
1231
1228
|
this.setUpdateType(UpdateType.PremultipliedColors);
|
|
1232
1229
|
}
|
|
1233
1230
|
get colorTl() {
|
|
@@ -1235,6 +1232,7 @@ export class CoreNode extends EventEmitter {
|
|
|
1235
1232
|
}
|
|
1236
1233
|
set colorTl(value) {
|
|
1237
1234
|
this.props.colorTl = value;
|
|
1235
|
+
this.hasColorProps = value > 0;
|
|
1238
1236
|
this.setUpdateType(UpdateType.PremultipliedColors);
|
|
1239
1237
|
}
|
|
1240
1238
|
get colorTr() {
|
|
@@ -1242,6 +1240,7 @@ export class CoreNode extends EventEmitter {
|
|
|
1242
1240
|
}
|
|
1243
1241
|
set colorTr(value) {
|
|
1244
1242
|
this.props.colorTr = value;
|
|
1243
|
+
this.hasColorProps = value > 0;
|
|
1245
1244
|
this.setUpdateType(UpdateType.PremultipliedColors);
|
|
1246
1245
|
}
|
|
1247
1246
|
get colorBl() {
|
|
@@ -1249,6 +1248,7 @@ export class CoreNode extends EventEmitter {
|
|
|
1249
1248
|
}
|
|
1250
1249
|
set colorBl(value) {
|
|
1251
1250
|
this.props.colorBl = value;
|
|
1251
|
+
this.hasColorProps = value > 0;
|
|
1252
1252
|
this.setUpdateType(UpdateType.PremultipliedColors);
|
|
1253
1253
|
}
|
|
1254
1254
|
get colorBr() {
|
|
@@ -1256,6 +1256,7 @@ export class CoreNode extends EventEmitter {
|
|
|
1256
1256
|
}
|
|
1257
1257
|
set colorBr(value) {
|
|
1258
1258
|
this.props.colorBr = value;
|
|
1259
|
+
this.hasColorProps = value > 0;
|
|
1259
1260
|
this.setUpdateType(UpdateType.PremultipliedColors);
|
|
1260
1261
|
}
|
|
1261
1262
|
// we're only interested in parent zIndex to test
|
|
@@ -1305,7 +1306,6 @@ export class CoreNode extends EventEmitter {
|
|
|
1305
1306
|
this.applyRTTInheritance(newParent);
|
|
1306
1307
|
}
|
|
1307
1308
|
}
|
|
1308
|
-
this.updateScaleRotateTransform();
|
|
1309
1309
|
// fetch render bounds from parent
|
|
1310
1310
|
this.setUpdateType(UpdateType.RenderBounds | UpdateType.Children);
|
|
1311
1311
|
}
|
|
@@ -1484,7 +1484,6 @@ export class CoreNode extends EventEmitter {
|
|
|
1484
1484
|
}
|
|
1485
1485
|
const oldTexture = this.props.texture;
|
|
1486
1486
|
if (oldTexture) {
|
|
1487
|
-
oldTexture.setRenderableOwner(this, false);
|
|
1488
1487
|
this.unloadTexture();
|
|
1489
1488
|
}
|
|
1490
1489
|
this.textureCoords = undefined;
|
|
@@ -1501,6 +1500,20 @@ export class CoreNode extends EventEmitter {
|
|
|
1501
1500
|
get textureOptions() {
|
|
1502
1501
|
return this.props.textureOptions;
|
|
1503
1502
|
}
|
|
1503
|
+
set interactive(value) {
|
|
1504
|
+
this.props.interactive = value;
|
|
1505
|
+
// Update Stage's interactive Set
|
|
1506
|
+
if (value === true) {
|
|
1507
|
+
this.stage.interactiveNodes.add(this);
|
|
1508
|
+
}
|
|
1509
|
+
}
|
|
1510
|
+
get interactive() {
|
|
1511
|
+
return this.props.interactive;
|
|
1512
|
+
}
|
|
1513
|
+
setRTTUpdates(type) {
|
|
1514
|
+
this.hasRTTupdates = true;
|
|
1515
|
+
this.parent?.setRTTUpdates(type);
|
|
1516
|
+
}
|
|
1504
1517
|
get strictBounds() {
|
|
1505
1518
|
return this.props.strictBounds;
|
|
1506
1519
|
}
|