@lightningjs/renderer 3.0.0-beta1 → 3.0.0-beta10

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 (611) hide show
  1. package/COPYING +1 -0
  2. package/LICENSE +202 -202
  3. package/NOTICE +3 -3
  4. package/README.md +133 -147
  5. package/dist/exports/canvas.d.ts +1 -1
  6. package/dist/exports/canvas.js +1 -1
  7. package/dist/exports/canvas.js.map +1 -1
  8. package/dist/exports/index.d.ts +1 -5
  9. package/dist/exports/index.js +1 -5
  10. package/dist/exports/index.js.map +1 -1
  11. package/dist/exports/utils.d.ts +2 -1
  12. package/dist/exports/utils.js +2 -1
  13. package/dist/exports/utils.js.map +1 -1
  14. package/dist/exports/webgl.d.ts +2 -1
  15. package/dist/exports/webgl.js +2 -1
  16. package/dist/exports/webgl.js.map +1 -1
  17. package/dist/src/core/CoreNode.d.ts +45 -69
  18. package/dist/src/core/CoreNode.js +323 -305
  19. package/dist/src/core/CoreNode.js.map +1 -1
  20. package/dist/src/core/CoreShaderManager.d.ts +3 -5
  21. package/dist/src/core/CoreShaderManager.js.map +1 -1
  22. package/dist/src/core/CoreTextNode.d.ts +58 -87
  23. package/dist/src/core/CoreTextNode.js +243 -237
  24. package/dist/src/core/CoreTextNode.js.map +1 -1
  25. package/dist/src/core/CoreTextureManager.d.ts +9 -11
  26. package/dist/src/core/CoreTextureManager.js +80 -91
  27. package/dist/src/core/CoreTextureManager.js.map +1 -1
  28. package/dist/src/core/Stage.d.ts +75 -31
  29. package/dist/src/core/Stage.js +270 -136
  30. package/dist/src/core/Stage.js.map +1 -1
  31. package/dist/src/core/TextureMemoryManager.d.ts +10 -1
  32. package/dist/src/core/TextureMemoryManager.js +112 -78
  33. package/dist/src/core/TextureMemoryManager.js.map +1 -1
  34. package/dist/src/core/animations/CoreAnimation.js +5 -0
  35. package/dist/src/core/animations/CoreAnimation.js.map +1 -1
  36. package/dist/src/core/animations/CoreAnimationController.d.ts +1 -0
  37. package/dist/src/core/animations/CoreAnimationController.js +11 -4
  38. package/dist/src/core/animations/CoreAnimationController.js.map +1 -1
  39. package/dist/src/core/lib/ImageWorker.js +3 -2
  40. package/dist/src/core/lib/ImageWorker.js.map +1 -1
  41. package/dist/src/core/lib/RenderCoords.d.ts +9 -10
  42. package/dist/src/core/lib/RenderCoords.js +43 -55
  43. package/dist/src/core/lib/RenderCoords.js.map +1 -1
  44. package/dist/src/core/lib/WebGlContextWrapper.d.ts +51 -2
  45. package/dist/src/core/lib/WebGlContextWrapper.js +92 -22
  46. package/dist/src/core/lib/WebGlContextWrapper.js.map +1 -1
  47. package/dist/src/core/lib/colorCache.d.ts +1 -0
  48. package/dist/src/core/lib/colorCache.js +19 -0
  49. package/dist/src/core/lib/colorCache.js.map +1 -0
  50. package/dist/src/core/lib/colorParser.d.ts +21 -0
  51. package/dist/src/core/lib/colorParser.js +72 -0
  52. package/dist/src/core/lib/colorParser.js.map +1 -0
  53. package/dist/src/core/lib/utils.d.ts +3 -0
  54. package/dist/src/core/lib/utils.js +42 -0
  55. package/dist/src/core/lib/utils.js.map +1 -1
  56. package/dist/src/core/lib/validateImageBitmap.d.ts +2 -1
  57. package/dist/src/core/lib/validateImageBitmap.js +4 -4
  58. package/dist/src/core/lib/validateImageBitmap.js.map +1 -1
  59. package/dist/src/core/platforms/Platform.d.ts +37 -0
  60. package/dist/src/{main-api/IRenderDriver.js → core/platforms/Platform.js} +4 -2
  61. package/dist/src/core/platforms/Platform.js.map +1 -0
  62. package/dist/src/core/platforms/web/WebPlatform.d.ts +9 -0
  63. package/dist/src/core/platforms/web/WebPlatform.js +84 -0
  64. package/dist/src/core/platforms/web/WebPlatform.js.map +1 -0
  65. package/dist/src/core/renderers/CoreContextTexture.d.ts +1 -1
  66. package/dist/src/core/renderers/CoreRenderer.d.ts +5 -2
  67. package/dist/src/core/renderers/CoreRenderer.js.map +1 -1
  68. package/dist/src/core/renderers/CoreShaderNode.d.ts +3 -3
  69. package/dist/src/core/renderers/CoreShaderNode.js +8 -2
  70. package/dist/src/core/renderers/CoreShaderNode.js.map +1 -1
  71. package/dist/src/core/renderers/canvas/CanvasRenderer.d.ts +1 -2
  72. package/dist/src/core/renderers/canvas/CanvasRenderer.js +10 -21
  73. package/dist/src/core/renderers/canvas/CanvasRenderer.js.map +1 -1
  74. package/dist/src/core/renderers/canvas/CanvasShaderNode.js +3 -5
  75. package/dist/src/core/renderers/canvas/CanvasShaderNode.js.map +1 -1
  76. package/dist/src/core/renderers/canvas/CanvasTexture.d.ts +2 -2
  77. package/dist/src/core/renderers/canvas/CanvasTexture.js +11 -9
  78. package/dist/src/core/renderers/canvas/CanvasTexture.js.map +1 -1
  79. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js +3 -0
  80. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js.map +1 -1
  81. package/dist/src/core/renderers/webgl/WebGlCtxTexture.d.ts +5 -6
  82. package/dist/src/core/renderers/webgl/WebGlCtxTexture.js +30 -21
  83. package/dist/src/core/renderers/webgl/WebGlCtxTexture.js.map +1 -1
  84. package/dist/src/core/renderers/webgl/WebGlRenderOp.d.ts +10 -2
  85. package/dist/src/core/renderers/webgl/WebGlRenderOp.js +37 -19
  86. package/dist/src/core/renderers/webgl/WebGlRenderOp.js.map +1 -1
  87. package/dist/src/core/renderers/webgl/WebGlRenderer.d.ts +5 -3
  88. package/dist/src/core/renderers/webgl/WebGlRenderer.js +144 -117
  89. package/dist/src/core/renderers/webgl/WebGlRenderer.js.map +1 -1
  90. package/dist/src/core/renderers/webgl/WebGlShaderNode.d.ts +2 -1
  91. package/dist/src/core/renderers/webgl/WebGlShaderNode.js +1 -4
  92. package/dist/src/core/renderers/webgl/WebGlShaderNode.js.map +1 -1
  93. package/dist/src/core/renderers/webgl/WebGlShaderProgram.d.ts +5 -3
  94. package/dist/src/core/renderers/webgl/WebGlShaderProgram.js +55 -31
  95. package/dist/src/core/renderers/webgl/WebGlShaderProgram.js.map +1 -1
  96. package/dist/src/core/renderers/webgl/internal/ShaderUtils.js +35 -35
  97. package/dist/src/core/shaders/canvas/Border.js +1 -1
  98. package/dist/src/core/shaders/canvas/Border.js.map +1 -1
  99. package/dist/src/core/shaders/canvas/LinearGradient.js +5 -3
  100. package/dist/src/core/shaders/canvas/LinearGradient.js.map +1 -1
  101. package/dist/src/core/shaders/canvas/RadialGradient.js +13 -11
  102. package/dist/src/core/shaders/canvas/RadialGradient.js.map +1 -1
  103. package/dist/src/core/shaders/canvas/RoundedWithBorder.js +14 -6
  104. package/dist/src/core/shaders/canvas/RoundedWithBorder.js.map +1 -1
  105. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js +10 -8
  106. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js.map +1 -1
  107. package/dist/src/core/shaders/canvas/RoundedWithShadow.js +7 -5
  108. package/dist/src/core/shaders/canvas/RoundedWithShadow.js.map +1 -1
  109. package/dist/src/core/shaders/templates/BorderTemplate.d.ts +1 -1
  110. package/dist/src/core/shaders/templates/BorderTemplate.js +1 -1
  111. package/dist/src/core/shaders/templates/BorderTemplate.js.map +1 -1
  112. package/dist/src/core/shaders/templates/HolePunchTemplate.js +1 -1
  113. package/dist/src/core/shaders/templates/HolePunchTemplate.js.map +1 -1
  114. package/dist/src/core/shaders/templates/RoundedTemplate.js +1 -1
  115. package/dist/src/core/shaders/templates/RoundedTemplate.js.map +1 -1
  116. package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.d.ts +1 -1
  117. package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.d.ts +1 -1
  118. package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.d.ts +1 -1
  119. package/dist/src/core/shaders/templates/ShadowTemplate.d.ts +1 -1
  120. package/dist/src/core/shaders/{templates/shaderUtils.d.ts → utils.d.ts} +1 -1
  121. package/dist/src/core/shaders/{templates/shaderUtils.js → utils.js} +2 -2
  122. package/dist/src/core/shaders/utils.js.map +1 -0
  123. package/dist/src/core/shaders/webgl/Border.js +86 -63
  124. package/dist/src/core/shaders/webgl/Border.js.map +1 -1
  125. package/dist/src/core/shaders/webgl/Default.js +47 -47
  126. package/dist/src/core/shaders/webgl/DefaultBatched.js +61 -61
  127. package/dist/src/core/shaders/webgl/HolePunch.js +36 -35
  128. package/dist/src/core/shaders/webgl/HolePunch.js.map +1 -1
  129. package/dist/src/core/shaders/webgl/LinearGradient.js +41 -40
  130. package/dist/src/core/shaders/webgl/LinearGradient.js.map +1 -1
  131. package/dist/src/core/shaders/webgl/RadialGradient.js +39 -38
  132. package/dist/src/core/shaders/webgl/RadialGradient.js.map +1 -1
  133. package/dist/src/core/shaders/webgl/Rounded.js +71 -71
  134. package/dist/src/core/shaders/webgl/RoundedWithBorder.js +115 -72
  135. package/dist/src/core/shaders/webgl/RoundedWithBorder.js.map +1 -1
  136. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js +138 -88
  137. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js.map +1 -1
  138. package/dist/src/core/shaders/webgl/RoundedWithShadow.js +54 -54
  139. package/dist/src/core/shaders/webgl/SdfShader.js +63 -63
  140. package/dist/src/core/shaders/webgl/SdfShader.js.map +1 -1
  141. package/dist/src/core/shaders/webgl/Shadow.js +83 -83
  142. package/dist/src/core/text-rendering/CanvasFontHandler.d.ts +25 -0
  143. package/dist/src/core/text-rendering/CanvasFontHandler.js +130 -0
  144. package/dist/src/core/text-rendering/CanvasFontHandler.js.map +1 -0
  145. package/dist/src/core/text-rendering/CanvasTextRenderer.d.ts +22 -0
  146. package/dist/src/core/text-rendering/CanvasTextRenderer.js +366 -0
  147. package/dist/src/core/text-rendering/CanvasTextRenderer.js.map +1 -0
  148. package/dist/src/core/text-rendering/SdfFontHandler.d.ts +137 -0
  149. package/dist/src/core/text-rendering/SdfFontHandler.js +336 -0
  150. package/dist/src/core/text-rendering/SdfFontHandler.js.map +1 -0
  151. package/dist/src/core/text-rendering/SdfTextRenderer.d.ts +17 -0
  152. package/dist/src/core/text-rendering/SdfTextRenderer.js +355 -0
  153. package/dist/src/core/text-rendering/SdfTextRenderer.js.map +1 -0
  154. package/dist/src/core/text-rendering/TextRenderer.d.ts +349 -0
  155. package/dist/src/{main-api/ICoreDriver.js → core/text-rendering/TextRenderer.js} +1 -1
  156. package/dist/src/core/text-rendering/TextRenderer.js.map +1 -0
  157. package/dist/src/core/text-rendering/Utils.d.ts +71 -0
  158. package/dist/src/core/text-rendering/Utils.js +212 -0
  159. package/dist/src/core/text-rendering/Utils.js.map +1 -0
  160. package/dist/src/core/text-rendering/canvas/Settings.d.ts +64 -0
  161. package/dist/src/core/{renderers/CoreShader.js → text-rendering/canvas/Settings.js} +3 -11
  162. package/dist/src/core/text-rendering/canvas/Settings.js.map +1 -0
  163. package/dist/src/core/text-rendering/canvas/Utils.d.ts +20 -0
  164. package/dist/src/core/text-rendering/canvas/Utils.js +144 -0
  165. package/dist/src/core/text-rendering/canvas/Utils.js.map +1 -0
  166. package/dist/src/core/text-rendering/canvas/calculateRenderInfo.d.ts +60 -0
  167. package/dist/src/core/text-rendering/canvas/calculateRenderInfo.js +183 -0
  168. package/dist/src/core/text-rendering/canvas/calculateRenderInfo.js.map +1 -0
  169. package/dist/src/core/text-rendering/canvas/draw.d.ts +5 -0
  170. package/dist/src/core/text-rendering/canvas/draw.js +132 -0
  171. package/dist/src/core/text-rendering/canvas/draw.js.map +1 -0
  172. package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js +5 -0
  173. package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js.map +1 -1
  174. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.d.ts +1 -1
  175. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js +50 -2
  176. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js.map +1 -1
  177. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js +9 -54
  178. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js.map +1 -1
  179. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.d.ts +1 -1
  180. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js +66 -8
  181. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js.map +1 -1
  182. package/dist/src/core/text-rendering/renderers/TextRenderer.d.ts +13 -0
  183. package/dist/src/core/text-rendering/renderers/TextRenderer.js +3 -0
  184. package/dist/src/core/text-rendering/renderers/TextRenderer.js.map +1 -1
  185. package/dist/src/core/text-rendering/sdf/Utils.d.ts +26 -0
  186. package/dist/src/core/text-rendering/sdf/Utils.js +304 -0
  187. package/dist/src/core/text-rendering/sdf/Utils.js.map +1 -0
  188. package/dist/src/core/text-rendering/sdf/index.d.ts +1 -0
  189. package/dist/src/{main-api/texture-usage-trackers/TextureUsageTracker.js → core/text-rendering/sdf/index.js} +3 -11
  190. package/dist/src/core/text-rendering/sdf/index.js.map +1 -0
  191. package/dist/src/core/textures/ImageTexture.d.ts +4 -3
  192. package/dist/src/core/textures/ImageTexture.js +36 -9
  193. package/dist/src/core/textures/ImageTexture.js.map +1 -1
  194. package/dist/src/core/textures/Texture.d.ts +21 -2
  195. package/dist/src/core/textures/Texture.js +37 -6
  196. package/dist/src/core/textures/Texture.js.map +1 -1
  197. package/dist/src/core/utils.d.ts +1 -1
  198. package/dist/src/main-api/INode.d.ts +2 -2
  199. package/dist/src/main-api/Inspector.d.ts +6 -1
  200. package/dist/src/main-api/Inspector.js +43 -7
  201. package/dist/src/main-api/Inspector.js.map +1 -1
  202. package/dist/src/main-api/Renderer.d.ts +122 -46
  203. package/dist/src/main-api/Renderer.js +174 -37
  204. package/dist/src/main-api/Renderer.js.map +1 -1
  205. package/dist/src/utils.d.ts +1 -6
  206. package/dist/src/utils.js +2 -9
  207. package/dist/src/utils.js.map +1 -1
  208. package/dist/tsconfig.dist.tsbuildinfo +1 -1
  209. package/exports/canvas-shaders.ts +28 -28
  210. package/exports/canvas.ts +45 -45
  211. package/exports/index.ts +82 -89
  212. package/exports/inspector.ts +24 -24
  213. package/exports/utils.ts +50 -44
  214. package/exports/webgl-shaders.ts +28 -28
  215. package/exports/webgl.ts +52 -50
  216. package/package.json +2 -4
  217. package/src/common/CommonTypes.ts +146 -146
  218. package/src/common/EventEmitter.ts +77 -77
  219. package/src/common/IAnimationController.ts +92 -92
  220. package/src/common/IEventEmitter.ts +28 -28
  221. package/src/core/CoreNode.test.ts +202 -203
  222. package/src/core/CoreNode.ts +2491 -2476
  223. package/src/core/CoreShaderManager.ts +188 -193
  224. package/src/core/CoreTextNode.ts +443 -448
  225. package/src/core/CoreTextureManager.ts +565 -597
  226. package/src/core/Stage.ts +906 -740
  227. package/src/core/TextureMemoryManager.ts +445 -395
  228. package/src/core/animations/AnimationManager.ts +38 -38
  229. package/src/core/animations/CoreAnimation.ts +291 -284
  230. package/src/core/animations/CoreAnimationController.ts +166 -157
  231. package/src/core/lib/ContextSpy.ts +41 -41
  232. package/src/core/lib/ImageWorker.ts +286 -279
  233. package/src/core/lib/Matrix3d.ts +244 -244
  234. package/src/core/lib/RenderCoords.ts +71 -86
  235. package/src/core/lib/WebGlContextWrapper.ts +1381 -1324
  236. package/src/core/lib/colorCache.ts +20 -0
  237. package/src/core/{renderers/canvas/internal/ColorUtils.ts → lib/colorParser.ts} +85 -85
  238. package/src/core/lib/textureCompression.ts +152 -152
  239. package/src/core/lib/textureSvg.ts +78 -78
  240. package/src/core/lib/utils.ts +412 -361
  241. package/src/core/lib/validateImageBitmap.ts +87 -76
  242. package/src/core/platforms/Platform.ts +77 -0
  243. package/src/core/platforms/web/WebPlatform.ts +121 -0
  244. package/src/core/renderers/CoreContextTexture.ts +43 -43
  245. package/src/core/renderers/CoreRenderOp.ts +22 -22
  246. package/src/core/renderers/CoreRenderer.ts +110 -107
  247. package/src/core/renderers/CoreShaderNode.ts +175 -171
  248. package/src/core/renderers/CoreShaderProgram.ts +23 -23
  249. package/src/core/renderers/canvas/CanvasRenderer.ts +283 -299
  250. package/src/core/renderers/canvas/CanvasShaderNode.ts +96 -99
  251. package/src/core/renderers/canvas/CanvasTexture.ts +156 -153
  252. package/src/core/renderers/webgl/WebGlCtxRenderTexture.ts +91 -86
  253. package/src/core/renderers/webgl/WebGlCtxSubTexture.ts +50 -50
  254. package/src/core/renderers/webgl/WebGlCtxTexture.ts +310 -301
  255. package/src/core/renderers/webgl/WebGlRenderOp.ts +167 -145
  256. package/src/core/renderers/webgl/WebGlRenderer.ts +747 -715
  257. package/src/core/renderers/webgl/WebGlShaderNode.ts +435 -433
  258. package/src/core/renderers/webgl/WebGlShaderProgram.ts +341 -310
  259. package/src/core/renderers/webgl/internal/BufferCollection.ts +54 -54
  260. package/src/core/renderers/webgl/internal/RendererUtils.ts +155 -155
  261. package/src/core/renderers/webgl/internal/ShaderUtils.ts +281 -281
  262. package/src/core/renderers/webgl/internal/WebGlUtils.ts +35 -35
  263. package/src/core/shaders/canvas/Border.ts +75 -78
  264. package/src/core/shaders/canvas/HolePunch.ts +62 -62
  265. package/src/core/shaders/canvas/LinearGradient.ts +71 -69
  266. package/src/core/shaders/canvas/RadialGradient.ts +99 -113
  267. package/src/core/shaders/canvas/Rounded.ts +55 -55
  268. package/src/core/shaders/canvas/RoundedWithBorder.ts +74 -68
  269. package/src/core/shaders/canvas/RoundedWithBorderAndShadow.ts +90 -88
  270. package/src/core/shaders/canvas/RoundedWithShadow.ts +70 -69
  271. package/src/core/shaders/canvas/Shadow.ts +52 -52
  272. package/src/core/shaders/canvas/utils/render.ts +151 -151
  273. package/src/core/shaders/templates/BorderTemplate.ts +115 -115
  274. package/src/core/shaders/templates/HolePunchTemplate.ts +82 -82
  275. package/src/core/shaders/templates/LinearGradientTemplate.ts +71 -71
  276. package/src/core/shaders/templates/RadialGradientTemplate.ts +81 -81
  277. package/src/core/shaders/templates/RoundedTemplate.ts +98 -98
  278. package/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.ts +38 -38
  279. package/src/core/shaders/templates/RoundedWithBorderTemplate.ts +35 -35
  280. package/src/core/shaders/templates/RoundedWithShadowTemplate.ts +35 -35
  281. package/src/core/shaders/templates/ShadowTemplate.ts +106 -106
  282. package/src/core/shaders/{templates/shaderUtils.ts → utils.ts} +46 -47
  283. package/src/core/shaders/webgl/Border.ts +116 -96
  284. package/src/core/shaders/webgl/Default.ts +89 -89
  285. package/src/core/shaders/webgl/DefaultBatched.ts +129 -129
  286. package/src/core/shaders/webgl/HolePunch.ts +75 -78
  287. package/src/core/shaders/webgl/LinearGradient.ts +82 -81
  288. package/src/core/shaders/webgl/RadialGradient.ts +85 -84
  289. package/src/core/shaders/webgl/Rounded.ts +117 -117
  290. package/src/core/shaders/webgl/RoundedWithBorder.ts +155 -114
  291. package/src/core/shaders/webgl/RoundedWithBorderAndShadow.ts +175 -133
  292. package/src/core/shaders/webgl/RoundedWithShadow.ts +98 -98
  293. package/src/core/shaders/webgl/SdfShader.ts +134 -137
  294. package/src/core/shaders/webgl/Shadow.ts +115 -115
  295. package/src/core/text-rendering/CanvasFontHandler.ts +176 -0
  296. package/src/core/text-rendering/CanvasTextRenderer.ts +622 -0
  297. package/src/core/text-rendering/SdfFontHandler.ts +517 -0
  298. package/src/core/text-rendering/SdfTextRenderer.ts +466 -0
  299. package/src/core/text-rendering/TextRenderer.ts +404 -0
  300. package/src/core/text-rendering/{TextTextureRendererUtils.ts → Utils.ts} +257 -263
  301. package/src/core/text-rendering/canvas/Settings.ts +99 -0
  302. package/src/core/text-rendering/canvas/Utils.test.ts +206 -0
  303. package/src/core/text-rendering/canvas/Utils.ts +178 -0
  304. package/src/core/text-rendering/canvas/calculateRenderInfo.ts +299 -0
  305. package/src/core/text-rendering/canvas/draw.ts +165 -0
  306. package/src/core/text-rendering/sdf/Utils.test.ts +402 -0
  307. package/src/core/text-rendering/sdf/Utils.ts +436 -0
  308. package/src/core/text-rendering/sdf/index.ts +20 -0
  309. package/src/core/textures/ColorTexture.ts +102 -102
  310. package/src/core/textures/ImageTexture.ts +418 -376
  311. package/src/core/textures/NoiseTexture.ts +104 -104
  312. package/src/core/textures/RenderTexture.ts +85 -85
  313. package/src/core/textures/SubTexture.ts +205 -205
  314. package/src/core/textures/Texture.ts +381 -337
  315. package/src/core/utils.ts +227 -227
  316. package/src/env.d.ts +7 -7
  317. package/src/main-api/INode.ts +100 -99
  318. package/src/main-api/Inspector.ts +567 -522
  319. package/src/main-api/Renderer.ts +873 -649
  320. package/src/main-api/utils.ts +45 -45
  321. package/src/utils.ts +267 -267
  322. package/dist/exports/core-api.d.ts +0 -74
  323. package/dist/exports/core-api.js +0 -96
  324. package/dist/exports/core-api.js.map +0 -1
  325. package/dist/exports/main-api.d.ts +0 -30
  326. package/dist/exports/main-api.js +0 -45
  327. package/dist/exports/main-api.js.map +0 -1
  328. package/dist/src/core/CoreExtension.d.ts +0 -12
  329. package/dist/src/core/CoreExtension.js +0 -29
  330. package/dist/src/core/CoreExtension.js.map +0 -1
  331. package/dist/src/core/CoreStuff.d.ts +0 -1
  332. package/dist/src/core/CoreStuff.js +0 -138
  333. package/dist/src/core/CoreStuff.js.map +0 -1
  334. package/dist/src/core/CoreTexturizer.d.ts +0 -14
  335. package/dist/src/core/CoreTexturizer.js +0 -47
  336. package/dist/src/core/CoreTexturizer.js.map +0 -1
  337. package/dist/src/core/LngNode.d.ts +0 -736
  338. package/dist/src/core/LngNode.js +0 -1174
  339. package/dist/src/core/LngNode.js.map +0 -1
  340. package/dist/src/core/Matrix2DContext.d.ts +0 -15
  341. package/dist/src/core/Matrix2DContext.js +0 -45
  342. package/dist/src/core/Matrix2DContext.js.map +0 -1
  343. package/dist/src/core/ShaderNode.d.ts +0 -10
  344. package/dist/src/core/ShaderNode.js +0 -30
  345. package/dist/src/core/ShaderNode.js.map +0 -1
  346. package/dist/src/core/TextNode.d.ts +0 -103
  347. package/dist/src/core/TextNode.js +0 -331
  348. package/dist/src/core/TextNode.js.map +0 -1
  349. package/dist/src/core/lib/Coords.d.ts +0 -14
  350. package/dist/src/core/lib/Coords.js +0 -55
  351. package/dist/src/core/lib/Coords.js.map +0 -1
  352. package/dist/src/core/lib/glm/common.d.ts +0 -162
  353. package/dist/src/core/lib/glm/common.js +0 -81
  354. package/dist/src/core/lib/glm/common.js.map +0 -1
  355. package/dist/src/core/lib/glm/index.d.ts +0 -11
  356. package/dist/src/core/lib/glm/index.js +0 -30
  357. package/dist/src/core/lib/glm/index.js.map +0 -1
  358. package/dist/src/core/lib/glm/mat2.d.ts +0 -219
  359. package/dist/src/core/lib/glm/mat2.js +0 -396
  360. package/dist/src/core/lib/glm/mat2.js.map +0 -1
  361. package/dist/src/core/lib/glm/mat2d.d.ts +0 -237
  362. package/dist/src/core/lib/glm/mat2d.js +0 -442
  363. package/dist/src/core/lib/glm/mat2d.js.map +0 -1
  364. package/dist/src/core/lib/glm/mat3.d.ts +0 -283
  365. package/dist/src/core/lib/glm/mat3.js +0 -680
  366. package/dist/src/core/lib/glm/mat3.js.map +0 -1
  367. package/dist/src/core/lib/glm/mat4.d.ts +0 -550
  368. package/dist/src/core/lib/glm/mat4.js +0 -1802
  369. package/dist/src/core/lib/glm/mat4.js.map +0 -1
  370. package/dist/src/core/lib/glm/quat.d.ts +0 -363
  371. package/dist/src/core/lib/glm/quat.js +0 -693
  372. package/dist/src/core/lib/glm/quat.js.map +0 -1
  373. package/dist/src/core/lib/glm/quat2.d.ts +0 -356
  374. package/dist/src/core/lib/glm/quat2.js +0 -754
  375. package/dist/src/core/lib/glm/quat2.js.map +0 -1
  376. package/dist/src/core/lib/glm/vec2.d.ts +0 -365
  377. package/dist/src/core/lib/glm/vec2.js +0 -569
  378. package/dist/src/core/lib/glm/vec2.js.map +0 -1
  379. package/dist/src/core/lib/glm/vec3.d.ts +0 -406
  380. package/dist/src/core/lib/glm/vec3.js +0 -720
  381. package/dist/src/core/lib/glm/vec3.js.map +0 -1
  382. package/dist/src/core/lib/glm/vec4.d.ts +0 -330
  383. package/dist/src/core/lib/glm/vec4.js +0 -608
  384. package/dist/src/core/lib/glm/vec4.js.map +0 -1
  385. package/dist/src/core/platform.d.ts +0 -10
  386. package/dist/src/core/platform.js +0 -56
  387. package/dist/src/core/platform.js.map +0 -1
  388. package/dist/src/core/renderers/CoreShader.d.ts +0 -9
  389. package/dist/src/core/renderers/CoreShader.js.map +0 -1
  390. package/dist/src/core/renderers/CoreShaderManager.d.ts +0 -19
  391. package/dist/src/core/renderers/CoreShaderManager.js +0 -33
  392. package/dist/src/core/renderers/CoreShaderManager.js.map +0 -1
  393. package/dist/src/core/renderers/canvas/CanvasCoreRenderer.d.ts +0 -33
  394. package/dist/src/core/renderers/canvas/CanvasCoreRenderer.js +0 -250
  395. package/dist/src/core/renderers/canvas/CanvasCoreRenderer.js.map +0 -1
  396. package/dist/src/core/renderers/canvas/CanvasCoreTexture.d.ts +0 -16
  397. package/dist/src/core/renderers/canvas/CanvasCoreTexture.js +0 -123
  398. package/dist/src/core/renderers/canvas/CanvasCoreTexture.js.map +0 -1
  399. package/dist/src/core/renderers/canvas/shaders/UnsupportedShader.d.ts +0 -10
  400. package/dist/src/core/renderers/canvas/shaders/UnsupportedShader.js +0 -43
  401. package/dist/src/core/renderers/canvas/shaders/UnsupportedShader.js.map +0 -1
  402. package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.d.ts +0 -12
  403. package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js +0 -55
  404. package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js.map +0 -1
  405. package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.d.ts +0 -9
  406. package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.js +0 -38
  407. package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.js.map +0 -1
  408. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.d.ts +0 -57
  409. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js +0 -227
  410. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js.map +0 -1
  411. package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.d.ts +0 -34
  412. package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js +0 -114
  413. package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js.map +0 -1
  414. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.d.ts +0 -133
  415. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js +0 -613
  416. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js.map +0 -1
  417. package/dist/src/core/renderers/webgl/WebGlCoreShader.d.ts +0 -83
  418. package/dist/src/core/renderers/webgl/WebGlCoreShader.js +0 -231
  419. package/dist/src/core/renderers/webgl/WebGlCoreShader.js.map +0 -1
  420. package/dist/src/core/renderers/webgl/WebGlCoreShaderManager.d.ts +0 -27
  421. package/dist/src/core/renderers/webgl/WebGlCoreShaderManager.js +0 -82
  422. package/dist/src/core/renderers/webgl/WebGlCoreShaderManager.js.map +0 -1
  423. package/dist/src/core/renderers/webgl/WebGlCoreShaderProgram.d.ts +0 -11
  424. package/dist/src/core/renderers/webgl/WebGlCoreShaderProgram.js +0 -34
  425. package/dist/src/core/renderers/webgl/WebGlCoreShaderProgram.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/scene/Scene.d.ts +0 -59
  487. package/dist/src/core/scene/Scene.js +0 -106
  488. package/dist/src/core/scene/Scene.js.map +0 -1
  489. package/dist/src/core/shaders/templates/shaderUtils.js.map +0 -1
  490. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.d.ts +0 -20
  491. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.js +0 -55
  492. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.js.map +0 -1
  493. package/dist/src/main-api/DynamicShaderController.d.ts +0 -29
  494. package/dist/src/main-api/DynamicShaderController.js +0 -58
  495. package/dist/src/main-api/DynamicShaderController.js.map +0 -1
  496. package/dist/src/main-api/ICoreDriver.d.ts +0 -27
  497. package/dist/src/main-api/ICoreDriver.js.map +0 -1
  498. package/dist/src/main-api/IRenderDriver.d.ts +0 -20
  499. package/dist/src/main-api/IRenderDriver.js.map +0 -1
  500. package/dist/src/main-api/IShaderController.d.ts +0 -14
  501. package/dist/src/main-api/IShaderController.js +0 -30
  502. package/dist/src/main-api/IShaderController.js.map +0 -1
  503. package/dist/src/main-api/IShaderNode.d.ts +0 -17
  504. package/dist/src/main-api/IShaderNode.js +0 -19
  505. package/dist/src/main-api/IShaderNode.js.map +0 -1
  506. package/dist/src/main-api/RendererMain.d.ts +0 -375
  507. package/dist/src/main-api/RendererMain.js +0 -365
  508. package/dist/src/main-api/RendererMain.js.map +0 -1
  509. package/dist/src/main-api/ShaderController.d.ts +0 -31
  510. package/dist/src/main-api/ShaderController.js +0 -37
  511. package/dist/src/main-api/ShaderController.js.map +0 -1
  512. package/dist/src/main-api/texture-usage-trackers/FinalizationRegistryTextureUsageTracker.d.ts +0 -9
  513. package/dist/src/main-api/texture-usage-trackers/FinalizationRegistryTextureUsageTracker.js +0 -38
  514. package/dist/src/main-api/texture-usage-trackers/FinalizationRegistryTextureUsageTracker.js.map +0 -1
  515. package/dist/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.d.ts +0 -56
  516. package/dist/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.js +0 -101
  517. package/dist/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.js.map +0 -1
  518. package/dist/src/main-api/texture-usage-trackers/TextureUsageTracker.d.ts +0 -32
  519. package/dist/src/main-api/texture-usage-trackers/TextureUsageTracker.js.map +0 -1
  520. package/dist/src/render-drivers/main/MainCoreDriver.d.ts +0 -24
  521. package/dist/src/render-drivers/main/MainCoreDriver.js +0 -118
  522. package/dist/src/render-drivers/main/MainCoreDriver.js.map +0 -1
  523. package/dist/src/render-drivers/main/MainOnlyNode.d.ts +0 -99
  524. package/dist/src/render-drivers/main/MainOnlyNode.js +0 -396
  525. package/dist/src/render-drivers/main/MainOnlyNode.js.map +0 -1
  526. package/dist/src/render-drivers/main/MainOnlyShaderController.d.ts +0 -6
  527. package/dist/src/render-drivers/main/MainOnlyShaderController.js +0 -15
  528. package/dist/src/render-drivers/main/MainOnlyShaderController.js.map +0 -1
  529. package/dist/src/render-drivers/main/MainOnlyShaderNode.d.ts +0 -7
  530. package/dist/src/render-drivers/main/MainOnlyShaderNode.js +0 -34
  531. package/dist/src/render-drivers/main/MainOnlyShaderNode.js.map +0 -1
  532. package/dist/src/render-drivers/main/MainOnlyTextNode.d.ts +0 -47
  533. package/dist/src/render-drivers/main/MainOnlyTextNode.js +0 -205
  534. package/dist/src/render-drivers/main/MainOnlyTextNode.js.map +0 -1
  535. package/dist/src/render-drivers/main/MainRenderDriver.d.ts +0 -17
  536. package/dist/src/render-drivers/main/MainRenderDriver.js +0 -88
  537. package/dist/src/render-drivers/main/MainRenderDriver.js.map +0 -1
  538. package/dist/src/render-drivers/threadx/NodeStruct.d.ts +0 -90
  539. package/dist/src/render-drivers/threadx/NodeStruct.js +0 -281
  540. package/dist/src/render-drivers/threadx/NodeStruct.js.map +0 -1
  541. package/dist/src/render-drivers/threadx/SharedNode.d.ts +0 -39
  542. package/dist/src/render-drivers/threadx/SharedNode.js +0 -60
  543. package/dist/src/render-drivers/threadx/SharedNode.js.map +0 -1
  544. package/dist/src/render-drivers/threadx/TextNodeStruct.d.ts +0 -44
  545. package/dist/src/render-drivers/threadx/TextNodeStruct.js +0 -201
  546. package/dist/src/render-drivers/threadx/TextNodeStruct.js.map +0 -1
  547. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.d.ts +0 -28
  548. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js +0 -234
  549. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js.map +0 -1
  550. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.d.ts +0 -20
  551. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.js +0 -84
  552. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.js.map +0 -1
  553. package/dist/src/render-drivers/threadx/ThreadXMainNode.d.ts +0 -44
  554. package/dist/src/render-drivers/threadx/ThreadXMainNode.js +0 -154
  555. package/dist/src/render-drivers/threadx/ThreadXMainNode.js.map +0 -1
  556. package/dist/src/render-drivers/threadx/ThreadXMainShaderController.d.ts +0 -6
  557. package/dist/src/render-drivers/threadx/ThreadXMainShaderController.js +0 -16
  558. package/dist/src/render-drivers/threadx/ThreadXMainShaderController.js.map +0 -1
  559. package/dist/src/render-drivers/threadx/ThreadXMainShaderNode.d.ts +0 -7
  560. package/dist/src/render-drivers/threadx/ThreadXMainShaderNode.js +0 -15
  561. package/dist/src/render-drivers/threadx/ThreadXMainShaderNode.js.map +0 -1
  562. package/dist/src/render-drivers/threadx/ThreadXMainTextNode.d.ts +0 -28
  563. package/dist/src/render-drivers/threadx/ThreadXMainTextNode.js +0 -55
  564. package/dist/src/render-drivers/threadx/ThreadXMainTextNode.js.map +0 -1
  565. package/dist/src/render-drivers/threadx/ThreadXRenderDriver.d.ts +0 -21
  566. package/dist/src/render-drivers/threadx/ThreadXRenderDriver.js +0 -198
  567. package/dist/src/render-drivers/threadx/ThreadXRenderDriver.js.map +0 -1
  568. package/dist/src/render-drivers/threadx/ThreadXRendererMessage.d.ts +0 -70
  569. package/dist/src/render-drivers/threadx/ThreadXRendererMessage.js +0 -32
  570. package/dist/src/render-drivers/threadx/ThreadXRendererMessage.js.map +0 -1
  571. package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.d.ts +0 -19
  572. package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.js +0 -177
  573. package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.js.map +0 -1
  574. package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.d.ts +0 -27
  575. package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.js +0 -108
  576. package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.js.map +0 -1
  577. package/dist/src/render-drivers/threadx/worker/renderer.d.ts +0 -1
  578. package/dist/src/render-drivers/threadx/worker/renderer.js +0 -145
  579. package/dist/src/render-drivers/threadx/worker/renderer.js.map +0 -1
  580. package/dist/src/render-drivers/utils.d.ts +0 -12
  581. package/dist/src/render-drivers/utils.js +0 -69
  582. package/dist/src/render-drivers/utils.js.map +0 -1
  583. package/scripts/please-use-pnpm.js +0 -13
  584. package/src/core/platform.ts +0 -64
  585. package/src/core/renderers/canvas/internal/C2DShaderUtils.ts +0 -220
  586. package/src/core/text-rendering/TextRenderingUtils.ts +0 -36
  587. package/src/core/text-rendering/TrFontManager.ts +0 -183
  588. package/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.ts +0 -176
  589. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.ts +0 -139
  590. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.test.ts +0 -173
  591. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.ts +0 -171
  592. package/src/core/text-rendering/font-face-types/TrFontFace.ts +0 -187
  593. package/src/core/text-rendering/font-face-types/WebTrFontFace.ts +0 -94
  594. package/src/core/text-rendering/font-face-types/utils.ts +0 -39
  595. package/src/core/text-rendering/renderers/CanvasTextRenderer.ts +0 -509
  596. package/src/core/text-rendering/renderers/LightningTextTextureRenderer.ts +0 -815
  597. package/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.ts +0 -841
  598. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.test.ts +0 -48
  599. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.ts +0 -66
  600. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.ts +0 -52
  601. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.ts +0 -32
  602. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.ts +0 -117
  603. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.test.ts +0 -133
  604. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.ts +0 -38
  605. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.ts +0 -408
  606. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.test.ts +0 -49
  607. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.ts +0 -52
  608. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.test.ts +0 -205
  609. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.ts +0 -93
  610. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.ts +0 -40
  611. package/src/core/text-rendering/renderers/TextRenderer.ts +0 -550
