@lightningjs/renderer 3.0.0-beta13 → 3.0.0-beta15

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 (278) hide show
  1. package/dist/exports/index.d.ts +1 -0
  2. package/dist/exports/index.js.map +1 -1
  3. package/dist/src/core/CoreNode.d.ts +1 -1
  4. package/dist/src/core/CoreTextNode.d.ts +0 -2
  5. package/dist/src/core/CoreTextNode.js +4 -16
  6. package/dist/src/core/CoreTextNode.js.map +1 -1
  7. package/dist/src/core/Stage.js +2 -3
  8. package/dist/src/core/Stage.js.map +1 -1
  9. package/dist/src/core/TextureError.d.ts +11 -0
  10. package/dist/src/core/TextureError.js +37 -0
  11. package/dist/src/core/TextureError.js.map +1 -0
  12. package/dist/src/core/animations/CoreAnimation.d.ts +3 -2
  13. package/dist/src/core/animations/CoreAnimation.js +3 -2
  14. package/dist/src/core/animations/CoreAnimation.js.map +1 -1
  15. package/dist/src/core/lib/WebGlContextWrapper.d.ts +6 -6
  16. package/dist/src/core/lib/WebGlContextWrapper.js +2 -2
  17. package/dist/src/core/lib/WebGlContextWrapper.js.map +1 -1
  18. package/dist/src/core/lib/textureCompression.js +1 -1
  19. package/dist/src/core/lib/textureCompression.js.map +1 -1
  20. package/dist/src/core/platform.d.ts +10 -0
  21. package/dist/src/core/platform.js +81 -0
  22. package/dist/src/core/platform.js.map +1 -0
  23. package/dist/src/core/renderers/CoreShader.d.ts +9 -0
  24. package/{src/core/text-rendering/sdf/index.ts → dist/src/core/renderers/CoreShader.js} +11 -3
  25. package/dist/src/core/renderers/CoreShader.js.map +1 -0
  26. package/dist/src/core/renderers/canvas/CanvasCoreRenderer.d.ts +33 -0
  27. package/dist/src/core/renderers/canvas/CanvasCoreRenderer.js +250 -0
  28. package/dist/src/core/renderers/canvas/CanvasCoreRenderer.js.map +1 -0
  29. package/dist/src/core/renderers/canvas/CanvasCoreTexture.d.ts +17 -0
  30. package/dist/src/core/renderers/canvas/CanvasCoreTexture.js +125 -0
  31. package/dist/src/core/renderers/canvas/CanvasCoreTexture.js.map +1 -0
  32. package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.d.ts +14 -0
  33. package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js +138 -0
  34. package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js.map +1 -0
  35. package/dist/src/core/renderers/canvas/internal/ColorUtils.d.ts +19 -0
  36. package/dist/src/core/renderers/canvas/internal/ColorUtils.js +58 -0
  37. package/dist/src/core/renderers/canvas/internal/ColorUtils.js.map +1 -0
  38. package/dist/src/core/renderers/canvas/shaders/UnsupportedShader.d.ts +10 -0
  39. package/dist/src/core/renderers/canvas/shaders/UnsupportedShader.js +43 -0
  40. package/dist/src/core/renderers/canvas/shaders/UnsupportedShader.js.map +1 -0
  41. package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.d.ts +12 -0
  42. package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js +58 -0
  43. package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js.map +1 -0
  44. package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.d.ts +9 -0
  45. package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.js +38 -0
  46. package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.js.map +1 -0
  47. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.d.ts +65 -0
  48. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js +269 -0
  49. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js.map +1 -0
  50. package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.d.ts +34 -0
  51. package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js +114 -0
  52. package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js.map +1 -0
  53. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.d.ts +133 -0
  54. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js +616 -0
  55. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js.map +1 -0
  56. package/dist/src/core/renderers/webgl/WebGlCoreShader.d.ts +83 -0
  57. package/dist/src/core/renderers/webgl/WebGlCoreShader.js +233 -0
  58. package/dist/src/core/renderers/webgl/WebGlCoreShader.js.map +1 -0
  59. package/dist/src/core/renderers/webgl/WebGlShaderProgram.d.ts +1 -1
  60. package/dist/src/core/renderers/webgl/WebGlShaderProgram.js +4 -5
  61. package/dist/src/core/renderers/webgl/WebGlShaderProgram.js.map +1 -1
  62. package/dist/src/core/renderers/webgl/shaders/DefaultShader.d.ts +9 -0
  63. package/dist/src/core/renderers/webgl/shaders/DefaultShader.js +87 -0
  64. package/dist/src/core/renderers/webgl/shaders/DefaultShader.js.map +1 -0
  65. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.d.ts +10 -0
  66. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js +119 -0
  67. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js.map +1 -0
  68. package/dist/src/core/renderers/webgl/shaders/DynamicShader.d.ts +29 -0
  69. package/dist/src/core/renderers/webgl/shaders/DynamicShader.js +413 -0
  70. package/dist/src/core/renderers/webgl/shaders/DynamicShader.js.map +1 -0
  71. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.d.ts +28 -0
  72. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js +131 -0
  73. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js.map +1 -0
  74. package/dist/src/core/renderers/webgl/shaders/SdfShader.d.ts +47 -0
  75. package/dist/src/core/renderers/webgl/shaders/SdfShader.js +160 -0
  76. package/dist/src/core/renderers/webgl/shaders/SdfShader.js.map +1 -0
  77. package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.d.ts +31 -0
  78. package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js +71 -0
  79. package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js.map +1 -0
  80. package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.d.ts +30 -0
  81. package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js +58 -0
  82. package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js.map +1 -0
  83. package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.d.ts +31 -0
  84. package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js +71 -0
  85. package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js.map +1 -0
  86. package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.d.ts +31 -0
  87. package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js +71 -0
  88. package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js.map +1 -0
  89. package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.d.ts +31 -0
  90. package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js +71 -0
  91. package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js.map +1 -0
  92. package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.d.ts +9 -0
  93. package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.js +136 -0
  94. package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.js.map +1 -0
  95. package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.d.ts +36 -0
  96. package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js +85 -0
  97. package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js.map +1 -0
  98. package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.d.ts +45 -0
  99. package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.js +104 -0
  100. package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.js.map +1 -0
  101. package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.d.ts +22 -0
  102. package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js +45 -0
  103. package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js.map +1 -0
  104. package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.d.ts +58 -0
  105. package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.js +80 -0
  106. package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.js.map +1 -0
  107. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.d.ts +35 -0
  108. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js +129 -0
  109. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js.map +1 -0
  110. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.d.ts +39 -0
  111. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js +116 -0
  112. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js.map +1 -0
  113. package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.d.ts +61 -0
  114. package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js +127 -0
  115. package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js.map +1 -0
  116. package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.d.ts +40 -0
  117. package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js +71 -0
  118. package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js.map +1 -0
  119. package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.d.ts +115 -0
  120. package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.js +61 -0
  121. package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.js.map +1 -0
  122. package/dist/src/core/shaders/canvas/RoundedWithBorder.js +1 -1
  123. package/dist/src/core/shaders/canvas/RoundedWithBorder.js.map +1 -1
  124. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js +1 -1
  125. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js.map +1 -1
  126. package/dist/src/core/shaders/webgl/LinearGradient.js +26 -3
  127. package/dist/src/core/shaders/webgl/LinearGradient.js.map +1 -1
  128. package/dist/src/core/shaders/webgl/RadialGradient.js +49 -27
  129. package/dist/src/core/shaders/webgl/RadialGradient.js.map +1 -1
  130. package/dist/src/core/shaders/webgl/SdfShader.d.ts +0 -2
  131. package/dist/src/core/shaders/webgl/SdfShader.js +1 -10
  132. package/dist/src/core/shaders/webgl/SdfShader.js.map +1 -1
  133. package/dist/src/core/text-rendering/CanvasFontHandler.d.ts +21 -3
  134. package/dist/src/core/text-rendering/CanvasFontHandler.js +94 -32
  135. package/dist/src/core/text-rendering/CanvasFontHandler.js.map +1 -1
  136. package/dist/src/core/text-rendering/CanvasTextRenderer.d.ts +2 -7
  137. package/dist/src/core/text-rendering/CanvasTextRenderer.js +51 -260
  138. package/dist/src/core/text-rendering/CanvasTextRenderer.js.map +1 -1
  139. package/dist/src/core/text-rendering/SdfFontHandler.d.ts +35 -5
  140. package/dist/src/core/text-rendering/SdfFontHandler.js +76 -56
  141. package/dist/src/core/text-rendering/SdfFontHandler.js.map +1 -1
  142. package/dist/src/core/text-rendering/SdfTextRenderer.d.ts +1 -1
  143. package/dist/src/core/text-rendering/SdfTextRenderer.js +38 -82
  144. package/dist/src/core/text-rendering/SdfTextRenderer.js.map +1 -1
  145. package/dist/src/core/text-rendering/TextLayoutEngine.d.ts +19 -0
  146. package/dist/src/core/text-rendering/{sdf/Utils.js → TextLayoutEngine.js} +125 -105
  147. package/dist/src/core/text-rendering/TextLayoutEngine.js.map +1 -0
  148. package/dist/src/core/text-rendering/TextRenderer.d.ts +30 -13
  149. package/dist/src/core/text-rendering/TextRenderingUtils.d.ts +12 -0
  150. package/dist/src/core/text-rendering/TextRenderingUtils.js +14 -0
  151. package/dist/src/core/text-rendering/TextRenderingUtils.js.map +1 -0
  152. package/dist/src/core/text-rendering/TextTextureRendererUtils.d.ts +72 -0
  153. package/dist/src/core/text-rendering/TextTextureRendererUtils.js +217 -0
  154. package/dist/src/core/text-rendering/TextTextureRendererUtils.js.map +1 -0
  155. package/dist/src/core/text-rendering/TrFontManager.d.ts +26 -0
  156. package/dist/src/core/text-rendering/TrFontManager.js +131 -0
  157. package/dist/src/core/text-rendering/TrFontManager.js.map +1 -0
  158. package/dist/src/core/text-rendering/Utils.d.ts +1 -42
  159. package/dist/src/core/text-rendering/Utils.js +4 -132
  160. package/dist/src/core/text-rendering/Utils.js.map +1 -1
  161. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.d.ts +39 -0
  162. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js +125 -0
  163. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js.map +1 -0
  164. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.d.ts +103 -0
  165. package/dist/src/core/text-rendering/{sdf/index.js → font-face-types/SdfTrFontFace/internal/FontShaper.js} +4 -3
  166. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.js.map +1 -0
  167. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.d.ts +62 -0
  168. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.js +88 -0
  169. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.js.map +1 -0
  170. package/dist/src/core/text-rendering/font-face-types/TrFontFace.d.ts +118 -0
  171. package/dist/src/core/text-rendering/font-face-types/TrFontFace.js +63 -0
  172. package/dist/src/core/text-rendering/font-face-types/TrFontFace.js.map +1 -0
  173. package/dist/src/core/text-rendering/font-face-types/WebTrFontFace.d.ts +14 -0
  174. package/dist/src/core/text-rendering/font-face-types/WebTrFontFace.js +66 -0
  175. package/dist/src/core/text-rendering/font-face-types/WebTrFontFace.js.map +1 -0
  176. package/dist/src/core/text-rendering/font-face-types/utils.d.ts +1 -0
  177. package/dist/src/core/text-rendering/font-face-types/utils.js +38 -0
  178. package/dist/src/core/text-rendering/font-face-types/utils.js.map +1 -0
  179. package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.d.ts +59 -0
  180. package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js +397 -0
  181. package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js.map +1 -0
  182. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.d.ts +120 -0
  183. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js +551 -0
  184. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js.map +1 -0
  185. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.d.ts +92 -0
  186. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js +607 -0
  187. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js.map +1 -0
  188. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.d.ts +12 -0
  189. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.js +61 -0
  190. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.js.map +1 -0
  191. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.d.ts +33 -0
  192. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.js +52 -0
  193. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.js.map +1 -0
  194. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.d.ts +13 -0
  195. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.js +32 -0
  196. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.js.map +1 -0
  197. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.d.ts +23 -0
  198. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.js +84 -0
  199. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.js.map +1 -0
  200. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.d.ts +4 -0
  201. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.js +34 -0
  202. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.js.map +1 -0
  203. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.d.ts +20 -0
  204. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js +308 -0
  205. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js.map +1 -0
  206. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.d.ts +10 -0
  207. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.js +40 -0
  208. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.js.map +1 -0
  209. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.d.ts +26 -0
  210. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.js +70 -0
  211. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.js.map +1 -0
  212. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.d.ts +16 -0
  213. package/dist/src/core/text-rendering/{canvas/Settings.js → renderers/SdfTextRenderer/internal/util.js} +22 -3
  214. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.js.map +1 -0
  215. package/dist/src/core/text-rendering/renderers/TextRenderer.d.ts +373 -0
  216. package/dist/src/core/text-rendering/renderers/TextRenderer.js +178 -0
  217. package/dist/src/core/text-rendering/renderers/TextRenderer.js.map +1 -0
  218. package/dist/src/core/utils.d.ts +2 -1
  219. package/dist/src/core/utils.js +1 -1
  220. package/dist/src/core/utils.js.map +1 -1
  221. package/dist/src/main-api/DynamicShaderController.d.ts +29 -0
  222. package/dist/src/main-api/DynamicShaderController.js +58 -0
  223. package/dist/src/main-api/DynamicShaderController.js.map +1 -0
  224. package/dist/src/main-api/Inspector.d.ts +124 -0
  225. package/dist/src/main-api/Inspector.js +283 -8
  226. package/dist/src/main-api/Inspector.js.map +1 -1
  227. package/dist/src/main-api/Renderer.d.ts +150 -26
  228. package/dist/src/main-api/Renderer.js +27 -25
  229. package/dist/src/main-api/Renderer.js.map +1 -1
  230. package/dist/src/main-api/ShaderController.d.ts +31 -0
  231. package/dist/src/main-api/ShaderController.js +37 -0
  232. package/dist/src/main-api/ShaderController.js.map +1 -0
  233. package/dist/tsconfig.dist.tsbuildinfo +1 -1
  234. package/exports/index.ts +1 -0
  235. package/package.json +14 -15
  236. package/src/core/CoreTextNode.ts +4 -22
  237. package/src/core/Stage.ts +2 -3
  238. package/src/core/animations/CoreAnimation.ts +8 -7
  239. package/src/core/lib/WebGlContextWrapper.ts +4 -3
  240. package/src/core/lib/textureCompression.ts +4 -2
  241. package/src/core/renderers/webgl/WebGlShaderProgram.ts +5 -6
  242. package/src/core/shaders/canvas/RoundedWithBorder.ts +1 -1
  243. package/src/core/shaders/canvas/RoundedWithBorderAndShadow.ts +1 -1
  244. package/src/core/shaders/webgl/LinearGradient.ts +26 -3
  245. package/src/core/shaders/webgl/RadialGradient.ts +50 -28
  246. package/src/core/shaders/webgl/SdfShader.ts +1 -12
  247. package/src/core/text-rendering/CanvasFontHandler.ts +136 -39
  248. package/src/core/text-rendering/CanvasTextRenderer.ts +75 -440
  249. package/src/core/text-rendering/SdfFontHandler.ts +94 -60
  250. package/src/core/text-rendering/SdfTextRenderer.ts +62 -116
  251. package/src/core/text-rendering/{sdf/Utils.ts → TextLayoutEngine.ts} +209 -143
  252. package/src/core/text-rendering/TextRenderer.ts +36 -13
  253. package/src/core/text-rendering/Utils.ts +5 -163
  254. package/src/core/text-rendering/{sdf/Utils.test.ts → tests/Canvas.test.ts} +98 -122
  255. package/src/core/text-rendering/tests/SdfTests.test.ts +414 -0
  256. package/src/core/utils.ts +9 -7
  257. package/src/main-api/Inspector.ts +502 -12
  258. package/src/main-api/Renderer.ts +158 -26
  259. package/dist/src/core/text-rendering/canvas/Settings.d.ts +0 -64
  260. package/dist/src/core/text-rendering/canvas/Settings.js.map +0 -1
  261. package/dist/src/core/text-rendering/canvas/Utils.d.ts +0 -20
  262. package/dist/src/core/text-rendering/canvas/Utils.js +0 -144
  263. package/dist/src/core/text-rendering/canvas/Utils.js.map +0 -1
  264. package/dist/src/core/text-rendering/canvas/calculateRenderInfo.d.ts +0 -60
  265. package/dist/src/core/text-rendering/canvas/calculateRenderInfo.js +0 -183
  266. package/dist/src/core/text-rendering/canvas/calculateRenderInfo.js.map +0 -1
  267. package/dist/src/core/text-rendering/canvas/draw.d.ts +0 -5
  268. package/dist/src/core/text-rendering/canvas/draw.js +0 -132
  269. package/dist/src/core/text-rendering/canvas/draw.js.map +0 -1
  270. package/dist/src/core/text-rendering/sdf/Utils.d.ts +0 -26
  271. package/dist/src/core/text-rendering/sdf/Utils.js.map +0 -1
  272. package/dist/src/core/text-rendering/sdf/index.d.ts +0 -1
  273. package/dist/src/core/text-rendering/sdf/index.js.map +0 -1
  274. package/src/core/text-rendering/canvas/Settings.ts +0 -99
  275. package/src/core/text-rendering/canvas/Utils.test.ts +0 -206
  276. package/src/core/text-rendering/canvas/Utils.ts +0 -178
  277. package/src/core/text-rendering/canvas/calculateRenderInfo.ts +0 -299
  278. package/src/core/text-rendering/canvas/draw.ts +0 -165
