@solidtv/renderer 1.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 (424) hide show
  1. package/LICENSE +202 -0
  2. package/NOTICE +7 -0
  3. package/README.md +137 -0
  4. package/dist/exports/canvas-shaders.d.ts +10 -0
  5. package/dist/exports/canvas-shaders.js +11 -0
  6. package/dist/exports/canvas-shaders.js.map +1 -0
  7. package/dist/exports/canvas.d.ts +26 -0
  8. package/dist/exports/canvas.js +27 -0
  9. package/dist/exports/canvas.js.map +1 -0
  10. package/dist/exports/index.d.ts +50 -0
  11. package/dist/exports/index.js +40 -0
  12. package/dist/exports/index.js.map +1 -0
  13. package/dist/exports/inspector.d.ts +4 -0
  14. package/dist/exports/inspector.js +5 -0
  15. package/dist/exports/inspector.js.map +1 -0
  16. package/dist/exports/utils.d.ts +27 -0
  17. package/dist/exports/utils.js +28 -0
  18. package/dist/exports/utils.js.map +1 -0
  19. package/dist/exports/webgl-shaders.d.ts +11 -0
  20. package/dist/exports/webgl-shaders.js +12 -0
  21. package/dist/exports/webgl-shaders.js.map +1 -0
  22. package/dist/exports/webgl.d.ts +28 -0
  23. package/dist/exports/webgl.js +29 -0
  24. package/dist/exports/webgl.js.map +1 -0
  25. package/dist/src/common/CommonTypes.d.ts +110 -0
  26. package/dist/src/common/CommonTypes.js +2 -0
  27. package/dist/src/common/CommonTypes.js.map +1 -0
  28. package/dist/src/common/EventEmitter.d.ts +12 -0
  29. package/dist/src/common/EventEmitter.js +48 -0
  30. package/dist/src/common/EventEmitter.js.map +1 -0
  31. package/dist/src/common/IAnimationController.d.ts +58 -0
  32. package/dist/src/common/IAnimationController.js +2 -0
  33. package/dist/src/common/IAnimationController.js.map +1 -0
  34. package/dist/src/common/IEventEmitter.d.ts +8 -0
  35. package/dist/src/common/IEventEmitter.js +2 -0
  36. package/dist/src/common/IEventEmitter.js.map +1 -0
  37. package/dist/src/core/Autosizer.d.ts +35 -0
  38. package/dist/src/core/Autosizer.js +178 -0
  39. package/dist/src/core/Autosizer.js.map +1 -0
  40. package/dist/src/core/CoreNode.d.ts +908 -0
  41. package/dist/src/core/CoreNode.js +1837 -0
  42. package/dist/src/core/CoreNode.js.map +1 -0
  43. package/dist/src/core/CoreShaderManager.d.ts +38 -0
  44. package/dist/src/core/CoreShaderManager.js +123 -0
  45. package/dist/src/core/CoreShaderManager.js.map +1 -0
  46. package/dist/src/core/CoreTextNode.d.ts +91 -0
  47. package/dist/src/core/CoreTextNode.js +440 -0
  48. package/dist/src/core/CoreTextNode.js.map +1 -0
  49. package/dist/src/core/CoreTextureManager.d.ts +264 -0
  50. package/dist/src/core/CoreTextureManager.js +318 -0
  51. package/dist/src/core/CoreTextureManager.js.map +1 -0
  52. package/dist/src/core/Stage.d.ts +238 -0
  53. package/dist/src/core/Stage.js +804 -0
  54. package/dist/src/core/Stage.js.map +1 -0
  55. package/dist/src/core/TextureError.d.ts +11 -0
  56. package/dist/src/core/TextureError.js +37 -0
  57. package/dist/src/core/TextureError.js.map +1 -0
  58. package/dist/src/core/TextureMemoryManager.d.ts +150 -0
  59. package/dist/src/core/TextureMemoryManager.js +239 -0
  60. package/dist/src/core/TextureMemoryManager.js.map +1 -0
  61. package/dist/src/core/animations/AnimationManager.d.ts +33 -0
  62. package/dist/src/core/animations/AnimationManager.js +137 -0
  63. package/dist/src/core/animations/AnimationManager.js.map +1 -0
  64. package/dist/src/core/animations/CoreAnimation.d.ts +12 -0
  65. package/dist/src/core/animations/CoreAnimation.js +107 -0
  66. package/dist/src/core/animations/CoreAnimation.js.map +1 -0
  67. package/dist/src/core/lib/ContextSpy.d.ts +12 -0
  68. package/dist/src/core/lib/ContextSpy.js +20 -0
  69. package/dist/src/core/lib/ContextSpy.js.map +1 -0
  70. package/dist/src/core/lib/ImageWorker.d.ts +16 -0
  71. package/dist/src/core/lib/ImageWorker.js +202 -0
  72. package/dist/src/core/lib/ImageWorker.js.map +1 -0
  73. package/dist/src/core/lib/Matrix3d.d.ts +74 -0
  74. package/dist/src/core/lib/Matrix3d.js +218 -0
  75. package/dist/src/core/lib/Matrix3d.js.map +1 -0
  76. package/dist/src/core/lib/RenderCoords.d.ts +12 -0
  77. package/dist/src/core/lib/RenderCoords.js +35 -0
  78. package/dist/src/core/lib/RenderCoords.js.map +1 -0
  79. package/dist/src/core/lib/WebGlContextWrapper.d.ts +782 -0
  80. package/dist/src/core/lib/WebGlContextWrapper.js +1143 -0
  81. package/dist/src/core/lib/WebGlContextWrapper.js.map +1 -0
  82. package/dist/src/core/lib/collectionUtils.d.ts +5 -0
  83. package/dist/src/core/lib/collectionUtils.js +82 -0
  84. package/dist/src/core/lib/collectionUtils.js.map +1 -0
  85. package/dist/src/core/lib/colorCache.d.ts +1 -0
  86. package/dist/src/core/lib/colorCache.js +19 -0
  87. package/dist/src/core/lib/colorCache.js.map +1 -0
  88. package/dist/src/core/lib/colorParser.d.ts +21 -0
  89. package/dist/src/core/lib/colorParser.js +54 -0
  90. package/dist/src/core/lib/colorParser.js.map +1 -0
  91. package/dist/src/core/lib/textureCompression.d.ts +28 -0
  92. package/dist/src/core/lib/textureCompression.js +363 -0
  93. package/dist/src/core/lib/textureCompression.js.map +1 -0
  94. package/dist/src/core/lib/textureSvg.d.ts +16 -0
  95. package/dist/src/core/lib/textureSvg.js +45 -0
  96. package/dist/src/core/lib/textureSvg.js.map +1 -0
  97. package/dist/src/core/lib/utils.d.ts +66 -0
  98. package/dist/src/core/lib/utils.js +268 -0
  99. package/dist/src/core/lib/utils.js.map +1 -0
  100. package/dist/src/core/lib/validateImageBitmap.d.ts +7 -0
  101. package/dist/src/core/lib/validateImageBitmap.js +68 -0
  102. package/dist/src/core/lib/validateImageBitmap.js.map +1 -0
  103. package/dist/src/core/platforms/Platform.d.ts +42 -0
  104. package/dist/src/core/platforms/Platform.js +4 -0
  105. package/dist/src/core/platforms/Platform.js.map +1 -0
  106. package/dist/src/core/platforms/web/WebPlatform.d.ts +10 -0
  107. package/dist/src/core/platforms/web/WebPlatform.js +90 -0
  108. package/dist/src/core/platforms/web/WebPlatform.js.map +1 -0
  109. package/dist/src/core/renderers/CoreContextTexture.d.ts +13 -0
  110. package/dist/src/core/renderers/CoreContextTexture.js +16 -0
  111. package/dist/src/core/renderers/CoreContextTexture.js.map +1 -0
  112. package/dist/src/core/renderers/CoreRenderOp.d.ts +3 -0
  113. package/dist/src/core/renderers/CoreRenderOp.js +3 -0
  114. package/dist/src/core/renderers/CoreRenderOp.js.map +1 -0
  115. package/dist/src/core/renderers/CoreRenderer.d.ts +81 -0
  116. package/dist/src/core/renderers/CoreRenderer.js +14 -0
  117. package/dist/src/core/renderers/CoreRenderer.js.map +1 -0
  118. package/dist/src/core/renderers/CoreShaderNode.d.ts +69 -0
  119. package/dist/src/core/renderers/CoreShaderNode.js +130 -0
  120. package/dist/src/core/renderers/CoreShaderNode.js.map +1 -0
  121. package/dist/src/core/renderers/CoreShaderProgram.d.ts +4 -0
  122. package/dist/src/core/renderers/CoreShaderProgram.js +2 -0
  123. package/dist/src/core/renderers/CoreShaderProgram.js.map +1 -0
  124. package/dist/src/core/renderers/canvas/CanvasRenderer.d.ts +36 -0
  125. package/dist/src/core/renderers/canvas/CanvasRenderer.js +221 -0
  126. package/dist/src/core/renderers/canvas/CanvasRenderer.js.map +1 -0
  127. package/dist/src/core/renderers/canvas/CanvasShaderNode.d.ts +21 -0
  128. package/dist/src/core/renderers/canvas/CanvasShaderNode.js +42 -0
  129. package/dist/src/core/renderers/canvas/CanvasShaderNode.js.map +1 -0
  130. package/dist/src/core/renderers/canvas/CanvasTexture.d.ts +17 -0
  131. package/dist/src/core/renderers/canvas/CanvasTexture.js +110 -0
  132. package/dist/src/core/renderers/canvas/CanvasTexture.js.map +1 -0
  133. package/dist/src/core/renderers/webgl/SdfRenderOp.d.ts +41 -0
  134. package/dist/src/core/renderers/webgl/SdfRenderOp.js +88 -0
  135. package/dist/src/core/renderers/webgl/SdfRenderOp.js.map +1 -0
  136. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.d.ts +14 -0
  137. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js +45 -0
  138. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js.map +1 -0
  139. package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.d.ts +22 -0
  140. package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.js +49 -0
  141. package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.js.map +1 -0
  142. package/dist/src/core/renderers/webgl/WebGlCtxTexture.d.ts +67 -0
  143. package/dist/src/core/renderers/webgl/WebGlCtxTexture.js +259 -0
  144. package/dist/src/core/renderers/webgl/WebGlCtxTexture.js.map +1 -0
  145. package/dist/src/core/renderers/webgl/WebGlRenderer.d.ts +221 -0
  146. package/dist/src/core/renderers/webgl/WebGlRenderer.js +1015 -0
  147. package/dist/src/core/renderers/webgl/WebGlRenderer.js.map +1 -0
  148. package/dist/src/core/renderers/webgl/WebGlShaderNode.d.ts +213 -0
  149. package/dist/src/core/renderers/webgl/WebGlShaderNode.js +331 -0
  150. package/dist/src/core/renderers/webgl/WebGlShaderNode.js.map +1 -0
  151. package/dist/src/core/renderers/webgl/WebGlShaderProgram.d.ts +37 -0
  152. package/dist/src/core/renderers/webgl/WebGlShaderProgram.js +240 -0
  153. package/dist/src/core/renderers/webgl/WebGlShaderProgram.js.map +1 -0
  154. package/dist/src/core/renderers/webgl/internal/BufferCollection.d.ts +28 -0
  155. package/dist/src/core/renderers/webgl/internal/BufferCollection.js +39 -0
  156. package/dist/src/core/renderers/webgl/internal/BufferCollection.js.map +1 -0
  157. package/dist/src/core/renderers/webgl/internal/RendererUtils.d.ts +55 -0
  158. package/dist/src/core/renderers/webgl/internal/RendererUtils.js +88 -0
  159. package/dist/src/core/renderers/webgl/internal/RendererUtils.js.map +1 -0
  160. package/dist/src/core/renderers/webgl/internal/ShaderUtils.d.ts +74 -0
  161. package/dist/src/core/renderers/webgl/internal/ShaderUtils.js +83 -0
  162. package/dist/src/core/renderers/webgl/internal/ShaderUtils.js.map +1 -0
  163. package/dist/src/core/renderers/webgl/internal/WebGlUtils.d.ts +10 -0
  164. package/dist/src/core/renderers/webgl/internal/WebGlUtils.js +13 -0
  165. package/dist/src/core/renderers/webgl/internal/WebGlUtils.js.map +1 -0
  166. package/dist/src/core/shaders/canvas/Border.d.ts +15 -0
  167. package/dist/src/core/shaders/canvas/Border.js +83 -0
  168. package/dist/src/core/shaders/canvas/Border.js.map +1 -0
  169. package/dist/src/core/shaders/canvas/HolePunch.d.ts +7 -0
  170. package/dist/src/core/shaders/canvas/HolePunch.js +22 -0
  171. package/dist/src/core/shaders/canvas/HolePunch.js.map +1 -0
  172. package/dist/src/core/shaders/canvas/LinearGradient.d.ts +10 -0
  173. package/dist/src/core/shaders/canvas/LinearGradient.js +32 -0
  174. package/dist/src/core/shaders/canvas/LinearGradient.js.map +1 -0
  175. package/dist/src/core/shaders/canvas/RadialGradient.d.ts +11 -0
  176. package/dist/src/core/shaders/canvas/RadialGradient.js +54 -0
  177. package/dist/src/core/shaders/canvas/RadialGradient.js.map +1 -0
  178. package/dist/src/core/shaders/canvas/Rounded.d.ts +7 -0
  179. package/dist/src/core/shaders/canvas/Rounded.js +17 -0
  180. package/dist/src/core/shaders/canvas/Rounded.js.map +1 -0
  181. package/dist/src/core/shaders/canvas/RoundedWithBorder.d.ts +10 -0
  182. package/dist/src/core/shaders/canvas/RoundedWithBorder.js +57 -0
  183. package/dist/src/core/shaders/canvas/RoundedWithBorder.js.map +1 -0
  184. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.d.ts +7 -0
  185. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js +61 -0
  186. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js.map +1 -0
  187. package/dist/src/core/shaders/canvas/RoundedWithShadow.d.ts +7 -0
  188. package/dist/src/core/shaders/canvas/RoundedWithShadow.js +26 -0
  189. package/dist/src/core/shaders/canvas/RoundedWithShadow.js.map +1 -0
  190. package/dist/src/core/shaders/canvas/Shadow.d.ts +8 -0
  191. package/dist/src/core/shaders/canvas/Shadow.js +15 -0
  192. package/dist/src/core/shaders/canvas/Shadow.js.map +1 -0
  193. package/dist/src/core/shaders/canvas/utils/render.d.ts +5 -0
  194. package/dist/src/core/shaders/canvas/utils/render.js +81 -0
  195. package/dist/src/core/shaders/canvas/utils/render.js.map +1 -0
  196. package/dist/src/core/shaders/templates/BorderTemplate.d.ts +47 -0
  197. package/dist/src/core/shaders/templates/BorderTemplate.js +77 -0
  198. package/dist/src/core/shaders/templates/BorderTemplate.js.map +1 -0
  199. package/dist/src/core/shaders/templates/HolePunchTemplate.d.ts +46 -0
  200. package/dist/src/core/shaders/templates/HolePunchTemplate.js +19 -0
  201. package/dist/src/core/shaders/templates/HolePunchTemplate.js.map +1 -0
  202. package/dist/src/core/shaders/templates/LinearGradientTemplate.d.ts +23 -0
  203. package/dist/src/core/shaders/templates/LinearGradientTemplate.js +31 -0
  204. package/dist/src/core/shaders/templates/LinearGradientTemplate.js.map +1 -0
  205. package/dist/src/core/shaders/templates/RadialGradientTemplate.d.ts +33 -0
  206. package/dist/src/core/shaders/templates/RadialGradientTemplate.js +33 -0
  207. package/dist/src/core/shaders/templates/RadialGradientTemplate.js.map +1 -0
  208. package/dist/src/core/shaders/templates/RoundedTemplate.d.ts +29 -0
  209. package/dist/src/core/shaders/templates/RoundedTemplate.js +51 -0
  210. package/dist/src/core/shaders/templates/RoundedTemplate.js.map +1 -0
  211. package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.d.ts +7 -0
  212. package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.js +8 -0
  213. package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.js.map +1 -0
  214. package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.d.ts +8 -0
  215. package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.js +9 -0
  216. package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.js.map +1 -0
  217. package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.d.ts +6 -0
  218. package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.js +7 -0
  219. package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.js.map +1 -0
  220. package/dist/src/core/shaders/templates/ShadowTemplate.d.ts +34 -0
  221. package/dist/src/core/shaders/templates/ShadowTemplate.js +50 -0
  222. package/dist/src/core/shaders/templates/ShadowTemplate.js.map +1 -0
  223. package/dist/src/core/shaders/utils.d.ts +5 -0
  224. package/dist/src/core/shaders/utils.js +25 -0
  225. package/dist/src/core/shaders/utils.js.map +1 -0
  226. package/dist/src/core/shaders/webgl/Border.d.ts +3 -0
  227. package/dist/src/core/shaders/webgl/Border.js +153 -0
  228. package/dist/src/core/shaders/webgl/Border.js.map +1 -0
  229. package/dist/src/core/shaders/webgl/Default.d.ts +2 -0
  230. package/dist/src/core/shaders/webgl/Default.js +51 -0
  231. package/dist/src/core/shaders/webgl/Default.js.map +1 -0
  232. package/dist/src/core/shaders/webgl/HolePunch.d.ts +3 -0
  233. package/dist/src/core/shaders/webgl/HolePunch.js +49 -0
  234. package/dist/src/core/shaders/webgl/HolePunch.js.map +1 -0
  235. package/dist/src/core/shaders/webgl/LinearGradient.d.ts +3 -0
  236. package/dist/src/core/shaders/webgl/LinearGradient.js +114 -0
  237. package/dist/src/core/shaders/webgl/LinearGradient.js.map +1 -0
  238. package/dist/src/core/shaders/webgl/RadialGradient.d.ts +3 -0
  239. package/dist/src/core/shaders/webgl/RadialGradient.js +81 -0
  240. package/dist/src/core/shaders/webgl/RadialGradient.js.map +1 -0
  241. package/dist/src/core/shaders/webgl/Rounded.d.ts +7 -0
  242. package/dist/src/core/shaders/webgl/Rounded.js +88 -0
  243. package/dist/src/core/shaders/webgl/Rounded.js.map +1 -0
  244. package/dist/src/core/shaders/webgl/RoundedWithBorder.d.ts +3 -0
  245. package/dist/src/core/shaders/webgl/RoundedWithBorder.js +202 -0
  246. package/dist/src/core/shaders/webgl/RoundedWithBorder.js.map +1 -0
  247. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.d.ts +3 -0
  248. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js +223 -0
  249. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js.map +1 -0
  250. package/dist/src/core/shaders/webgl/RoundedWithShadow.d.ts +3 -0
  251. package/dist/src/core/shaders/webgl/RoundedWithShadow.js +123 -0
  252. package/dist/src/core/shaders/webgl/RoundedWithShadow.js.map +1 -0
  253. package/dist/src/core/shaders/webgl/SdfShader.d.ts +13 -0
  254. package/dist/src/core/shaders/webgl/SdfShader.js +72 -0
  255. package/dist/src/core/shaders/webgl/SdfShader.js.map +1 -0
  256. package/dist/src/core/shaders/webgl/Shadow.d.ts +3 -0
  257. package/dist/src/core/shaders/webgl/Shadow.js +115 -0
  258. package/dist/src/core/shaders/webgl/Shadow.js.map +1 -0
  259. package/dist/src/core/text-rendering/CanvasFontHandler.d.ts +59 -0
  260. package/dist/src/core/text-rendering/CanvasFontHandler.js +206 -0
  261. package/dist/src/core/text-rendering/CanvasFontHandler.js.map +1 -0
  262. package/dist/src/core/text-rendering/CanvasTextRenderer.d.ts +17 -0
  263. package/dist/src/core/text-rendering/CanvasTextRenderer.js +139 -0
  264. package/dist/src/core/text-rendering/CanvasTextRenderer.js.map +1 -0
  265. package/dist/src/core/text-rendering/SdfFontHandler.d.ts +167 -0
  266. package/dist/src/core/text-rendering/SdfFontHandler.js +371 -0
  267. package/dist/src/core/text-rendering/SdfFontHandler.js.map +1 -0
  268. package/dist/src/core/text-rendering/SdfTextRenderer.d.ts +17 -0
  269. package/dist/src/core/text-rendering/SdfTextRenderer.js +249 -0
  270. package/dist/src/core/text-rendering/SdfTextRenderer.js.map +1 -0
  271. package/dist/src/core/text-rendering/TextLayoutEngine.d.ts +18 -0
  272. package/dist/src/core/text-rendering/TextLayoutEngine.js +380 -0
  273. package/dist/src/core/text-rendering/TextLayoutEngine.js.map +1 -0
  274. package/dist/src/core/text-rendering/TextRenderer.d.ts +406 -0
  275. package/dist/src/core/text-rendering/TextRenderer.js +2 -0
  276. package/dist/src/core/text-rendering/TextRenderer.js.map +1 -0
  277. package/dist/src/core/text-rendering/Utils.d.ts +30 -0
  278. package/dist/src/core/text-rendering/Utils.js +66 -0
  279. package/dist/src/core/text-rendering/Utils.js.map +1 -0
  280. package/dist/src/core/textures/ColorTexture.d.ts +36 -0
  281. package/dist/src/core/textures/ColorTexture.js +57 -0
  282. package/dist/src/core/textures/ColorTexture.js.map +1 -0
  283. package/dist/src/core/textures/ImageTexture.d.ts +131 -0
  284. package/dist/src/core/textures/ImageTexture.js +211 -0
  285. package/dist/src/core/textures/ImageTexture.js.map +1 -0
  286. package/dist/src/core/textures/NoiseTexture.d.ts +43 -0
  287. package/dist/src/core/textures/NoiseTexture.js +50 -0
  288. package/dist/src/core/textures/NoiseTexture.js.map +1 -0
  289. package/dist/src/core/textures/RenderTexture.d.ts +29 -0
  290. package/dist/src/core/textures/RenderTexture.js +36 -0
  291. package/dist/src/core/textures/RenderTexture.js.map +1 -0
  292. package/dist/src/core/textures/SubTexture.d.ts +61 -0
  293. package/dist/src/core/textures/SubTexture.js +99 -0
  294. package/dist/src/core/textures/SubTexture.js.map +1 -0
  295. package/dist/src/core/textures/Texture.d.ts +275 -0
  296. package/dist/src/core/textures/Texture.js +326 -0
  297. package/dist/src/core/textures/Texture.js.map +1 -0
  298. package/dist/src/core/utils.d.ts +23 -0
  299. package/dist/src/core/utils.js +155 -0
  300. package/dist/src/core/utils.js.map +1 -0
  301. package/dist/src/main-api/INode.d.ts +65 -0
  302. package/dist/src/main-api/INode.js +2 -0
  303. package/dist/src/main-api/INode.js.map +1 -0
  304. package/dist/src/main-api/Inspector.d.ts +154 -0
  305. package/dist/src/main-api/Inspector.js +844 -0
  306. package/dist/src/main-api/Inspector.js.map +1 -0
  307. package/dist/src/main-api/Renderer.d.ts +629 -0
  308. package/dist/src/main-api/Renderer.js +471 -0
  309. package/dist/src/main-api/Renderer.js.map +1 -0
  310. package/dist/src/main-api/utils.d.ts +2 -0
  311. package/dist/src/main-api/utils.js +34 -0
  312. package/dist/src/main-api/utils.js.map +1 -0
  313. package/dist/src/utils.d.ts +123 -0
  314. package/dist/src/utils.js +234 -0
  315. package/dist/src/utils.js.map +1 -0
  316. package/dist/tsconfig.dist.tsbuildinfo +1 -0
  317. package/exports/canvas-shaders.ts +11 -0
  318. package/exports/canvas.ts +27 -0
  319. package/exports/index.ts +69 -0
  320. package/exports/inspector.ts +5 -0
  321. package/exports/utils.ts +32 -0
  322. package/exports/webgl-shaders.ts +12 -0
  323. package/exports/webgl.ts +33 -0
  324. package/package.json +99 -0
  325. package/src/common/CommonTypes.ts +145 -0
  326. package/src/common/EventEmitter.ts +58 -0
  327. package/src/common/IAnimationController.ts +65 -0
  328. package/src/common/IEventEmitter.ts +11 -0
  329. package/src/core/Autosizer.ts +205 -0
  330. package/src/core/CoreNode.test.ts +535 -0
  331. package/src/core/CoreNode.ts +2883 -0
  332. package/src/core/CoreShaderManager.ts +170 -0
  333. package/src/core/CoreTextNode.ts +573 -0
  334. package/src/core/CoreTextureManager.ts +552 -0
  335. package/src/core/Stage.ts +1037 -0
  336. package/src/core/TextureError.ts +46 -0
  337. package/src/core/TextureMemoryManager.ts +378 -0
  338. package/src/core/animations/AnimationManager.ts +178 -0
  339. package/src/core/animations/CoreAnimation.ts +138 -0
  340. package/src/core/lib/ContextSpy.ts +22 -0
  341. package/src/core/lib/ImageWorker.ts +292 -0
  342. package/src/core/lib/Matrix3d.ts +231 -0
  343. package/src/core/lib/RenderCoords.ts +55 -0
  344. package/src/core/lib/WebGlContextWrapper.ts +1448 -0
  345. package/src/core/lib/collectionUtils.ts +99 -0
  346. package/src/core/lib/colorCache.ts +20 -0
  347. package/src/core/lib/colorParser.ts +66 -0
  348. package/src/core/lib/textureCompression.ts +492 -0
  349. package/src/core/lib/textureSvg.ts +59 -0
  350. package/src/core/lib/utils.ts +400 -0
  351. package/src/core/lib/validateImageBitmap.ts +87 -0
  352. package/src/core/platforms/Platform.ts +64 -0
  353. package/src/core/platforms/web/WebPlatform.ts +132 -0
  354. package/src/core/renderers/CoreContextTexture.ts +25 -0
  355. package/src/core/renderers/CoreRenderOp.ts +3 -0
  356. package/src/core/renderers/CoreRenderer.ts +101 -0
  357. package/src/core/renderers/CoreShaderNode.ts +202 -0
  358. package/src/core/renderers/CoreShaderProgram.ts +4 -0
  359. package/src/core/renderers/canvas/CanvasRenderer.ts +274 -0
  360. package/src/core/renderers/canvas/CanvasShaderNode.ts +79 -0
  361. package/src/core/renderers/canvas/CanvasTexture.ts +141 -0
  362. package/src/core/renderers/webgl/SdfRenderOp.ts +103 -0
  363. package/src/core/renderers/webgl/WebGlCtxRenderTexture.ts +70 -0
  364. package/src/core/renderers/webgl/WebGlCtxSubTexture.ts +76 -0
  365. package/src/core/renderers/webgl/WebGlCtxTexture.ts +332 -0
  366. package/src/core/renderers/webgl/WebGlRenderer.ts +1323 -0
  367. package/src/core/renderers/webgl/WebGlShaderNode.ts +423 -0
  368. package/src/core/renderers/webgl/WebGlShaderProgram.ts +346 -0
  369. package/src/core/renderers/webgl/internal/BufferCollection.ts +46 -0
  370. package/src/core/renderers/webgl/internal/RendererUtils.ts +136 -0
  371. package/src/core/renderers/webgl/internal/ShaderUtils.ts +262 -0
  372. package/src/core/renderers/webgl/internal/WebGlUtils.ts +16 -0
  373. package/src/core/shaders/canvas/Border.ts +119 -0
  374. package/src/core/shaders/canvas/HolePunch.ts +38 -0
  375. package/src/core/shaders/canvas/LinearGradient.ts +54 -0
  376. package/src/core/shaders/canvas/RadialGradient.ts +82 -0
  377. package/src/core/shaders/canvas/Rounded.ts +38 -0
  378. package/src/core/shaders/canvas/RoundedWithBorder.ts +105 -0
  379. package/src/core/shaders/canvas/RoundedWithBorderAndShadow.ts +118 -0
  380. package/src/core/shaders/canvas/RoundedWithShadow.ts +56 -0
  381. package/src/core/shaders/canvas/Shadow.ts +35 -0
  382. package/src/core/shaders/canvas/utils/render.ts +143 -0
  383. package/src/core/shaders/templates/BorderTemplate.ts +128 -0
  384. package/src/core/shaders/templates/HolePunchTemplate.ts +65 -0
  385. package/src/core/shaders/templates/LinearGradientTemplate.ts +54 -0
  386. package/src/core/shaders/templates/RadialGradientTemplate.ts +66 -0
  387. package/src/core/shaders/templates/RoundedTemplate.ts +81 -0
  388. package/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.ts +21 -0
  389. package/src/core/shaders/templates/RoundedWithBorderTemplate.ts +23 -0
  390. package/src/core/shaders/templates/RoundedWithShadowTemplate.ts +18 -0
  391. package/src/core/shaders/templates/ShadowTemplate.ts +89 -0
  392. package/src/core/shaders/utils.ts +30 -0
  393. package/src/core/shaders/webgl/Border.ts +158 -0
  394. package/src/core/shaders/webgl/Default.ts +52 -0
  395. package/src/core/shaders/webgl/HolePunch.ts +58 -0
  396. package/src/core/shaders/webgl/LinearGradient.ts +119 -0
  397. package/src/core/shaders/webgl/RadialGradient.ts +91 -0
  398. package/src/core/shaders/webgl/Rounded.ts +97 -0
  399. package/src/core/shaders/webgl/RoundedWithBorder.ts +212 -0
  400. package/src/core/shaders/webgl/RoundedWithBorderAndShadow.ts +235 -0
  401. package/src/core/shaders/webgl/RoundedWithShadow.ts +132 -0
  402. package/src/core/shaders/webgl/SdfShader.ts +73 -0
  403. package/src/core/shaders/webgl/Shadow.ts +119 -0
  404. package/src/core/text-rendering/CanvasFontHandler.ts +285 -0
  405. package/src/core/text-rendering/CanvasTextRenderer.ts +236 -0
  406. package/src/core/text-rendering/SdfFontHandler.ts +566 -0
  407. package/src/core/text-rendering/SdfTextRenderer.ts +352 -0
  408. package/src/core/text-rendering/TextLayoutEngine.ts +672 -0
  409. package/src/core/text-rendering/TextRenderer.ts +449 -0
  410. package/src/core/text-rendering/Utils.ts +80 -0
  411. package/src/core/text-rendering/tests/TextLayoutEngine.test.ts +434 -0
  412. package/src/core/textures/ColorTexture.ts +85 -0
  413. package/src/core/textures/ImageTexture.ts +394 -0
  414. package/src/core/textures/NoiseTexture.ts +87 -0
  415. package/src/core/textures/RenderTexture.ts +68 -0
  416. package/src/core/textures/SubTexture.ts +165 -0
  417. package/src/core/textures/Texture.ts +505 -0
  418. package/src/core/utils.ts +210 -0
  419. package/src/env.d.ts +7 -0
  420. package/src/main-api/INode.ts +92 -0
  421. package/src/main-api/Inspector.ts +1267 -0
  422. package/src/main-api/Renderer.ts +1011 -0
  423. package/src/main-api/utils.ts +45 -0
  424. package/src/utils.ts +302 -0