@@ -0,0 +1,366 @@
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 { assertTruthy } from '../../utils.js';
20
+ import * as CanvasFontHandler from './CanvasFontHandler.js';
21
+ import {} from './canvas/calculateRenderInfo.js';
22
+ import { calcHeight, measureText, wrapText, wrapWord } from './canvas/Utils.js';
23
+ import { normalizeCanvasColor } from '../lib/colorCache.js';
24
+ import { isZeroWidthSpace } from './Utils.js';
25
+ const MAX_TEXTURE_DIMENSION = 4096;
26
+ const type = 'canvas';
27
+ let canvas = null;
28
+ let context = null;
29
+ // Separate canvas and context for text measurements
30
+ let measureCanvas = null;
31
+ let measureContext = null;
32
+ // Cache for text layout calculations
33
+ const layoutCache = new Map();
34
+ // Initialize the Text Renderer
35
+ const init = (stage) => {
36
+ // Drawing canvas and context
37
+ canvas = stage.platform.createCanvas();
38
+ context = canvas.getContext('2d', { willReadFrequently: true });
39
+ // Separate measuring canvas and context
40
+ measureCanvas = stage.platform.createCanvas();
41
+ measureContext = measureCanvas.getContext('2d');
42
+ // Set up a minimal size for the measuring canvas since we only use it for measurements
43
+ measureCanvas.width = 1;
44
+ measureCanvas.height = 1;
45
+ CanvasFontHandler.init(context);
46
+ };
47
+ /**
48
+ * Canvas text renderer
49
+ *
50
+ * @param stage - Stage instance for font resolution
51
+ * @param props - Text rendering properties
52
+ * @returns Object containing ImageData and dimensions
53
+ */
54
+ const renderText = (stage, props) => {
55
+ assertTruthy(canvas, 'Canvas is not initialized');
56
+ assertTruthy(context, 'Canvas context is not available');
57
+ // Extract already normalized properties
58
+ const { text, fontFamily, fontStyle, fontSize, textAlign, lineHeight: propLineHeight, maxLines, textBaseline, verticalAlign, overflowSuffix, maxWidth, maxHeight, offsetY, letterSpacing, } = props;
59
+ // Performance optimization constants
60
+ const precision = 1;
61
+ const paddingLeft = 0;
62
+ const paddingRight = 0;
63
+ const textIndent = 0;
64
+ const textRenderIssueMargin = 0;
65
+ const textColor = 0xffffffff;
66
+ // Determine word wrap behavior
67
+ const wordWrap = maxWidth > 0;
68
+ const textOverflow = overflowSuffix ? 'ellipsis' : null;
69
+ // Calculate scaled values
70
+ const scaledFontSize = fontSize * precision;
71
+ const scaledOffsetY = offsetY * precision;
72
+ const scaledLetterSpacing = letterSpacing * precision;
73
+ // Get font metrics and calculate line height
74
+ context.font = `${fontStyle} ${scaledFontSize}px ${fontFamily}`;
75
+ context.textBaseline = textBaseline;
76
+ const metrics = CanvasFontHandler.getFontMetrics(fontFamily, scaledFontSize);
77
+ const lineHeight = propLineHeight === 0
78
+ ? scaledFontSize *
79
+ (metrics.ascender - metrics.descender + metrics.lineGap) *
80
+ precision
81
+ : propLineHeight;
82
+ // Calculate max lines constraint
83
+ const containedMaxLines = maxHeight !== null ? Math.floor(maxHeight / lineHeight) : 0;
84
+ const computedMaxLines = calculateMaxLines(containedMaxLines, maxLines);
85
+ // Calculate initial width and inner width
86
+ let width = maxWidth || 2048 / precision;
87
+ let innerWidth = width - paddingLeft;
88
+ if (innerWidth < 10) {
89
+ width += 10 - innerWidth;
90
+ innerWidth = 10;
91
+ }
92
+ const finalWordWrapWidth = maxWidth === 0 ? innerWidth : maxWidth;
93
+ // Calculate text layout using cached helper function
94
+ const layout = calculateTextLayout(text, fontFamily, scaledFontSize, fontStyle, wordWrap, finalWordWrapWidth, scaledLetterSpacing, textIndent, computedMaxLines, overflowSuffix, textOverflow);
95
+ // Calculate final dimensions
96
+ const dimensions = calculateTextDimensions(layout, paddingLeft, paddingRight, textBaseline, scaledFontSize, lineHeight, scaledOffsetY, maxWidth, maxHeight, wordWrap, textAlign);
97
+ // Set up canvas dimensions
98
+ canvas.width = Math.min(Math.ceil(dimensions.width + textRenderIssueMargin), MAX_TEXTURE_DIMENSION);
99
+ canvas.height = Math.min(Math.ceil(dimensions.height), MAX_TEXTURE_DIMENSION);
100
+ // Reset font context after canvas resize
101
+ context.font = `${fontStyle} ${scaledFontSize}px ${fontFamily}`;
102
+ context.textBaseline = textBaseline;
103
+ // Performance optimization for large fonts
104
+ if (scaledFontSize >= 128) {
105
+ context.globalAlpha = 0.01;
106
+ context.fillRect(0, 0, 0.01, 0.01);
107
+ context.globalAlpha = 1.0;
108
+ }
109
+ // Calculate drawing positions
110
+ const drawLines = calculateDrawPositions(layout.lines, layout.lineWidths, textAlign, verticalAlign, innerWidth, paddingLeft, textIndent, lineHeight, metrics, scaledFontSize);
111
+ // Render text to canvas
112
+ renderTextToCanvas(context, drawLines, scaledLetterSpacing, textColor, fontStyle, scaledFontSize, fontFamily);
113
+ width = dimensions.width;
114
+ const height = lineHeight * layout.lines.length;
115
+ // Extract image data
116
+ let imageData = null;
117
+ if (canvas.width > 0 && canvas.height > 0) {
118
+ imageData = context.getImageData(0, 0, width, height);
119
+ }
120
+ return {
121
+ imageData,
122
+ width,
123
+ height,
124
+ };
125
+ };
126
+ /**
127
+ * Calculate the effective max lines constraint
128
+ */
129
+ function calculateMaxLines(containedMaxLines, maxLines) {
130
+ if (containedMaxLines > 0 && maxLines > 0) {
131
+ return containedMaxLines < maxLines ? containedMaxLines : maxLines;
132
+ }
133
+ else {
134
+ return containedMaxLines > maxLines ? containedMaxLines : maxLines;
135
+ }
136
+ }
137
+ /**
138
+ * Generate a cache key for text layout calculations
139
+ */
140
+ function generateLayoutCacheKey(text, fontFamily, fontSize, fontStyle, wordWrap, wordWrapWidth, letterSpacing, maxLines, overflowSuffix) {
141
+ return `${text}-${fontFamily}-${fontSize}-${fontStyle}-${wordWrap}-${wordWrapWidth}-${letterSpacing}-${maxLines}-${overflowSuffix}`;
142
+ }
143
+ /**
144
+ * Calculate text dimensions and wrapping
145
+ */
146
+ function calculateTextLayout(text, fontFamily, fontSize, fontStyle, wordWrap, wordWrapWidth, letterSpacing, textIndent, maxLines, overflowSuffix, textOverflow) {
147
+ assertTruthy(measureContext, 'Measure context is not available');
148
+ // Check cache first
149
+ const cacheKey = generateLayoutCacheKey(text, fontFamily, fontSize, fontStyle, wordWrap, wordWrapWidth, letterSpacing, maxLines, overflowSuffix);
150
+ const cached = layoutCache.get(cacheKey);
151
+ if (cached) {
152
+ return cached;
153
+ }
154
+ // Set font context for measurements on the dedicated measuring context
155
+ measureContext.font = `${fontStyle} ${fontSize}px ${fontFamily}`;
156
+ // Handle text overflow for non-wrapped text
157
+ let processedText = text;
158
+ if (textOverflow !== null && wordWrap === false) {
159
+ let suffix;
160
+ if (textOverflow === 'clip') {
161
+ suffix = '';
162
+ }
163
+ else if (textOverflow === 'ellipsis') {
164
+ suffix = overflowSuffix;
165
+ }
166
+ else {
167
+ suffix = textOverflow;
168
+ }
169
+ processedText = wrapWord(measureContext, text, wordWrapWidth - textIndent, suffix, letterSpacing);
170
+ }
171
+ // Word wrap
172
+ let linesInfo;
173
+ if (wordWrap === true) {
174
+ linesInfo = wrapText(measureContext, processedText, wordWrapWidth, letterSpacing, textIndent);
175
+ }
176
+ else {
177
+ linesInfo = { l: processedText.split(/(?:\r\n|\r|\n)/), n: [] };
178
+ const n = linesInfo.l.length;
179
+ for (let i = 0; i < n - 1; i++) {
180
+ linesInfo.n.push(i);
181
+ }
182
+ }
183
+ let lines = linesInfo.l;
184
+ let remainingText = '';
185
+ let moreTextLines = false;
186
+ // Handle max lines constraint
187
+ if (maxLines > 0 && lines.length > maxLines) {
188
+ const usedLines = lines.slice(0, maxLines);
189
+ let otherLines = [];
190
+ if (overflowSuffix.length > 0) {
191
+ const w = measureText(measureContext, overflowSuffix, letterSpacing);
192
+ const al = wrapText(measureContext, usedLines[usedLines.length - 1] || '', wordWrapWidth - w, letterSpacing, textIndent);
193
+ usedLines[usedLines.length - 1] = `${al.l[0] || ''}${overflowSuffix}`;
194
+ otherLines = [al.l.length > 1 ? al.l[1] || '' : ''];
195
+ }
196
+ else {
197
+ otherLines = [''];
198
+ }
199
+ // Re-assemble the remaining text
200
+ let i;
201
+ const n = lines.length;
202
+ let j = 0;
203
+ const m = linesInfo.n.length;
204
+ for (i = maxLines; i < n; i++) {
205
+ otherLines[j] += `${otherLines[j] ? ' ' : ''}${lines[i] ?? ''}`;
206
+ if (i + 1 < m && linesInfo.n[i + 1] !== undefined) {
207
+ j++;
208
+ }
209
+ }
210
+ remainingText = otherLines.join('\n');
211
+ moreTextLines = true;
212
+ lines = usedLines;
213
+ }
214
+ // Calculate line widths using the dedicated measuring context
215
+ let maxLineWidth = 0;
216
+ const lineWidths = [];
217
+ for (let i = 0; i < lines.length; i++) {
218
+ const lineWidth = measureText(measureContext, lines[i] || '', letterSpacing) +
219
+ (i === 0 ? textIndent : 0);
220
+ lineWidths.push(lineWidth);
221
+ maxLineWidth = Math.max(maxLineWidth, lineWidth);
222
+ }
223
+ const result = {
224
+ lines,
225
+ lineWidths,
226
+ maxLineWidth,
227
+ remainingText,
228
+ moreTextLines,
229
+ };
230
+ // Cache the result
231
+ layoutCache.set(cacheKey, result);
232
+ return result;
233
+ }
234
+ /**
235
+ * Calculate text dimensions based on layout
236
+ */
237
+ function calculateTextDimensions(layout, paddingLeft, paddingRight, textBaseline, fontSize, lineHeight, offsetY, initialWidth, initialHeight, wordWrap, textAlign) {
238
+ let width = initialWidth;
239
+ let height = initialHeight;
240
+ // Calculate width
241
+ if (initialWidth === 0) {
242
+ width = layout.maxLineWidth + paddingLeft + paddingRight;
243
+ }
244
+ // Adjust width for single-line left-aligned wrapped text
245
+ if (wordWrap === true &&
246
+ width > layout.maxLineWidth &&
247
+ textAlign === 'left' &&
248
+ layout.lines.length === 1) {
249
+ width = layout.maxLineWidth + paddingLeft + paddingRight;
250
+ }
251
+ // Calculate height if not provided
252
+ if (height === 0) {
253
+ height = calcHeight(textBaseline, fontSize, lineHeight, layout.lines.length, offsetY);
254
+ }
255
+ return { width, height };
256
+ }
257
+ /**
258
+ * Calculate drawing positions for text lines
259
+ */
260
+ function calculateDrawPositions(lines, lineWidths, textAlign, verticalAlign, innerWidth, paddingLeft, textIndent, lineHeight, metrics, fontSize) {
261
+ const drawLines = [];
262
+ const ascenderPx = metrics.ascender * fontSize;
263
+ const bareLineHeightPx = (metrics.ascender - metrics.descender) * fontSize;
264
+ for (let i = 0, n = lines.length; i < n; i++) {
265
+ let linePositionX = i === 0 ? textIndent : 0;
266
+ let linePositionY = i * lineHeight + ascenderPx;
267
+ // Vertical alignment
268
+ if (verticalAlign == 'middle') {
269
+ linePositionY += (lineHeight - bareLineHeightPx) / 2;
270
+ }
271
+ else if (verticalAlign == 'bottom') {
272
+ linePositionY += lineHeight - bareLineHeightPx;
273
+ }
274
+ // Horizontal alignment
275
+ const lineWidth = lineWidths[i];
276
+ if (lineWidth !== undefined) {
277
+ if (textAlign === 'right') {
278
+ linePositionX += innerWidth - lineWidth;
279
+ }
280
+ else if (textAlign === 'center') {
281
+ linePositionX += (innerWidth - lineWidth) / 2;
282
+ }
283
+ }
284
+ linePositionX += paddingLeft;
285
+ const lineText = lines[i];
286
+ if (lineText !== undefined) {
287
+ drawLines.push({
288
+ text: lineText,
289
+ x: linePositionX,
290
+ y: linePositionY,
291
+ w: lineWidth || 0,
292
+ });
293
+ }
294
+ }
295
+ return drawLines;
296
+ }
297
+ /**
298
+ * Render text lines to canvas
299
+ */
300
+ function renderTextToCanvas(context, drawLines, letterSpacing, textColor, fontStyle, fontSize, fontFamily) {
301
+ assertTruthy(measureContext, 'Measure context is not available');
302
+ context.fillStyle = normalizeCanvasColor(textColor);
303
+ // Sync font settings to measure context if we need to use it for letter spacing
304
+ if (letterSpacing > 0) {
305
+ measureContext.font = `${fontStyle} ${fontSize}px ${fontFamily}`;
306
+ }
307
+ for (let i = 0, n = drawLines.length; i < n; i++) {
308
+ const drawLine = drawLines[i];
309
+ if (drawLine) {
310
+ if (letterSpacing === 0) {
311
+ context.fillText(drawLine.text, drawLine.x, drawLine.y);
312
+ }
313
+ else {
314
+ const textSplit = drawLine.text.split('');
315
+ let x = drawLine.x;
316
+ for (let j = 0, k = textSplit.length; j < k; j++) {
317
+ const char = textSplit[j];
318
+ if (char) {
319
+ // Skip zero-width spaces for rendering but keep them in the text flow
320
+ if (isZeroWidthSpace(char)) {
321
+ continue;
322
+ }
323
+ context.fillText(char, x, drawLine.y);
324
+ // Use the dedicated measuring context for letter spacing calculations
325
+ x += measureText(measureContext, char, letterSpacing);
326
+ }
327
+ }
328
+ }
329
+ }
330
+ }
331
+ }
332
+ /**
333
+ * Clear layout cache for memory management
334
+ */
335
+ const clearLayoutCache = () => {
336
+ layoutCache.clear();
337
+ };
338
+ /**
339
+ * Add quads for rendering (Canvas doesn't use quads)
340
+ */
341
+ const addQuads = () => {
342
+ // Canvas renderer doesn't use quad-based rendering
343
+ // Return null for interface compatibility
344
+ return null;
345
+ };
346
+ /**
347
+ * Render quads for Canvas renderer (Canvas doesn't use quad-based rendering)
348
+ */
349
+ const renderQuads = () => {
350
+ // Canvas renderer doesn't use quad-based rendering
351
+ // This method is for interface compatibility only
352
+ };
353
+ /**
354
+ * Canvas Text Renderer - implements TextRenderer interface
355
+ */
356
+ const CanvasTextRenderer = {
357
+ type,
358
+ font: CanvasFontHandler,
359
+ renderText,
360
+ addQuads,
361
+ renderQuads,
362
+ init,
363
+ clearLayoutCache,
364
+ };
365
+ export default CanvasTextRenderer;
366
+ //# sourceMappingURL=CanvasTextRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CanvasTextRenderer.js","sourceRoot":"","sources":["../../../../src/core/text-rendering/CanvasTextRenderer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,137 @@
1
+ import type { FontFamilyMap, FontMetrics, NormalizedFontMetrics, TrProps, FontLoadOptions } from './TextRenderer.js';
2
+ import type { ImageTexture } from '../textures/ImageTexture.js';
3
+ import type { Stage } from '../Stage.js';
4
+ /**
5
+ * SDF Font Data structure matching msdf-bmfont-xml output
6
+ */
7
+ export interface SdfFontData {
8
+ pages: string[];
9
+ chars: Array<{
10
+ id: number;
11
+ char: string;
12
+ x: number;
13
+ y: number;
14
+ width: number;
15
+ height: number;
16
+ xoffset: number;
17
+ yoffset: number;
18
+ xadvance: number;
19
+ page: number;
20
+ chnl: number;
21
+ }>;
22
+ kernings: Array<{
23
+ first: number;
24
+ second: number;
25
+ amount: number;
26
+ }>;
27
+ info: {
28
+ face: string;
29
+ size: number;
30
+ bold: number;
31
+ italic: number;
32
+ charset: string[];
33
+ unicode: number;
34
+ stretchH: number;
35
+ smooth: number;
36
+ aa: number;
37
+ padding: [number, number, number, number];
38
+ spacing: [number, number];
39
+ outline: number;
40
+ };
41
+ common: {
42
+ lineHeight: number;
43
+ base: number;
44
+ scaleW: number;
45
+ scaleH: number;
46
+ pages: number;
47
+ packed: number;
48
+ alphaChnl: number;
49
+ redChnl: number;
50
+ greenChnl: number;
51
+ blueChnl: number;
52
+ };
53
+ distanceField: {
54
+ fieldType: 'sdf' | 'msdf';
55
+ distanceRange: number;
56
+ };
57
+ lightningMetrics?: FontMetrics;
58
+ }
59
+ /**
60
+ * Check if the SDF font handler can render a font
61
+ * @param {TrProps} trProps - Text rendering properties
62
+ * @returns {boolean} True if the font can be rendered
63
+ */
64
+ export declare const canRenderFont: (trProps: TrProps) => boolean;
65
+ /**
66
+ * Load SDF font from JSON + PNG atlas
67
+ * @param {Object} options - Font loading options
68
+ * @param {string} options.fontFamily - Font family name
69
+ * @param {string} options.fontUrl - JSON font data URL (atlasDataUrl)
70
+ * @param {string} options.atlasUrl - PNG atlas texture URL
71
+ * @param {FontMetrics} options.metrics - Optional font metrics
72
+ */
73
+ export declare const loadFont: (stage: Stage, options: FontLoadOptions) => Promise<void>;
74
+ /**
75
+ * Get the font families map for resolving fonts
76
+ */
77
+ export declare const getFontFamilies: () => FontFamilyMap;
78
+ /**
79
+ * Initialize the SDF font handler
80
+ */
81
+ export declare const init: (c?: CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D) => void;
82
+ export declare const type = "sdf";
83
+ /**
84
+ * Check if a font is already loaded by font family
85
+ */
86
+ export declare const isFontLoaded: (fontFamily: string) => boolean;
87
+ /**
88
+ * Get normalized font metrics for a font family
89
+ */
90
+ export declare const getFontMetrics: (fontFamily: string, fontSize: number) => NormalizedFontMetrics;
91
+ /**
92
+ * Set font metrics for a font family
93
+ */
94
+ export declare const setFontMetrics: (fontFamily: string, metrics: NormalizedFontMetrics) => void;
95
+ /**
96
+ * Get glyph data for a character in a specific font
97
+ * @param {string} fontFamily - Font family name
98
+ * @param {number} codepoint - Character codepoint
99
+ * @returns {Object|null} Glyph data or null if not found
100
+ */
101
+ export declare const getGlyph: (fontFamily: string, codepoint: number) => SdfFontData["chars"][0] | null;
102
+ /**
103
+ * Get kerning value between two glyphs
104
+ * @param {string} fontFamily - Font family name
105
+ * @param {number} firstGlyph - First glyph ID
106
+ * @param {number} secondGlyph - Second glyph ID
107
+ * @returns {number} Kerning value or 0
108
+ */
109
+ export declare const getKerning: (fontFamily: string, firstGlyph: number, secondGlyph: number) => number;
110
+ /**
111
+ * Get atlas texture for a font family
112
+ * @param {string} fontFamily - Font family name
113
+ * @returns {ImageTexture|null} Atlas texture or null
114
+ */
115
+ export declare const getAtlas: (fontFamily: string) => ImageTexture | null;
116
+ /**
117
+ * Get font data for a font family
118
+ * @param {string} fontFamily - Font family name
119
+ * @returns {SdfFontData|null} Font data or null
120
+ */
121
+ export declare const getFontData: (fontFamily: string) => SdfFontData | null;
122
+ /**
123
+ * Get maximum character height for a font family
124
+ * @param {string} fontFamily - Font family name
125
+ * @returns {number} Max character height or 0
126
+ */
127
+ export declare const getMaxCharHeight: (fontFamily: string) => number;
128
+ /**
129
+ * Get all loaded font families
130
+ * @returns {string[]} Array of font family names
131
+ */
132
+ export declare const getLoadedFonts: () => string[];
133
+ /**
134
+ * Unload a font and free resources
135
+ * @param {string} fontFamily - Font family name
136
+ */
137
+ export declare const unloadFont: (fontFamily: string) => void;