@lightningjs/renderer 3.0.0-beta8 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (566) hide show
  1. package/LICENSE +202 -202
  2. package/NOTICE +3 -3
  3. package/README.md +230 -147
  4. package/dist/exports/canvas.d.ts +1 -1
  5. package/dist/exports/canvas.js +1 -1
  6. package/dist/exports/canvas.js.map +1 -1
  7. package/dist/exports/index.d.ts +5 -6
  8. package/dist/exports/index.js +3 -5
  9. package/dist/exports/index.js.map +1 -1
  10. package/dist/exports/platform.d.ts +7 -0
  11. package/dist/exports/platform.js +27 -0
  12. package/dist/exports/platform.js.map +1 -0
  13. package/dist/exports/webgl.d.ts +2 -1
  14. package/dist/exports/webgl.js +2 -1
  15. package/dist/exports/webgl.js.map +1 -1
  16. package/dist/src/common/CommonTypes.d.ts +15 -3
  17. package/dist/src/core/AutosizeManager.d.ts +29 -0
  18. package/dist/src/core/AutosizeManager.js +169 -0
  19. package/dist/src/core/AutosizeManager.js.map +1 -0
  20. package/dist/src/core/Autosizer.d.ts +35 -0
  21. package/dist/src/core/Autosizer.js +196 -0
  22. package/dist/src/core/Autosizer.js.map +1 -0
  23. package/dist/src/core/CoreNode.d.ts +106 -58
  24. package/dist/src/core/CoreNode.js +530 -282
  25. package/dist/src/core/CoreNode.js.map +1 -1
  26. package/dist/src/core/CoreTextNode.d.ts +73 -88
  27. package/dist/src/core/CoreTextNode.js +375 -236
  28. package/dist/src/core/CoreTextNode.js.map +1 -1
  29. package/dist/src/core/CoreTextureManager.d.ts +23 -26
  30. package/dist/src/core/CoreTextureManager.js +60 -166
  31. package/dist/src/core/CoreTextureManager.js.map +1 -1
  32. package/dist/src/core/Stage.d.ts +63 -9
  33. package/dist/src/core/Stage.js +233 -133
  34. package/dist/src/core/Stage.js.map +1 -1
  35. package/dist/src/core/TextureError.d.ts +11 -0
  36. package/dist/src/core/TextureError.js +37 -0
  37. package/dist/src/core/TextureError.js.map +1 -0
  38. package/dist/src/core/TextureMemoryManager.d.ts +3 -5
  39. package/dist/src/core/TextureMemoryManager.js +84 -94
  40. package/dist/src/core/TextureMemoryManager.js.map +1 -1
  41. package/dist/src/core/animations/Animation.d.ts +21 -0
  42. package/dist/src/core/animations/Animation.js +194 -0
  43. package/dist/src/core/animations/Animation.js.map +1 -0
  44. package/dist/src/core/animations/CoreAnimation.d.ts +3 -3
  45. package/dist/src/core/animations/CoreAnimation.js +3 -3
  46. package/dist/src/core/animations/CoreAnimation.js.map +1 -1
  47. package/dist/src/core/animations/CoreAnimationController.d.ts +1 -1
  48. package/dist/src/core/animations/CoreAnimationController.js +8 -5
  49. package/dist/src/core/animations/CoreAnimationController.js.map +1 -1
  50. package/dist/src/core/animations/Playback.d.ts +64 -0
  51. package/dist/src/core/animations/Playback.js +169 -0
  52. package/dist/src/core/animations/Playback.js.map +1 -0
  53. package/dist/src/core/animations/Transition.d.ts +27 -0
  54. package/dist/src/core/animations/Transition.js +52 -0
  55. package/dist/src/core/animations/Transition.js.map +1 -0
  56. package/dist/src/core/animations/utils.d.ts +2 -0
  57. package/dist/src/core/animations/utils.js +136 -0
  58. package/dist/src/core/animations/utils.js.map +1 -0
  59. package/dist/src/core/lib/ImageWorker.d.ts +2 -2
  60. package/dist/src/core/lib/ImageWorker.js +30 -11
  61. package/dist/src/core/lib/ImageWorker.js.map +1 -1
  62. package/dist/src/core/lib/WebGlContextWrapper.d.ts +41 -3
  63. package/dist/src/core/lib/WebGlContextWrapper.js +105 -28
  64. package/dist/src/core/lib/WebGlContextWrapper.js.map +1 -1
  65. package/dist/src/core/lib/collectionUtils.d.ts +4 -0
  66. package/dist/src/core/lib/collectionUtils.js +72 -0
  67. package/dist/src/core/lib/collectionUtils.js.map +1 -0
  68. package/dist/src/core/lib/colorCache.d.ts +1 -0
  69. package/dist/src/core/lib/colorCache.js +19 -0
  70. package/dist/src/core/lib/colorCache.js.map +1 -0
  71. package/dist/src/core/lib/colorParser.d.ts +21 -0
  72. package/dist/src/core/lib/colorParser.js +72 -0
  73. package/dist/src/core/lib/colorParser.js.map +1 -0
  74. package/dist/src/core/lib/textureCompression.d.ts +14 -2
  75. package/dist/src/core/lib/textureCompression.js +320 -67
  76. package/dist/src/core/lib/textureCompression.js.map +1 -1
  77. package/dist/src/core/lib/utils.d.ts +6 -6
  78. package/dist/src/core/lib/utils.js +21 -65
  79. package/dist/src/core/lib/utils.js.map +1 -1
  80. package/dist/src/core/platform.d.ts +10 -0
  81. package/dist/src/core/platform.js +81 -0
  82. package/dist/src/core/platform.js.map +1 -0
  83. package/dist/src/core/platforms/GlContextWrapper.d.ts +136 -0
  84. package/{src/core/text-rendering/TextRenderingUtils.ts → dist/src/core/platforms/GlContextWrapper.js} +32 -36
  85. package/dist/src/core/platforms/GlContextWrapper.js.map +1 -0
  86. package/dist/src/core/platforms/Platform.d.ts +78 -12
  87. package/dist/src/core/platforms/Platform.js +18 -0
  88. package/dist/src/core/platforms/Platform.js.map +1 -1
  89. package/dist/src/core/platforms/web/WebGlContextWrapper.d.ts +776 -0
  90. package/dist/src/core/platforms/web/WebGlContextWrapper.js +1208 -0
  91. package/dist/src/core/platforms/web/WebGlContextWrapper.js.map +1 -0
  92. package/dist/src/core/platforms/web/WebPlatform.d.ts +17 -2
  93. package/dist/src/core/platforms/web/WebPlatform.js +158 -13
  94. package/dist/src/core/platforms/web/WebPlatform.js.map +1 -1
  95. package/dist/src/core/platforms/web/WebPlatformChrome50.d.ts +19 -0
  96. package/dist/src/core/platforms/web/WebPlatformChrome50.js +54 -0
  97. package/dist/src/core/platforms/web/WebPlatformChrome50.js.map +1 -0
  98. package/dist/src/core/platforms/web/WebPlatformLegacy.d.ts +20 -0
  99. package/dist/src/core/platforms/web/WebPlatformLegacy.js +105 -0
  100. package/dist/src/core/platforms/web/WebPlatformLegacy.js.map +1 -0
  101. package/dist/src/core/platforms/web/WebPlatformNext.d.ts +21 -0
  102. package/dist/src/core/platforms/web/WebPlatformNext.js +52 -0
  103. package/dist/src/core/platforms/web/WebPlatformNext.js.map +1 -0
  104. package/dist/src/core/platforms/web/lib/ImageWorker.d.ts +21 -0
  105. package/dist/src/core/platforms/web/lib/ImageWorker.js +136 -0
  106. package/dist/src/core/platforms/web/lib/ImageWorker.js.map +1 -0
  107. package/dist/src/core/platforms/web/lib/ImageWorkerDefault.d.ts +6 -0
  108. package/dist/src/core/platforms/web/lib/ImageWorkerDefault.js +92 -0
  109. package/dist/src/core/platforms/web/lib/ImageWorkerDefault.js.map +1 -0
  110. package/dist/src/core/platforms/web/lib/ImageWorkerLegacy.d.ts +1 -0
  111. package/dist/src/core/platforms/web/lib/ImageWorkerLegacy.js +63 -0
  112. package/dist/src/core/platforms/web/lib/ImageWorkerLegacy.js.map +1 -0
  113. package/dist/src/core/platforms/web/lib/ImageWorkerNoOptions.d.ts +7 -0
  114. package/dist/src/core/platforms/web/lib/ImageWorkerNoOptions.js +75 -0
  115. package/dist/src/core/platforms/web/lib/ImageWorkerNoOptions.js.map +1 -0
  116. package/dist/src/core/platforms/web/lib/createImageBitmap.d.ts +1 -0
  117. package/dist/src/core/platforms/web/lib/createImageBitmap.js +27 -0
  118. package/dist/src/core/platforms/web/lib/createImageBitmap.js.map +1 -0
  119. package/dist/src/core/platforms/web/lib/textureCompression.d.ts +26 -0
  120. package/dist/src/core/platforms/web/lib/textureCompression.js +301 -0
  121. package/dist/src/core/platforms/web/lib/textureCompression.js.map +1 -0
  122. package/dist/src/core/platforms/web/lib/textureSvg.d.ts +7 -0
  123. package/dist/src/core/platforms/web/lib/textureSvg.js +51 -0
  124. package/dist/src/core/platforms/web/lib/textureSvg.js.map +1 -0
  125. package/dist/src/core/platforms/web/lib/utils.d.ts +5 -0
  126. package/dist/src/core/platforms/web/lib/utils.js +86 -0
  127. package/dist/src/core/platforms/web/lib/utils.js.map +1 -0
  128. package/dist/src/core/renderers/CoreContextTexture.d.ts +2 -1
  129. package/dist/src/core/renderers/CoreContextTexture.js.map +1 -1
  130. package/dist/src/core/renderers/CoreRenderer.d.ts +4 -40
  131. package/dist/src/core/renderers/CoreRenderer.js +3 -4
  132. package/dist/src/core/renderers/CoreRenderer.js.map +1 -1
  133. package/dist/src/core/renderers/CoreShader.d.ts +9 -0
  134. package/{src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.ts → dist/src/core/renderers/CoreShader.js} +28 -32
  135. package/dist/src/core/renderers/CoreShader.js.map +1 -0
  136. package/dist/src/core/renderers/CoreShaderNode.d.ts +10 -0
  137. package/dist/src/core/renderers/CoreShaderNode.js +19 -2
  138. package/dist/src/core/renderers/CoreShaderNode.js.map +1 -1
  139. package/dist/src/core/renderers/canvas/CanvasCoreRenderer.d.ts +33 -0
  140. package/dist/src/core/renderers/canvas/CanvasCoreRenderer.js +250 -0
  141. package/dist/src/core/renderers/canvas/CanvasCoreRenderer.js.map +1 -0
  142. package/dist/src/core/renderers/canvas/CanvasCoreTexture.d.ts +17 -0
  143. package/dist/src/core/renderers/canvas/CanvasCoreTexture.js +125 -0
  144. package/dist/src/core/renderers/canvas/CanvasCoreTexture.js.map +1 -0
  145. package/dist/src/core/renderers/canvas/CanvasRenderer.d.ts +5 -6
  146. package/dist/src/core/renderers/canvas/CanvasRenderer.js +67 -91
  147. package/dist/src/core/renderers/canvas/CanvasRenderer.js.map +1 -1
  148. package/dist/src/core/renderers/canvas/CanvasShaderNode.d.ts +1 -2
  149. package/dist/src/core/renderers/canvas/CanvasShaderNode.js +5 -4
  150. package/dist/src/core/renderers/canvas/CanvasShaderNode.js.map +1 -1
  151. package/dist/src/core/renderers/canvas/CanvasTexture.d.ts +3 -2
  152. package/dist/src/core/renderers/canvas/CanvasTexture.js +17 -13
  153. package/dist/src/core/renderers/canvas/CanvasTexture.js.map +1 -1
  154. package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.d.ts +13 -0
  155. package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js +113 -192
  156. package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js.map +1 -1
  157. package/dist/src/core/renderers/canvas/internal/ColorUtils.d.ts +0 -2
  158. package/dist/src/core/renderers/canvas/internal/ColorUtils.js +0 -14
  159. package/dist/src/core/renderers/canvas/internal/ColorUtils.js.map +1 -1
  160. package/dist/src/core/renderers/canvas/shaders/UnsupportedShader.d.ts +10 -0
  161. package/{src/core/text-rendering/renderers/SdfTextRenderer/internal/util.ts → dist/src/core/renderers/canvas/shaders/UnsupportedShader.js} +43 -40
  162. package/dist/src/core/renderers/canvas/shaders/UnsupportedShader.js.map +1 -0
  163. package/dist/src/core/renderers/webgl/SdfRenderOp.d.ts +33 -0
  164. package/dist/src/core/renderers/webgl/SdfRenderOp.js +98 -0
  165. package/dist/src/core/renderers/webgl/SdfRenderOp.js.map +1 -0
  166. package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.d.ts +12 -0
  167. package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js +58 -0
  168. package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js.map +1 -0
  169. package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.d.ts +9 -0
  170. package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.js +38 -0
  171. package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.js.map +1 -0
  172. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.d.ts +69 -0
  173. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js +272 -0
  174. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js.map +1 -0
  175. package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.d.ts +34 -0
  176. package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js +114 -0
  177. package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js.map +1 -0
  178. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.d.ts +133 -0
  179. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js +649 -0
  180. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js.map +1 -0
  181. package/dist/src/core/renderers/webgl/WebGlCoreShader.d.ts +78 -0
  182. package/dist/src/core/renderers/webgl/WebGlCoreShader.js +202 -0
  183. package/dist/src/core/renderers/webgl/WebGlCoreShader.js.map +1 -0
  184. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.d.ts +4 -2
  185. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js +14 -6
  186. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js.map +1 -1
  187. package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.d.ts +15 -2
  188. package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.js +34 -5
  189. package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.js.map +1 -1
  190. package/dist/src/core/renderers/webgl/WebGlCtxTexture.d.ts +19 -9
  191. package/dist/src/core/renderers/webgl/WebGlCtxTexture.js +101 -49
  192. package/dist/src/core/renderers/webgl/WebGlCtxTexture.js.map +1 -1
  193. package/dist/src/core/renderers/webgl/WebGlRenderOp.d.ts +3 -2
  194. package/dist/src/core/renderers/webgl/WebGlRenderOp.js +14 -5
  195. package/dist/src/core/renderers/webgl/WebGlRenderOp.js.map +1 -1
  196. package/dist/src/core/renderers/webgl/WebGlRenderer.d.ts +11 -23
  197. package/dist/src/core/renderers/webgl/WebGlRenderer.js +122 -133
  198. package/dist/src/core/renderers/webgl/WebGlRenderer.js.map +1 -1
  199. package/dist/src/core/renderers/webgl/WebGlShaderNode.d.ts +4 -6
  200. package/dist/src/core/renderers/webgl/WebGlShaderNode.js +3 -3
  201. package/dist/src/core/renderers/webgl/WebGlShaderNode.js.map +1 -1
  202. package/dist/src/core/renderers/webgl/WebGlShaderProgram.d.ts +11 -9
  203. package/dist/src/core/renderers/webgl/WebGlShaderProgram.js +83 -46
  204. package/dist/src/core/renderers/webgl/WebGlShaderProgram.js.map +1 -1
  205. package/dist/src/core/renderers/webgl/internal/RendererUtils.d.ts +4 -4
  206. package/dist/src/core/renderers/webgl/internal/RendererUtils.js.map +1 -1
  207. package/dist/src/core/renderers/webgl/internal/ShaderUtils.d.ts +3 -3
  208. package/dist/src/core/renderers/webgl/internal/ShaderUtils.js +38 -37
  209. package/dist/src/core/renderers/webgl/internal/ShaderUtils.js.map +1 -1
  210. package/dist/src/core/renderers/webgl/shaders/DefaultShader.d.ts +9 -0
  211. package/dist/src/core/renderers/webgl/shaders/DefaultShader.js +84 -0
  212. package/dist/src/core/renderers/webgl/shaders/DefaultShader.js.map +1 -0
  213. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.d.ts +10 -0
  214. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js +108 -0
  215. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js.map +1 -0
  216. package/dist/src/core/renderers/webgl/shaders/DynamicShader.d.ts +29 -0
  217. package/dist/src/core/renderers/webgl/shaders/DynamicShader.js +408 -0
  218. package/dist/src/core/renderers/webgl/shaders/DynamicShader.js.map +1 -0
  219. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.d.ts +28 -0
  220. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js +126 -0
  221. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js.map +1 -0
  222. package/dist/src/core/renderers/webgl/shaders/SdfShader.d.ts +47 -0
  223. package/dist/src/core/renderers/webgl/shaders/SdfShader.js +148 -0
  224. package/dist/src/core/renderers/webgl/shaders/SdfShader.js.map +1 -0
  225. package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.d.ts +31 -0
  226. package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js +71 -0
  227. package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js.map +1 -0
  228. package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.d.ts +30 -0
  229. package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js +58 -0
  230. package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js.map +1 -0
  231. package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.d.ts +31 -0
  232. package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js +71 -0
  233. package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js.map +1 -0
  234. package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.d.ts +31 -0
  235. package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js +71 -0
  236. package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js.map +1 -0
  237. package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.d.ts +31 -0
  238. package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js +71 -0
  239. package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js.map +1 -0
  240. package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.d.ts +9 -0
  241. package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.js +136 -0
  242. package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.js.map +1 -0
  243. package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.d.ts +36 -0
  244. package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js +85 -0
  245. package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js.map +1 -0
  246. package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.d.ts +45 -0
  247. package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.js +104 -0
  248. package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.js.map +1 -0
  249. package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.d.ts +22 -0
  250. package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js +45 -0
  251. package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js.map +1 -0
  252. package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.d.ts +58 -0
  253. package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.js +80 -0
  254. package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.js.map +1 -0
  255. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.d.ts +35 -0
  256. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js +134 -0
  257. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js.map +1 -0
  258. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.d.ts +40 -0
  259. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js +143 -0
  260. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js.map +1 -0
  261. package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.d.ts +61 -0
  262. package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js +127 -0
  263. package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js.map +1 -0
  264. package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.d.ts +40 -0
  265. package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js +71 -0
  266. package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js.map +1 -0
  267. package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.d.ts +115 -0
  268. package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.js +61 -0
  269. package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.js.map +1 -0
  270. package/dist/src/core/shaders/canvas/Border.d.ts +8 -2
  271. package/dist/src/core/shaders/canvas/Border.js +64 -25
  272. package/dist/src/core/shaders/canvas/Border.js.map +1 -1
  273. package/dist/src/core/shaders/canvas/HolePunch.js +4 -3
  274. package/dist/src/core/shaders/canvas/HolePunch.js.map +1 -1
  275. package/dist/src/core/shaders/canvas/LinearGradient.js +7 -5
  276. package/dist/src/core/shaders/canvas/LinearGradient.js.map +1 -1
  277. package/dist/src/core/shaders/canvas/RadialGradient.js +12 -10
  278. package/dist/src/core/shaders/canvas/RadialGradient.js.map +1 -1
  279. package/dist/src/core/shaders/canvas/Rounded.js +3 -3
  280. package/dist/src/core/shaders/canvas/Rounded.js.map +1 -1
  281. package/dist/src/core/shaders/canvas/RoundedWithBorder.d.ts +6 -3
  282. package/dist/src/core/shaders/canvas/RoundedWithBorder.js +41 -11
  283. package/dist/src/core/shaders/canvas/RoundedWithBorder.js.map +1 -1
  284. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.d.ts +2 -3
  285. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js +46 -9
  286. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js.map +1 -1
  287. package/dist/src/core/shaders/canvas/RoundedWithShadow.js +6 -5
  288. package/dist/src/core/shaders/canvas/RoundedWithShadow.js.map +1 -1
  289. package/dist/src/core/shaders/canvas/Shadow.js +4 -2
  290. package/dist/src/core/shaders/canvas/Shadow.js.map +1 -1
  291. package/dist/src/core/shaders/canvas/utils/render.d.ts +1 -1
  292. package/dist/src/core/shaders/canvas/utils/render.js +31 -18
  293. package/dist/src/core/shaders/canvas/utils/render.js.map +1 -1
  294. package/dist/src/core/shaders/templates/BorderTemplate.d.ts +11 -1
  295. package/dist/src/core/shaders/templates/BorderTemplate.js +30 -10
  296. package/dist/src/core/shaders/templates/BorderTemplate.js.map +1 -1
  297. package/dist/src/core/shaders/templates/HolePunchTemplate.d.ts +2 -2
  298. package/dist/src/core/shaders/templates/HolePunchTemplate.js +2 -2
  299. package/dist/src/core/shaders/templates/HolePunchTemplate.js.map +1 -1
  300. package/dist/src/core/shaders/templates/RadialGradientTemplate.d.ts +8 -6
  301. package/dist/src/core/shaders/templates/RadialGradientTemplate.js +2 -2
  302. package/dist/src/core/shaders/templates/RadialGradientTemplate.js.map +1 -1
  303. package/dist/src/core/shaders/webgl/Border.js +138 -84
  304. package/dist/src/core/shaders/webgl/Border.js.map +1 -1
  305. package/dist/src/core/shaders/webgl/Default.js +46 -47
  306. package/dist/src/core/shaders/webgl/Default.js.map +1 -1
  307. package/dist/src/core/shaders/webgl/DefaultBatched.js +61 -61
  308. package/dist/src/core/shaders/webgl/HolePunch.js +34 -34
  309. package/dist/src/core/shaders/webgl/HolePunch.js.map +1 -1
  310. package/dist/src/core/shaders/webgl/LinearGradient.js +60 -36
  311. package/dist/src/core/shaders/webgl/LinearGradient.js.map +1 -1
  312. package/dist/src/core/shaders/webgl/RadialGradient.js +60 -37
  313. package/dist/src/core/shaders/webgl/RadialGradient.js.map +1 -1
  314. package/dist/src/core/shaders/webgl/Rounded.js +74 -72
  315. package/dist/src/core/shaders/webgl/Rounded.js.map +1 -1
  316. package/dist/src/core/shaders/webgl/RoundedWithBorder.js +172 -113
  317. package/dist/src/core/shaders/webgl/RoundedWithBorder.js.map +1 -1
  318. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js +191 -132
  319. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js.map +1 -1
  320. package/dist/src/core/shaders/webgl/RoundedWithShadow.js +57 -55
  321. package/dist/src/core/shaders/webgl/RoundedWithShadow.js.map +1 -1
  322. package/dist/src/core/shaders/webgl/SdfShader.d.ts +0 -2
  323. package/dist/src/core/shaders/webgl/SdfShader.js +56 -66
  324. package/dist/src/core/shaders/webgl/SdfShader.js.map +1 -1
  325. package/dist/src/core/shaders/webgl/SdfShadowShader.d.ts +9 -0
  326. package/dist/src/core/shaders/webgl/SdfShadowShader.js +100 -0
  327. package/dist/src/core/shaders/webgl/SdfShadowShader.js.map +1 -0
  328. package/dist/src/core/shaders/webgl/Shadow.js +89 -83
  329. package/dist/src/core/shaders/webgl/Shadow.js.map +1 -1
  330. package/dist/src/core/text-rendering/CanvasFont.d.ts +14 -0
  331. package/dist/src/core/text-rendering/CanvasFont.js +111 -0
  332. package/dist/src/core/text-rendering/CanvasFont.js.map +1 -0
  333. package/dist/src/core/text-rendering/CanvasFontHandler.d.ts +59 -0
  334. package/dist/src/core/text-rendering/CanvasFontHandler.js +224 -0
  335. package/dist/src/core/text-rendering/CanvasFontHandler.js.map +1 -0
  336. package/dist/src/core/text-rendering/CanvasTextRenderer.d.ts +17 -0
  337. package/dist/src/core/text-rendering/CanvasTextRenderer.js +157 -0
  338. package/dist/src/core/text-rendering/CanvasTextRenderer.js.map +1 -0
  339. package/dist/src/core/text-rendering/CoreFont.d.ts +33 -0
  340. package/dist/src/core/text-rendering/CoreFont.js +48 -0
  341. package/dist/src/core/text-rendering/CoreFont.js.map +1 -0
  342. package/dist/src/core/text-rendering/FontManager.d.ts +11 -0
  343. package/dist/src/core/text-rendering/FontManager.js +42 -0
  344. package/dist/src/core/text-rendering/FontManager.js.map +1 -0
  345. package/dist/src/core/text-rendering/SdfFont.d.ts +29 -0
  346. package/dist/src/core/text-rendering/SdfFont.js +142 -0
  347. package/dist/src/core/text-rendering/SdfFont.js.map +1 -0
  348. package/dist/src/core/text-rendering/SdfFontHandler.d.ts +182 -0
  349. package/dist/src/core/text-rendering/SdfFontHandler.js +381 -0
  350. package/dist/src/core/text-rendering/SdfFontHandler.js.map +1 -0
  351. package/dist/src/core/text-rendering/SdfTextRenderer.d.ts +17 -0
  352. package/dist/src/core/text-rendering/SdfTextRenderer.js +301 -0
  353. package/dist/src/core/text-rendering/SdfTextRenderer.js.map +1 -0
  354. package/dist/src/core/text-rendering/TextLayoutEngine.d.ts +18 -0
  355. package/dist/src/core/text-rendering/TextLayoutEngine.js +380 -0
  356. package/dist/src/core/text-rendering/TextLayoutEngine.js.map +1 -0
  357. package/dist/src/core/text-rendering/TextRenderer.d.ts +383 -0
  358. package/{src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.ts → dist/src/core/text-rendering/TextRenderer.js} +20 -38
  359. package/dist/src/core/text-rendering/TextRenderer.js.map +1 -0
  360. package/dist/src/core/text-rendering/TextTextureRendererUtils.js.map +1 -1
  361. package/dist/src/core/text-rendering/Utils.d.ts +30 -0
  362. package/dist/src/core/text-rendering/Utils.js +84 -0
  363. package/dist/src/core/text-rendering/Utils.js.map +1 -0
  364. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js +2 -2
  365. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js.map +1 -1
  366. package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js +0 -5
  367. package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js.map +1 -1
  368. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.d.ts +1 -7
  369. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js +2 -50
  370. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js.map +1 -1
  371. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.d.ts +3 -2
  372. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js +87 -46
  373. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js.map +1 -1
  374. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.d.ts +1 -1
  375. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js +8 -66
  376. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js.map +1 -1
  377. package/dist/src/core/text-rendering/renderers/TextRenderer.d.ts +4 -14
  378. package/dist/src/core/text-rendering/renderers/TextRenderer.js +0 -3
  379. package/dist/src/core/text-rendering/renderers/TextRenderer.js.map +1 -1
  380. package/dist/src/core/textures/ColorTexture.d.ts +1 -1
  381. package/dist/src/core/textures/ColorTexture.js +3 -4
  382. package/dist/src/core/textures/ColorTexture.js.map +1 -1
  383. package/dist/src/core/textures/ImageTexture.d.ts +33 -14
  384. package/dist/src/core/textures/ImageTexture.js +46 -125
  385. package/dist/src/core/textures/ImageTexture.js.map +1 -1
  386. package/dist/src/core/textures/NoiseTexture.d.ts +3 -3
  387. package/dist/src/core/textures/NoiseTexture.js +8 -8
  388. package/dist/src/core/textures/NoiseTexture.js.map +1 -1
  389. package/dist/src/core/textures/RenderTexture.d.ts +7 -7
  390. package/dist/src/core/textures/RenderTexture.js +12 -12
  391. package/dist/src/core/textures/RenderTexture.js.map +1 -1
  392. package/dist/src/core/textures/SubTexture.d.ts +6 -8
  393. package/dist/src/core/textures/SubTexture.js +22 -40
  394. package/dist/src/core/textures/SubTexture.js.map +1 -1
  395. package/dist/src/core/textures/Texture.d.ts +74 -11
  396. package/dist/src/core/textures/Texture.js +136 -18
  397. package/dist/src/core/textures/Texture.js.map +1 -1
  398. package/dist/src/core/utils.d.ts +2 -1
  399. package/dist/src/core/utils.js +1 -1
  400. package/dist/src/core/utils.js.map +1 -1
  401. package/dist/src/main-api/DynamicShaderController.d.ts +29 -0
  402. package/dist/src/main-api/DynamicShaderController.js +58 -0
  403. package/dist/src/main-api/DynamicShaderController.js.map +1 -0
  404. package/dist/src/main-api/Inspector.d.ts +129 -1
  405. package/dist/src/main-api/Inspector.js +462 -23
  406. package/dist/src/main-api/Inspector.js.map +1 -1
  407. package/dist/src/main-api/Renderer.d.ts +223 -41
  408. package/dist/src/main-api/Renderer.js +107 -62
  409. package/dist/src/main-api/Renderer.js.map +1 -1
  410. package/dist/src/main-api/ShaderController.d.ts +31 -0
  411. package/dist/src/main-api/ShaderController.js +37 -0
  412. package/dist/src/main-api/ShaderController.js.map +1 -0
  413. package/dist/src/utils.d.ts +0 -2
  414. package/dist/src/utils.js +0 -36
  415. package/dist/src/utils.js.map +1 -1
  416. package/dist/tsconfig.dist.tsbuildinfo +1 -1
  417. package/dist/tsconfig.tsbuildinfo +1 -0
  418. package/exports/canvas-shaders.ts +28 -28
  419. package/exports/canvas.ts +45 -45
  420. package/exports/index.ts +90 -90
  421. package/exports/inspector.ts +24 -24
  422. package/exports/platform.ts +31 -0
  423. package/exports/utils.ts +50 -50
  424. package/exports/webgl-shaders.ts +28 -28
  425. package/exports/webgl.ts +52 -50
  426. package/package.json +16 -15
  427. package/src/common/CommonTypes.ts +163 -146
  428. package/src/common/EventEmitter.ts +77 -77
  429. package/src/common/IAnimationController.ts +92 -92
  430. package/src/common/IEventEmitter.ts +28 -28
  431. package/src/core/Autosizer.ts +224 -0
  432. package/src/core/CoreNode.test.ts +365 -202
  433. package/src/core/CoreNode.ts +2785 -2483
  434. package/src/core/CoreShaderManager.ts +188 -188
  435. package/src/core/CoreTextNode.test.ts +311 -0
  436. package/src/core/CoreTextNode.ts +598 -451
  437. package/src/core/CoreTextureManager.ts +484 -608
  438. package/src/core/Stage.ts +927 -800
  439. package/src/core/TextureError.ts +46 -0
  440. package/src/core/TextureMemoryManager.ts +418 -435
  441. package/src/core/animations/AnimationManager.ts +38 -38
  442. package/src/core/animations/CoreAnimation.ts +290 -291
  443. package/src/core/animations/CoreAnimationController.ts +169 -164
  444. package/src/core/lib/ContextSpy.ts +41 -41
  445. package/src/core/lib/Matrix3d.ts +244 -244
  446. package/src/core/lib/RenderCoords.ts +71 -71
  447. package/src/core/lib/collectionUtils.ts +83 -0
  448. package/src/core/lib/colorCache.ts +20 -0
  449. package/src/core/{renderers/canvas/internal/ColorUtils.ts → lib/colorParser.ts} +85 -85
  450. package/src/core/lib/utils.ts +337 -390
  451. package/src/core/platforms/GlContextWrapper.ts +291 -0
  452. package/src/core/platforms/Platform.ts +176 -77
  453. package/src/core/{lib → platforms/web}/WebGlContextWrapper.ts +1547 -1374
  454. package/src/core/platforms/web/WebPlatform.ts +306 -84
  455. package/src/core/platforms/web/WebPlatformChrome50.ts +63 -0
  456. package/src/core/platforms/web/WebPlatformLegacy.ts +150 -0
  457. package/src/core/platforms/web/WebPlatformNext.ts +57 -0
  458. package/src/core/platforms/web/lib/ImageWorker.ts +192 -0
  459. package/src/core/platforms/web/lib/ImageWorkerDefault.ts +117 -0
  460. package/src/core/platforms/web/lib/ImageWorkerLegacy.ts +87 -0
  461. package/src/core/platforms/web/lib/ImageWorkerNoOptions.ts +99 -0
  462. package/src/core/platforms/web/lib/createImageBitmap.ts +40 -0
  463. package/src/core/platforms/web/lib/textureCompression.ts +391 -0
  464. package/src/core/{lib → platforms/web/lib}/textureSvg.ts +66 -78
  465. package/src/core/platforms/web/lib/utils.ts +105 -0
  466. package/src/core/renderers/CoreContextTexture.ts +44 -43
  467. package/src/core/renderers/CoreRenderOp.ts +22 -22
  468. package/src/core/renderers/CoreRenderer.ts +71 -110
  469. package/src/core/renderers/CoreShaderNode.ts +202 -175
  470. package/src/core/renderers/CoreShaderProgram.ts +23 -23
  471. package/src/core/renderers/canvas/CanvasRenderer.ts +258 -302
  472. package/src/core/renderers/canvas/CanvasShaderNode.ts +95 -96
  473. package/src/core/renderers/canvas/CanvasTexture.ts +160 -156
  474. package/src/core/renderers/webgl/SdfRenderOp.ts +106 -0
  475. package/src/core/renderers/webgl/WebGlCtxRenderTexture.ts +89 -86
  476. package/src/core/renderers/webgl/WebGlCtxSubTexture.ts +95 -50
  477. package/src/core/renderers/webgl/WebGlCtxTexture.ts +350 -298
  478. package/src/core/renderers/webgl/WebGlRenderer.ts +726 -747
  479. package/src/core/renderers/webgl/WebGlShaderNode.ts +430 -435
  480. package/src/core/renderers/webgl/WebGlShaderProgram.ts +362 -318
  481. package/src/core/renderers/webgl/internal/BufferCollection.ts +54 -54
  482. package/src/core/renderers/webgl/internal/RendererUtils.ts +151 -155
  483. package/src/core/renderers/webgl/internal/ShaderUtils.ts +283 -281
  484. package/src/core/renderers/webgl/internal/WebGlUtils.ts +35 -35
  485. package/src/core/shaders/canvas/Border.ts +132 -78
  486. package/src/core/shaders/canvas/HolePunch.ts +56 -62
  487. package/src/core/shaders/canvas/LinearGradient.ts +73 -71
  488. package/src/core/shaders/canvas/RadialGradient.ts +96 -99
  489. package/src/core/shaders/canvas/Rounded.ts +55 -55
  490. package/src/core/shaders/canvas/RoundedWithBorder.ts +122 -74
  491. package/src/core/shaders/canvas/RoundedWithBorderAndShadow.ts +136 -90
  492. package/src/core/shaders/canvas/RoundedWithShadow.ts +71 -70
  493. package/src/core/shaders/canvas/Shadow.ts +54 -52
  494. package/src/core/shaders/canvas/utils/render.ts +160 -151
  495. package/src/core/shaders/templates/BorderTemplate.ts +145 -115
  496. package/src/core/shaders/templates/HolePunchTemplate.ts +82 -82
  497. package/src/core/shaders/templates/LinearGradientTemplate.ts +71 -71
  498. package/src/core/shaders/templates/RadialGradientTemplate.ts +83 -81
  499. package/src/core/shaders/templates/RoundedTemplate.ts +98 -98
  500. package/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.ts +38 -38
  501. package/src/core/shaders/templates/RoundedWithBorderTemplate.ts +35 -35
  502. package/src/core/shaders/templates/RoundedWithShadowTemplate.ts +35 -35
  503. package/src/core/shaders/templates/ShadowTemplate.ts +106 -106
  504. package/src/core/shaders/utils.ts +46 -46
  505. package/src/core/shaders/webgl/Border.ts +169 -116
  506. package/src/core/shaders/webgl/Default.ts +88 -89
  507. package/src/core/shaders/webgl/DefaultBatched.ts +129 -129
  508. package/src/core/shaders/webgl/HolePunch.ts +75 -75
  509. package/src/core/shaders/webgl/LinearGradient.ts +106 -82
  510. package/src/core/shaders/webgl/RadialGradient.ts +108 -85
  511. package/src/core/shaders/webgl/Rounded.ts +115 -117
  512. package/src/core/shaders/webgl/RoundedWithBorder.ts +210 -155
  513. package/src/core/shaders/webgl/RoundedWithBorderAndShadow.ts +234 -175
  514. package/src/core/shaders/webgl/RoundedWithShadow.ts +96 -98
  515. package/src/core/shaders/webgl/SdfShader.ts +122 -134
  516. package/src/core/shaders/webgl/Shadow.ts +121 -115
  517. package/src/core/text-rendering/CanvasFontHandler.ts +304 -0
  518. package/src/core/text-rendering/CanvasTextRenderer.ts +255 -0
  519. package/src/core/text-rendering/SdfFontHandler.ts +584 -0
  520. package/src/core/text-rendering/SdfTextRenderer.ts +403 -0
  521. package/src/core/text-rendering/TextLayoutEngine.ts +672 -0
  522. package/src/core/text-rendering/TextRenderer.ts +444 -0
  523. package/src/core/text-rendering/Utils.ts +99 -0
  524. package/src/core/text-rendering/tests/TextLayoutEngine.test.ts +453 -0
  525. package/src/core/textures/ColorTexture.ts +104 -102
  526. package/src/core/textures/ImageTexture.ts +292 -418
  527. package/src/core/textures/NoiseTexture.ts +106 -104
  528. package/src/core/textures/RenderTexture.ts +87 -85
  529. package/src/core/textures/SubTexture.ts +184 -205
  530. package/src/core/textures/Texture.ts +524 -372
  531. package/src/core/utils.ts +229 -227
  532. package/src/env.d.ts +7 -7
  533. package/src/main-api/INode.ts +100 -100
  534. package/src/main-api/Inspector.ts +1278 -569
  535. package/src/main-api/Renderer.ts +1030 -818
  536. package/src/main-api/utils.ts +45 -45
  537. package/src/utils.ts +220 -267
  538. package/COPYING +0 -1
  539. package/src/core/lib/ImageWorker.ts +0 -286
  540. package/src/core/lib/textureCompression.ts +0 -152
  541. package/src/core/lib/validateImageBitmap.ts +0 -87
  542. package/src/core/renderers/canvas/internal/C2DShaderUtils.ts +0 -220
  543. package/src/core/renderers/webgl/WebGlRenderOp.ts +0 -161
  544. package/src/core/text-rendering/TextTextureRendererUtils.ts +0 -263
  545. package/src/core/text-rendering/TrFontManager.ts +0 -183
  546. package/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.ts +0 -176
  547. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.ts +0 -139
  548. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.test.ts +0 -173
  549. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.ts +0 -171
  550. package/src/core/text-rendering/font-face-types/TrFontFace.ts +0 -187
  551. package/src/core/text-rendering/font-face-types/WebTrFontFace.ts +0 -94
  552. package/src/core/text-rendering/font-face-types/utils.ts +0 -39
  553. package/src/core/text-rendering/renderers/CanvasTextRenderer.ts +0 -514
  554. package/src/core/text-rendering/renderers/LightningTextTextureRenderer.ts +0 -863
  555. package/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.ts +0 -793
  556. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.test.ts +0 -48
  557. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.ts +0 -66
  558. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.ts +0 -52
  559. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.ts +0 -117
  560. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.test.ts +0 -133
  561. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.ts +0 -497
  562. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.test.ts +0 -49
  563. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.ts +0 -52
  564. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.test.ts +0 -205
  565. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.ts +0 -93
  566. package/src/core/text-rendering/renderers/TextRenderer.ts +0 -567
