@lightningtv/renderer 2.16.1 → 3.2.3

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