@@ -28,7 +28,7 @@ import type { TextureMemoryManagerSettings } from '../core/TextureMemoryManager.
28
28
  import type { TextRenderer } from '../core/text-rendering/TextRenderer.js';
29
29
  import type { CanvasRenderer } from '../core/renderers/canvas/CanvasRenderer.js';
30
30
  import type { WebGlRenderer } from '../core/renderers/webgl/WebGlRenderer.js';
31
- import type { Inspector } from './Inspector.js';
31
+ import type { Inspector, InspectorOptions } from './Inspector.js';
32
32
  import type { CoreShaderNode } from '../core/renderers/CoreShaderNode.js';
33
33
  import type {
34
34
  ExtractShaderProps,
@@ -38,6 +38,127 @@ import type {
38
38
  import { WebPlatform } from '../core/platforms/web/WebPlatform.js';
39
39
  import { Platform } from '../core/platforms/Platform.js';
40
40
 
41
+ /**
42
+ * FPS Update Event Data
43
+ *
44
+ * @category Events
45
+ * @example
46
+ * ```typescript
47
+ * renderer.on('fpsUpdate', (data) => {
48
+ * console.log(`Current FPS: ${data.fps}`);
49
+ * if (data.contextSpyData) {
50
+ * console.log('WebGL calls:', data.contextSpyData);
51
+ * }
52
+ * });
53
+ * ```
54
+ */
55
+ export interface RendererMainFpsUpdateEvent {
56
+ /** Current frames per second */
57
+ fps: number;
58
+ /** Context spy data (if enabled) - contains WebGL call statistics */
59
+ contextSpyData?: unknown;
60
+ }
61
+
62
+ /**
63
+ * Frame Tick Event Data
64
+ *
65
+ * @category Events
66
+ * @example
67
+ * ```typescript
68
+ * renderer.on('frameTick', (data) => {
69
+ * console.log(`Frame time: ${data.time}ms, delta: ${data.delta}ms`);
70
+ * });
71
+ * ```
72
+ */
73
+ export interface RendererMainFrameTickEvent {
74
+ /** Current timestamp */
75
+ time: number;
76
+ /** Time delta since last frame */
77
+ delta: number;
78
+ }
79
+
80
+ /**
81
+ * Quads Update Event Data
82
+ *
83
+ * @category Events
84
+ * @example
85
+ * ```typescript
86
+ * renderer.on('quadsUpdate', (data) => {
87
+ * console.log(`Rendered quads: ${data.quads}`);
88
+ * });
89
+ * ```
90
+ */
91
+ export interface RendererMainQuadsUpdateEvent {
92
+ /** Number of rendered quads */
93
+ quads: number;
94
+ }
95
+
96
+ /**
97
+ * Idle Event Data
98
+ *
99
+ * @category Events
100
+ * @remarks
101
+ * This event is emitted when the renderer has no scene updates to process.
102
+ * The event has no payload - use this for performance optimizations during idle periods.
103
+ *
104
+ * @example
105
+ * ```typescript
106
+ * renderer.on('idle', () => {
107
+ * // Renderer is idle - perfect time for cleanup, analytics, etc.
108
+ * console.log('Renderer is idle - no scene changes');
109
+ *
110
+ * // Example: Perform background tasks
111
+ * performBackgroundCleanup();
112
+ * sendAnalytics();
113
+ * });
114
+ * ```
115
+ */
116
+ export interface RendererMainIdleEvent {
117
+ /** This event has no payload - listen without parameters */
118
+ readonly __eventHasNoPayload?: never;
119
+ }
120
+
121
+ /**
122
+ * Critical Cleanup Event Data
123
+ *
124
+ * @category Events
125
+ * @example
126
+ * ```typescript
127
+ * renderer.on('criticalCleanup', (data) => {
128
+ * console.log(`Memory cleanup triggered!`);
129
+ * console.log(`Memory used: ${data.memUsed} bytes`);
130
+ * console.log(`Critical threshold: ${data.criticalThreshold} bytes`);
131
+ * });
132
+ * ```
133
+ */
134
+ export interface RendererMainCriticalCleanupEvent {
135
+ /** Memory used before cleanup (bytes) */
136
+ memUsed: number;
137
+ /** Critical threshold (bytes) */
138
+ criticalThreshold: number;
139
+ }
140
+
141
+ /**
142
+ * Critical Cleanup Failed Event Data
143
+ *
144
+ * @category Events
145
+ * @example
146
+ * ```typescript
147
+ * renderer.on('criticalCleanupFailed', (data) => {
148
+ * console.warn(`Memory cleanup failed!`);
149
+ * console.log(`Memory still used: ${data.memUsed} bytes`);
150
+ * console.log(`Critical threshold: ${data.criticalThreshold} bytes`);
151
+ * // Consider reducing texture usage or forcing cleanup
152
+ * });
153
+ * ```
154
+ */
155
+ export interface RendererMainCriticalCleanupFailedEvent {
156
+ /** Memory used after cleanup (bytes) */
157
+ memUsed: number;
158
+ /** Critical threshold (bytes) */
159
+ criticalThreshold: number;
160
+ }
161
+
41
162
  /**
42
163
  * Settings for the Renderer that can be updated during runtime.
43
164
  */
@@ -127,6 +248,15 @@ export interface RendererRuntimeSettings {
127
248
  */
128
249
  inspector: typeof Inspector | false;
129
250
 
251
+ /**
252
+ * Inspector Options
253
+ *
254
+ * @remarks
255
+ * Configuration options for the Inspector's performance monitoring features.
256
+ * Only used when inspector is enabled.
257
+ */
258
+ inspectorOptions?: Partial<InspectorOptions>;
259
+
130
260
  /**
131
261
  * Texture Processing Limit (in milliseconds)
132
262
  *
@@ -321,31 +451,32 @@ export type RendererMainSettings = RendererRuntimeSettings & {
321
451
  * );
322
452
  * ```
323
453
  *
324
- * ## Events
325
- * - `fpsUpdate`
326
- * - Emitted every `fpsUpdateInterval` milliseconds with the current FPS
327
- * - `frameTick`
328
- * - Emitted every frame tick
329
- * - `quadsUpdate`
330
- * - Emitted when number of quads rendered is updated
331
- * - `idle`
332
- * - Emitted when the renderer is idle (no changes to the scene
333
- * graph/animations running)
334
- * - `criticalCleanup`
335
- * - Emitted when the Texture Memory Manager Cleanup process is triggered
336
- * - Payload: { memUsed: number, criticalThreshold: number }
337
- * - `memUsed` - The amount of memory (in bytes) used by textures before the
338
- * cleanup process
339
- * - `criticalThreshold` - The critical threshold (in bytes)
340
- * - `criticalCleanupFailed`
341
- * - Emitted when the Texture Memory Manager Cleanup process is unable to free
342
- * up enough texture memory to reach below the critical threshold.
343
- * This can happen when there is not enough non-renderable textures to
344
- * free up.
345
- * - Payload (object with keys):
346
- * - `memUsed` - The amount of memory (in bytes) used by textures after
347
- * the cleanup process
348
- * - `criticalThreshold` - The critical threshold (in bytes)
454
+ * ## Event Handling
455
+ *
456
+ * Listen to events using the standard EventEmitter API:
457
+ * ```typescript
458
+ * renderer.on('fpsUpdate', (data: RendererMainFpsUpdateEvent) => {
459
+ * console.log(`FPS: ${data.fps}`);
460
+ * });
461
+ *
462
+ * renderer.on('idle', (data: RendererMainIdleEvent) => {
463
+ * // Renderer is idle - no scene changes
464
+ * });
465
+ * ```
466
+ *
467
+ * @see {@link RendererMainFpsUpdateEvent}
468
+ * @see {@link RendererMainFrameTickEvent}
469
+ * @see {@link RendererMainQuadsUpdateEvent}
470
+ * @see {@link RendererMainIdleEvent}
471
+ * @see {@link RendererMainCriticalCleanupEvent}
472
+ * @see {@link RendererMainCriticalCleanupFailedEvent}
473
+ *
474
+ * @fires RendererMain#fpsUpdate
475
+ * @fires RendererMain#frameTick
476
+ * @fires RendererMain#quadsUpdate
477
+ * @fires RendererMain#idle
478
+ * @fires RendererMain#criticalCleanup
479
+ * @fires RendererMain#criticalCleanupFailed
349
480
  */
350
481
  export class RendererMain extends EventEmitter {
351
482
  readonly root: INode;
@@ -386,6 +517,7 @@ export class RendererMain extends EventEmitter {
386
517
  enableContextSpy: settings.enableContextSpy ?? false,
387
518
  forceWebGL2: settings.forceWebGL2 ?? false,
388
519
  inspector: settings.inspector ?? false,
520
+ inspectorOptions: settings.inspectorOptions ?? {},
389
521
  renderEngine: settings.renderEngine,
390
522
  quadBufferSize: settings.quadBufferSize ?? 4 * 1024 * 1024,
391
523
  fontEngines: settings.fontEngines ?? [],
@@ -1,64 +0,0 @@
1
- import type { RGBA } from '../../lib/utils.js';
2
- /**
3
- * Text Overflow Values
4
- */
5
- export type TextOverflow = 'ellipsis' | 'clip' | (string & Record<never, never>);
6
- /***
7
- * Text Horizontal Align Values
8
- */
9
- export type TextAlign = 'left' | 'center' | 'right';
10
- /***
11
- * Text Baseline Values
12
- */
13
- export type TextBaseline = 'alphabetic' | 'top' | 'hanging' | 'middle' | 'ideographic' | 'bottom';
14
- /***
15
- * Text Vertical Align Values
16
- */
17
- export type TextVerticalAlign = 'top' | 'middle' | 'bottom';
18
- /**
19
- * Text Texture Settings
20
- */
21
- export interface Settings {
22
- w: number;
23
- h: number;
24
- text: string;
25
- fontStyle: string;
26
- fontSize: number;
27
- fontBaselineRatio: number;
28
- fontFamily: string | null;
29
- wordWrap: boolean;
30
- wordWrapWidth: number;
31
- wordBreak: 'normal' | 'break-all' | 'break-word';
32
- textOverflow: TextOverflow | null;
33
- lineHeight: number | null;
34
- textBaseline: TextBaseline;
35
- textAlign: TextAlign;
36
- verticalAlign: TextVerticalAlign;
37
- offsetY: number | null;
38
- maxLines: number;
39
- maxHeight: number | null;
40
- overflowSuffix: string;
41
- precision: number;
42
- textColor: RGBA;
43
- paddingLeft: number;
44
- paddingRight: number;
45
- shadow: boolean;
46
- shadowColor: RGBA;
47
- shadowOffsetX: number;
48
- shadowOffsetY: number;
49
- shadowBlur: number;
50
- highlight: boolean;
51
- highlightHeight: number;
52
- highlightColor: RGBA;
53
- highlightOffset: number;
54
- highlightPaddingLeft: number;
55
- highlightPaddingRight: number;
56
- letterSpacing: number;
57
- textIndent: number;
58
- cutSx: number;
59
- cutSy: number;
60
- cutEx: number;
61
- cutEy: number;
62
- advancedRenderer: boolean;
63
- textRenderIssueMargin: number;
64
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"Settings.js","sourceRoot":"","sources":["../../../../../src/core/text-rendering/canvas/Settings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG"}
@@ -1,20 +0,0 @@
1
- import type { NormalizedFontMetrics } from '../TextRenderer.js';
2
- import type { TextBaseline } from './Settings.js';
3
- export declare const measureText: (context: CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D, word: string, space?: number) => number;
4
- export declare const wrapWord: (context: CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D, word: string, wordWrapWidth: number, suffix: string, letterSpacing: number) => string;
5
- export declare const wrapText: (context: CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D, text: string, wordWrapWidth: number, letterSpacing: number, indent: number) => {
6
- l: string[];
7
- n: number[];
8
- };
9
- export declare const isNormalizedFontMetrics: (obj: unknown) => obj is NormalizedFontMetrics;
10
- /**
11
- * Calculate height for the canvas
12
- *
13
- * @param textBaseline
14
- * @param fontSize
15
- * @param lineHeight
16
- * @param numLines
17
- * @param offsetY
18
- * @returns
19
- */
20
- export declare const calcHeight: (textBaseline: TextBaseline, fontSize: number, lineHeight: number, numLines: number, offsetY: number) => number;
@@ -1,144 +0,0 @@
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 2025 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 { isZeroWidthSpace } from '../Utils.js';
20
- export const measureText = (context, word, space = 0) => {
21
- if (space === 0) {
22
- return context.measureText(word).width;
23
- }
24
- return word.split('').reduce((acc, char) => {
25
- if (isZeroWidthSpace(char) === true) {
26
- return acc;
27
- }
28
- return acc + context.measureText(char).width + space;
29
- }, 0);
30
- };
31
- // Helper functions
32
- export const wrapWord = (context, word, wordWrapWidth, suffix, letterSpacing) => {
33
- const suffixWidth = measureText(context, suffix, letterSpacing);
34
- const wordLen = word.length;
35
- const wordWidth = measureText(context, word, letterSpacing);
36
- if (wordWidth <= wordWrapWidth) {
37
- return word;
38
- }
39
- let cutoffIndex = Math.floor((wordWrapWidth * wordLen) / wordWidth);
40
- let truncWordWidth = measureText(context, word.substring(0, cutoffIndex), letterSpacing) +
41
- suffixWidth;
42
- if (truncWordWidth > wordWrapWidth) {
43
- while (cutoffIndex > 0) {
44
- truncWordWidth =
45
- measureText(context, word.substring(0, cutoffIndex), letterSpacing) +
46
- suffixWidth;
47
- if (truncWordWidth > wordWrapWidth) {
48
- cutoffIndex -= 1;
49
- }
50
- else {
51
- break;
52
- }
53
- }
54
- }
55
- else {
56
- while (cutoffIndex < wordLen) {
57
- truncWordWidth =
58
- measureText(context, word.substring(0, cutoffIndex), letterSpacing) +
59
- suffixWidth;
60
- if (truncWordWidth < wordWrapWidth) {
61
- cutoffIndex += 1;
62
- }
63
- else {
64
- cutoffIndex -= 1;
65
- break;
66
- }
67
- }
68
- }
69
- return (word.substring(0, cutoffIndex) +
70
- (wordWrapWidth >= suffixWidth ? suffix : ''));
71
- };
72
- export const wrapText = (context, text, wordWrapWidth, letterSpacing, indent) => {
73
- const spaceRegex = / |\u200B/g;
74
- const lines = text.split(/\r?\n/g);
75
- let allLines = [];
76
- const realNewlines = [];
77
- for (let i = 0; i < lines.length; i++) {
78
- const resultLines = [];
79
- let result = '';
80
- let spaceLeft = wordWrapWidth - indent;
81
- const line = lines[i] ?? '';
82
- const words = line.split(spaceRegex);
83
- const spaces = line.match(spaceRegex) || [];
84
- for (let j = 0; j < words.length; j++) {
85
- const space = spaces[j - 1] || '';
86
- const word = words[j] || '';
87
- const wordWidth = measureText(context, word, letterSpacing);
88
- const wordWidthWithSpace = wordWidth + measureText(context, space, letterSpacing);
89
- if (j === 0 || wordWidthWithSpace > spaceLeft) {
90
- if (j > 0) {
91
- resultLines.push(result);
92
- result = '';
93
- }
94
- result += word;
95
- spaceLeft = wordWrapWidth - wordWidth - (j === 0 ? indent : 0);
96
- }
97
- else {
98
- spaceLeft -= wordWidthWithSpace;
99
- // Don't add ZWSP to the output since it's invisible
100
- if (space !== '\u200B') {
101
- result += space + word;
102
- }
103
- else {
104
- result += word;
105
- }
106
- }
107
- }
108
- resultLines.push(result);
109
- result = '';
110
- allLines = allLines.concat(resultLines);
111
- if (i < lines.length - 1) {
112
- realNewlines.push(allLines.length);
113
- }
114
- }
115
- return { l: allLines, n: realNewlines };
116
- };
117
- export const isNormalizedFontMetrics = (obj) => {
118
- return (typeof obj === 'object' &&
119
- obj !== null &&
120
- 'ascender' in obj &&
121
- typeof obj.ascender === 'number' &&
122
- 'descender' in obj &&
123
- typeof obj.descender === 'number' &&
124
- 'lineGap' in obj &&
125
- typeof obj.lineGap === 'number');
126
- };
127
- /**
128
- * Calculate height for the canvas
129
- *
130
- * @param textBaseline
131
- * @param fontSize
132
- * @param lineHeight
133
- * @param numLines
134
- * @param offsetY
135
- * @returns
136
- */
137
- export const calcHeight = (textBaseline, fontSize, lineHeight, numLines, offsetY) => {
138
- const baselineOffset = textBaseline !== 'bottom' ? 0.5 * fontSize : 0;
139
- return (lineHeight * (numLines - 1) +
140
- baselineOffset +
141
- Math.max(lineHeight, fontSize) +
142
- offsetY);
143
- };
144
- //# sourceMappingURL=Utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Utils.js","sourceRoot":"","sources":["../../../../../src/core/text-rendering/canvas/Utils.ts"],"names":[],"mappings":"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"}
@@ -1,60 +0,0 @@
1
- import type { NormalizedFontMetrics, TextBaseline, TextVerticalAlign } from '../TextRenderer.js';
2
- import type { TextAlign, TextOverflow } from './Settings.js';
3
- export interface RenderInfo {
4
- lines: string[];
5
- precision: number;
6
- remainingText: string;
7
- moreTextLines: boolean;
8
- width: number;
9
- innerWidth: number;
10
- height: number;
11
- fontSize: number;
12
- cutSx: number;
13
- cutSy: number;
14
- cutEx: number;
15
- cutEy: number;
16
- lineHeight: number | null;
17
- defLineHeight: number;
18
- lineWidths: number[];
19
- offsetY: number;
20
- paddingLeft: number;
21
- paddingRight: number;
22
- letterSpacing: number;
23
- textIndent: number;
24
- metrics: NormalizedFontMetrics;
25
- text: string;
26
- fontStyle: string;
27
- fontBaselineRatio: number;
28
- fontFamily: string | null;
29
- wordWrap: boolean;
30
- wordWrapWidth: number;
31
- wordBreak: 'normal' | 'break-all' | 'break-word';
32
- textOverflow: TextOverflow | null;
33
- textBaseline: TextBaseline;
34
- textAlign: TextAlign;
35
- verticalAlign: TextVerticalAlign;
36
- maxLines: number;
37
- maxHeight: number | null;
38
- overflowSuffix: string;
39
- textColor: number;
40
- shadow: boolean;
41
- shadowColor: number;
42
- shadowOffsetX: number;
43
- shadowOffsetY: number;
44
- shadowBlur: number;
45
- highlight: boolean;
46
- highlightHeight: number;
47
- highlightColor: number;
48
- highlightOffset: number;
49
- highlightPaddingLeft: number;
50
- highlightPaddingRight: number;
51
- advancedRenderer: boolean;
52
- textRenderIssueMargin: number;
53
- }
54
- export interface LineType {
55
- text: string;
56
- x: number;
57
- y: number;
58
- w: number;
59
- }
60
- export declare function calculateRenderInfo(context: OffscreenCanvasRenderingContext2D | CanvasRenderingContext2D, renderInfo: RenderInfo): void;