@lightningjs/renderer 3.0.0-beta9 → 3.0.0

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