@lightningjs/renderer 3.0.0-beta2 → 3.0.0-beta21

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 (587) hide show
  1. package/README.md +16 -26
  2. package/dist/exports/canvas.d.ts +1 -1
  3. package/dist/exports/canvas.js +1 -1
  4. package/dist/exports/canvas.js.map +1 -1
  5. package/dist/exports/index.d.ts +2 -5
  6. package/dist/exports/index.js +1 -5
  7. package/dist/exports/index.js.map +1 -1
  8. package/dist/exports/utils.d.ts +2 -1
  9. package/dist/exports/utils.js +2 -1
  10. package/dist/exports/utils.js.map +1 -1
  11. package/dist/exports/webgl.d.ts +2 -1
  12. package/dist/exports/webgl.js +2 -1
  13. package/dist/exports/webgl.js.map +1 -1
  14. package/dist/src/common/CommonTypes.d.ts +13 -2
  15. package/dist/src/core/Autosizer.d.ts +35 -0
  16. package/dist/src/core/Autosizer.js +196 -0
  17. package/dist/src/core/Autosizer.js.map +1 -0
  18. package/dist/src/core/CoreNode.d.ts +124 -100
  19. package/dist/src/core/CoreNode.js +720 -472
  20. package/dist/src/core/CoreNode.js.map +1 -1
  21. package/dist/src/core/CoreShaderManager.d.ts +3 -5
  22. package/dist/src/core/CoreShaderManager.js.map +1 -1
  23. package/dist/src/core/CoreTextNode.d.ts +74 -87
  24. package/dist/src/core/CoreTextNode.js +355 -232
  25. package/dist/src/core/CoreTextNode.js.map +1 -1
  26. package/dist/src/core/CoreTextureManager.d.ts +25 -13
  27. package/dist/src/core/CoreTextureManager.js +80 -104
  28. package/dist/src/core/CoreTextureManager.js.map +1 -1
  29. package/dist/src/core/Stage.d.ts +93 -33
  30. package/dist/src/core/Stage.js +315 -151
  31. package/dist/src/core/Stage.js.map +1 -1
  32. package/dist/src/core/TextureError.d.ts +11 -0
  33. package/dist/src/core/TextureError.js +37 -0
  34. package/dist/src/core/TextureError.js.map +1 -0
  35. package/dist/src/core/TextureMemoryManager.d.ts +11 -4
  36. package/dist/src/core/TextureMemoryManager.js +128 -109
  37. package/dist/src/core/TextureMemoryManager.js.map +1 -1
  38. package/dist/src/core/animations/Animation.d.ts +21 -0
  39. package/dist/src/core/animations/Animation.js +194 -0
  40. package/dist/src/core/animations/Animation.js.map +1 -0
  41. package/dist/src/core/animations/CoreAnimation.d.ts +3 -3
  42. package/dist/src/core/animations/CoreAnimation.js +8 -3
  43. package/dist/src/core/animations/CoreAnimation.js.map +1 -1
  44. package/dist/src/core/animations/CoreAnimationController.d.ts +1 -0
  45. package/dist/src/core/animations/CoreAnimationController.js +11 -4
  46. package/dist/src/core/animations/CoreAnimationController.js.map +1 -1
  47. package/dist/src/core/animations/Playback.d.ts +64 -0
  48. package/dist/src/core/animations/Playback.js +169 -0
  49. package/dist/src/core/animations/Playback.js.map +1 -0
  50. package/dist/src/core/animations/Transition.d.ts +27 -0
  51. package/dist/src/core/animations/Transition.js +52 -0
  52. package/dist/src/core/animations/Transition.js.map +1 -0
  53. package/dist/src/core/animations/utils.d.ts +2 -0
  54. package/dist/src/core/animations/utils.js +136 -0
  55. package/dist/src/core/animations/utils.js.map +1 -0
  56. package/dist/src/core/lib/ImageWorker.d.ts +2 -2
  57. package/dist/src/core/lib/ImageWorker.js +31 -12
  58. package/dist/src/core/lib/ImageWorker.js.map +1 -1
  59. package/dist/src/core/lib/WebGlContextWrapper.d.ts +41 -3
  60. package/dist/src/core/lib/WebGlContextWrapper.js +105 -28
  61. package/dist/src/core/lib/WebGlContextWrapper.js.map +1 -1
  62. package/dist/src/core/lib/collectionUtils.d.ts +5 -0
  63. package/dist/src/core/lib/collectionUtils.js +100 -0
  64. package/dist/src/core/lib/collectionUtils.js.map +1 -0
  65. package/dist/src/core/lib/colorCache.d.ts +1 -0
  66. package/dist/src/core/lib/colorCache.js +19 -0
  67. package/dist/src/core/lib/colorCache.js.map +1 -0
  68. package/dist/src/core/lib/colorParser.d.ts +21 -0
  69. package/dist/src/core/lib/colorParser.js +72 -0
  70. package/dist/src/core/lib/colorParser.js.map +1 -0
  71. package/dist/src/core/lib/textureCompression.d.ts +14 -2
  72. package/dist/src/core/lib/textureCompression.js +320 -67
  73. package/dist/src/core/lib/textureCompression.js.map +1 -1
  74. package/dist/src/core/lib/utils.d.ts +8 -2
  75. package/dist/src/core/lib/utils.js +43 -21
  76. package/dist/src/core/lib/utils.js.map +1 -1
  77. package/dist/src/core/lib/validateImageBitmap.d.ts +2 -1
  78. package/dist/src/core/lib/validateImageBitmap.js +4 -4
  79. package/dist/src/core/lib/validateImageBitmap.js.map +1 -1
  80. package/dist/src/core/platform.js +30 -5
  81. package/dist/src/core/platform.js.map +1 -1
  82. package/dist/src/core/platforms/Platform.d.ts +42 -0
  83. package/dist/src/{main-api/IRenderDriver.js → core/platforms/Platform.js} +4 -2
  84. package/dist/src/core/platforms/Platform.js.map +1 -0
  85. package/dist/src/core/platforms/web/WebPlatform.d.ts +10 -0
  86. package/dist/src/core/platforms/web/WebPlatform.js +87 -0
  87. package/dist/src/core/platforms/web/WebPlatform.js.map +1 -0
  88. package/dist/src/core/renderers/CoreContextTexture.d.ts +2 -1
  89. package/dist/src/core/renderers/CoreContextTexture.js.map +1 -1
  90. package/dist/src/core/renderers/CoreRenderer.d.ts +5 -30
  91. package/dist/src/core/renderers/CoreRenderer.js +1 -0
  92. package/dist/src/core/renderers/CoreRenderer.js.map +1 -1
  93. package/dist/src/core/renderers/CoreShaderNode.d.ts +12 -1
  94. package/dist/src/core/renderers/CoreShaderNode.js +26 -0
  95. package/dist/src/core/renderers/CoreShaderNode.js.map +1 -1
  96. package/dist/src/core/renderers/canvas/CanvasCoreTexture.d.ts +2 -1
  97. package/dist/src/core/renderers/canvas/CanvasCoreTexture.js +11 -9
  98. package/dist/src/core/renderers/canvas/CanvasCoreTexture.js.map +1 -1
  99. package/dist/src/core/renderers/canvas/CanvasRenderer.d.ts +4 -5
  100. package/dist/src/core/renderers/canvas/CanvasRenderer.js +65 -87
  101. package/dist/src/core/renderers/canvas/CanvasRenderer.js.map +1 -1
  102. package/dist/src/core/renderers/canvas/CanvasShaderNode.d.ts +1 -2
  103. package/dist/src/core/renderers/canvas/CanvasShaderNode.js +3 -5
  104. package/dist/src/core/renderers/canvas/CanvasShaderNode.js.map +1 -1
  105. package/dist/src/core/renderers/canvas/CanvasTexture.d.ts +3 -2
  106. package/dist/src/core/renderers/canvas/CanvasTexture.js +17 -13
  107. package/dist/src/core/renderers/canvas/CanvasTexture.js.map +1 -1
  108. package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.d.ts +13 -0
  109. package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js +113 -192
  110. package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js.map +1 -1
  111. package/dist/src/core/renderers/canvas/internal/ColorUtils.d.ts +0 -2
  112. package/dist/src/core/renderers/canvas/internal/ColorUtils.js +0 -14
  113. package/dist/src/core/renderers/canvas/internal/ColorUtils.js.map +1 -1
  114. package/dist/src/core/renderers/webgl/SdfRenderOp.d.ts +33 -0
  115. package/dist/src/core/renderers/webgl/SdfRenderOp.js +97 -0
  116. package/dist/src/core/renderers/webgl/SdfRenderOp.js.map +1 -0
  117. package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js +3 -0
  118. package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js.map +1 -1
  119. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.d.ts +18 -6
  120. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js +87 -42
  121. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js.map +1 -1
  122. package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js +1 -1
  123. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js +53 -17
  124. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js.map +1 -1
  125. package/dist/src/core/renderers/webgl/WebGlCoreShader.d.ts +2 -7
  126. package/dist/src/core/renderers/webgl/WebGlCoreShader.js +21 -50
  127. package/dist/src/core/renderers/webgl/WebGlCoreShader.js.map +1 -1
  128. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.d.ts +2 -0
  129. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js +14 -6
  130. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js.map +1 -1
  131. package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.d.ts +13 -0
  132. package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.js +34 -5
  133. package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.js.map +1 -1
  134. package/dist/src/core/renderers/webgl/WebGlCtxTexture.d.ts +16 -6
  135. package/dist/src/core/renderers/webgl/WebGlCtxTexture.js +102 -52
  136. package/dist/src/core/renderers/webgl/WebGlCtxTexture.js.map +1 -1
  137. package/dist/src/core/renderers/webgl/WebGlRenderOp.d.ts +1 -1
  138. package/dist/src/core/renderers/webgl/WebGlRenderOp.js +11 -4
  139. package/dist/src/core/renderers/webgl/WebGlRenderOp.js.map +1 -1
  140. package/dist/src/core/renderers/webgl/WebGlRenderer.d.ts +11 -21
  141. package/dist/src/core/renderers/webgl/WebGlRenderer.js +168 -152
  142. package/dist/src/core/renderers/webgl/WebGlRenderer.js.map +1 -1
  143. package/dist/src/core/renderers/webgl/WebGlShaderNode.d.ts +2 -4
  144. package/dist/src/core/renderers/webgl/WebGlShaderNode.js +1 -4
  145. package/dist/src/core/renderers/webgl/WebGlShaderNode.js.map +1 -1
  146. package/dist/src/core/renderers/webgl/WebGlShaderProgram.d.ts +9 -7
  147. package/dist/src/core/renderers/webgl/WebGlShaderProgram.js +83 -43
  148. package/dist/src/core/renderers/webgl/WebGlShaderProgram.js.map +1 -1
  149. package/dist/src/core/renderers/webgl/shaders/DefaultShader.js +3 -6
  150. package/dist/src/core/renderers/webgl/shaders/DefaultShader.js.map +1 -1
  151. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js +0 -11
  152. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js.map +1 -1
  153. package/dist/src/core/renderers/webgl/shaders/DynamicShader.js +5 -10
  154. package/dist/src/core/renderers/webgl/shaders/DynamicShader.js.map +1 -1
  155. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js +5 -10
  156. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js.map +1 -1
  157. package/dist/src/core/renderers/webgl/shaders/SdfShader.js +0 -12
  158. package/dist/src/core/renderers/webgl/shaders/SdfShader.js.map +1 -1
  159. package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js +1 -1
  160. package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js +1 -1
  161. package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js +1 -1
  162. package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js +1 -1
  163. package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js +5 -5
  164. package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.js +1 -1
  165. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js +24 -19
  166. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js.map +1 -1
  167. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.d.ts +1 -0
  168. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js +32 -5
  169. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js.map +1 -1
  170. package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js +1 -1
  171. package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js +5 -5
  172. package/dist/src/core/shaders/canvas/Border.d.ts +8 -2
  173. package/dist/src/core/shaders/canvas/Border.js +64 -25
  174. package/dist/src/core/shaders/canvas/Border.js.map +1 -1
  175. package/dist/src/core/shaders/canvas/HolePunch.js +4 -3
  176. package/dist/src/core/shaders/canvas/HolePunch.js.map +1 -1
  177. package/dist/src/core/shaders/canvas/LinearGradient.js +11 -7
  178. package/dist/src/core/shaders/canvas/LinearGradient.js.map +1 -1
  179. package/dist/src/core/shaders/canvas/RadialGradient.js +21 -17
  180. package/dist/src/core/shaders/canvas/RadialGradient.js.map +1 -1
  181. package/dist/src/core/shaders/canvas/Rounded.js +3 -3
  182. package/dist/src/core/shaders/canvas/Rounded.js.map +1 -1
  183. package/dist/src/core/shaders/canvas/RoundedWithBorder.d.ts +6 -3
  184. package/dist/src/core/shaders/canvas/RoundedWithBorder.js +45 -7
  185. package/dist/src/core/shaders/canvas/RoundedWithBorder.js.map +1 -1
  186. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.d.ts +2 -3
  187. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js +50 -11
  188. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js.map +1 -1
  189. package/dist/src/core/shaders/canvas/RoundedWithShadow.js +10 -7
  190. package/dist/src/core/shaders/canvas/RoundedWithShadow.js.map +1 -1
  191. package/dist/src/core/shaders/canvas/Shadow.js +4 -2
  192. package/dist/src/core/shaders/canvas/Shadow.js.map +1 -1
  193. package/dist/src/core/shaders/canvas/utils/render.d.ts +1 -1
  194. package/dist/src/core/shaders/canvas/utils/render.js +31 -18
  195. package/dist/src/core/shaders/canvas/utils/render.js.map +1 -1
  196. package/dist/src/core/shaders/templates/BorderTemplate.d.ts +12 -2
  197. package/dist/src/core/shaders/templates/BorderTemplate.js +31 -11
  198. package/dist/src/core/shaders/templates/BorderTemplate.js.map +1 -1
  199. package/dist/src/core/shaders/templates/HolePunchTemplate.d.ts +2 -2
  200. package/dist/src/core/shaders/templates/HolePunchTemplate.js +3 -3
  201. package/dist/src/core/shaders/templates/HolePunchTemplate.js.map +1 -1
  202. package/dist/src/core/shaders/templates/RadialGradientTemplate.d.ts +8 -6
  203. package/dist/src/core/shaders/templates/RadialGradientTemplate.js +2 -2
  204. package/dist/src/core/shaders/templates/RadialGradientTemplate.js.map +1 -1
  205. package/dist/src/core/shaders/templates/RoundedTemplate.js +1 -1
  206. package/dist/src/core/shaders/templates/RoundedTemplate.js.map +1 -1
  207. package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.d.ts +1 -1
  208. package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.d.ts +1 -1
  209. package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.d.ts +1 -1
  210. package/dist/src/core/shaders/templates/ShadowTemplate.d.ts +1 -1
  211. package/dist/src/core/shaders/{templates/shaderUtils.d.ts → utils.d.ts} +1 -1
  212. package/dist/src/core/shaders/{templates/shaderUtils.js → utils.js} +2 -2
  213. package/dist/src/core/shaders/utils.js.map +1 -0
  214. package/dist/src/core/shaders/webgl/Border.js +116 -35
  215. package/dist/src/core/shaders/webgl/Border.js.map +1 -1
  216. package/dist/src/core/shaders/webgl/Default.js +6 -7
  217. package/dist/src/core/shaders/webgl/Default.js.map +1 -1
  218. package/dist/src/core/shaders/webgl/HolePunch.js +4 -3
  219. package/dist/src/core/shaders/webgl/HolePunch.js.map +1 -1
  220. package/dist/src/core/shaders/webgl/LinearGradient.js +33 -8
  221. package/dist/src/core/shaders/webgl/LinearGradient.js.map +1 -1
  222. package/dist/src/core/shaders/webgl/RadialGradient.js +56 -32
  223. package/dist/src/core/shaders/webgl/RadialGradient.js.map +1 -1
  224. package/dist/src/core/shaders/webgl/Rounded.js +4 -2
  225. package/dist/src/core/shaders/webgl/Rounded.js.map +1 -1
  226. package/dist/src/core/shaders/webgl/RoundedWithBorder.js +153 -39
  227. package/dist/src/core/shaders/webgl/RoundedWithBorder.js.map +1 -1
  228. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js +158 -43
  229. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js.map +1 -1
  230. package/dist/src/core/shaders/webgl/RoundedWithShadow.js +6 -4
  231. package/dist/src/core/shaders/webgl/RoundedWithShadow.js.map +1 -1
  232. package/dist/src/core/shaders/webgl/SdfShader.d.ts +0 -2
  233. package/dist/src/core/shaders/webgl/SdfShader.js +7 -17
  234. package/dist/src/core/shaders/webgl/SdfShader.js.map +1 -1
  235. package/dist/src/core/shaders/webgl/SdfShadowShader.d.ts +9 -0
  236. package/dist/src/core/shaders/webgl/SdfShadowShader.js +100 -0
  237. package/dist/src/core/shaders/webgl/SdfShadowShader.js.map +1 -0
  238. package/dist/src/core/shaders/webgl/Shadow.js +12 -6
  239. package/dist/src/core/shaders/webgl/Shadow.js.map +1 -1
  240. package/dist/src/core/text-rendering/CanvasFontHandler.d.ts +59 -0
  241. package/dist/src/core/text-rendering/CanvasFontHandler.js +224 -0
  242. package/dist/src/core/text-rendering/CanvasFontHandler.js.map +1 -0
  243. package/dist/src/core/text-rendering/CanvasTextRenderer.d.ts +17 -0
  244. package/dist/src/core/text-rendering/CanvasTextRenderer.js +157 -0
  245. package/dist/src/core/text-rendering/CanvasTextRenderer.js.map +1 -0
  246. package/dist/src/core/text-rendering/SdfFontHandler.d.ts +182 -0
  247. package/dist/src/core/text-rendering/SdfFontHandler.js +391 -0
  248. package/dist/src/core/text-rendering/SdfFontHandler.js.map +1 -0
  249. package/dist/src/core/text-rendering/SdfTextRenderer.d.ts +17 -0
  250. package/dist/src/core/text-rendering/SdfTextRenderer.js +303 -0
  251. package/dist/src/core/text-rendering/SdfTextRenderer.js.map +1 -0
  252. package/dist/src/core/text-rendering/TextLayoutEngine.d.ts +18 -0
  253. package/dist/src/core/text-rendering/TextLayoutEngine.js +380 -0
  254. package/dist/src/core/text-rendering/TextLayoutEngine.js.map +1 -0
  255. package/dist/src/core/text-rendering/TextRenderer.d.ts +383 -0
  256. package/dist/src/{main-api/ICoreDriver.js → core/text-rendering/TextRenderer.js} +1 -1
  257. package/dist/src/core/text-rendering/TextRenderer.js.map +1 -0
  258. package/dist/src/core/text-rendering/TextTextureRendererUtils.js.map +1 -1
  259. package/dist/src/core/text-rendering/Utils.d.ts +30 -0
  260. package/dist/src/core/text-rendering/Utils.js +84 -0
  261. package/dist/src/core/text-rendering/Utils.js.map +1 -0
  262. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js +2 -2
  263. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js.map +1 -1
  264. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.d.ts +0 -6
  265. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js.map +1 -1
  266. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.d.ts +3 -2
  267. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js +35 -38
  268. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js.map +1 -1
  269. package/dist/src/core/text-rendering/renderers/TextRenderer.d.ts +4 -1
  270. package/dist/src/core/text-rendering/renderers/TextRenderer.js.map +1 -1
  271. package/dist/src/core/textures/ColorTexture.d.ts +1 -1
  272. package/dist/src/core/textures/ColorTexture.js +3 -4
  273. package/dist/src/core/textures/ColorTexture.js.map +1 -1
  274. package/dist/src/core/textures/ImageTexture.d.ts +11 -4
  275. package/dist/src/core/textures/ImageTexture.js +31 -40
  276. package/dist/src/core/textures/ImageTexture.js.map +1 -1
  277. package/dist/src/core/textures/NoiseTexture.d.ts +3 -3
  278. package/dist/src/core/textures/NoiseTexture.js +8 -8
  279. package/dist/src/core/textures/NoiseTexture.js.map +1 -1
  280. package/dist/src/core/textures/RenderTexture.d.ts +7 -7
  281. package/dist/src/core/textures/RenderTexture.js +12 -12
  282. package/dist/src/core/textures/RenderTexture.js.map +1 -1
  283. package/dist/src/core/textures/SubTexture.d.ts +6 -8
  284. package/dist/src/core/textures/SubTexture.js +19 -37
  285. package/dist/src/core/textures/SubTexture.js.map +1 -1
  286. package/dist/src/core/textures/Texture.d.ts +87 -10
  287. package/dist/src/core/textures/Texture.js +160 -17
  288. package/dist/src/core/textures/Texture.js.map +1 -1
  289. package/dist/src/core/utils.d.ts +2 -1
  290. package/dist/src/core/utils.js +1 -1
  291. package/dist/src/core/utils.js.map +1 -1
  292. package/dist/src/main-api/INode.d.ts +2 -2
  293. package/dist/src/main-api/Inspector.d.ts +131 -2
  294. package/dist/src/main-api/Inspector.js +345 -28
  295. package/dist/src/main-api/Inspector.js.map +1 -1
  296. package/dist/src/main-api/Renderer.d.ts +295 -82
  297. package/dist/src/main-api/Renderer.js +223 -76
  298. package/dist/src/main-api/Renderer.js.map +1 -1
  299. package/dist/src/utils.d.ts +1 -6
  300. package/dist/src/utils.js +2 -9
  301. package/dist/src/utils.js.map +1 -1
  302. package/dist/tsconfig.dist.tsbuildinfo +1 -1
  303. package/dist/tsconfig.tsbuildinfo +1 -0
  304. package/exports/canvas.ts +1 -1
  305. package/exports/index.ts +2 -8
  306. package/exports/utils.ts +7 -1
  307. package/exports/webgl.ts +3 -1
  308. package/package.json +15 -17
  309. package/src/common/CommonTypes.ts +18 -2
  310. package/src/core/Autosizer.ts +224 -0
  311. package/src/core/CoreNode.test.ts +179 -17
  312. package/src/core/CoreNode.ts +895 -599
  313. package/src/core/CoreShaderManager.ts +5 -10
  314. package/src/core/CoreTextNode.ts +422 -286
  315. package/src/core/CoreTextureManager.ts +110 -130
  316. package/src/core/Stage.ts +397 -195
  317. package/src/core/TextureError.ts +46 -0
  318. package/src/core/TextureMemoryManager.ts +164 -141
  319. package/src/core/animations/CoreAnimation.ts +15 -9
  320. package/src/core/animations/CoreAnimationController.ts +13 -4
  321. package/src/core/lib/ImageWorker.ts +43 -12
  322. package/src/core/lib/WebGlContextWrapper.ts +127 -79
  323. package/src/core/lib/collectionUtils.ts +118 -0
  324. package/src/core/lib/colorCache.ts +20 -0
  325. package/src/core/{renderers/canvas/internal/ColorUtils.ts → lib/colorParser.ts} +2 -2
  326. package/src/core/lib/textureCompression.ts +433 -75
  327. package/src/core/lib/utils.ts +54 -25
  328. package/src/core/lib/validateImageBitmap.ts +17 -6
  329. package/src/core/platforms/Platform.ts +83 -0
  330. package/src/core/platforms/web/WebPlatform.ts +132 -0
  331. package/src/core/renderers/CoreContextTexture.ts +2 -1
  332. package/src/core/renderers/CoreRenderer.ts +5 -32
  333. package/src/core/renderers/CoreShaderNode.ts +38 -3
  334. package/src/core/renderers/canvas/CanvasRenderer.ts +84 -126
  335. package/src/core/renderers/canvas/CanvasShaderNode.ts +4 -8
  336. package/src/core/renderers/canvas/CanvasTexture.ts +22 -18
  337. package/src/core/renderers/webgl/SdfRenderOp.ts +105 -0
  338. package/src/core/renderers/webgl/WebGlCtxRenderTexture.ts +18 -15
  339. package/src/core/renderers/webgl/WebGlCtxSubTexture.ts +50 -5
  340. package/src/core/renderers/webgl/WebGlCtxTexture.ts +134 -84
  341. package/src/core/renderers/webgl/WebGlRenderer.ts +203 -190
  342. package/src/core/renderers/webgl/WebGlShaderNode.ts +4 -11
  343. package/src/core/renderers/webgl/WebGlShaderProgram.ts +101 -53
  344. package/src/core/shaders/canvas/Border.ts +88 -34
  345. package/src/core/shaders/canvas/HolePunch.ts +5 -11
  346. package/src/core/shaders/canvas/LinearGradient.ts +14 -10
  347. package/src/core/shaders/canvas/RadialGradient.ts +24 -41
  348. package/src/core/shaders/canvas/Rounded.ts +7 -7
  349. package/src/core/shaders/canvas/RoundedWithBorder.ts +77 -23
  350. package/src/core/shaders/canvas/RoundedWithBorderAndShadow.ts +84 -36
  351. package/src/core/shaders/canvas/RoundedWithShadow.ts +15 -13
  352. package/src/core/shaders/canvas/Shadow.ts +7 -5
  353. package/src/core/shaders/canvas/utils/render.ts +45 -36
  354. package/src/core/shaders/templates/BorderTemplate.ts +42 -12
  355. package/src/core/shaders/templates/HolePunchTemplate.ts +5 -5
  356. package/src/core/shaders/templates/RadialGradientTemplate.ts +10 -8
  357. package/src/core/shaders/templates/RoundedTemplate.ts +1 -1
  358. package/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.ts +1 -1
  359. package/src/core/shaders/templates/RoundedWithBorderTemplate.ts +1 -1
  360. package/src/core/shaders/templates/RoundedWithShadowTemplate.ts +1 -1
  361. package/src/core/shaders/templates/ShadowTemplate.ts +1 -1
  362. package/src/core/shaders/{templates/shaderUtils.ts → utils.ts} +2 -3
  363. package/src/core/shaders/webgl/Border.ts +116 -39
  364. package/src/core/shaders/webgl/Default.ts +6 -7
  365. package/src/core/shaders/webgl/HolePunch.ts +4 -7
  366. package/src/core/shaders/webgl/LinearGradient.ts +33 -8
  367. package/src/core/shaders/webgl/RadialGradient.ts +58 -34
  368. package/src/core/shaders/webgl/Rounded.ts +4 -6
  369. package/src/core/shaders/webgl/RoundedWithBorder.ts +154 -46
  370. package/src/core/shaders/webgl/RoundedWithBorderAndShadow.ts +159 -52
  371. package/src/core/shaders/webgl/RoundedWithShadow.ts +6 -8
  372. package/src/core/shaders/webgl/SdfShader.ts +7 -19
  373. package/src/core/shaders/webgl/Shadow.ts +12 -6
  374. package/src/core/text-rendering/CanvasFontHandler.ts +304 -0
  375. package/src/core/text-rendering/CanvasTextRenderer.ts +255 -0
  376. package/src/core/text-rendering/SdfFontHandler.ts +591 -0
  377. package/src/core/text-rendering/SdfTextRenderer.ts +408 -0
  378. package/src/core/text-rendering/TextLayoutEngine.ts +672 -0
  379. package/src/core/text-rendering/TextRenderer.ts +444 -0
  380. package/src/core/text-rendering/Utils.ts +99 -0
  381. package/src/core/text-rendering/tests/TextLayoutEngine.test.ts +453 -0
  382. package/src/core/textures/ColorTexture.ts +7 -5
  383. package/src/core/textures/ImageTexture.ts +78 -66
  384. package/src/core/textures/NoiseTexture.ts +14 -12
  385. package/src/core/textures/RenderTexture.ts +18 -16
  386. package/src/core/textures/SubTexture.ts +25 -46
  387. package/src/core/textures/Texture.ts +207 -24
  388. package/src/core/utils.ts +9 -7
  389. package/src/main-api/INode.ts +4 -3
  390. package/src/main-api/Inspector.ts +577 -36
  391. package/src/main-api/Renderer.ts +518 -139
  392. package/src/utils.ts +10 -10
  393. package/dist/exports/core-api.d.ts +0 -74
  394. package/dist/exports/core-api.js +0 -96
  395. package/dist/exports/core-api.js.map +0 -1
  396. package/dist/exports/main-api.d.ts +0 -30
  397. package/dist/exports/main-api.js +0 -45
  398. package/dist/exports/main-api.js.map +0 -1
  399. package/dist/src/core/CoreExtension.d.ts +0 -12
  400. package/dist/src/core/CoreExtension.js +0 -29
  401. package/dist/src/core/CoreExtension.js.map +0 -1
  402. package/dist/src/core/CoreStuff.d.ts +0 -1
  403. package/dist/src/core/CoreStuff.js +0 -138
  404. package/dist/src/core/CoreStuff.js.map +0 -1
  405. package/dist/src/core/CoreTexturizer.d.ts +0 -14
  406. package/dist/src/core/CoreTexturizer.js +0 -47
  407. package/dist/src/core/CoreTexturizer.js.map +0 -1
  408. package/dist/src/core/LngNode.d.ts +0 -736
  409. package/dist/src/core/LngNode.js +0 -1174
  410. package/dist/src/core/LngNode.js.map +0 -1
  411. package/dist/src/core/Matrix2DContext.d.ts +0 -15
  412. package/dist/src/core/Matrix2DContext.js +0 -45
  413. package/dist/src/core/Matrix2DContext.js.map +0 -1
  414. package/dist/src/core/ShaderNode.d.ts +0 -10
  415. package/dist/src/core/ShaderNode.js +0 -30
  416. package/dist/src/core/ShaderNode.js.map +0 -1
  417. package/dist/src/core/TextNode.d.ts +0 -103
  418. package/dist/src/core/TextNode.js +0 -331
  419. package/dist/src/core/TextNode.js.map +0 -1
  420. package/dist/src/core/lib/Coords.d.ts +0 -14
  421. package/dist/src/core/lib/Coords.js +0 -55
  422. package/dist/src/core/lib/Coords.js.map +0 -1
  423. package/dist/src/core/lib/glm/common.d.ts +0 -162
  424. package/dist/src/core/lib/glm/common.js +0 -81
  425. package/dist/src/core/lib/glm/common.js.map +0 -1
  426. package/dist/src/core/lib/glm/index.d.ts +0 -11
  427. package/dist/src/core/lib/glm/index.js +0 -30
  428. package/dist/src/core/lib/glm/index.js.map +0 -1
  429. package/dist/src/core/lib/glm/mat2.d.ts +0 -219
  430. package/dist/src/core/lib/glm/mat2.js +0 -396
  431. package/dist/src/core/lib/glm/mat2.js.map +0 -1
  432. package/dist/src/core/lib/glm/mat2d.d.ts +0 -237
  433. package/dist/src/core/lib/glm/mat2d.js +0 -442
  434. package/dist/src/core/lib/glm/mat2d.js.map +0 -1
  435. package/dist/src/core/lib/glm/mat3.d.ts +0 -283
  436. package/dist/src/core/lib/glm/mat3.js +0 -680
  437. package/dist/src/core/lib/glm/mat3.js.map +0 -1
  438. package/dist/src/core/lib/glm/mat4.d.ts +0 -550
  439. package/dist/src/core/lib/glm/mat4.js +0 -1802
  440. package/dist/src/core/lib/glm/mat4.js.map +0 -1
  441. package/dist/src/core/lib/glm/quat.d.ts +0 -363
  442. package/dist/src/core/lib/glm/quat.js +0 -693
  443. package/dist/src/core/lib/glm/quat.js.map +0 -1
  444. package/dist/src/core/lib/glm/quat2.d.ts +0 -356
  445. package/dist/src/core/lib/glm/quat2.js +0 -754
  446. package/dist/src/core/lib/glm/quat2.js.map +0 -1
  447. package/dist/src/core/lib/glm/vec2.d.ts +0 -365
  448. package/dist/src/core/lib/glm/vec2.js +0 -569
  449. package/dist/src/core/lib/glm/vec2.js.map +0 -1
  450. package/dist/src/core/lib/glm/vec3.d.ts +0 -406
  451. package/dist/src/core/lib/glm/vec3.js +0 -720
  452. package/dist/src/core/lib/glm/vec3.js.map +0 -1
  453. package/dist/src/core/lib/glm/vec4.d.ts +0 -330
  454. package/dist/src/core/lib/glm/vec4.js +0 -608
  455. package/dist/src/core/lib/glm/vec4.js.map +0 -1
  456. package/dist/src/core/renderers/CoreShaderManager.d.ts +0 -19
  457. package/dist/src/core/renderers/CoreShaderManager.js +0 -33
  458. package/dist/src/core/renderers/CoreShaderManager.js.map +0 -1
  459. package/dist/src/core/renderers/webgl/WebGlCoreShaderManager.d.ts +0 -27
  460. package/dist/src/core/renderers/webgl/WebGlCoreShaderManager.js +0 -82
  461. package/dist/src/core/renderers/webgl/WebGlCoreShaderManager.js.map +0 -1
  462. package/dist/src/core/renderers/webgl/WebGlCoreShaderProgram.d.ts +0 -11
  463. package/dist/src/core/renderers/webgl/WebGlCoreShaderProgram.js +0 -34
  464. package/dist/src/core/renderers/webgl/WebGlCoreShaderProgram.js.map +0 -1
  465. package/dist/src/core/scene/Scene.d.ts +0 -59
  466. package/dist/src/core/scene/Scene.js +0 -106
  467. package/dist/src/core/scene/Scene.js.map +0 -1
  468. package/dist/src/core/shaders/templates/shaderUtils.js.map +0 -1
  469. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.d.ts +0 -20
  470. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.js +0 -55
  471. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.js.map +0 -1
  472. package/dist/src/main-api/ICoreDriver.d.ts +0 -27
  473. package/dist/src/main-api/ICoreDriver.js.map +0 -1
  474. package/dist/src/main-api/IRenderDriver.d.ts +0 -20
  475. package/dist/src/main-api/IRenderDriver.js.map +0 -1
  476. package/dist/src/main-api/IShaderController.d.ts +0 -14
  477. package/dist/src/main-api/IShaderController.js +0 -30
  478. package/dist/src/main-api/IShaderController.js.map +0 -1
  479. package/dist/src/main-api/IShaderNode.d.ts +0 -17
  480. package/dist/src/main-api/IShaderNode.js +0 -19
  481. package/dist/src/main-api/IShaderNode.js.map +0 -1
  482. package/dist/src/main-api/RendererMain.d.ts +0 -375
  483. package/dist/src/main-api/RendererMain.js +0 -365
  484. package/dist/src/main-api/RendererMain.js.map +0 -1
  485. package/dist/src/main-api/texture-usage-trackers/FinalizationRegistryTextureUsageTracker.d.ts +0 -9
  486. package/dist/src/main-api/texture-usage-trackers/FinalizationRegistryTextureUsageTracker.js +0 -38
  487. package/dist/src/main-api/texture-usage-trackers/FinalizationRegistryTextureUsageTracker.js.map +0 -1
  488. package/dist/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.d.ts +0 -56
  489. package/dist/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.js +0 -101
  490. package/dist/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.js.map +0 -1
  491. package/dist/src/main-api/texture-usage-trackers/TextureUsageTracker.d.ts +0 -32
  492. package/dist/src/main-api/texture-usage-trackers/TextureUsageTracker.js +0 -28
  493. package/dist/src/main-api/texture-usage-trackers/TextureUsageTracker.js.map +0 -1
  494. package/dist/src/render-drivers/main/MainCoreDriver.d.ts +0 -24
  495. package/dist/src/render-drivers/main/MainCoreDriver.js +0 -118
  496. package/dist/src/render-drivers/main/MainCoreDriver.js.map +0 -1
  497. package/dist/src/render-drivers/main/MainOnlyNode.d.ts +0 -99
  498. package/dist/src/render-drivers/main/MainOnlyNode.js +0 -396
  499. package/dist/src/render-drivers/main/MainOnlyNode.js.map +0 -1
  500. package/dist/src/render-drivers/main/MainOnlyShaderController.d.ts +0 -6
  501. package/dist/src/render-drivers/main/MainOnlyShaderController.js +0 -15
  502. package/dist/src/render-drivers/main/MainOnlyShaderController.js.map +0 -1
  503. package/dist/src/render-drivers/main/MainOnlyShaderNode.d.ts +0 -7
  504. package/dist/src/render-drivers/main/MainOnlyShaderNode.js +0 -34
  505. package/dist/src/render-drivers/main/MainOnlyShaderNode.js.map +0 -1
  506. package/dist/src/render-drivers/main/MainOnlyTextNode.d.ts +0 -47
  507. package/dist/src/render-drivers/main/MainOnlyTextNode.js +0 -205
  508. package/dist/src/render-drivers/main/MainOnlyTextNode.js.map +0 -1
  509. package/dist/src/render-drivers/main/MainRenderDriver.d.ts +0 -17
  510. package/dist/src/render-drivers/main/MainRenderDriver.js +0 -88
  511. package/dist/src/render-drivers/main/MainRenderDriver.js.map +0 -1
  512. package/dist/src/render-drivers/threadx/NodeStruct.d.ts +0 -90
  513. package/dist/src/render-drivers/threadx/NodeStruct.js +0 -281
  514. package/dist/src/render-drivers/threadx/NodeStruct.js.map +0 -1
  515. package/dist/src/render-drivers/threadx/SharedNode.d.ts +0 -39
  516. package/dist/src/render-drivers/threadx/SharedNode.js +0 -60
  517. package/dist/src/render-drivers/threadx/SharedNode.js.map +0 -1
  518. package/dist/src/render-drivers/threadx/TextNodeStruct.d.ts +0 -44
  519. package/dist/src/render-drivers/threadx/TextNodeStruct.js +0 -201
  520. package/dist/src/render-drivers/threadx/TextNodeStruct.js.map +0 -1
  521. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.d.ts +0 -28
  522. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js +0 -234
  523. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js.map +0 -1
  524. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.d.ts +0 -20
  525. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.js +0 -84
  526. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.js.map +0 -1
  527. package/dist/src/render-drivers/threadx/ThreadXMainNode.d.ts +0 -44
  528. package/dist/src/render-drivers/threadx/ThreadXMainNode.js +0 -154
  529. package/dist/src/render-drivers/threadx/ThreadXMainNode.js.map +0 -1
  530. package/dist/src/render-drivers/threadx/ThreadXMainShaderController.d.ts +0 -6
  531. package/dist/src/render-drivers/threadx/ThreadXMainShaderController.js +0 -16
  532. package/dist/src/render-drivers/threadx/ThreadXMainShaderController.js.map +0 -1
  533. package/dist/src/render-drivers/threadx/ThreadXMainShaderNode.d.ts +0 -7
  534. package/dist/src/render-drivers/threadx/ThreadXMainShaderNode.js +0 -15
  535. package/dist/src/render-drivers/threadx/ThreadXMainShaderNode.js.map +0 -1
  536. package/dist/src/render-drivers/threadx/ThreadXMainTextNode.d.ts +0 -28
  537. package/dist/src/render-drivers/threadx/ThreadXMainTextNode.js +0 -55
  538. package/dist/src/render-drivers/threadx/ThreadXMainTextNode.js.map +0 -1
  539. package/dist/src/render-drivers/threadx/ThreadXRenderDriver.d.ts +0 -21
  540. package/dist/src/render-drivers/threadx/ThreadXRenderDriver.js +0 -198
  541. package/dist/src/render-drivers/threadx/ThreadXRenderDriver.js.map +0 -1
  542. package/dist/src/render-drivers/threadx/ThreadXRendererMessage.d.ts +0 -70
  543. package/dist/src/render-drivers/threadx/ThreadXRendererMessage.js +0 -32
  544. package/dist/src/render-drivers/threadx/ThreadXRendererMessage.js.map +0 -1
  545. package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.d.ts +0 -19
  546. package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.js +0 -177
  547. package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.js.map +0 -1
  548. package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.d.ts +0 -27
  549. package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.js +0 -108
  550. package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.js.map +0 -1
  551. package/dist/src/render-drivers/threadx/worker/renderer.d.ts +0 -1
  552. package/dist/src/render-drivers/threadx/worker/renderer.js +0 -145
  553. package/dist/src/render-drivers/threadx/worker/renderer.js.map +0 -1
  554. package/dist/src/render-drivers/utils.d.ts +0 -12
  555. package/dist/src/render-drivers/utils.js +0 -69
  556. package/dist/src/render-drivers/utils.js.map +0 -1
  557. package/scripts/please-use-pnpm.js +0 -13
  558. package/src/core/platform.ts +0 -64
  559. package/src/core/renderers/canvas/internal/C2DShaderUtils.ts +0 -220
  560. package/src/core/renderers/webgl/WebGlRenderOp.ts +0 -161
  561. package/src/core/text-rendering/TextRenderingUtils.ts +0 -36
  562. package/src/core/text-rendering/TextTextureRendererUtils.ts +0 -263
  563. package/src/core/text-rendering/TrFontManager.ts +0 -183
  564. package/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.ts +0 -176
  565. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.ts +0 -139
  566. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.test.ts +0 -173
  567. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.ts +0 -171
  568. package/src/core/text-rendering/font-face-types/TrFontFace.ts +0 -187
  569. package/src/core/text-rendering/font-face-types/WebTrFontFace.ts +0 -94
  570. package/src/core/text-rendering/font-face-types/utils.ts +0 -39
  571. package/src/core/text-rendering/renderers/CanvasTextRenderer.ts +0 -509
  572. package/src/core/text-rendering/renderers/LightningTextTextureRenderer.ts +0 -815
  573. package/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.ts +0 -840
  574. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.test.ts +0 -48
  575. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.ts +0 -66
  576. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.ts +0 -52
  577. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.ts +0 -32
  578. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.ts +0 -117
  579. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.test.ts +0 -133
  580. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.ts +0 -38
  581. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.ts +0 -408
  582. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.test.ts +0 -49
  583. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.ts +0 -52
  584. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.test.ts +0 -205
  585. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.ts +0 -93
  586. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.ts +0 -40
  587. package/src/core/text-rendering/renderers/TextRenderer.ts +0 -550