@@ -0,0 +1,573 @@
1
+ import type {
2
+ FontHandler,
3
+ TextRenderer,
4
+ TrProps,
5
+ TextLayout,
6
+ TextRenderInfo,
7
+ SdfVertexCache,
8
+ } from './text-rendering/TextRenderer.js';
9
+ import { USE_RTT } from '../utils.js';
10
+ import {
11
+ CoreNode,
12
+ CoreNodeRenderState,
13
+ UpdateType,
14
+ type CoreNodeProps,
15
+ } from './CoreNode.js';
16
+ import type { Stage } from './Stage.js';
17
+ import type {
18
+ NodeTextFailedPayload,
19
+ NodeTextLoadedPayload,
20
+ NodeTextureLoadedPayload,
21
+ } from '../common/CommonTypes.js';
22
+ import type { RectWithValid } from './lib/utils.js';
23
+ import type { CoreRenderer } from './renderers/CoreRenderer.js';
24
+ import type { TextureLoadedEventHandler } from './textures/Texture.js';
25
+ import { Matrix3d } from './lib/Matrix3d.js';
26
+ export interface CoreTextNodeProps extends CoreNodeProps, TrProps {
27
+ /**
28
+ * Force Text Node to use a specific Text Renderer
29
+ */
30
+ textRendererOverride?: string | null;
31
+ forceLoad: boolean;
32
+ }
33
+
34
+ export enum TextConstraint {
35
+ 'none' = 0,
36
+ 'width' = 1,
37
+ 'height' = 2,
38
+ 'both' = 3,
39
+ }
40
+
41
+ export class CoreTextNode extends CoreNode implements CoreTextNodeProps {
42
+ private textRenderer: TextRenderer;
43
+ private fontHandler: FontHandler;
44
+
45
+ private _layoutGenerated = false;
46
+ private _waitingForFont = false;
47
+ private _containType: TextConstraint = TextConstraint.none;
48
+
49
+ // SDF layout caching for performance
50
+ private _cachedLayout: TextLayout | null = null;
51
+
52
+ /** Cached pre-transformed SDF vertex data — avoids per-glyph matrix math when static. */
53
+ private _sdfCache: SdfVertexCache = {
54
+ vertices: null,
55
+ glyphCount: 0,
56
+ color: 0,
57
+ alpha: -1,
58
+ transform: new Float32Array(6),
59
+ layoutRef: null,
60
+ };
61
+
62
+ // Text renderer properties - stored directly on the node
63
+ private textProps: CoreTextNodeProps;
64
+
65
+ private _renderInfo: TextRenderInfo = {
66
+ width: 0,
67
+ height: 0,
68
+ };
69
+
70
+ private _type: 'sdf' | 'canvas' = 'sdf'; // Default to SDF renderer
71
+
72
+ constructor(
73
+ stage: Stage,
74
+ props: CoreTextNodeProps,
75
+ textRenderer: TextRenderer,
76
+ ) {
77
+ super(stage, props);
78
+ this.textRenderer = textRenderer;
79
+ this.fontHandler = textRenderer.font;
80
+ this._type = textRenderer.type;
81
+
82
+ // Initialize text properties from props
83
+ // Props are guaranteed to have all defaults resolved by Stage.createTextNode
84
+ this.textProps = props;
85
+ this._containType = TextConstraint[props.contain];
86
+
87
+ this.setUpdateType(UpdateType.All);
88
+ }
89
+
90
+ protected override onTextureLoaded: TextureLoadedEventHandler = (
91
+ _,
92
+ dimensions,
93
+ ) => {
94
+ // If parent has a render texture, flag that we need to update
95
+ if (USE_RTT && this.parentHasRenderTexture) {
96
+ this.notifyParentRTTOfUpdate();
97
+ }
98
+ // ignore 1x1 pixel textures
99
+ if (dimensions.w > 1 && dimensions.h > 1) {
100
+ this.emit('loaded', {
101
+ type: 'texture',
102
+ dimensions,
103
+ } satisfies NodeTextureLoadedPayload);
104
+ }
105
+ this.textureLoaded = true;
106
+ this.setUpdateType(UpdateType.IsRenderable);
107
+ };
108
+
109
+ allowTextGeneration() {
110
+ const p = this.props.parent;
111
+ if (p === null) {
112
+ return false;
113
+ }
114
+ if (p.worldAlpha > 0 && p.renderState > CoreNodeRenderState.OutOfBounds) {
115
+ return true;
116
+ }
117
+ return false;
118
+ }
119
+
120
+ override updateLocalTransform() {
121
+ const p = this.props;
122
+ let { x, y, w, h } = p;
123
+ const mountX = p.mountX;
124
+ const mountY = p.mountY;
125
+ let mountTranslateX = p.mountX * w;
126
+ let mountTranslateY = p.mountY * h;
127
+
128
+ const tProps = this.textProps;
129
+ const { textAlign, verticalAlign, maxWidth, maxHeight } = tProps;
130
+ const contain = this._containType;
131
+
132
+ const hasMaxWidth = maxWidth > 0;
133
+ const hasMaxHeight = maxHeight > 0;
134
+
135
+ let containX = 0;
136
+ let containY = 0;
137
+
138
+ if (contain > 0 && (hasMaxWidth || hasMaxHeight)) {
139
+ if (contain & TextConstraint.width && hasMaxWidth === true) {
140
+ if (textAlign === 'right') {
141
+ containX = maxWidth - w;
142
+ } else if (textAlign === 'center') {
143
+ containX = (maxWidth - w) * 0.5;
144
+ }
145
+ mountTranslateX = mountX * maxWidth;
146
+ }
147
+ if (contain & TextConstraint.height && maxHeight > 0) {
148
+ if (verticalAlign === 'bottom') {
149
+ containY = maxHeight - h;
150
+ } else if (verticalAlign === 'middle') {
151
+ containY = (maxHeight - h) * 0.5;
152
+ }
153
+ mountTranslateY = mountY * maxHeight;
154
+ }
155
+ }
156
+
157
+ if (p.rotation !== 0 || p.scaleX !== 1 || p.scaleY !== 1) {
158
+ const scaleRotate = Matrix3d.rotate(p.rotation, Matrix3d.temp).scale(
159
+ p.scaleX,
160
+ p.scaleY,
161
+ );
162
+ const pivotW =
163
+ contain & TextConstraint.width && maxWidth > 0 ? maxWidth : w;
164
+ const pivotH =
165
+ contain & TextConstraint.height && maxHeight > 0 ? maxHeight : h;
166
+ const pivotTranslateX = p.pivotX * pivotW;
167
+ const pivotTranslateY = p.pivotY * pivotH;
168
+
169
+ this.localTransform = Matrix3d.translate(
170
+ x - mountTranslateX + pivotTranslateX,
171
+ y - mountTranslateY + pivotTranslateY,
172
+ this.localTransform,
173
+ )
174
+ .multiply(scaleRotate)
175
+ .translate(-pivotTranslateX, -pivotTranslateY);
176
+ } else {
177
+ this.localTransform = Matrix3d.translate(
178
+ x - mountTranslateX,
179
+ y - mountTranslateY,
180
+ this.localTransform,
181
+ );
182
+ }
183
+
184
+ if (containX !== 0 || containY !== 0) {
185
+ this.localTransform.translate(containX, containY);
186
+ }
187
+ }
188
+
189
+ /**
190
+ * Override CoreNode's update method to handle text-specific updates
191
+ */
192
+ override update(delta: number, parentClippingRect: RectWithValid): void {
193
+ if (
194
+ (this.textProps.forceLoad === true ||
195
+ this.allowTextGeneration() === true) &&
196
+ this._layoutGenerated === false
197
+ ) {
198
+ if (this.fontHandler.isFontLoaded(this.textProps.fontFamily) === true) {
199
+ this._waitingForFont = false;
200
+ this._cachedLayout = null; // Invalidate cached layout
201
+ const resp = this.textRenderer.renderText(this.textProps);
202
+ this.handleRenderResult(resp);
203
+ this._layoutGenerated = true;
204
+ } else if (this._waitingForFont === false) {
205
+ this.fontHandler.waitingForFont(this.textProps.fontFamily, this);
206
+ this._waitingForFont = true;
207
+ }
208
+ }
209
+
210
+ // First run the standard CoreNode update
211
+ super.update(delta, parentClippingRect);
212
+ }
213
+
214
+ /**
215
+ * Override is renderable check for SDF text nodes
216
+ */
217
+ override updateIsRenderable(): void {
218
+ // Canvas text relies on CoreNode's standard textureLoaded logic.
219
+ if (this._type === 'canvas') {
220
+ super.updateIsRenderable();
221
+ return;
222
+ }
223
+
224
+ // For SDF, check if we have a cached layout
225
+ this.setRenderable(
226
+ this.checkBasicRenderability() === true && this._cachedLayout !== null,
227
+ );
228
+ }
229
+
230
+ /**
231
+ * Handle the result of text rendering for both Canvas and SDF renderers
232
+ */
233
+ private handleRenderResult(result: TextRenderInfo): void {
234
+ // Host paths on top
235
+ const textRendererType = this._type;
236
+ let width = result.width;
237
+ let height = result.height;
238
+
239
+ // Handle Canvas renderer (uses ImageData)
240
+ if (textRendererType === 'canvas') {
241
+ if (result.imageData === undefined) {
242
+ this.emit('failed', {
243
+ type: 'text',
244
+ error: new Error(
245
+ 'Canvas text rendering failed, no image data returned',
246
+ ),
247
+ } satisfies NodeTextFailedPayload);
248
+ return;
249
+ }
250
+
251
+ this.texture = this.stage.txManager.createTexture('ImageTexture', {
252
+ premultiplyAlpha: true,
253
+ src: result.imageData as ImageData,
254
+ });
255
+ // It isn't renderable until the texture is loaded we have to set it to false here to avoid it
256
+ // being detected as a renderable default color node in the next frame
257
+ // it will be corrected once the texture is loaded
258
+ this.setRenderable(false);
259
+
260
+ if (this.renderState > CoreNodeRenderState.OutOfBounds) {
261
+ // We do want the texture to load immediately
262
+ this.texture.setRenderableOwner(this._id, true);
263
+ }
264
+ }
265
+
266
+ this._cachedLayout = result.layout || null;
267
+ this.props.w = width;
268
+ this.props.h = height;
269
+
270
+ // Handle SDF renderer (uses layout caching)
271
+ if (textRendererType === 'sdf') {
272
+ this.setRenderable(true);
273
+ this.setUpdateType(UpdateType.Local);
274
+ }
275
+
276
+ this._renderInfo = result;
277
+ this.emitTextLoadedEvent();
278
+ }
279
+
280
+ // Reusable bound method for emitting loaded event
281
+ private emitTextLoadedEvent = () => {
282
+ this.emit('loaded', {
283
+ type: 'text',
284
+ dimensions: {
285
+ w: this._renderInfo.width,
286
+ h: this._renderInfo.height,
287
+ },
288
+ } satisfies NodeTextLoadedPayload);
289
+ };
290
+
291
+ /**
292
+ * Override renderQuads to handle SDF vs Canvas rendering
293
+ */
294
+ override renderQuads(renderer: CoreRenderer): void {
295
+ if (USE_RTT && this.parentHasRenderTexture === true) {
296
+ const rtt = renderer.renderToTextureActive;
297
+ if (rtt === false || this.parentRenderTexture !== renderer.activeRttNode)
298
+ return;
299
+ }
300
+
301
+ // Canvas renderer: use standard texture rendering via CoreNode
302
+ if (this._type === 'canvas') {
303
+ super.renderQuads(renderer);
304
+ return;
305
+ }
306
+
307
+ // Early return if no cached data
308
+ if (!this._cachedLayout) {
309
+ return;
310
+ }
311
+
312
+ const props = this.textProps;
313
+
314
+ // Delegate to the text renderer which writes pre-transformed
315
+ // vertices directly into the renderer's shared SDF buffer.
316
+ // The renderer handles batching compatible text nodes into
317
+ // single draw calls internally.
318
+ this.textRenderer.renderQuads(
319
+ renderer,
320
+ this._cachedLayout as TextLayout,
321
+ null!, // vertexBuffer is unused in batched SDF path
322
+ {
323
+ fontFamily: this.textProps.fontFamily,
324
+ fontSize: props.fontSize,
325
+ color: this.props.color || 0xffffffff,
326
+ offsetY: props.offsetY,
327
+ worldAlpha: this.worldAlpha,
328
+ globalTransform: this.globalTransform!.getFloatArr(),
329
+ clippingRect: this.clippingRect,
330
+ width: this.props.w,
331
+ height: this.props.h,
332
+ parentHasRenderTexture: USE_RTT && this.parentHasRenderTexture,
333
+ framebufferDimensions:
334
+ USE_RTT && this.parentHasRenderTexture === true
335
+ ? this.parentFramebufferDimensions
336
+ : null,
337
+ stage: this.stage,
338
+ sdfCache: this._sdfCache,
339
+ },
340
+ );
341
+ }
342
+
343
+ override destroy(isChild: boolean = false): void {
344
+ if (this._waitingForFont === true && this.fontHandler) {
345
+ this.fontHandler.stopWaitingForFont(this.textProps.fontFamily, this);
346
+ }
347
+
348
+ // Clear cached layout and SDF vertex cache
349
+ this._cachedLayout = null;
350
+ this._sdfCache.vertices = null;
351
+ this._sdfCache.layoutRef = null;
352
+
353
+ this.fontHandler = null!; // Clear reference to avoid memory leaks
354
+ this.textRenderer = null!; // Clear reference to avoid memory leaks
355
+
356
+ super.destroy(isChild);
357
+ }
358
+
359
+ override set w(value: number) {
360
+ this.maxWidth = value;
361
+ }
362
+
363
+ override get w(): number {
364
+ return this.props.w;
365
+ }
366
+
367
+ override set h(value: number) {
368
+ this.maxHeight = value;
369
+ }
370
+
371
+ override get h(): number {
372
+ return this.props.h;
373
+ }
374
+
375
+ get maxWidth() {
376
+ return this.textProps.maxWidth;
377
+ }
378
+
379
+ set maxWidth(value: number) {
380
+ if (this.textProps.maxWidth !== value) {
381
+ this.textProps.maxWidth = value;
382
+ this._layoutGenerated = false;
383
+ this.setUpdateType(UpdateType.Local);
384
+ }
385
+ }
386
+
387
+ // Property getters and setters
388
+ get maxHeight() {
389
+ return this.textProps.maxHeight;
390
+ }
391
+
392
+ set maxHeight(value: number) {
393
+ if (this.textProps.maxHeight !== value) {
394
+ this.textProps.maxHeight = value;
395
+ this._layoutGenerated = false;
396
+ this.setUpdateType(UpdateType.Local);
397
+ }
398
+ }
399
+
400
+ get contain(): TrProps['contain'] {
401
+ return this.textProps.contain;
402
+ }
403
+
404
+ set contain(value: TrProps['contain']) {
405
+ if (this.textProps.contain !== value) {
406
+ this.textProps.contain = value;
407
+ this._containType = TextConstraint[value];
408
+ this.setUpdateType(UpdateType.Local);
409
+ }
410
+ }
411
+
412
+ get text(): string {
413
+ return this.textProps.text;
414
+ }
415
+
416
+ set text(value: string) {
417
+ if (this.textProps.text !== value) {
418
+ this.textProps.text = value;
419
+ this._layoutGenerated = false;
420
+ this.setUpdateType(UpdateType.Local);
421
+ }
422
+ }
423
+
424
+ get fontSize(): number {
425
+ return this.textProps.fontSize;
426
+ }
427
+
428
+ set fontSize(value: number) {
429
+ if (this.textProps.fontSize !== value) {
430
+ this.textProps.fontSize = value;
431
+ this._layoutGenerated = false;
432
+ this.setUpdateType(UpdateType.Local);
433
+ }
434
+ }
435
+
436
+ get fontFamily(): string {
437
+ return this.textProps.fontFamily;
438
+ }
439
+
440
+ set fontFamily(value: string) {
441
+ if (this.textProps.fontFamily !== value) {
442
+ if (this._waitingForFont === true) {
443
+ this.fontHandler.stopWaitingForFont(this.textProps.fontFamily, this);
444
+ }
445
+ this.textProps.fontFamily = value;
446
+ this._layoutGenerated = false;
447
+ this.setUpdateType(UpdateType.Local);
448
+ }
449
+ }
450
+
451
+ get fontStyle(): TrProps['fontStyle'] {
452
+ return this.textProps.fontStyle;
453
+ }
454
+
455
+ set fontStyle(value: TrProps['fontStyle']) {
456
+ if (this.textProps.fontStyle !== value) {
457
+ this.textProps.fontStyle = value;
458
+ this._layoutGenerated = false;
459
+ this.setUpdateType(UpdateType.Local);
460
+ }
461
+ }
462
+
463
+ get textAlign(): TrProps['textAlign'] {
464
+ return this.textProps.textAlign;
465
+ }
466
+
467
+ set textAlign(value: TrProps['textAlign']) {
468
+ if (this.textProps.textAlign !== value) {
469
+ this.textProps.textAlign = value;
470
+ this._layoutGenerated = false;
471
+ this.setUpdateType(UpdateType.Local);
472
+ }
473
+ }
474
+
475
+ get letterSpacing(): number {
476
+ return this.textProps.letterSpacing;
477
+ }
478
+
479
+ set letterSpacing(value: number) {
480
+ if (this.textProps.letterSpacing !== value) {
481
+ this.textProps.letterSpacing = value;
482
+ this._layoutGenerated = false;
483
+ this.setUpdateType(UpdateType.Local);
484
+ }
485
+ }
486
+
487
+ get lineHeight(): number {
488
+ return this.textProps.lineHeight;
489
+ }
490
+
491
+ set lineHeight(value: number) {
492
+ if (this.textProps.lineHeight !== value) {
493
+ this.textProps.lineHeight = value;
494
+ this._layoutGenerated = false;
495
+ this.setUpdateType(UpdateType.Local);
496
+ }
497
+ }
498
+
499
+ get maxLines(): number {
500
+ return this.textProps.maxLines;
501
+ }
502
+
503
+ set maxLines(value: number) {
504
+ if (this.textProps.maxLines !== value) {
505
+ this.textProps.maxLines = value;
506
+ this._layoutGenerated = false;
507
+ this.setUpdateType(UpdateType.Local);
508
+ }
509
+ }
510
+
511
+ get verticalAlign(): TrProps['verticalAlign'] {
512
+ return this.textProps.verticalAlign;
513
+ }
514
+
515
+ set verticalAlign(value: TrProps['verticalAlign']) {
516
+ if (this.textProps.verticalAlign !== value) {
517
+ this.textProps.verticalAlign = value;
518
+ this._layoutGenerated = false;
519
+ this.setUpdateType(UpdateType.Local);
520
+ }
521
+ }
522
+
523
+ get overflowSuffix(): string {
524
+ return this.textProps.overflowSuffix;
525
+ }
526
+
527
+ set overflowSuffix(value: string) {
528
+ if (this.textProps.overflowSuffix !== value) {
529
+ this.textProps.overflowSuffix = value;
530
+ this._layoutGenerated = false;
531
+ this.setUpdateType(UpdateType.Local);
532
+ }
533
+ }
534
+
535
+ get wordBreak(): TrProps['wordBreak'] {
536
+ return this.textProps.wordBreak;
537
+ }
538
+
539
+ set wordBreak(value: TrProps['wordBreak']) {
540
+ if (this.textProps.wordBreak !== value) {
541
+ this.textProps.wordBreak = value;
542
+ this._layoutGenerated = false;
543
+ this.setUpdateType(UpdateType.Local);
544
+ }
545
+ }
546
+
547
+ get offsetY(): number {
548
+ return this.textProps.offsetY;
549
+ }
550
+
551
+ set offsetY(value: number) {
552
+ if (this.textProps.offsetY !== value) {
553
+ this.textProps.offsetY = value;
554
+ this._layoutGenerated = false;
555
+ this.setUpdateType(UpdateType.Local);
556
+ }
557
+ }
558
+
559
+ get forceLoad() {
560
+ return this.textProps.forceLoad;
561
+ }
562
+
563
+ set forceLoad(value: boolean) {
564
+ if (this.textProps.forceLoad !== value) {
565
+ this.textProps.forceLoad = value;
566
+ this.setUpdateType(UpdateType.Local);
567
+ }
568
+ }
569
+
570
+ get renderInfo(): TextRenderInfo {
571
+ return this._renderInfo;
572
+ }
573
+ }