@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.
Files changed (497) hide show
  1. package/COPYING +1 -0
  2. package/LICENSE +202 -202
  3. package/NOTICE +3 -3
  4. package/README.md +147 -147
  5. package/dist/exports/utils.d.ts +2 -1
  6. package/dist/exports/utils.js +2 -1
  7. package/dist/exports/utils.js.map +1 -1
  8. package/dist/src/core/CoreNode.d.ts +33 -49
  9. package/dist/src/core/CoreNode.js +268 -255
  10. package/dist/src/core/CoreNode.js.map +1 -1
  11. package/dist/src/core/CoreTextNode.d.ts +1 -1
  12. package/dist/src/core/CoreTextNode.js +14 -15
  13. package/dist/src/core/CoreTextNode.js.map +1 -1
  14. package/dist/src/core/CoreTextureManager.js +11 -4
  15. package/dist/src/core/CoreTextureManager.js.map +1 -1
  16. package/dist/src/core/Stage.d.ts +27 -26
  17. package/dist/src/core/Stage.js +88 -36
  18. package/dist/src/core/Stage.js.map +1 -1
  19. package/dist/src/core/TextureMemoryManager.d.ts +9 -0
  20. package/dist/src/core/TextureMemoryManager.js +78 -48
  21. package/dist/src/core/TextureMemoryManager.js.map +1 -1
  22. package/dist/src/core/animations/CoreAnimation.js +5 -0
  23. package/dist/src/core/animations/CoreAnimation.js.map +1 -1
  24. package/dist/src/core/animations/CoreAnimationController.d.ts +1 -0
  25. package/dist/src/core/animations/CoreAnimationController.js +7 -1
  26. package/dist/src/core/animations/CoreAnimationController.js.map +1 -1
  27. package/dist/src/core/lib/ImageWorker.js +1 -1
  28. package/dist/src/core/lib/ImageWorker.js.map +1 -1
  29. package/dist/src/core/lib/utils.d.ts +1 -0
  30. package/dist/src/core/lib/utils.js +3 -0
  31. package/dist/src/core/lib/utils.js.map +1 -1
  32. package/dist/src/core/renderers/CoreRenderer.d.ts +1 -0
  33. package/dist/src/core/renderers/CoreRenderer.js.map +1 -1
  34. package/dist/src/core/renderers/CoreShaderNode.d.ts +1 -0
  35. package/dist/src/core/renderers/CoreShaderNode.js +9 -0
  36. package/dist/src/core/renderers/CoreShaderNode.js.map +1 -1
  37. package/dist/src/core/renderers/canvas/CanvasRenderer.d.ts +1 -0
  38. package/dist/src/core/renderers/canvas/CanvasRenderer.js +3 -0
  39. package/dist/src/core/renderers/canvas/CanvasRenderer.js.map +1 -1
  40. package/dist/src/core/renderers/canvas/CanvasShaderNode.js +1 -4
  41. package/dist/src/core/renderers/canvas/CanvasShaderNode.js.map +1 -1
  42. package/dist/src/core/renderers/webgl/WebGlCtxTexture.js +0 -3
  43. package/dist/src/core/renderers/webgl/WebGlCtxTexture.js.map +1 -1
  44. package/dist/src/core/renderers/webgl/WebGlRenderer.d.ts +2 -2
  45. package/dist/src/core/renderers/webgl/WebGlRenderer.js +57 -57
  46. package/dist/src/core/renderers/webgl/WebGlRenderer.js.map +1 -1
  47. package/dist/src/core/renderers/webgl/WebGlShaderNode.js +1 -4
  48. package/dist/src/core/renderers/webgl/WebGlShaderNode.js.map +1 -1
  49. package/dist/src/core/renderers/webgl/internal/ShaderUtils.js +35 -35
  50. package/dist/src/core/shaders/canvas/LinearGradient.js +5 -3
  51. package/dist/src/core/shaders/canvas/LinearGradient.js.map +1 -1
  52. package/dist/src/core/shaders/canvas/RadialGradient.js +13 -11
  53. package/dist/src/core/shaders/canvas/RadialGradient.js.map +1 -1
  54. package/dist/src/core/shaders/canvas/RoundedWithBorder.js +7 -5
  55. package/dist/src/core/shaders/canvas/RoundedWithBorder.js.map +1 -1
  56. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js +10 -8
  57. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js.map +1 -1
  58. package/dist/src/core/shaders/canvas/RoundedWithShadow.js +7 -5
  59. package/dist/src/core/shaders/canvas/RoundedWithShadow.js.map +1 -1
  60. package/dist/src/core/shaders/templates/BorderTemplate.d.ts +1 -1
  61. package/dist/src/core/shaders/templates/BorderTemplate.js +1 -1
  62. package/dist/src/core/shaders/templates/BorderTemplate.js.map +1 -1
  63. package/dist/src/core/shaders/templates/HolePunchTemplate.js +1 -1
  64. package/dist/src/core/shaders/templates/HolePunchTemplate.js.map +1 -1
  65. package/dist/src/core/shaders/templates/RoundedTemplate.js +1 -1
  66. package/dist/src/core/shaders/templates/RoundedTemplate.js.map +1 -1
  67. package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.d.ts +1 -1
  68. package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.d.ts +1 -1
  69. package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.d.ts +1 -1
  70. package/dist/src/core/shaders/templates/ShadowTemplate.d.ts +1 -1
  71. package/dist/src/core/shaders/{templates/shaderUtils.d.ts → utils.d.ts} +1 -1
  72. package/dist/src/core/shaders/{templates/shaderUtils.js → utils.js} +2 -2
  73. package/dist/src/core/shaders/utils.js.map +1 -0
  74. package/dist/src/core/shaders/webgl/Border.js +82 -82
  75. package/dist/src/core/shaders/webgl/Default.js +47 -47
  76. package/dist/src/core/shaders/webgl/DefaultBatched.js +61 -61
  77. package/dist/src/core/shaders/webgl/HolePunch.js +36 -35
  78. package/dist/src/core/shaders/webgl/HolePunch.js.map +1 -1
  79. package/dist/src/core/shaders/webgl/LinearGradient.js +41 -40
  80. package/dist/src/core/shaders/webgl/LinearGradient.js.map +1 -1
  81. package/dist/src/core/shaders/webgl/RadialGradient.js +39 -38
  82. package/dist/src/core/shaders/webgl/RadialGradient.js.map +1 -1
  83. package/dist/src/core/shaders/webgl/Rounded.js +71 -71
  84. package/dist/src/core/shaders/webgl/RoundedWithBorder.js +111 -100
  85. package/dist/src/core/shaders/webgl/RoundedWithBorder.js.map +1 -1
  86. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js +136 -123
  87. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js.map +1 -1
  88. package/dist/src/core/shaders/webgl/RoundedWithShadow.js +54 -54
  89. package/dist/src/core/shaders/webgl/SdfShader.js +62 -62
  90. package/dist/src/core/shaders/webgl/Shadow.js +83 -83
  91. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js +0 -50
  92. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js.map +1 -1
  93. package/dist/src/core/textures/ImageTexture.d.ts +1 -1
  94. package/dist/src/core/textures/ImageTexture.js +6 -1
  95. package/dist/src/core/textures/ImageTexture.js.map +1 -1
  96. package/dist/src/core/textures/Texture.d.ts +8 -0
  97. package/dist/src/core/textures/Texture.js +13 -0
  98. package/dist/src/core/textures/Texture.js.map +1 -1
  99. package/dist/src/core/utils.d.ts +1 -1
  100. package/dist/src/main-api/Inspector.d.ts +6 -1
  101. package/dist/src/main-api/Inspector.js +42 -4
  102. package/dist/src/main-api/Inspector.js.map +1 -1
  103. package/dist/src/main-api/Renderer.d.ts +62 -43
  104. package/dist/src/main-api/Renderer.js +119 -31
  105. package/dist/src/main-api/Renderer.js.map +1 -1
  106. package/dist/tsconfig.dist.tsbuildinfo +1 -1
  107. package/exports/canvas-shaders.ts +28 -28
  108. package/exports/canvas.ts +45 -45
  109. package/exports/index.ts +90 -90
  110. package/exports/inspector.ts +24 -24
  111. package/exports/utils.ts +50 -44
  112. package/exports/webgl-shaders.ts +28 -28
  113. package/exports/webgl.ts +50 -50
  114. package/package.json +1 -2
  115. package/src/common/CommonTypes.ts +146 -146
  116. package/src/common/EventEmitter.ts +77 -77
  117. package/src/common/IAnimationController.ts +92 -92
  118. package/src/common/IEventEmitter.ts +28 -28
  119. package/src/core/CoreNode.test.ts +202 -202
  120. package/src/core/CoreNode.ts +2483 -2469
  121. package/src/core/CoreShaderManager.ts +188 -188
  122. package/src/core/CoreTextNode.ts +451 -448
  123. package/src/core/CoreTextureManager.ts +608 -600
  124. package/src/core/Stage.ts +800 -751
  125. package/src/core/TextureMemoryManager.ts +435 -394
  126. package/src/core/animations/AnimationManager.ts +38 -38
  127. package/src/core/animations/CoreAnimation.ts +291 -284
  128. package/src/core/animations/CoreAnimationController.ts +164 -157
  129. package/src/core/lib/ContextSpy.ts +41 -41
  130. package/src/core/lib/ImageWorker.ts +286 -280
  131. package/src/core/lib/Matrix3d.ts +244 -244
  132. package/src/core/lib/RenderCoords.ts +71 -71
  133. package/src/core/lib/WebGlContextWrapper.ts +1374 -1374
  134. package/src/core/lib/textureCompression.ts +152 -152
  135. package/src/core/lib/textureSvg.ts +78 -78
  136. package/src/core/lib/utils.ts +390 -386
  137. package/src/core/lib/validateImageBitmap.ts +87 -87
  138. package/src/core/platforms/Platform.ts +77 -77
  139. package/src/core/platforms/web/WebPlatform.ts +84 -84
  140. package/src/core/renderers/CoreContextTexture.ts +43 -43
  141. package/src/core/renderers/CoreRenderOp.ts +22 -22
  142. package/src/core/renderers/CoreRenderer.ts +110 -109
  143. package/src/core/renderers/CoreShaderNode.ts +175 -165
  144. package/src/core/renderers/CoreShaderProgram.ts +23 -23
  145. package/src/core/renderers/canvas/CanvasRenderer.ts +302 -298
  146. package/src/core/renderers/canvas/CanvasShaderNode.ts +96 -99
  147. package/src/core/renderers/canvas/CanvasTexture.ts +156 -156
  148. package/src/core/renderers/canvas/internal/C2DShaderUtils.ts +220 -220
  149. package/src/core/renderers/canvas/internal/ColorUtils.ts +85 -85
  150. package/src/core/renderers/webgl/WebGlCtxRenderTexture.ts +86 -86
  151. package/src/core/renderers/webgl/WebGlCtxSubTexture.ts +50 -50
  152. package/src/core/renderers/webgl/WebGlCtxTexture.ts +298 -301
  153. package/src/core/renderers/webgl/WebGlRenderOp.ts +161 -161
  154. package/src/core/renderers/webgl/WebGlRenderer.ts +747 -750
  155. package/src/core/renderers/webgl/WebGlShaderNode.ts +435 -437
  156. package/src/core/renderers/webgl/WebGlShaderProgram.ts +318 -318
  157. package/src/core/renderers/webgl/internal/BufferCollection.ts +54 -54
  158. package/src/core/renderers/webgl/internal/RendererUtils.ts +155 -155
  159. package/src/core/renderers/webgl/internal/ShaderUtils.ts +281 -281
  160. package/src/core/renderers/webgl/internal/WebGlUtils.ts +35 -35
  161. package/src/core/shaders/canvas/Border.ts +78 -78
  162. package/src/core/shaders/canvas/HolePunch.ts +62 -62
  163. package/src/core/shaders/canvas/LinearGradient.ts +71 -69
  164. package/src/core/shaders/canvas/RadialGradient.ts +99 -113
  165. package/src/core/shaders/canvas/Rounded.ts +55 -55
  166. package/src/core/shaders/canvas/RoundedWithBorder.ts +74 -72
  167. package/src/core/shaders/canvas/RoundedWithBorderAndShadow.ts +90 -88
  168. package/src/core/shaders/canvas/RoundedWithShadow.ts +70 -69
  169. package/src/core/shaders/canvas/Shadow.ts +52 -52
  170. package/src/core/shaders/canvas/utils/render.ts +151 -151
  171. package/src/core/shaders/templates/BorderTemplate.ts +115 -115
  172. package/src/core/shaders/templates/HolePunchTemplate.ts +82 -82
  173. package/src/core/shaders/templates/LinearGradientTemplate.ts +71 -71
  174. package/src/core/shaders/templates/RadialGradientTemplate.ts +81 -81
  175. package/src/core/shaders/templates/RoundedTemplate.ts +98 -98
  176. package/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.ts +38 -38
  177. package/src/core/shaders/templates/RoundedWithBorderTemplate.ts +35 -35
  178. package/src/core/shaders/templates/RoundedWithShadowTemplate.ts +35 -35
  179. package/src/core/shaders/templates/ShadowTemplate.ts +106 -106
  180. package/src/core/shaders/{templates/shaderUtils.ts → utils.ts} +46 -47
  181. package/src/core/shaders/webgl/Border.ts +116 -116
  182. package/src/core/shaders/webgl/Default.ts +89 -89
  183. package/src/core/shaders/webgl/DefaultBatched.ts +129 -129
  184. package/src/core/shaders/webgl/HolePunch.ts +75 -78
  185. package/src/core/shaders/webgl/LinearGradient.ts +82 -81
  186. package/src/core/shaders/webgl/RadialGradient.ts +85 -84
  187. package/src/core/shaders/webgl/Rounded.ts +117 -117
  188. package/src/core/shaders/webgl/RoundedWithBorder.ts +155 -144
  189. package/src/core/shaders/webgl/RoundedWithBorderAndShadow.ts +175 -166
  190. package/src/core/shaders/webgl/RoundedWithShadow.ts +98 -98
  191. package/src/core/shaders/webgl/SdfShader.ts +134 -134
  192. package/src/core/shaders/webgl/Shadow.ts +115 -115
  193. package/src/core/text-rendering/TextRenderingUtils.ts +36 -36
  194. package/src/core/text-rendering/TextTextureRendererUtils.ts +263 -263
  195. package/src/core/text-rendering/TrFontManager.ts +183 -183
  196. package/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.ts +176 -176
  197. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.ts +139 -139
  198. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.test.ts +173 -173
  199. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.ts +171 -171
  200. package/src/core/text-rendering/font-face-types/TrFontFace.ts +187 -187
  201. package/src/core/text-rendering/font-face-types/WebTrFontFace.ts +94 -94
  202. package/src/core/text-rendering/font-face-types/utils.ts +39 -39
  203. package/src/core/text-rendering/renderers/CanvasTextRenderer.ts +514 -514
  204. package/src/core/text-rendering/renderers/LightningTextTextureRenderer.ts +863 -863
  205. package/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.ts +793 -849
  206. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.test.ts +48 -48
  207. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.ts +66 -66
  208. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.ts +52 -52
  209. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.ts +32 -32
  210. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.ts +117 -117
  211. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.test.ts +133 -133
  212. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.ts +38 -38
  213. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.ts +497 -497
  214. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.test.ts +49 -49
  215. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.ts +52 -52
  216. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.test.ts +205 -205
  217. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.ts +93 -93
  218. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.ts +40 -40
  219. package/src/core/text-rendering/renderers/TextRenderer.ts +567 -567
  220. package/src/core/textures/ColorTexture.ts +102 -102
  221. package/src/core/textures/ImageTexture.ts +418 -410
  222. package/src/core/textures/NoiseTexture.ts +104 -104
  223. package/src/core/textures/RenderTexture.ts +85 -85
  224. package/src/core/textures/SubTexture.ts +205 -205
  225. package/src/core/textures/Texture.ts +372 -358
  226. package/src/core/utils.ts +227 -227
  227. package/src/env.d.ts +7 -7
  228. package/src/main-api/INode.ts +100 -100
  229. package/src/main-api/Inspector.ts +569 -522
  230. package/src/main-api/Renderer.ts +818 -673
  231. package/src/main-api/utils.ts +45 -45
  232. package/src/utils.ts +267 -267
  233. package/dist/exports/core-api.d.ts +0 -74
  234. package/dist/exports/core-api.js +0 -96
  235. package/dist/exports/core-api.js.map +0 -1
  236. package/dist/exports/main-api.d.ts +0 -30
  237. package/dist/exports/main-api.js +0 -45
  238. package/dist/exports/main-api.js.map +0 -1
  239. package/dist/src/core/CoreExtension.d.ts +0 -12
  240. package/dist/src/core/CoreExtension.js +0 -29
  241. package/dist/src/core/CoreExtension.js.map +0 -1
  242. package/dist/src/core/CoreStuff.d.ts +0 -1
  243. package/dist/src/core/CoreStuff.js +0 -138
  244. package/dist/src/core/CoreStuff.js.map +0 -1
  245. package/dist/src/core/CoreTexturizer.d.ts +0 -14
  246. package/dist/src/core/CoreTexturizer.js +0 -47
  247. package/dist/src/core/CoreTexturizer.js.map +0 -1
  248. package/dist/src/core/LngNode.d.ts +0 -736
  249. package/dist/src/core/LngNode.js +0 -1174
  250. package/dist/src/core/LngNode.js.map +0 -1
  251. package/dist/src/core/Matrix2DContext.d.ts +0 -15
  252. package/dist/src/core/Matrix2DContext.js +0 -45
  253. package/dist/src/core/Matrix2DContext.js.map +0 -1
  254. package/dist/src/core/ShaderNode.d.ts +0 -10
  255. package/dist/src/core/ShaderNode.js +0 -30
  256. package/dist/src/core/ShaderNode.js.map +0 -1
  257. package/dist/src/core/TextNode.d.ts +0 -103
  258. package/dist/src/core/TextNode.js +0 -331
  259. package/dist/src/core/TextNode.js.map +0 -1
  260. package/dist/src/core/lib/Coords.d.ts +0 -14
  261. package/dist/src/core/lib/Coords.js +0 -55
  262. package/dist/src/core/lib/Coords.js.map +0 -1
  263. package/dist/src/core/lib/glm/common.d.ts +0 -162
  264. package/dist/src/core/lib/glm/common.js +0 -81
  265. package/dist/src/core/lib/glm/common.js.map +0 -1
  266. package/dist/src/core/lib/glm/index.d.ts +0 -11
  267. package/dist/src/core/lib/glm/index.js +0 -30
  268. package/dist/src/core/lib/glm/index.js.map +0 -1
  269. package/dist/src/core/lib/glm/mat2.d.ts +0 -219
  270. package/dist/src/core/lib/glm/mat2.js +0 -396
  271. package/dist/src/core/lib/glm/mat2.js.map +0 -1
  272. package/dist/src/core/lib/glm/mat2d.d.ts +0 -237
  273. package/dist/src/core/lib/glm/mat2d.js +0 -442
  274. package/dist/src/core/lib/glm/mat2d.js.map +0 -1
  275. package/dist/src/core/lib/glm/mat3.d.ts +0 -283
  276. package/dist/src/core/lib/glm/mat3.js +0 -680
  277. package/dist/src/core/lib/glm/mat3.js.map +0 -1
  278. package/dist/src/core/lib/glm/mat4.d.ts +0 -550
  279. package/dist/src/core/lib/glm/mat4.js +0 -1802
  280. package/dist/src/core/lib/glm/mat4.js.map +0 -1
  281. package/dist/src/core/lib/glm/quat.d.ts +0 -363
  282. package/dist/src/core/lib/glm/quat.js +0 -693
  283. package/dist/src/core/lib/glm/quat.js.map +0 -1
  284. package/dist/src/core/lib/glm/quat2.d.ts +0 -356
  285. package/dist/src/core/lib/glm/quat2.js +0 -754
  286. package/dist/src/core/lib/glm/quat2.js.map +0 -1
  287. package/dist/src/core/lib/glm/vec2.d.ts +0 -365
  288. package/dist/src/core/lib/glm/vec2.js +0 -569
  289. package/dist/src/core/lib/glm/vec2.js.map +0 -1
  290. package/dist/src/core/lib/glm/vec3.d.ts +0 -406
  291. package/dist/src/core/lib/glm/vec3.js +0 -720
  292. package/dist/src/core/lib/glm/vec3.js.map +0 -1
  293. package/dist/src/core/lib/glm/vec4.d.ts +0 -330
  294. package/dist/src/core/lib/glm/vec4.js +0 -608
  295. package/dist/src/core/lib/glm/vec4.js.map +0 -1
  296. package/dist/src/core/platform.d.ts +0 -10
  297. package/dist/src/core/platform.js +0 -56
  298. package/dist/src/core/platform.js.map +0 -1
  299. package/dist/src/core/renderers/CoreShader.d.ts +0 -9
  300. package/dist/src/core/renderers/CoreShader.js +0 -28
  301. package/dist/src/core/renderers/CoreShader.js.map +0 -1
  302. package/dist/src/core/renderers/CoreShaderManager.d.ts +0 -19
  303. package/dist/src/core/renderers/CoreShaderManager.js +0 -33
  304. package/dist/src/core/renderers/CoreShaderManager.js.map +0 -1
  305. package/dist/src/core/renderers/canvas/CanvasCoreRenderer.d.ts +0 -33
  306. package/dist/src/core/renderers/canvas/CanvasCoreRenderer.js +0 -250
  307. package/dist/src/core/renderers/canvas/CanvasCoreRenderer.js.map +0 -1
  308. package/dist/src/core/renderers/canvas/CanvasCoreTexture.d.ts +0 -16
  309. package/dist/src/core/renderers/canvas/CanvasCoreTexture.js +0 -123
  310. package/dist/src/core/renderers/canvas/CanvasCoreTexture.js.map +0 -1
  311. package/dist/src/core/renderers/canvas/shaders/UnsupportedShader.d.ts +0 -10
  312. package/dist/src/core/renderers/canvas/shaders/UnsupportedShader.js +0 -43
  313. package/dist/src/core/renderers/canvas/shaders/UnsupportedShader.js.map +0 -1
  314. package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.d.ts +0 -12
  315. package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js +0 -55
  316. package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js.map +0 -1
  317. package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.d.ts +0 -9
  318. package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.js +0 -38
  319. package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.js.map +0 -1
  320. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.d.ts +0 -57
  321. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js +0 -227
  322. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js.map +0 -1
  323. package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.d.ts +0 -34
  324. package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js +0 -114
  325. package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js.map +0 -1
  326. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.d.ts +0 -133
  327. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js +0 -613
  328. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js.map +0 -1
  329. package/dist/src/core/renderers/webgl/WebGlCoreShader.d.ts +0 -83
  330. package/dist/src/core/renderers/webgl/WebGlCoreShader.js +0 -231
  331. package/dist/src/core/renderers/webgl/WebGlCoreShader.js.map +0 -1
  332. package/dist/src/core/renderers/webgl/WebGlCoreShaderManager.d.ts +0 -27
  333. package/dist/src/core/renderers/webgl/WebGlCoreShaderManager.js +0 -82
  334. package/dist/src/core/renderers/webgl/WebGlCoreShaderManager.js.map +0 -1
  335. package/dist/src/core/renderers/webgl/WebGlCoreShaderProgram.d.ts +0 -11
  336. package/dist/src/core/renderers/webgl/WebGlCoreShaderProgram.js +0 -34
  337. package/dist/src/core/renderers/webgl/WebGlCoreShaderProgram.js.map +0 -1
  338. package/dist/src/core/renderers/webgl/shaders/DefaultShader.d.ts +0 -9
  339. package/dist/src/core/renderers/webgl/shaders/DefaultShader.js +0 -87
  340. package/dist/src/core/renderers/webgl/shaders/DefaultShader.js.map +0 -1
  341. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.d.ts +0 -10
  342. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js +0 -119
  343. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js.map +0 -1
  344. package/dist/src/core/renderers/webgl/shaders/DynamicShader.d.ts +0 -29
  345. package/dist/src/core/renderers/webgl/shaders/DynamicShader.js +0 -413
  346. package/dist/src/core/renderers/webgl/shaders/DynamicShader.js.map +0 -1
  347. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.d.ts +0 -28
  348. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js +0 -131
  349. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js.map +0 -1
  350. package/dist/src/core/renderers/webgl/shaders/SdfShader.d.ts +0 -47
  351. package/dist/src/core/renderers/webgl/shaders/SdfShader.js +0 -160
  352. package/dist/src/core/renderers/webgl/shaders/SdfShader.js.map +0 -1
  353. package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.d.ts +0 -31
  354. package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js +0 -71
  355. package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js.map +0 -1
  356. package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.d.ts +0 -30
  357. package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js +0 -58
  358. package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js.map +0 -1
  359. package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.d.ts +0 -31
  360. package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js +0 -71
  361. package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js.map +0 -1
  362. package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.d.ts +0 -31
  363. package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js +0 -71
  364. package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js.map +0 -1
  365. package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.d.ts +0 -31
  366. package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js +0 -71
  367. package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js.map +0 -1
  368. package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.d.ts +0 -9
  369. package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.js +0 -136
  370. package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.js.map +0 -1
  371. package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.d.ts +0 -36
  372. package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js +0 -85
  373. package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js.map +0 -1
  374. package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.d.ts +0 -45
  375. package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.js +0 -104
  376. package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.js.map +0 -1
  377. package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.d.ts +0 -22
  378. package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js +0 -45
  379. package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js.map +0 -1
  380. package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.d.ts +0 -58
  381. package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.js +0 -80
  382. package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.js.map +0 -1
  383. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.d.ts +0 -35
  384. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js +0 -129
  385. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js.map +0 -1
  386. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.d.ts +0 -39
  387. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js +0 -116
  388. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js.map +0 -1
  389. package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.d.ts +0 -61
  390. package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js +0 -127
  391. package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js.map +0 -1
  392. package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.d.ts +0 -40
  393. package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js +0 -71
  394. package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js.map +0 -1
  395. package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.d.ts +0 -115
  396. package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.js +0 -61
  397. package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.js.map +0 -1
  398. package/dist/src/core/scene/Scene.d.ts +0 -59
  399. package/dist/src/core/scene/Scene.js +0 -106
  400. package/dist/src/core/scene/Scene.js.map +0 -1
  401. package/dist/src/core/shaders/templates/shaderUtils.js.map +0 -1
  402. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.d.ts +0 -20
  403. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.js +0 -55
  404. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.js.map +0 -1
  405. package/dist/src/main-api/DynamicShaderController.d.ts +0 -29
  406. package/dist/src/main-api/DynamicShaderController.js +0 -58
  407. package/dist/src/main-api/DynamicShaderController.js.map +0 -1
  408. package/dist/src/main-api/ICoreDriver.d.ts +0 -27
  409. package/dist/src/main-api/ICoreDriver.js +0 -20
  410. package/dist/src/main-api/ICoreDriver.js.map +0 -1
  411. package/dist/src/main-api/IRenderDriver.d.ts +0 -20
  412. package/dist/src/main-api/IRenderDriver.js +0 -20
  413. package/dist/src/main-api/IRenderDriver.js.map +0 -1
  414. package/dist/src/main-api/IShaderController.d.ts +0 -14
  415. package/dist/src/main-api/IShaderController.js +0 -30
  416. package/dist/src/main-api/IShaderController.js.map +0 -1
  417. package/dist/src/main-api/IShaderNode.d.ts +0 -17
  418. package/dist/src/main-api/IShaderNode.js +0 -19
  419. package/dist/src/main-api/IShaderNode.js.map +0 -1
  420. package/dist/src/main-api/RendererMain.d.ts +0 -375
  421. package/dist/src/main-api/RendererMain.js +0 -365
  422. package/dist/src/main-api/RendererMain.js.map +0 -1
  423. package/dist/src/main-api/ShaderController.d.ts +0 -31
  424. package/dist/src/main-api/ShaderController.js +0 -37
  425. package/dist/src/main-api/ShaderController.js.map +0 -1
  426. package/dist/src/main-api/texture-usage-trackers/FinalizationRegistryTextureUsageTracker.d.ts +0 -9
  427. package/dist/src/main-api/texture-usage-trackers/FinalizationRegistryTextureUsageTracker.js +0 -38
  428. package/dist/src/main-api/texture-usage-trackers/FinalizationRegistryTextureUsageTracker.js.map +0 -1
  429. package/dist/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.d.ts +0 -56
  430. package/dist/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.js +0 -101
  431. package/dist/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.js.map +0 -1
  432. package/dist/src/main-api/texture-usage-trackers/TextureUsageTracker.d.ts +0 -32
  433. package/dist/src/main-api/texture-usage-trackers/TextureUsageTracker.js +0 -28
  434. package/dist/src/main-api/texture-usage-trackers/TextureUsageTracker.js.map +0 -1
  435. package/dist/src/render-drivers/main/MainCoreDriver.d.ts +0 -24
  436. package/dist/src/render-drivers/main/MainCoreDriver.js +0 -118
  437. package/dist/src/render-drivers/main/MainCoreDriver.js.map +0 -1
  438. package/dist/src/render-drivers/main/MainOnlyNode.d.ts +0 -99
  439. package/dist/src/render-drivers/main/MainOnlyNode.js +0 -396
  440. package/dist/src/render-drivers/main/MainOnlyNode.js.map +0 -1
  441. package/dist/src/render-drivers/main/MainOnlyShaderController.d.ts +0 -6
  442. package/dist/src/render-drivers/main/MainOnlyShaderController.js +0 -15
  443. package/dist/src/render-drivers/main/MainOnlyShaderController.js.map +0 -1
  444. package/dist/src/render-drivers/main/MainOnlyShaderNode.d.ts +0 -7
  445. package/dist/src/render-drivers/main/MainOnlyShaderNode.js +0 -34
  446. package/dist/src/render-drivers/main/MainOnlyShaderNode.js.map +0 -1
  447. package/dist/src/render-drivers/main/MainOnlyTextNode.d.ts +0 -47
  448. package/dist/src/render-drivers/main/MainOnlyTextNode.js +0 -205
  449. package/dist/src/render-drivers/main/MainOnlyTextNode.js.map +0 -1
  450. package/dist/src/render-drivers/main/MainRenderDriver.d.ts +0 -17
  451. package/dist/src/render-drivers/main/MainRenderDriver.js +0 -88
  452. package/dist/src/render-drivers/main/MainRenderDriver.js.map +0 -1
  453. package/dist/src/render-drivers/threadx/NodeStruct.d.ts +0 -90
  454. package/dist/src/render-drivers/threadx/NodeStruct.js +0 -281
  455. package/dist/src/render-drivers/threadx/NodeStruct.js.map +0 -1
  456. package/dist/src/render-drivers/threadx/SharedNode.d.ts +0 -39
  457. package/dist/src/render-drivers/threadx/SharedNode.js +0 -60
  458. package/dist/src/render-drivers/threadx/SharedNode.js.map +0 -1
  459. package/dist/src/render-drivers/threadx/TextNodeStruct.d.ts +0 -44
  460. package/dist/src/render-drivers/threadx/TextNodeStruct.js +0 -201
  461. package/dist/src/render-drivers/threadx/TextNodeStruct.js.map +0 -1
  462. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.d.ts +0 -28
  463. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js +0 -234
  464. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js.map +0 -1
  465. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.d.ts +0 -20
  466. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.js +0 -84
  467. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.js.map +0 -1
  468. package/dist/src/render-drivers/threadx/ThreadXMainNode.d.ts +0 -44
  469. package/dist/src/render-drivers/threadx/ThreadXMainNode.js +0 -154
  470. package/dist/src/render-drivers/threadx/ThreadXMainNode.js.map +0 -1
  471. package/dist/src/render-drivers/threadx/ThreadXMainShaderController.d.ts +0 -6
  472. package/dist/src/render-drivers/threadx/ThreadXMainShaderController.js +0 -16
  473. package/dist/src/render-drivers/threadx/ThreadXMainShaderController.js.map +0 -1
  474. package/dist/src/render-drivers/threadx/ThreadXMainShaderNode.d.ts +0 -7
  475. package/dist/src/render-drivers/threadx/ThreadXMainShaderNode.js +0 -15
  476. package/dist/src/render-drivers/threadx/ThreadXMainShaderNode.js.map +0 -1
  477. package/dist/src/render-drivers/threadx/ThreadXMainTextNode.d.ts +0 -28
  478. package/dist/src/render-drivers/threadx/ThreadXMainTextNode.js +0 -55
  479. package/dist/src/render-drivers/threadx/ThreadXMainTextNode.js.map +0 -1
  480. package/dist/src/render-drivers/threadx/ThreadXRenderDriver.d.ts +0 -21
  481. package/dist/src/render-drivers/threadx/ThreadXRenderDriver.js +0 -198
  482. package/dist/src/render-drivers/threadx/ThreadXRenderDriver.js.map +0 -1
  483. package/dist/src/render-drivers/threadx/ThreadXRendererMessage.d.ts +0 -70
  484. package/dist/src/render-drivers/threadx/ThreadXRendererMessage.js +0 -32
  485. package/dist/src/render-drivers/threadx/ThreadXRendererMessage.js.map +0 -1
  486. package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.d.ts +0 -19
  487. package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.js +0 -177
  488. package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.js.map +0 -1
  489. package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.d.ts +0 -27
  490. package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.js +0 -108
  491. package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.js.map +0 -1
  492. package/dist/src/render-drivers/threadx/worker/renderer.d.ts +0 -1
  493. package/dist/src/render-drivers/threadx/worker/renderer.js +0 -145
  494. package/dist/src/render-drivers/threadx/worker/renderer.js.map +0 -1
  495. package/dist/src/render-drivers/utils.d.ts +0 -12
  496. package/dist/src/render-drivers/utils.js +0 -69
  497. package/dist/src/render-drivers/utils.js.map +0 -1