@@ -16,309 +16,432 @@
16
16
  * See the License for the specific language governing permissions and
17
17
  * limitations under the License.
18
18
  */
19
- import { CoreNode, UpdateType } from './CoreNode.js';
20
- import { assertTruthy } from '../utils.js';
19
+ import { CoreNode, CoreNodeRenderState, UpdateType, } from './CoreNode.js';
21
20
  import { Matrix3d } from './lib/Matrix3d.js';
22
- /**
23
- * An CoreNode in the Renderer scene graph that renders text.
24
- *
25
- * @remarks
26
- * A Text Node is the second graphical building block of the Renderer scene
27
- * graph. It renders text using a specific text renderer that is automatically
28
- * chosen based on the font requested and what type of fonts are installed
29
- * into an app.
30
- *
31
- * The text renderer can be overridden by setting the `textRendererOverride`
32
- *
33
- * The `texture` and `shader` properties are managed by loaded text renderer and
34
- * should not be set directly.
35
- *
36
- * For non-text rendering, see {@link CoreNode}.
37
- */
21
+ export var TextConstraint;
22
+ (function (TextConstraint) {
23
+ TextConstraint[TextConstraint["none"] = 0] = "none";
24
+ TextConstraint[TextConstraint["width"] = 1] = "width";
25
+ TextConstraint[TextConstraint["height"] = 2] = "height";
26
+ TextConstraint[TextConstraint["both"] = 3] = "both";
27
+ })(TextConstraint || (TextConstraint = {}));
38
28
  export class CoreTextNode extends CoreNode {
39
29
  textRenderer;
40
- trState;
41
- _textRendererOverride = null;
30
+ fontHandler;
31
+ _layoutGenerated = false;
32
+ _waitingForFont = false;
33
+ _containType = TextConstraint.none;
34
+ // SDF layout caching for performance
35
+ _cachedLayout = null;
36
+ _lastVertexBuffer = null;
37
+ // Text renderer properties - stored directly on the node
38
+ textProps;
39
+ _renderInfo = {
40
+ width: 0,
41
+ height: 0,
42
+ };
43
+ _type = 'sdf'; // Default to SDF renderer
42
44
  constructor(stage, props, textRenderer) {
43
45
  super(stage, props);
44
- this._textRendererOverride = props.textRendererOverride;
45
46
  this.textRenderer = textRenderer;
46
- const textRendererState = this.createState({
47
- x: this.absX,
48
- y: this.absY,
49
- width: props.width,
50
- height: props.height,
51
- textAlign: props.textAlign,
52
- color: props.color,
53
- zIndex: props.zIndex,
54
- contain: props.contain,
55
- scrollable: props.scrollable,
56
- scrollY: props.scrollY,
57
- offsetY: props.offsetY,
58
- letterSpacing: props.letterSpacing,
59
- debug: props.debug,
60
- fontFamily: props.fontFamily,
61
- fontSize: props.fontSize,
62
- fontStretch: props.fontStretch,
63
- fontStyle: props.fontStyle,
64
- fontWeight: props.fontWeight,
65
- text: props.text,
66
- lineHeight: props.lineHeight,
67
- maxLines: props.maxLines,
68
- textBaseline: props.textBaseline,
69
- verticalAlign: props.verticalAlign,
70
- overflowSuffix: props.overflowSuffix,
71
- });
72
- this.trState = textRendererState;
73
- }
74
- onTextLoaded = () => {
75
- const { contain } = this;
76
- const setWidth = this.trState.props.width;
77
- const setHeight = this.trState.props.height;
78
- const calcWidth = this.trState.textW || 0;
79
- const calcHeight = this.trState.textH || 0;
80
- if (contain === 'both') {
81
- this.props.width = setWidth;
82
- this.props.height = setHeight;
83
- }
84
- else if (contain === 'width') {
85
- this.props.width = setWidth;
86
- this.props.height = calcHeight;
87
- }
88
- else if (contain === 'none') {
89
- this.props.width = calcWidth;
90
- this.props.height = calcHeight;
91
- }
92
- this.updateLocalTransform();
93
- // Incase the RAF loop has been stopped already before text was loaded,
94
- // we request a render so it can be drawn.
95
- this.stage.requestRender();
47
+ this.fontHandler = textRenderer.font;
48
+ this._type = textRenderer.type;
49
+ // Initialize text properties from props
50
+ // Props are guaranteed to have all defaults resolved by Stage.createTextNode
51
+ this.textProps = props;
52
+ this._containType = TextConstraint[props.contain];
53
+ this.setUpdateType(UpdateType.All);
54
+ }
55
+ onTextureLoaded = (_, dimensions) => {
56
+ // If parent has a render texture, flag that we need to update
57
+ if (this.parentHasRenderTexture) {
58
+ this.notifyParentRTTOfUpdate();
59
+ }
60
+ // ignore 1x1 pixel textures
61
+ if (dimensions.w > 1 && dimensions.h > 1) {
62
+ this.emit('loaded', {
63
+ type: 'texture',
64
+ dimensions,
65
+ });
66
+ }
67
+ this.setUpdateType(UpdateType.IsRenderable);
68
+ };
69
+ allowTextGeneration() {
70
+ const p = this.props.parent;
71
+ if (p === null) {
72
+ return false;
73
+ }
74
+ if (p.worldAlpha > 0 && p.renderState > CoreNodeRenderState.OutOfBounds) {
75
+ return true;
76
+ }
77
+ return false;
78
+ }
79
+ updateLocalTransform() {
80
+ const p = this.props;
81
+ let { x, y, w, h } = p;
82
+ const mountX = p.mountX;
83
+ const mountY = p.mountY;
84
+ let mountTranslateX = p.mountX * w;
85
+ let mountTranslateY = p.mountY * h;
86
+ let localTextTransform = null;
87
+ const tProps = this.textProps;
88
+ const { textAlign, verticalAlign, maxWidth, maxHeight } = tProps;
89
+ const contain = this._containType;
90
+ const hasMaxWidth = maxWidth > 0;
91
+ const hasMaxHeight = maxHeight > 0;
92
+ if (contain > 0 && (hasMaxWidth || hasMaxHeight)) {
93
+ let containX = 0;
94
+ let containY = 0;
95
+ if (contain & TextConstraint.width && hasMaxWidth === true) {
96
+ if (textAlign === 'right') {
97
+ containX = maxWidth - w;
98
+ }
99
+ else if (textAlign === 'center') {
100
+ containX = (maxWidth - w) * 0.5;
101
+ }
102
+ mountTranslateX = mountX * maxWidth;
103
+ }
104
+ if (contain & TextConstraint.height && maxHeight > 0) {
105
+ if (verticalAlign === 'bottom') {
106
+ containY = maxHeight - h;
107
+ }
108
+ else if (verticalAlign === 'middle') {
109
+ containY = (maxHeight - h) * 0.5;
110
+ }
111
+ mountTranslateY = mountY * maxHeight;
112
+ }
113
+ localTextTransform = Matrix3d.translate(containX, containY);
114
+ }
115
+ if (p.rotation !== 0 || p.scaleX !== 1 || p.scaleY !== 1) {
116
+ const scaleRotate = Matrix3d.rotate(p.rotation).scale(p.scaleX, p.scaleY);
117
+ const pivotW = contain & TextConstraint.width && maxWidth > 0 ? maxWidth : w;
118
+ const pivotH = contain & TextConstraint.height && maxHeight > 0 ? maxHeight : h;
119
+ const pivotTranslateX = p.pivotX * pivotW;
120
+ const pivotTranslateY = p.pivotY * pivotH;
121
+ this.localTransform = Matrix3d.translate(x - mountTranslateX + pivotTranslateX, y - mountTranslateY + pivotTranslateY, this.localTransform)
122
+ .multiply(scaleRotate)
123
+ .translate(-pivotTranslateX, -pivotTranslateY);
124
+ }
125
+ else {
126
+ this.localTransform = Matrix3d.translate(x - mountTranslateX, y - mountTranslateY, this.localTransform);
127
+ }
128
+ if (localTextTransform !== null) {
129
+ this.localTransform = this.localTransform.multiply(localTextTransform);
130
+ }
131
+ }
132
+ /**
133
+ * Override CoreNode's update method to handle text-specific updates
134
+ */
135
+ update(delta, parentClippingRect) {
136
+ if ((this.textProps.forceLoad === true ||
137
+ this.allowTextGeneration() === true) &&
138
+ this._layoutGenerated === false) {
139
+ if (this.fontHandler.isFontLoaded(this.textProps.fontFamily) === true) {
140
+ this._waitingForFont = false;
141
+ this._cachedLayout = null; // Invalidate cached layout
142
+ this._lastVertexBuffer = null; // Invalidate last vertex buffer
143
+ const resp = this.textRenderer.renderText(this.textProps);
144
+ this.handleRenderResult(resp);
145
+ this._layoutGenerated = true;
146
+ }
147
+ else if (this._waitingForFont === false) {
148
+ this.fontHandler.waitingForFont(this.textProps.fontFamily, this);
149
+ this._waitingForFont = true;
150
+ }
151
+ }
152
+ // First run the standard CoreNode update
153
+ super.update(delta, parentClippingRect);
154
+ }
155
+ /**
156
+ * Override is renderable check for SDF text nodes
157
+ */
158
+ updateIsRenderable() {
159
+ // SDF text nodes are always renderable if they have a valid layout
160
+ if (this._type === 'canvas') {
161
+ super.updateIsRenderable();
162
+ return;
163
+ }
164
+ // For SDF, check if we have a cached layout
165
+ this.setRenderable(this._cachedLayout !== null);
166
+ }
167
+ /**
168
+ * Handle the result of text rendering for both Canvas and SDF renderers
169
+ */
170
+ handleRenderResult(result) {
171
+ // Host paths on top
172
+ const textRendererType = this._type;
173
+ let width = result.width;
174
+ let height = result.height;
175
+ // Handle Canvas renderer (uses ImageData)
176
+ if (textRendererType === 'canvas') {
177
+ if (result.imageData === undefined) {
178
+ this.emit('failed', {
179
+ type: 'text',
180
+ error: new Error('Canvas text rendering failed, no image data returned'),
181
+ });
182
+ return;
183
+ }
184
+ this.texture = this.stage.txManager.createTexture('ImageTexture', {
185
+ premultiplyAlpha: true,
186
+ src: result.imageData,
187
+ });
188
+ // It isn't renderable until the texture is loaded we have to set it to false here to avoid it
189
+ // being detected as a renderable default color node in the next frame
190
+ // it will be corrected once the texture is loaded
191
+ this.setRenderable(false);
192
+ if (this.renderState > CoreNodeRenderState.OutOfBounds) {
193
+ // We do want the texture to load immediately
194
+ this.texture.setRenderableOwner(this._id, true);
195
+ }
196
+ }
197
+ this._cachedLayout = result.layout || null;
198
+ this.props.w = width;
199
+ this.props.h = height;
200
+ // Handle SDF renderer (uses layout caching)
201
+ if (textRendererType === 'sdf') {
202
+ this.setRenderable(true);
203
+ this.setUpdateType(UpdateType.Local);
204
+ }
205
+ this._renderInfo = result;
206
+ queueMicrotask(this.emitTextLoadedEvent);
207
+ }
208
+ // Reusable bound method for emitting loaded event
209
+ emitTextLoadedEvent = () => {
96
210
  this.emit('loaded', {
97
211
  type: 'text',
98
212
  dimensions: {
99
- width: this.trState.textW || 0,
100
- height: this.trState.textH || 0,
213
+ w: this._renderInfo.width,
214
+ h: this._renderInfo.height,
101
215
  },
102
216
  });
103
217
  };
104
- onTextFailed = (target, error) => {
105
- this.emit('failed', {
106
- type: 'text',
107
- error,
218
+ /**
219
+ * Override renderQuads to handle SDF vs Canvas rendering
220
+ */
221
+ renderQuads(renderer) {
222
+ if (this.parentHasRenderTexture === true) {
223
+ const rtt = renderer.renderToTextureActive;
224
+ if (rtt === false || this.parentRenderTexture !== renderer.activeRttNode)
225
+ return;
226
+ }
227
+ // Canvas renderer: use standard texture rendering via CoreNode
228
+ if (this._type === 'canvas') {
229
+ super.renderQuads(renderer);
230
+ return;
231
+ }
232
+ // Early return if no cached data
233
+ if (!this._cachedLayout) {
234
+ return;
235
+ }
236
+ if (this._lastVertexBuffer === null) {
237
+ this._lastVertexBuffer = this.textRenderer.addQuads(this._cachedLayout);
238
+ }
239
+ const props = this.textProps;
240
+ this.textRenderer.renderQuads(renderer, this._cachedLayout, this._lastVertexBuffer, {
241
+ fontFamily: this.textProps.fontFamily,
242
+ fontSize: props.fontSize,
243
+ color: this.props.color || 0xffffffff,
244
+ offsetY: props.offsetY,
245
+ worldAlpha: this.worldAlpha,
246
+ globalTransform: this.globalTransform.getFloatArr(),
247
+ clippingRect: this.clippingRect,
248
+ width: this.props.w,
249
+ height: this.props.h,
250
+ parentHasRenderTexture: this.parentHasRenderTexture,
251
+ framebufferDimensions: this.parentHasRenderTexture === true
252
+ ? this.parentFramebufferDimensions
253
+ : null,
254
+ stage: this.stage,
108
255
  });
109
- };
110
- get width() {
111
- return this.props.width;
112
- }
113
- set width(value) {
114
- this.props.width = value;
115
- this.textRenderer.set.width(this.trState, value);
116
- // If not containing, we must update the local transform to account for the
117
- // new width
118
- if (this.contain === 'none') {
256
+ }
257
+ destroy() {
258
+ if (this._waitingForFont === true && this.fontHandler) {
259
+ this.fontHandler.stopWaitingForFont(this.textProps.fontFamily, this);
260
+ }
261
+ // Clear cached layout and vertex buffer
262
+ this._cachedLayout = null;
263
+ this._lastVertexBuffer = null;
264
+ this.fontHandler = null; // Clear reference to avoid memory leaks
265
+ this.textRenderer = null; // Clear reference to avoid memory leaks
266
+ super.destroy();
267
+ }
268
+ set w(value) {
269
+ this.maxWidth = value;
270
+ }
271
+ get w() {
272
+ return this.props.w;
273
+ }
274
+ set h(value) {
275
+ this.maxHeight = value;
276
+ }
277
+ get h() {
278
+ return this.props.h;
279
+ }
280
+ get maxWidth() {
281
+ return this.textProps.maxWidth;
282
+ }
283
+ set maxWidth(value) {
284
+ if (this.textProps.maxWidth !== value) {
285
+ this.textProps.maxWidth = value;
286
+ this._layoutGenerated = false;
119
287
  this.setUpdateType(UpdateType.Local);
120
288
  }
121
289
  }
122
- get height() {
123
- return this.props.height;
290
+ // Property getters and setters
291
+ get maxHeight() {
292
+ return this.textProps.maxHeight;
124
293
  }
125
- set height(value) {
126
- this.props.height = value;
127
- this.textRenderer.set.height(this.trState, value);
128
- // If not containing in the horizontal direction, we must update the local
129
- // transform to account for the new height
130
- if (this.contain !== 'both') {
294
+ set maxHeight(value) {
295
+ if (this.textProps.maxHeight !== value) {
296
+ this.textProps.maxHeight = value;
297
+ this._layoutGenerated = false;
131
298
  this.setUpdateType(UpdateType.Local);
132
299
  }
133
300
  }
134
- get color() {
135
- return this.trState.props.color;
301
+ get contain() {
302
+ return this.textProps.contain;
136
303
  }
137
- set color(value) {
138
- this.textRenderer.set.color(this.trState, value);
304
+ set contain(value) {
305
+ if (this.textProps.contain !== value) {
306
+ this.textProps.contain = value;
307
+ this._containType = TextConstraint[value];
308
+ this.setUpdateType(UpdateType.Local);
309
+ }
139
310
  }
140
311
  get text() {
141
- return this.trState.props.text;
312
+ return this.textProps.text;
142
313
  }
143
314
  set text(value) {
144
- this.textRenderer.set.text(this.trState, value);
145
- }
146
- get textRendererOverride() {
147
- return this._textRendererOverride;
148
- }
149
- set textRendererOverride(value) {
150
- this._textRendererOverride = value;
151
- this.textRenderer.destroyState(this.trState);
152
- const textRenderer = this.stage.resolveTextRenderer(this.trState.props, this._textRendererOverride);
153
- if (!textRenderer) {
154
- console.warn('Text Renderer not found for font', this.trState.props.fontFamily);
155
- return;
315
+ if (this.textProps.text !== value) {
316
+ this.textProps.text = value;
317
+ this._layoutGenerated = false;
318
+ this.setUpdateType(UpdateType.Local);
156
319
  }
157
- this.textRenderer = textRenderer;
158
- this.trState = this.createState(this.trState.props);
159
320
  }
160
321
  get fontSize() {
161
- return this.trState.props.fontSize;
322
+ return this.textProps.fontSize;
162
323
  }
163
324
  set fontSize(value) {
164
- this.textRenderer.set.fontSize(this.trState, value);
325
+ if (this.textProps.fontSize !== value) {
326
+ this.textProps.fontSize = value;
327
+ this._layoutGenerated = false;
328
+ this.setUpdateType(UpdateType.Local);
329
+ }
165
330
  }
166
331
  get fontFamily() {
167
- return this.trState.props.fontFamily;
332
+ return this.textProps.fontFamily;
168
333
  }
169
334
  set fontFamily(value) {
170
- this.textRenderer.set.fontFamily(this.trState, value);
171
- }
172
- get fontStretch() {
173
- return this.trState.props.fontStretch;
174
- }
175
- set fontStretch(value) {
176
- this.textRenderer.set.fontStretch(this.trState, value);
335
+ if (this.textProps.fontFamily !== value) {
336
+ if (this._waitingForFont === true) {
337
+ this.fontHandler.stopWaitingForFont(this.textProps.fontFamily, this);
338
+ }
339
+ this.textProps.fontFamily = value;
340
+ this._layoutGenerated = false;
341
+ this.setUpdateType(UpdateType.Local);
342
+ }
177
343
  }
178
344
  get fontStyle() {
179
- return this.trState.props.fontStyle;
345
+ return this.textProps.fontStyle;
180
346
  }
181
347
  set fontStyle(value) {
182
- this.textRenderer.set.fontStyle(this.trState, value);
183
- }
184
- get fontWeight() {
185
- return this.trState.props.fontWeight;
186
- }
187
- set fontWeight(value) {
188
- this.textRenderer.set.fontWeight(this.trState, value);
348
+ if (this.textProps.fontStyle !== value) {
349
+ this.textProps.fontStyle = value;
350
+ this._layoutGenerated = false;
351
+ this.setUpdateType(UpdateType.Local);
352
+ }
189
353
  }
190
354
  get textAlign() {
191
- return this.trState.props.textAlign;
355
+ return this.textProps.textAlign;
192
356
  }
193
357
  set textAlign(value) {
194
- this.textRenderer.set.textAlign(this.trState, value);
195
- }
196
- get contain() {
197
- return this.trState.props.contain;
198
- }
199
- set contain(value) {
200
- this.textRenderer.set.contain(this.trState, value);
201
- }
202
- get scrollable() {
203
- return this.trState.props.scrollable;
204
- }
205
- set scrollable(value) {
206
- this.textRenderer.set.scrollable(this.trState, value);
207
- }
208
- get scrollY() {
209
- return this.trState.props.scrollY;
210
- }
211
- set scrollY(value) {
212
- this.textRenderer.set.scrollY(this.trState, value);
213
- }
214
- get offsetY() {
215
- return this.trState.props.offsetY;
216
- }
217
- set offsetY(value) {
218
- this.textRenderer.set.offsetY(this.trState, value);
358
+ if (this.textProps.textAlign !== value) {
359
+ this.textProps.textAlign = value;
360
+ this._layoutGenerated = false;
361
+ this.setUpdateType(UpdateType.Local);
362
+ }
219
363
  }
220
364
  get letterSpacing() {
221
- return this.trState.props.letterSpacing;
365
+ return this.textProps.letterSpacing;
222
366
  }
223
367
  set letterSpacing(value) {
224
- this.textRenderer.set.letterSpacing(this.trState, value);
368
+ if (this.textProps.letterSpacing !== value) {
369
+ this.textProps.letterSpacing = value;
370
+ this._layoutGenerated = false;
371
+ this.setUpdateType(UpdateType.Local);
372
+ }
225
373
  }
226
374
  get lineHeight() {
227
- return this.trState.props.lineHeight;
375
+ return this.textProps.lineHeight;
228
376
  }
229
377
  set lineHeight(value) {
230
- this.textRenderer.set.lineHeight(this.trState, value);
378
+ if (this.textProps.lineHeight !== value) {
379
+ this.textProps.lineHeight = value;
380
+ this._layoutGenerated = false;
381
+ this.setUpdateType(UpdateType.Local);
382
+ }
231
383
  }
232
384
  get maxLines() {
233
- return this.trState.props.maxLines;
385
+ return this.textProps.maxLines;
234
386
  }
235
387
  set maxLines(value) {
236
- this.textRenderer.set.maxLines(this.trState, value);
237
- }
238
- get textBaseline() {
239
- return this.trState.props.textBaseline;
240
- }
241
- set textBaseline(value) {
242
- this.textRenderer.set.textBaseline(this.trState, value);
388
+ if (this.textProps.maxLines !== value) {
389
+ this.textProps.maxLines = value;
390
+ this._layoutGenerated = false;
391
+ this.setUpdateType(UpdateType.Local);
392
+ }
243
393
  }
244
394
  get verticalAlign() {
245
- return this.trState.props.verticalAlign;
395
+ return this.textProps.verticalAlign;
246
396
  }
247
397
  set verticalAlign(value) {
248
- this.textRenderer.set.verticalAlign(this.trState, value);
398
+ if (this.textProps.verticalAlign !== value) {
399
+ this.textProps.verticalAlign = value;
400
+ this._layoutGenerated = false;
401
+ this.setUpdateType(UpdateType.Local);
402
+ }
249
403
  }
250
404
  get overflowSuffix() {
251
- return this.trState.props.overflowSuffix;
405
+ return this.textProps.overflowSuffix;
252
406
  }
253
407
  set overflowSuffix(value) {
254
- this.textRenderer.set.overflowSuffix(this.trState, value);
408
+ if (this.textProps.overflowSuffix !== value) {
409
+ this.textProps.overflowSuffix = value;
410
+ this._layoutGenerated = false;
411
+ this.setUpdateType(UpdateType.Local);
412
+ }
255
413
  }
256
- get debug() {
257
- return this.trState.props.debug;
414
+ get wordBreak() {
415
+ return this.textProps.wordBreak;
258
416
  }
259
- set debug(value) {
260
- this.textRenderer.set.debug(this.trState, value);
417
+ set wordBreak(value) {
418
+ if (this.textProps.wordBreak !== value) {
419
+ this.textProps.wordBreak = value;
420
+ this._layoutGenerated = false;
421
+ this.setUpdateType(UpdateType.Local);
422
+ }
261
423
  }
262
- update(delta, parentClippingRect) {
263
- super.update(delta, parentClippingRect);
264
- assertTruthy(this.globalTransform);
265
- // globalTransform is updated in super.update(delta)
266
- this.textRenderer.set.x(this.trState, this.globalTransform.tx);
267
- this.textRenderer.set.y(this.trState, this.globalTransform.ty);
424
+ get offsetY() {
425
+ return this.textProps.offsetY;
268
426
  }
269
- checkBasicRenderability() {
270
- if (this.worldAlpha === 0 || this.isOutOfBounds() === true) {
271
- return false;
272
- }
273
- if (this.trState && this.trState.props.text !== '') {
274
- return true;
427
+ set offsetY(value) {
428
+ if (this.textProps.offsetY !== value) {
429
+ this.textProps.offsetY = value;
430
+ this._layoutGenerated = false;
431
+ this.setUpdateType(UpdateType.Local);
275
432
  }
276
- return false;
277
433
  }
278
- setRenderable(isRenderable) {
279
- super.setRenderable(isRenderable);
280
- this.textRenderer.setIsRenderable(this.trState, isRenderable);
434
+ get forceLoad() {
435
+ return this.textProps.forceLoad;
281
436
  }
282
- renderQuads(renderer) {
283
- assertTruthy(this.globalTransform);
284
- // If the text renderer does not support rendering quads, fallback to the
285
- // default renderQuads method
286
- if (!this.textRenderer.renderQuads) {
287
- super.renderQuads(renderer);
288
- return;
289
- }
290
- // If the text renderer does support rendering quads, use it...
291
- // Prevent quad rendering if parent has a render texture
292
- // and this node is not the render texture
293
- if (this.parentHasRenderTexture) {
294
- if (!renderer.renderToTextureActive) {
295
- return;
296
- }
297
- // Prevent quad rendering if parent render texture is not the active render texture
298
- if (this.parentRenderTexture !== renderer.activeRttNode) {
299
- return;
300
- }
437
+ set forceLoad(value) {
438
+ if (this.textProps.forceLoad !== value) {
439
+ this.textProps.forceLoad = value;
440
+ this.setUpdateType(UpdateType.Local);
301
441
  }
302
- this.textRenderer.renderQuads(this);
303
442
  }
304
- /**
305
- * Destroy the node and cleanup all resources
306
- */
307
- destroy() {
308
- super.destroy();
309
- this.textRenderer.destroyState(this.trState);
310
- }
311
- /**
312
- * Resolve a text renderer and a new state based on the current text renderer props provided
313
- * @param props
314
- * @returns
315
- */
316
- createState(props) {
317
- const textRendererState = this.textRenderer.createState(props, this);
318
- textRendererState.emitter.on('loaded', this.onTextLoaded);
319
- textRendererState.emitter.on('failed', this.onTextFailed);
320
- this.textRenderer.scheduleUpdateState(textRendererState);
321
- return textRendererState;
443
+ get renderInfo() {
444
+ return this._renderInfo;
322
445
  }
323
446
  }
324
447
  //# sourceMappingURL=CoreTextNode.js.map