@@ -20,9 +20,8 @@ import { assertTruthy, setPremultiplyMode } from '../utils.js';
20
20
  import { AnimationManager } from './animations/AnimationManager.js';
21
21
  import { UpdateType, CoreNode, CoreNodeRenderState, } from './CoreNode.js';
22
22
  import { CoreTextureManager } from './CoreTextureManager.js';
23
- import { TrFontManager } from './text-rendering/TrFontManager.js';
24
23
  import { CoreShaderManager } from './CoreShaderManager.js';
25
- import { TextRenderer, } from './text-rendering/renderers/TextRenderer.js';
24
+ import {} from './text-rendering/TextRenderer.js';
26
25
  import { EventEmitter } from '../common/EventEmitter.js';
27
26
  import { ContextSpy } from './lib/ContextSpy.js';
28
27
  import { TextureMemoryManager, } from './TextureMemoryManager.js';
@@ -39,8 +38,8 @@ export class Stage {
39
38
  animationManager;
40
39
  txManager;
41
40
  txMemManager;
42
- fontManager;
43
- textRenderers;
41
+ textRenderers = {};
42
+ fontHandlers = {};
44
43
  shManager;
45
44
  renderer;
46
45
  root;
@@ -49,12 +48,20 @@ export class Stage {
49
48
  defShaderNode = null;
50
49
  strictBound;
51
50
  preloadBound;
52
- strictBounds;
53
51
  defaultTexture = null;
54
52
  pixelRatio;
55
53
  bufferMemory = 2e6;
56
54
  platform;
57
55
  calculateTextureCoord;
56
+ /**
57
+ * Target frame time in milliseconds (calculated from targetFPS)
58
+ *
59
+ * @remarks
60
+ * This is pre-calculated to avoid recalculating on every frame.
61
+ * - 0 means no throttling (use display refresh rate)
62
+ * - >0 means throttle to this frame time (1000 / targetFPS)
63
+ */
64
+ targetFrameTime = 0;
58
65
  /**
59
66
  * Renderer Event Bus for the Stage to emit events onto
60
67
  *
@@ -65,40 +72,46 @@ export class Stage {
65
72
  */
66
73
  eventBus;
67
74
  /// State
75
+ startTime = 0;
68
76
  deltaTime = 0;
69
77
  lastFrameTime = 0;
70
78
  currentFrameTime = 0;
79
+ elapsedTime = 0;
80
+ timedNodes = [];
71
81
  clrColor = 0x00000000;
72
82
  fpsNumFrames = 0;
73
83
  fpsElapsedTime = 0;
74
84
  numQuadsRendered = 0;
75
85
  renderRequested = false;
76
86
  frameEventQueue = [];
77
- fontResolveMap = {};
78
- /// Debug data
87
+ // Font resolve optimisation flags
88
+ hasOnlyOneFontEngine;
89
+ hasOnlyCanvasFontEngine;
90
+ hasCanvasEngine;
91
+ singleFontEngine = null;
92
+ singleFontHandler = null;
93
+ // Debug data
79
94
  contextSpy = null;
80
95
  /**
81
96
  * Stage constructor
82
97
  */
83
98
  constructor(options) {
84
99
  this.options = options;
85
- const { canvas, clearColor, appWidth, appHeight, boundsMargin, enableContextSpy, forceWebGL2, numImageWorkers, textureMemory, renderEngine, fontEngines, createImageBitmapSupport, platform, } = options;
100
+ const { clearColor, appWidth, appHeight, boundsMargin, enableContextSpy, numImageWorkers, textureMemory, renderEngine, fontEngines, createImageBitmapSupport, platform, maxRetryCount, } = options;
86
101
  assertTruthy(platform !== null, 'A CorePlatform is not provided in the options');
87
102
  this.platform = platform;
103
+ this.startTime = platform.getTimeStamp();
88
104
  this.eventBus = options.eventBus;
105
+ // Calculate target frame time from targetFPS option
106
+ this.targetFrameTime = options.targetFPS > 0 ? 1000 / options.targetFPS : 0;
89
107
  this.txManager = new CoreTextureManager(this, {
90
108
  numImageWorkers,
91
109
  createImageBitmapSupport,
92
- });
93
- // Wait for the Texture Manager to initialize
94
- // once it does, request a render
95
- this.txManager.on('initialized', () => {
96
- this.requestRender();
110
+ maxRetryCount,
97
111
  });
98
112
  this.txMemManager = new TextureMemoryManager(this, textureMemory);
99
113
  this.animationManager = new AnimationManager();
100
114
  this.contextSpy = enableContextSpy ? new ContextSpy() : null;
101
- this.strictBounds = options.strictBounds;
102
115
  let bm = [0, 0, 0, 0];
103
116
  if (boundsMargin) {
104
117
  bm = Array.isArray(boundsMargin)
@@ -112,12 +125,7 @@ export class Stage {
112
125
  this.clrColor = clearColor;
113
126
  this.pixelRatio =
114
127
  options.devicePhysicalPixelRatio * options.deviceLogicalPixelRatio;
115
- this.renderer = new renderEngine({
116
- stage: this,
117
- canvas,
118
- contextSpy: this.contextSpy,
119
- forceWebGL2,
120
- });
128
+ this.renderer = new renderEngine(this);
121
129
  this.shManager = new CoreShaderManager(this);
122
130
  this.defShaderNode = this.renderer.getDefaultShaderNode();
123
131
  this.calculateTextureCoord = this.renderer.getTextureCoords !== undefined;
@@ -127,34 +135,78 @@ export class Stage {
127
135
  // Must do this after renderer is created
128
136
  this.txManager.renderer = this.renderer;
129
137
  // Create text renderers
130
- this.textRenderers = {};
131
- fontEngines.forEach((fontEngineConstructor) => {
132
- const fontEngineInstance = new fontEngineConstructor(this);
133
- const className = fontEngineInstance.type;
134
- if (className === 'sdf' && renderMode === 'canvas') {
135
- console.warn('SdfTextRenderer is not compatible with Canvas renderer. Skipping...');
136
- return;
137
- }
138
- if (fontEngineInstance instanceof TextRenderer) {
139
- if (className === 'canvas') {
140
- this.textRenderers['canvas'] =
141
- fontEngineInstance;
138
+ this.hasOnlyOneFontEngine = fontEngines.length === 1;
139
+ this.hasOnlyCanvasFontEngine =
140
+ fontEngines.length === 1 && fontEngines[0].type === 'canvas';
141
+ this.hasCanvasEngine = false;
142
+ this.singleFontEngine = this.hasOnlyOneFontEngine
143
+ ? fontEngines[0]
144
+ : null;
145
+ this.singleFontHandler = this.hasOnlyOneFontEngine
146
+ ? fontEngines[0]?.font
147
+ : null;
148
+ if (this.singleFontEngine === null) {
149
+ // Multiple font engines case
150
+ // Filter out incompatible engines first
151
+ const compatibleEngines = fontEngines.filter((fontEngine) => {
152
+ const type = fontEngine.type;
153
+ if (type === 'sdf' && renderMode === 'canvas') {
154
+ console.warn('MsdfTextRenderer is not compatible with Canvas renderer. Skipping...');
155
+ return false;
142
156
  }
143
- else if (className === 'sdf') {
144
- this.textRenderers['sdf'] = fontEngineInstance;
157
+ if (type === 'canvas') {
158
+ this.hasCanvasEngine = true;
145
159
  }
160
+ return true;
161
+ });
162
+ // Sort engines: SDF first, Canvas last, others in between
163
+ const sortedEngines = compatibleEngines.sort((a, b) => {
164
+ if (a.type === 'sdf')
165
+ return -1;
166
+ if (b.type === 'sdf')
167
+ return 1;
168
+ if (a.type === 'canvas')
169
+ return 1;
170
+ if (b.type === 'canvas')
171
+ return -1;
172
+ return 0;
173
+ });
174
+ // Initialize engines in sorted order
175
+ sortedEngines.forEach((fontEngine) => {
176
+ const type = fontEngine.type;
177
+ // Add to map for type-based access
178
+ this.textRenderers[type] = fontEngine;
179
+ this.textRenderers[type].init(this);
180
+ this.fontHandlers[type] = fontEngine.font;
181
+ });
182
+ }
183
+ else {
184
+ // Single font engine case - initialize it directly
185
+ const fontEngine = this.singleFontEngine;
186
+ const type = fontEngine.type;
187
+ // Check compatibility
188
+ if (type === 'sdf' && renderMode === 'canvas') {
189
+ console.warn('MsdfTextRenderer is not compatible with Canvas renderer. Skipping...');
146
190
  }
147
- });
191
+ else {
192
+ if (type === 'canvas') {
193
+ this.hasCanvasEngine = true;
194
+ }
195
+ // Add to map for type-based access
196
+ this.textRenderers[type] = fontEngine;
197
+ this.fontHandlers[type] = fontEngine.font;
198
+ this.textRenderers[type].init(this);
199
+ }
200
+ }
148
201
  if (Object.keys(this.textRenderers).length === 0) {
149
202
  console.warn('No text renderers available. Your text will not render.');
150
203
  }
151
- this.fontManager = new TrFontManager(this.textRenderers);
152
204
  // create root node
153
205
  const rootNode = new CoreNode(this, {
154
206
  x: 0,
155
207
  y: 0,
156
- width: appWidth,
157
- height: appHeight,
208
+ w: appWidth,
209
+ h: appHeight,
158
210
  alpha: 1,
159
211
  autosize: false,
160
212
  boundsMargin: null,
@@ -169,7 +221,6 @@ export class Stage {
169
221
  colorBl: 0x00000000,
170
222
  colorBr: 0x00000000,
171
223
  zIndex: 0,
172
- zIndexLocked: 0,
173
224
  scaleX: 1,
174
225
  scaleY: 1,
175
226
  mountX: 0,
@@ -186,7 +237,6 @@ export class Stage {
186
237
  rtt: false,
187
238
  src: null,
188
239
  scale: 1,
189
- strictBounds: this.strictBounds,
190
240
  });
191
241
  this.root = rootNode;
192
242
  // execute platform start loop
@@ -199,10 +249,24 @@ export class Stage {
199
249
  this.renderer.updateClearColor(color);
200
250
  this.renderRequested = true;
201
251
  }
252
+ /**
253
+ * Update the target frame time based on the current targetFPS setting
254
+ *
255
+ * @remarks
256
+ * This should be called whenever the targetFPS option is changed
257
+ * to ensure targetFrameTime stays in sync.
258
+ * targetFPS of 0 means no throttling (targetFrameTime = 0)
259
+ * targetFPS > 0 means throttle to 1000/targetFPS milliseconds
260
+ */
261
+ updateTargetFrameTime() {
262
+ this.targetFrameTime =
263
+ this.options.targetFPS > 0 ? 1000 / this.options.targetFPS : 0;
264
+ }
202
265
  updateFrameTime() {
203
266
  const newFrameTime = this.platform.getTimeStamp();
204
267
  this.lastFrameTime = this.currentFrameTime;
205
268
  this.currentFrameTime = newFrameTime;
269
+ this.elapsedTime = newFrameTime - this.startTime;
206
270
  this.deltaTime = !this.lastFrameTime
207
271
  ? 100 / 6
208
272
  : newFrameTime - this.lastFrameTime;
@@ -227,7 +291,7 @@ export class Stage {
227
291
  // Mark the default texture as ALWAYS renderable
228
292
  // This prevents it from ever being cleaned up.
229
293
  // Fixes https://github.com/lightning-js/renderer/issues/262
230
- this.defaultTexture.setRenderableOwner(this, true);
294
+ this.defaultTexture.setRenderableOwner('stage', true);
231
295
  // When the default texture is loaded, request a render in case the
232
296
  // RAF is paused. Fixes: https://github.com/lightning-js/renderer/issues/123
233
297
  this.defaultTexture.once('loaded', () => {
@@ -263,18 +327,17 @@ export class Stage {
263
327
  if (root.updateType !== 0) {
264
328
  root.update(this.deltaTime, root.clippingRect);
265
329
  }
266
- // Process some textures
267
- this.txManager.processSome(this.options.textureProcessingTimeLimit);
330
+ // Process some textures asynchronously but don't block the frame
331
+ // Use a background task to prevent frame drops
332
+ if (this.txManager.hasUpdates() === true) {
333
+ this.txManager
334
+ .processSome(this.options.textureProcessingTimeLimit)
335
+ .catch((err) => {
336
+ console.error('Error processing textures:', err);
337
+ });
338
+ }
268
339
  // Reset render operations and clear the canvas
269
340
  renderer.reset();
270
- // Check if we need to cleanup textures
271
- if (txMemManager.criticalCleanupRequested === true) {
272
- txMemManager.cleanup(false);
273
- if (txMemManager.criticalCleanupRequested === true) {
274
- // If we still need to cleanup, request another but aggressive cleanup
275
- txMemManager.cleanup(true);
276
- }
277
- }
278
341
  // If we have RTT nodes draw them first
279
342
  // So we can use them as textures in the main scene
280
343
  if (renderer.rttNodes.length > 0) {
@@ -290,6 +353,18 @@ export class Stage {
290
353
  if (renderRequested === true) {
291
354
  this.renderRequested = false;
292
355
  }
356
+ if (this.timedNodes.length > 0) {
357
+ for (let key in this.timedNodes) {
358
+ if (this.timedNodes[key].isRenderable === true) {
359
+ this.requestRender();
360
+ break;
361
+ }
362
+ }
363
+ }
364
+ // Check if we need to cleanup textures
365
+ if (this.txMemManager.criticalCleanupRequested === true) {
366
+ this.txMemManager.cleanup();
367
+ }
293
368
  }
294
369
  /**
295
370
  * Queue an event to be emitted after the current/next frame is rendered
@@ -363,8 +438,7 @@ export class Stage {
363
438
  continue;
364
439
  }
365
440
  if (child.worldAlpha === 0 ||
366
- (child.strictBounds === true &&
367
- child.renderState === CoreNodeRenderState.OutOfBounds)) {
441
+ child.renderState === CoreNodeRenderState.OutOfBounds) {
368
442
  continue;
369
443
  }
370
444
  this.addQuads(child);
@@ -387,87 +461,68 @@ export class Stage {
387
461
  * @returns
388
462
  */
389
463
  resolveTextRenderer(trProps, textRendererOverride = null) {
390
- const fontCacheString = `${trProps.fontFamily}${trProps.fontStyle}${trProps.fontWeight}${trProps.fontStretch}${textRendererOverride ? textRendererOverride : ''}`;
391
- // check our resolve cache first
392
- if (this.fontResolveMap[fontCacheString] !== undefined) {
393
- return this.fontResolveMap[fontCacheString];
394
- }
395
- // Resolve the text renderer
396
- let rendererId = textRendererOverride;
397
- let overrideFallback = false;
398
- // Check if the override is valid (if one is provided)
399
- if (rendererId) {
400
- const possibleRenderer = this.textRenderers[rendererId];
401
- if (!possibleRenderer) {
402
- console.warn(`Text renderer override '${rendererId}' not found.`);
403
- rendererId = null;
404
- overrideFallback = true;
405
- }
406
- else if (!possibleRenderer.canRenderFont(trProps)) {
407
- console.warn(`Cannot use override text renderer '${rendererId}' for font`, trProps);
408
- rendererId = null;
409
- overrideFallback = true;
464
+ // If we have an overide, return it
465
+ if (textRendererOverride !== null) {
466
+ const overrideKey = String(textRendererOverride);
467
+ if (this.textRenderers[overrideKey] === undefined) {
468
+ console.warn(`Text renderer override '${overrideKey}' not found.`);
469
+ return null;
410
470
  }
471
+ return this.textRenderers[overrideKey];
411
472
  }
412
- if (!rendererId) {
413
- // Iterate through the text renderers and find the first one that can render the font
414
- for (const [trId, tr] of Object.entries(this.textRenderers)) {
415
- if (tr.canRenderFont(trProps)) {
416
- rendererId = trId;
417
- break;
418
- }
473
+ // If we have only one font engine early return it
474
+ if (this.singleFontEngine !== null) {
475
+ // If we have only one font engine and its the canvas engine, we can just return it
476
+ if (this.hasOnlyCanvasFontEngine === true) {
477
+ return this.singleFontEngine;
419
478
  }
420
- if (!rendererId && this.textRenderers.canvas !== undefined) {
421
- // If no renderer can be found, use the canvas renderer
422
- rendererId = 'canvas';
479
+ // If we have only one font engine and it can render the font, return it
480
+ if (this.singleFontHandler?.canRenderFont(trProps) === true) {
481
+ return this.singleFontEngine;
423
482
  }
483
+ // If we have only one font engine and it cannot render the font, return null
484
+ console.warn(`Text renderer cannot render font`, trProps);
485
+ return null;
424
486
  }
425
- if (overrideFallback) {
426
- console.warn(`Falling back to text renderer ${String(rendererId)}`);
487
+ // Multi font handling - If we have multiple font engines, we need to resolve the best one
488
+ // First check SDF
489
+ if (this.fontHandlers['sdf']?.canRenderFont(trProps) === true) {
490
+ return this.textRenderers.sdf || null;
427
491
  }
428
- if (!rendererId) {
429
- // silently fail if no renderer can be found, the error is already created
430
- // at the constructor level
431
- return null;
492
+ // If we have a canvas engine, we can return it (it can render all fonts)
493
+ if (this.hasCanvasEngine === true) {
494
+ return this.textRenderers.canvas || null;
432
495
  }
433
- // By now we are guaranteed to have a valid rendererId (at least Canvas);
434
- const resolvedTextRenderer = this.textRenderers[rendererId];
435
- assertTruthy(resolvedTextRenderer, 'resolvedTextRenderer undefined');
436
- // cache the resolved renderer for future use with these trProps
437
- this.fontResolveMap[fontCacheString] = resolvedTextRenderer;
438
- // Need to explicitly cast to TextRenderer because TS doesn't like
439
- // the covariant state argument in the setter method map
440
- return resolvedTextRenderer;
496
+ // If we have no font engines, return null
497
+ console.warn('No text renderers available. Your text will not render.');
498
+ return null;
441
499
  }
442
500
  createNode(props) {
443
501
  const resolvedProps = this.resolveNodeDefaults(props);
444
502
  return new CoreNode(this, resolvedProps);
445
503
  }
446
504
  createTextNode(props) {
447
- const fontSize = props.fontSize ?? 16;
505
+ const fontSize = props.fontSize || 16;
448
506
  const resolvedProps = Object.assign(this.resolveNodeDefaults(props), {
449
- text: props.text ?? '',
450
- textRendererOverride: props.textRendererOverride ?? null,
507
+ text: props.text || '',
508
+ textRendererOverride: props.textRendererOverride || null,
451
509
  fontSize,
452
- fontFamily: props.fontFamily ?? 'sans-serif',
453
- fontStyle: props.fontStyle ?? 'normal',
454
- fontWeight: props.fontWeight ?? 'normal',
455
- fontStretch: props.fontStretch ?? 'normal',
456
- textAlign: props.textAlign ?? 'left',
457
- contain: props.contain ?? 'none',
458
- scrollable: props.scrollable ?? false,
459
- scrollY: props.scrollY ?? 0,
460
- offsetY: props.offsetY ?? 0,
461
- letterSpacing: props.letterSpacing ?? 0,
462
- lineHeight: props.lineHeight, // `undefined` is a valid value
463
- maxLines: props.maxLines ?? 0,
464
- textBaseline: props.textBaseline ?? 'alphabetic',
465
- verticalAlign: props.verticalAlign ?? 'middle',
466
- overflowSuffix: props.overflowSuffix ?? '...',
467
- wordBreak: props.wordBreak ?? 'normal',
468
- debug: props.debug ?? {},
510
+ fontFamily: props.fontFamily || 'sans-serif',
511
+ fontStyle: props.fontStyle || 'normal',
512
+ textAlign: props.textAlign || 'left',
513
+ offsetY: props.offsetY || 0,
514
+ letterSpacing: props.letterSpacing || 0,
515
+ lineHeight: props.lineHeight || 1.2,
516
+ maxLines: props.maxLines || 0,
517
+ verticalAlign: props.verticalAlign || 'top',
518
+ overflowSuffix: props.overflowSuffix || '...',
519
+ wordBreak: props.wordBreak || 'break-word',
520
+ contain: props.contain || 'none',
521
+ maxWidth: props.maxWidth || 0,
522
+ maxHeight: props.maxHeight || 0,
523
+ forceLoad: props.forceLoad || false,
469
524
  });
470
- const resolvedTextRenderer = this.resolveTextRenderer(resolvedProps, props.textRendererOverride);
525
+ const resolvedTextRenderer = this.resolveTextRenderer(resolvedProps, resolvedProps.textRendererOverride);
471
526
  if (!resolvedTextRenderer) {
472
527
  throw new Error(`No compatible text renderer found for ${resolvedProps.fontFamily}`);
473
528
  }
@@ -516,7 +571,8 @@ export class Stage {
516
571
  if (nodes.length === 0) {
517
572
  return null;
518
573
  }
519
- let topNode = nodes[0];
574
+ //get last node in array (as top node)
575
+ let topNode = nodes[nodes.length - 1];
520
576
  for (let i = 0; i < nodes.length; i++) {
521
577
  if (nodes[i].zIndex > topNode.zIndex) {
522
578
  topNode = nodes[i];
@@ -524,6 +580,28 @@ export class Stage {
524
580
  }
525
581
  return topNode || null;
526
582
  }
583
+ /**
584
+ * add node to timeNodes arrays
585
+ * @param node
586
+ * @returns
587
+ */
588
+ trackTimedNode(node) {
589
+ if (this.timedNodes[node.id] !== undefined) {
590
+ return;
591
+ }
592
+ this.timedNodes[node.id] = node;
593
+ }
594
+ /**
595
+ * remove node from timeNodes arrays
596
+ * @param node
597
+ * @returns
598
+ */
599
+ untrackTimedNode(node) {
600
+ if (this.timedNodes[node.id] === undefined) {
601
+ return;
602
+ }
603
+ delete this.timedNodes[node.id];
604
+ }
527
605
  /**
528
606
  * Resolves the default property values for a Node
529
607
  *
@@ -536,15 +614,16 @@ export class Stage {
536
614
  * @returns
537
615
  */
538
616
  resolveNodeDefaults(props) {
617
+ const { colorTop: top, colorBottom: bottom, colorLeft: left, colorRight: right, } = props;
539
618
  const color = props.color ?? 0xffffffff;
540
- const colorTop = props.colorTop ?? color;
541
- const colorBottom = props.colorBottom ?? color;
542
- const colorLeft = props.colorLeft ?? color;
543
- const colorRight = props.colorRight ?? color;
544
- const colorTl = props.colorTl ?? colorTop ?? colorLeft ?? color;
545
- const colorTr = props.colorTr ?? colorTop ?? colorRight ?? color;
546
- const colorBl = props.colorBl ?? colorBottom ?? colorLeft ?? color;
547
- const colorBr = props.colorBr ?? colorBottom ?? colorRight ?? color;
619
+ const colorTop = top ?? color;
620
+ const colorBottom = bottom ?? color;
621
+ const colorLeft = left ?? color;
622
+ const colorRight = right ?? color;
623
+ const colorTl = props.colorTl ?? top ?? left ?? color;
624
+ const colorTr = props.colorTr ?? top ?? right ?? color;
625
+ const colorBl = props.colorBl ?? bottom ?? left ?? color;
626
+ const colorBr = props.colorBr ?? bottom ?? right ?? color;
548
627
  const scale = props.scale ?? null;
549
628
  const mount = props.mount ?? 0;
550
629
  const pivot = props.pivot ?? 0.5;
@@ -554,8 +633,8 @@ export class Stage {
554
633
  return {
555
634
  x: props.x ?? 0,
556
635
  y: props.y ?? 0,
557
- width: props.width ?? 0,
558
- height: props.height ?? 0,
636
+ w: props.w ?? 0,
637
+ h: props.h ?? 0,
559
638
  alpha: props.alpha ?? 1,
560
639
  autosize: props.autosize ?? false,
561
640
  boundsMargin: props.boundsMargin ?? null,
@@ -570,7 +649,6 @@ export class Stage {
570
649
  colorBl,
571
650
  colorBr,
572
651
  zIndex: props.zIndex ?? 0,
573
- zIndexLocked: props.zIndexLocked ?? 0,
574
652
  parent: props.parent ?? null,
575
653
  texture: props.texture ?? null,
576
654
  textureOptions: props.textureOptions ?? {},
@@ -594,7 +672,6 @@ export class Stage {
594
672
  data,
595
673
  imageType: props.imageType,
596
674
  interactive: props.interactive ?? false,
597
- strictBounds: props.strictBounds ?? this.strictBounds,
598
675
  };
599
676
  }
600
677
  /**
@@ -603,8 +680,8 @@ export class Stage {
603
680
  * @remarks
604
681
  * This method is used to cleanup orphaned textures that are no longer in use.
605
682
  */
606
- cleanup(aggressive) {
607
- this.txMemManager.cleanup(aggressive);
683
+ cleanup(full = false) {
684
+ this.txMemManager.cleanup(full);
608
685
  }
609
686
  set clearColor(value) {
610
687
  this.renderer.updateClearColor(value);
@@ -614,5 +691,28 @@ export class Stage {
614
691
  get clearColor() {
615
692
  return this.clrColor;
616
693
  }
694
+ /**
695
+ * Load a font using a specific text renderer type
696
+ *
697
+ * @remarks
698
+ * This method allows consumers to explicitly load fonts for a specific
699
+ * text renderer type (e.g., 'canvas', 'sdf'). Consumers must specify
700
+ * the renderer type to ensure fonts are loaded with the correct pipeline.
701
+ *
702
+ * For Canvas fonts, provide fontUrl (e.g., .ttf, .woff, .woff2)
703
+ * For SDF fonts, provide atlasUrl (image) and atlasDataUrl (JSON glyph data)
704
+ *
705
+ * @param rendererType - The type of text renderer ('canvas', 'sdf', etc.)
706
+ * @param options - Font loading options specific to the renderer type
707
+ * @returns Promise that resolves when the font is loaded
708
+ */
709
+ async loadFont(rendererType, options) {
710
+ const rendererTypeKey = String(rendererType);
711
+ const fontHandler = this.fontHandlers[rendererTypeKey];
712
+ if (!fontHandler) {
713
+ throw new Error(`Font handler for renderer type '${rendererTypeKey}' not found. Available types: ${Object.keys(this.fontHandlers).join(', ')}`);
714
+ }
715
+ return fontHandler.loadFont(this, options);
716
+ }
617
717
  }
618
718
  //# sourceMappingURL=Stage.js.map