@@ -1,448 +1,451 @@
1
- /*
2
- * If not stated otherwise in this file or this component's LICENSE file the
3
- * following copyright and licenses apply:
4
- *
5
- * Copyright 2023 Comcast Cable Communications Management, LLC.
6
- *
7
- * Licensed under the Apache License, Version 2.0 (the License);
8
- * you may not use this file except in compliance with the License.
9
- * You may obtain a copy of the License at
10
- *
11
- * http://www.apache.org/licenses/LICENSE-2.0
12
- *
13
- * Unless required by applicable law or agreed to in writing, software
14
- * distributed under the License is distributed on an "AS IS" BASIS,
15
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
- * See the License for the specific language governing permissions and
17
- * limitations under the License.
18
- */
19
-
20
- import type {
21
- TextRenderer,
22
- TextRendererMap,
23
- TrProps,
24
- TextRendererState,
25
- TrFailedEventHandler,
26
- TrLoadedEventHandler,
27
- } from './text-rendering/renderers/TextRenderer.js';
28
- import { CoreNode, UpdateType, type CoreNodeProps } from './CoreNode.js';
29
- import type { Stage } from './Stage.js';
30
- import type { CoreRenderer } from './renderers/CoreRenderer.js';
31
- import type {
32
- NodeTextFailedPayload,
33
- NodeTextLoadedPayload,
34
- } from '../common/CommonTypes.js';
35
- import type { RectWithValid } from './lib/utils.js';
36
- import { assertTruthy } from '../utils.js';
37
-
38
- export interface CoreTextNodeProps extends CoreNodeProps, TrProps {
39
- /**
40
- * Force Text Node to use a specific Text Renderer
41
- *
42
- * @remarks
43
- * By default, Text Nodes resolve the Text Renderer to use based on the font
44
- * that is matched using the font family and other font selection properties.
45
- *
46
- * If two fonts supported by two separate Text Renderers are matched setting
47
- * this override forces the Text Node to resolve to the Text Renderer defined
48
- * here.
49
- *
50
- * @default null
51
- */
52
- textRendererOverride: keyof TextRendererMap | null;
53
- }
54
-
55
- /**
56
- * An CoreNode in the Renderer scene graph that renders text.
57
- *
58
- * @remarks
59
- * A Text Node is the second graphical building block of the Renderer scene
60
- * graph. It renders text using a specific text renderer that is automatically
61
- * chosen based on the font requested and what type of fonts are installed
62
- * into an app.
63
- *
64
- * The text renderer can be overridden by setting the `textRendererOverride`
65
- *
66
- * The `texture` and `shader` properties are managed by loaded text renderer and
67
- * should not be set directly.
68
- *
69
- * For non-text rendering, see {@link CoreNode}.
70
- */
71
- export class CoreTextNode extends CoreNode implements CoreTextNodeProps {
72
- textRenderer: TextRenderer;
73
- trState: TextRendererState;
74
- private _textRendererOverride: CoreTextNodeProps['textRendererOverride'] =
75
- null;
76
-
77
- constructor(
78
- stage: Stage,
79
- props: CoreTextNodeProps,
80
- textRenderer: TextRenderer,
81
- ) {
82
- super(stage, props);
83
- this._textRendererOverride = props.textRendererOverride;
84
- this.textRenderer = textRenderer;
85
- const textRendererState = this.createState({
86
- x: this.absX,
87
- y: this.absY,
88
- width: props.width,
89
- height: props.height,
90
- textAlign: props.textAlign,
91
- color: props.color,
92
- zIndex: props.zIndex,
93
- contain: props.contain,
94
- scrollable: props.scrollable,
95
- scrollY: props.scrollY,
96
- offsetY: props.offsetY,
97
- letterSpacing: props.letterSpacing,
98
- debug: props.debug,
99
- fontFamily: props.fontFamily,
100
- fontSize: props.fontSize,
101
- fontStretch: props.fontStretch,
102
- fontStyle: props.fontStyle,
103
- fontWeight: props.fontWeight,
104
- text: props.text,
105
- lineHeight: props.lineHeight,
106
- maxLines: props.maxLines,
107
- textBaseline: props.textBaseline,
108
- verticalAlign: props.verticalAlign,
109
- overflowSuffix: props.overflowSuffix,
110
- wordBreak: props.wordBreak,
111
- });
112
-
113
- this.trState = textRendererState;
114
- }
115
-
116
- private onTextLoaded: TrLoadedEventHandler = () => {
117
- const { contain } = this;
118
- const setWidth = this.trState.props.width;
119
- const setHeight = this.trState.props.height;
120
- const calcWidth = this.trState.textW || 0;
121
- const calcHeight = this.trState.textH || 0;
122
-
123
- if (contain === 'both') {
124
- this.props.width = setWidth;
125
- this.props.height = setHeight;
126
- } else if (contain === 'width') {
127
- this.props.width = setWidth;
128
- this.props.height = calcHeight;
129
- } else if (contain === 'none') {
130
- this.props.width = calcWidth;
131
- this.props.height = calcHeight;
132
- }
133
- this.updateLocalTransform();
134
-
135
- // Incase the RAF loop has been stopped already before text was loaded,
136
- // we request a render so it can be drawn.
137
- this.stage.requestRender();
138
- this.emit('loaded', {
139
- type: 'text',
140
- dimensions: {
141
- width: this.trState.textW || 0,
142
- height: this.trState.textH || 0,
143
- },
144
- } satisfies NodeTextLoadedPayload);
145
- };
146
-
147
- private onTextFailed: TrFailedEventHandler = (target, error) => {
148
- this.emit('failed', {
149
- type: 'text',
150
- error,
151
- } satisfies NodeTextFailedPayload);
152
- };
153
-
154
- override get width(): number {
155
- return this.props.width;
156
- }
157
-
158
- override set width(value: number) {
159
- this.props.width = value;
160
- this.textRenderer.set.width(this.trState, value);
161
-
162
- // If not containing, we must update the local transform to account for the
163
- // new width
164
- if (this.contain === 'none') {
165
- this.setUpdateType(UpdateType.Local);
166
- }
167
- }
168
-
169
- override get height(): number {
170
- return this.props.height;
171
- }
172
-
173
- override set height(value: number) {
174
- this.props.height = value;
175
- this.textRenderer.set.height(this.trState, value);
176
-
177
- // If not containing in the horizontal direction, we must update the local
178
- // transform to account for the new height
179
- if (this.contain !== 'both') {
180
- this.setUpdateType(UpdateType.Local);
181
- }
182
- }
183
-
184
- override get color(): number {
185
- return this.trState.props.color;
186
- }
187
-
188
- override set color(value: number) {
189
- this.textRenderer.set.color(this.trState, value);
190
- this.setUpdateType(UpdateType.RenderTexture);
191
- }
192
-
193
- get text(): string {
194
- return this.trState.props.text;
195
- }
196
-
197
- set text(value: string) {
198
- this.textRenderer.set.text(this.trState, value);
199
- }
200
-
201
- get textRendererOverride(): CoreTextNodeProps['textRendererOverride'] {
202
- return this._textRendererOverride;
203
- }
204
-
205
- set textRendererOverride(value: CoreTextNodeProps['textRendererOverride']) {
206
- this._textRendererOverride = value;
207
- this.textRenderer.destroyState(this.trState);
208
-
209
- const textRenderer = this.stage.resolveTextRenderer(
210
- this.trState.props,
211
- this._textRendererOverride,
212
- );
213
-
214
- if (!textRenderer) {
215
- console.warn(
216
- 'Text Renderer not found for font',
217
- this.trState.props.fontFamily,
218
- );
219
- return;
220
- }
221
-
222
- this.textRenderer = textRenderer;
223
- this.trState = this.createState(this.trState.props);
224
- }
225
-
226
- get fontSize(): CoreTextNodeProps['fontSize'] {
227
- return this.trState.props.fontSize;
228
- }
229
-
230
- set fontSize(value: CoreTextNodeProps['fontSize']) {
231
- this.textRenderer.set.fontSize(this.trState, value);
232
- }
233
-
234
- get fontFamily(): CoreTextNodeProps['fontFamily'] {
235
- return this.trState.props.fontFamily;
236
- }
237
-
238
- set fontFamily(value: CoreTextNodeProps['fontFamily']) {
239
- this.textRenderer.set.fontFamily(this.trState, value);
240
- }
241
-
242
- get fontStretch(): CoreTextNodeProps['fontStretch'] {
243
- return this.trState.props.fontStretch;
244
- }
245
-
246
- set fontStretch(value: CoreTextNodeProps['fontStretch']) {
247
- this.textRenderer.set.fontStretch(this.trState, value);
248
- }
249
-
250
- get fontStyle(): CoreTextNodeProps['fontStyle'] {
251
- return this.trState.props.fontStyle;
252
- }
253
-
254
- set fontStyle(value: CoreTextNodeProps['fontStyle']) {
255
- this.textRenderer.set.fontStyle(this.trState, value);
256
- }
257
-
258
- get fontWeight(): CoreTextNodeProps['fontWeight'] {
259
- return this.trState.props.fontWeight;
260
- }
261
-
262
- set fontWeight(value: CoreTextNodeProps['fontWeight']) {
263
- this.textRenderer.set.fontWeight(this.trState, value);
264
- }
265
-
266
- get textAlign(): CoreTextNodeProps['textAlign'] {
267
- return this.trState.props.textAlign;
268
- }
269
-
270
- set textAlign(value: CoreTextNodeProps['textAlign']) {
271
- this.textRenderer.set.textAlign(this.trState, value);
272
- }
273
-
274
- get contain(): CoreTextNodeProps['contain'] {
275
- return this.trState.props.contain;
276
- }
277
-
278
- set contain(value: CoreTextNodeProps['contain']) {
279
- this.textRenderer.set.contain(this.trState, value);
280
- }
281
-
282
- get scrollable(): CoreTextNodeProps['scrollable'] {
283
- return this.trState.props.scrollable;
284
- }
285
-
286
- set scrollable(value: CoreTextNodeProps['scrollable']) {
287
- this.textRenderer.set.scrollable(this.trState, value);
288
- }
289
-
290
- get scrollY(): CoreTextNodeProps['scrollY'] {
291
- return this.trState.props.scrollY;
292
- }
293
-
294
- set scrollY(value: CoreTextNodeProps['scrollY']) {
295
- this.textRenderer.set.scrollY(this.trState, value);
296
- }
297
-
298
- get offsetY(): CoreTextNodeProps['offsetY'] {
299
- return this.trState.props.offsetY;
300
- }
301
-
302
- set offsetY(value: CoreTextNodeProps['offsetY']) {
303
- this.textRenderer.set.offsetY(this.trState, value);
304
- }
305
-
306
- get letterSpacing(): CoreTextNodeProps['letterSpacing'] {
307
- return this.trState.props.letterSpacing;
308
- }
309
-
310
- set letterSpacing(value: CoreTextNodeProps['letterSpacing']) {
311
- this.textRenderer.set.letterSpacing(this.trState, value);
312
- }
313
-
314
- get lineHeight(): CoreTextNodeProps['lineHeight'] {
315
- return this.trState.props.lineHeight;
316
- }
317
-
318
- set lineHeight(value: CoreTextNodeProps['lineHeight']) {
319
- this.textRenderer.set.lineHeight(this.trState, value);
320
- }
321
-
322
- get maxLines(): CoreTextNodeProps['maxLines'] {
323
- return this.trState.props.maxLines;
324
- }
325
-
326
- set maxLines(value: CoreTextNodeProps['maxLines']) {
327
- this.textRenderer.set.maxLines(this.trState, value);
328
- }
329
-
330
- get textBaseline(): CoreTextNodeProps['textBaseline'] {
331
- return this.trState.props.textBaseline;
332
- }
333
-
334
- set textBaseline(value: CoreTextNodeProps['textBaseline']) {
335
- this.textRenderer.set.textBaseline(this.trState, value);
336
- }
337
-
338
- get verticalAlign(): CoreTextNodeProps['verticalAlign'] {
339
- return this.trState.props.verticalAlign;
340
- }
341
-
342
- set verticalAlign(value: CoreTextNodeProps['verticalAlign']) {
343
- this.textRenderer.set.verticalAlign(this.trState, value);
344
- }
345
-
346
- get overflowSuffix(): CoreTextNodeProps['overflowSuffix'] {
347
- return this.trState.props.overflowSuffix;
348
- }
349
-
350
- set overflowSuffix(value: CoreTextNodeProps['overflowSuffix']) {
351
- this.textRenderer.set.overflowSuffix(this.trState, value);
352
- }
353
-
354
- get wordBreak(): CoreTextNodeProps['wordBreak'] {
355
- return this.trState.props.wordBreak;
356
- }
357
-
358
- set wordBreak(value: CoreTextNodeProps['wordBreak']) {
359
- this.textRenderer.set.wordBreak(this.trState, value);
360
- }
361
-
362
- get debug(): CoreTextNodeProps['debug'] {
363
- return this.trState.props.debug;
364
- }
365
-
366
- set debug(value: CoreTextNodeProps['debug']) {
367
- this.textRenderer.set.debug(this.trState, value);
368
- }
369
-
370
- override update(delta: number, parentClippingRect: RectWithValid) {
371
- super.update(delta, parentClippingRect);
372
-
373
- assertTruthy(this.globalTransform);
374
-
375
- // globalTransform is updated in super.update(delta)
376
- this.textRenderer.set.x(this.trState, this.globalTransform.tx);
377
- this.textRenderer.set.y(this.trState, this.globalTransform.ty);
378
- }
379
-
380
- override checkBasicRenderability() {
381
- if (this.worldAlpha === 0 || this.isOutOfBounds() === true) {
382
- return false;
383
- }
384
-
385
- if (this.trState && this.trState.props.text !== '') {
386
- return true;
387
- }
388
-
389
- return false;
390
- }
391
-
392
- override setRenderable(isRenderable: boolean) {
393
- super.setRenderable(isRenderable);
394
- this.textRenderer.setIsRenderable(this.trState, isRenderable);
395
- }
396
-
397
- override renderQuads(renderer: CoreRenderer) {
398
- assertTruthy(this.globalTransform);
399
-
400
- // If the text renderer does not support rendering quads, fallback to the
401
- // default renderQuads method
402
- if (!this.textRenderer.renderQuads) {
403
- super.renderQuads(renderer);
404
- return;
405
- }
406
-
407
- // If the text renderer does support rendering quads, use it...
408
-
409
- // Prevent quad rendering if parent has a render texture
410
- // and this node is not the render texture
411
- if (this.parentHasRenderTexture) {
412
- if (!renderer.renderToTextureActive) {
413
- return;
414
- }
415
- // Prevent quad rendering if parent render texture is not the active render texture
416
- if (this.parentRenderTexture !== renderer.activeRttNode) {
417
- return;
418
- }
419
- }
420
-
421
- this.textRenderer.renderQuads(this);
422
- }
423
-
424
- /**
425
- * Destroy the node and cleanup all resources
426
- */
427
- override destroy(): void {
428
- super.destroy();
429
-
430
- this.textRenderer.destroyState(this.trState);
431
- }
432
-
433
- /**
434
- * Resolve a text renderer and a new state based on the current text renderer props provided
435
- * @param props
436
- * @returns
437
- */
438
- private createState(props: TrProps) {
439
- const textRendererState = this.textRenderer.createState(props, this);
440
-
441
- textRendererState.emitter.on('loaded', this.onTextLoaded);
442
- textRendererState.emitter.on('failed', this.onTextFailed);
443
-
444
- this.textRenderer.scheduleUpdateState(textRendererState);
445
-
446
- return textRendererState;
447
- }
448
- }
1
+ /*
2
+ * If not stated otherwise in this file or this component's LICENSE file the
3
+ * following copyright and licenses apply:
4
+ *
5
+ * Copyright 2023 Comcast Cable Communications Management, LLC.
6
+ *
7
+ * Licensed under the Apache License, Version 2.0 (the License);
8
+ * you may not use this file except in compliance with the License.
9
+ * You may obtain a copy of the License at
10
+ *
11
+ * http://www.apache.org/licenses/LICENSE-2.0
12
+ *
13
+ * Unless required by applicable law or agreed to in writing, software
14
+ * distributed under the License is distributed on an "AS IS" BASIS,
15
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ * See the License for the specific language governing permissions and
17
+ * limitations under the License.
18
+ */
19
+
20
+ import type {
21
+ TextRenderer,
22
+ TextRendererMap,
23
+ TrProps,
24
+ TextRendererState,
25
+ TrFailedEventHandler,
26
+ TrLoadedEventHandler,
27
+ } from './text-rendering/renderers/TextRenderer.js';
28
+ import {
29
+ CoreNode,
30
+ CoreNodeRenderState,
31
+ UpdateType,
32
+ type CoreNodeProps,
33
+ } from './CoreNode.js';
34
+ import type { Stage } from './Stage.js';
35
+ import type { CoreRenderer } from './renderers/CoreRenderer.js';
36
+ import type {
37
+ NodeTextFailedPayload,
38
+ NodeTextLoadedPayload,
39
+ } from '../common/CommonTypes.js';
40
+ import type { RectWithValid } from './lib/utils.js';
41
+
42
+ export interface CoreTextNodeProps extends CoreNodeProps, TrProps {
43
+ /**
44
+ * Force Text Node to use a specific Text Renderer
45
+ *
46
+ * @remarks
47
+ * By default, Text Nodes resolve the Text Renderer to use based on the font
48
+ * that is matched using the font family and other font selection properties.
49
+ *
50
+ * If two fonts supported by two separate Text Renderers are matched setting
51
+ * this override forces the Text Node to resolve to the Text Renderer defined
52
+ * here.
53
+ *
54
+ * @default null
55
+ */
56
+ textRendererOverride: keyof TextRendererMap | null;
57
+ }
58
+
59
+ /**
60
+ * An CoreNode in the Renderer scene graph that renders text.
61
+ *
62
+ * @remarks
63
+ * A Text Node is the second graphical building block of the Renderer scene
64
+ * graph. It renders text using a specific text renderer that is automatically
65
+ * chosen based on the font requested and what type of fonts are installed
66
+ * into an app.
67
+ *
68
+ * The text renderer can be overridden by setting the `textRendererOverride`
69
+ *
70
+ * The `texture` and `shader` properties are managed by loaded text renderer and
71
+ * should not be set directly.
72
+ *
73
+ * For non-text rendering, see {@link CoreNode}.
74
+ */
75
+ export class CoreTextNode extends CoreNode implements CoreTextNodeProps {
76
+ textRenderer: TextRenderer;
77
+ trState: TextRendererState;
78
+ private _textRendererOverride: CoreTextNodeProps['textRendererOverride'] =
79
+ null;
80
+
81
+ constructor(
82
+ stage: Stage,
83
+ props: CoreTextNodeProps,
84
+ textRenderer: TextRenderer,
85
+ ) {
86
+ super(stage, props);
87
+ this._textRendererOverride = props.textRendererOverride;
88
+ this.textRenderer = textRenderer;
89
+ const textRendererState = this.createState({
90
+ x: this.absX,
91
+ y: this.absY,
92
+ width: props.width,
93
+ height: props.height,
94
+ textAlign: props.textAlign,
95
+ color: props.color,
96
+ zIndex: props.zIndex,
97
+ contain: props.contain,
98
+ scrollable: props.scrollable,
99
+ scrollY: props.scrollY,
100
+ offsetY: props.offsetY,
101
+ letterSpacing: props.letterSpacing,
102
+ debug: props.debug,
103
+ fontFamily: props.fontFamily,
104
+ fontSize: props.fontSize,
105
+ fontStretch: props.fontStretch,
106
+ fontStyle: props.fontStyle,
107
+ fontWeight: props.fontWeight,
108
+ text: props.text,
109
+ lineHeight: props.lineHeight,
110
+ maxLines: props.maxLines,
111
+ textBaseline: props.textBaseline,
112
+ verticalAlign: props.verticalAlign,
113
+ overflowSuffix: props.overflowSuffix,
114
+ wordBreak: props.wordBreak,
115
+ });
116
+
117
+ this.trState = textRendererState;
118
+ }
119
+
120
+ private onTextLoaded: TrLoadedEventHandler = () => {
121
+ const { contain } = this;
122
+ const setWidth = this.trState.props.width;
123
+ const setHeight = this.trState.props.height;
124
+ const calcWidth = this.trState.textW || 0;
125
+ const calcHeight = this.trState.textH || 0;
126
+
127
+ if (contain === 'both') {
128
+ this.props.width = setWidth;
129
+ this.props.height = setHeight;
130
+ } else if (contain === 'width') {
131
+ this.props.width = setWidth;
132
+ this.props.height = calcHeight;
133
+ } else if (contain === 'none') {
134
+ this.props.width = calcWidth;
135
+ this.props.height = calcHeight;
136
+ }
137
+ this.setUpdateType(UpdateType.Local);
138
+
139
+ // Incase the RAF loop has been stopped already before text was loaded,
140
+ // we request a render so it can be drawn.
141
+ this.stage.requestRender();
142
+ this.emit('loaded', {
143
+ type: 'text',
144
+ dimensions: {
145
+ width: this.trState.textW || 0,
146
+ height: this.trState.textH || 0,
147
+ },
148
+ } satisfies NodeTextLoadedPayload);
149
+ };
150
+
151
+ private onTextFailed: TrFailedEventHandler = (target, error) => {
152
+ this.emit('failed', {
153
+ type: 'text',
154
+ error,
155
+ } satisfies NodeTextFailedPayload);
156
+ };
157
+
158
+ override get width(): number {
159
+ return this.props.width;
160
+ }
161
+
162
+ override set width(value: number) {
163
+ this.props.width = value;
164
+ this.textRenderer.set.width(this.trState, value);
165
+
166
+ // If not containing, we must update the local transform to account for the
167
+ // new width
168
+ if (this.contain === 'none') {
169
+ this.setUpdateType(UpdateType.Local);
170
+ }
171
+ }
172
+
173
+ override get height(): number {
174
+ return this.props.height;
175
+ }
176
+
177
+ override set height(value: number) {
178
+ this.props.height = value;
179
+ this.textRenderer.set.height(this.trState, value);
180
+
181
+ // If not containing in the horizontal direction, we must update the local
182
+ // transform to account for the new height
183
+ if (this.contain !== 'both') {
184
+ this.setUpdateType(UpdateType.Local);
185
+ }
186
+ }
187
+
188
+ override get color(): number {
189
+ return this.trState.props.color;
190
+ }
191
+
192
+ override set color(value: number) {
193
+ this.textRenderer.set.color(this.trState, value);
194
+ this.setUpdateType(UpdateType.RenderTexture);
195
+ }
196
+
197
+ get text(): string {
198
+ return this.trState.props.text;
199
+ }
200
+
201
+ set text(value: string) {
202
+ this.textRenderer.set.text(this.trState, value);
203
+ }
204
+
205
+ get textRendererOverride(): CoreTextNodeProps['textRendererOverride'] {
206
+ return this._textRendererOverride;
207
+ }
208
+
209
+ set textRendererOverride(value: CoreTextNodeProps['textRendererOverride']) {
210
+ this._textRendererOverride = value;
211
+ this.textRenderer.destroyState(this.trState);
212
+
213
+ const textRenderer = this.stage.resolveTextRenderer(
214
+ this.trState.props,
215
+ this._textRendererOverride,
216
+ );
217
+
218
+ if (textRenderer === null) {
219
+ console.warn(
220
+ 'Text Renderer not found for font',
221
+ this.trState.props.fontFamily,
222
+ );
223
+ return;
224
+ }
225
+
226
+ this.textRenderer = textRenderer;
227
+ this.trState = this.createState(this.trState.props);
228
+ }
229
+
230
+ get fontSize(): CoreTextNodeProps['fontSize'] {
231
+ return this.trState.props.fontSize;
232
+ }
233
+
234
+ set fontSize(value: CoreTextNodeProps['fontSize']) {
235
+ this.textRenderer.set.fontSize(this.trState, value);
236
+ }
237
+
238
+ get fontFamily(): CoreTextNodeProps['fontFamily'] {
239
+ return this.trState.props.fontFamily;
240
+ }
241
+
242
+ set fontFamily(value: CoreTextNodeProps['fontFamily']) {
243
+ this.textRenderer.set.fontFamily(this.trState, value);
244
+ }
245
+
246
+ get fontStretch(): CoreTextNodeProps['fontStretch'] {
247
+ return this.trState.props.fontStretch;
248
+ }
249
+
250
+ set fontStretch(value: CoreTextNodeProps['fontStretch']) {
251
+ this.textRenderer.set.fontStretch(this.trState, value);
252
+ }
253
+
254
+ get fontStyle(): CoreTextNodeProps['fontStyle'] {
255
+ return this.trState.props.fontStyle;
256
+ }
257
+
258
+ set fontStyle(value: CoreTextNodeProps['fontStyle']) {
259
+ this.textRenderer.set.fontStyle(this.trState, value);
260
+ }
261
+
262
+ get fontWeight(): CoreTextNodeProps['fontWeight'] {
263
+ return this.trState.props.fontWeight;
264
+ }
265
+
266
+ set fontWeight(value: CoreTextNodeProps['fontWeight']) {
267
+ this.textRenderer.set.fontWeight(this.trState, value);
268
+ }
269
+
270
+ get textAlign(): CoreTextNodeProps['textAlign'] {
271
+ return this.trState.props.textAlign;
272
+ }
273
+
274
+ set textAlign(value: CoreTextNodeProps['textAlign']) {
275
+ this.textRenderer.set.textAlign(this.trState, value);
276
+ }
277
+
278
+ get contain(): CoreTextNodeProps['contain'] {
279
+ return this.trState.props.contain;
280
+ }
281
+
282
+ set contain(value: CoreTextNodeProps['contain']) {
283
+ this.textRenderer.set.contain(this.trState, value);
284
+ }
285
+
286
+ get scrollable(): CoreTextNodeProps['scrollable'] {
287
+ return this.trState.props.scrollable;
288
+ }
289
+
290
+ set scrollable(value: CoreTextNodeProps['scrollable']) {
291
+ this.textRenderer.set.scrollable(this.trState, value);
292
+ }
293
+
294
+ get scrollY(): CoreTextNodeProps['scrollY'] {
295
+ return this.trState.props.scrollY;
296
+ }
297
+
298
+ set scrollY(value: CoreTextNodeProps['scrollY']) {
299
+ this.textRenderer.set.scrollY(this.trState, value);
300
+ }
301
+
302
+ get offsetY(): CoreTextNodeProps['offsetY'] {
303
+ return this.trState.props.offsetY;
304
+ }
305
+
306
+ set offsetY(value: CoreTextNodeProps['offsetY']) {
307
+ this.textRenderer.set.offsetY(this.trState, value);
308
+ }
309
+
310
+ get letterSpacing(): CoreTextNodeProps['letterSpacing'] {
311
+ return this.trState.props.letterSpacing;
312
+ }
313
+
314
+ set letterSpacing(value: CoreTextNodeProps['letterSpacing']) {
315
+ this.textRenderer.set.letterSpacing(this.trState, value);
316
+ }
317
+
318
+ get lineHeight(): CoreTextNodeProps['lineHeight'] {
319
+ return this.trState.props.lineHeight;
320
+ }
321
+
322
+ set lineHeight(value: CoreTextNodeProps['lineHeight']) {
323
+ this.textRenderer.set.lineHeight(this.trState, value);
324
+ }
325
+
326
+ get maxLines(): CoreTextNodeProps['maxLines'] {
327
+ return this.trState.props.maxLines;
328
+ }
329
+
330
+ set maxLines(value: CoreTextNodeProps['maxLines']) {
331
+ this.textRenderer.set.maxLines(this.trState, value);
332
+ }
333
+
334
+ get textBaseline(): CoreTextNodeProps['textBaseline'] {
335
+ return this.trState.props.textBaseline;
336
+ }
337
+
338
+ set textBaseline(value: CoreTextNodeProps['textBaseline']) {
339
+ this.textRenderer.set.textBaseline(this.trState, value);
340
+ }
341
+
342
+ get verticalAlign(): CoreTextNodeProps['verticalAlign'] {
343
+ return this.trState.props.verticalAlign;
344
+ }
345
+
346
+ set verticalAlign(value: CoreTextNodeProps['verticalAlign']) {
347
+ this.textRenderer.set.verticalAlign(this.trState, value);
348
+ }
349
+
350
+ get overflowSuffix(): CoreTextNodeProps['overflowSuffix'] {
351
+ return this.trState.props.overflowSuffix;
352
+ }
353
+
354
+ set overflowSuffix(value: CoreTextNodeProps['overflowSuffix']) {
355
+ this.textRenderer.set.overflowSuffix(this.trState, value);
356
+ }
357
+
358
+ get wordBreak(): CoreTextNodeProps['wordBreak'] {
359
+ return this.trState.props.wordBreak;
360
+ }
361
+
362
+ set wordBreak(value: CoreTextNodeProps['wordBreak']) {
363
+ this.textRenderer.set.wordBreak(this.trState, value);
364
+ }
365
+
366
+ get debug(): CoreTextNodeProps['debug'] {
367
+ return this.trState.props.debug;
368
+ }
369
+
370
+ set debug(value: CoreTextNodeProps['debug']) {
371
+ this.textRenderer.set.debug(this.trState, value);
372
+ }
373
+
374
+ override update(delta: number, parentClippingRect: RectWithValid) {
375
+ super.update(delta, parentClippingRect);
376
+
377
+ // globalTransform is updated in super.update(delta)
378
+ this.textRenderer.set.x(this.trState, this.globalTransform!.tx);
379
+ this.textRenderer.set.y(this.trState, this.globalTransform!.ty);
380
+ }
381
+
382
+ override updateIsRenderable() {
383
+ // If the node is out of bounds or has an alpha of 0, it is not renderable
384
+ if (
385
+ this.worldAlpha === 0 ||
386
+ this.renderState <= CoreNodeRenderState.OutOfBounds
387
+ ) {
388
+ this.setRenderable(false);
389
+ return;
390
+ }
391
+
392
+ if (this.trState !== undefined && this.trState.props.text !== '') {
393
+ this.setRenderable(true);
394
+ }
395
+ }
396
+
397
+ override setRenderable(isRenderable: boolean) {
398
+ super.setRenderable(isRenderable);
399
+ this.textRenderer.setIsRenderable(this.trState, isRenderable);
400
+ }
401
+
402
+ override renderQuads(renderer: CoreRenderer) {
403
+ // If the text renderer does not support rendering quads, fallback to the
404
+ // default renderQuads method
405
+ if (this.textRenderer.renderQuads === undefined) {
406
+ super.renderQuads(renderer);
407
+ return;
408
+ }
409
+
410
+ // If the text renderer does support rendering quads, use it...
411
+
412
+ // Prevent quad rendering if parent has a render texture
413
+ // and this node is not the render texture
414
+ if (this.parentHasRenderTexture === true) {
415
+ if (renderer.renderToTextureActive === false) {
416
+ return;
417
+ }
418
+ // Prevent quad rendering if parent render texture is not the active render texture
419
+ if (this.parentRenderTexture !== renderer.activeRttNode) {
420
+ return;
421
+ }
422
+ }
423
+
424
+ this.textRenderer.renderQuads(this);
425
+ }
426
+
427
+ /**
428
+ * Destroy the node and cleanup all resources
429
+ */
430
+ override destroy(): void {
431
+ super.destroy();
432
+
433
+ this.textRenderer.destroyState(this.trState);
434
+ }
435
+
436
+ /**
437
+ * Resolve a text renderer and a new state based on the current text renderer props provided
438
+ * @param props
439
+ * @returns
440
+ */
441
+ private createState(props: TrProps) {
442
+ const textRendererState = this.textRenderer.createState(props, this);
443
+
444
+ textRendererState.emitter.on('loaded', this.onTextLoaded);
445
+ textRendererState.emitter.on('failed', this.onTextFailed);
446
+
447
+ this.textRenderer.scheduleUpdateState(textRendererState);
448
+
449
+ return textRendererState;
450
+ }
451
+ }