@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
@@ -57,6 +57,37 @@ export interface SdfFontData {
57
57
  };
58
58
  lightningMetrics?: FontMetrics;
59
59
  }
60
+ /**
61
+ * @typedef {Object} SdfGlyph
62
+ * @property {number} id - Glyph ID
63
+ * @property {string} char - Character
64
+ * @property {number} x - Atlas x position
65
+ * @property {number} y - Atlas y position
66
+ * @property {number} width - Glyph width
67
+ * @property {number} height - Glyph height
68
+ * @property {number} xoffset - X offset
69
+ * @property {number} yoffset - Y offset
70
+ * @property {number} xadvance - Character advance width
71
+ * @property {number} page - Page number
72
+ * @property {number} chnl - Channel
73
+ */
74
+ /**
75
+ * @typedef {Object} KerningTable
76
+ * Fast lookup table for kerning values
77
+ */
78
+ type KerningTable = Record<number, Record<number, number | undefined> | undefined>;
79
+ /**
80
+ * @typedef {Object} SdfFontCache
81
+ * Cached font data for performance
82
+ */
83
+ export interface SdfFont {
84
+ data: SdfFontData;
85
+ glyphMap: Map<number, SdfFontData['chars'][0]>;
86
+ kernings: KerningTable;
87
+ atlasTexture: ImageTexture;
88
+ metrics: FontMetrics;
89
+ maxCharHeight: number;
90
+ }
60
91
  /**
61
92
  * Check if the SDF font handler can render a font
62
93
  * @param {TrProps} trProps - Text rendering properties
@@ -103,10 +134,7 @@ export declare const isFontLoaded: (fontFamily: string) => boolean;
103
134
  * Get normalized font metrics for a font family
104
135
  */
105
136
  export declare const getFontMetrics: (fontFamily: string, fontSize: number) => NormalizedFontMetrics;
106
- /**
107
- * Set font metrics for a font family
108
- */
109
- export declare const setFontMetrics: (fontFamily: string, metrics: NormalizedFontMetrics) => void;
137
+ export declare const processFontMetrics: (fontFamily: string, fontSize: number, metrics: FontMetrics) => NormalizedFontMetrics;
110
138
  /**
111
139
  * Get glyph data for a character in a specific font
112
140
  * @param {string} fontFamily - Font family name
@@ -133,7 +161,7 @@ export declare const getAtlas: (fontFamily: string) => ImageTexture | null;
133
161
  * @param {string} fontFamily - Font family name
134
162
  * @returns {SdfFontData|null} Font data or null
135
163
  */
136
- export declare const getFontData: (fontFamily: string) => SdfFontData | null;
164
+ export declare const getFontData: (fontFamily: string) => SdfFont | undefined;
137
165
  /**
138
166
  * Get maximum character height for a font family
139
167
  * @param {string} fontFamily - Font family name
@@ -150,3 +178,5 @@ export declare const getLoadedFonts: () => string[];
150
178
  * @param {string} fontFamily - Font family name
151
179
  */
152
180
  export declare const unloadFont: (fontFamily: string) => void;
181
+ export declare const measureText: (text: string, fontFamily: string, letterSpacing: number) => number;
182
+ export {};
@@ -17,20 +17,14 @@
17
17
  * limitations under the License.
18
18
  */
19
19
  import { UpdateType } from '../CoreNode.js';
20
+ import { hasZeroWidthSpace } from './Utils.js';
21
+ import { normalizeFontMetrics } from './TextLayoutEngine.js';
20
22
  //global state variables for SdfFontHandler
21
- const fontCache = Object.create(null);
22
- const loadedFonts = new Set();
23
+ const fontCache = new Map();
23
24
  const fontLoadPromises = new Map();
25
+ const normalizedMetrics = new Map();
24
26
  const nodesWaitingForFont = Object.create(null);
25
27
  let initialized = false;
26
- /**
27
- * Normalize font metrics to be in the range of 0 to 1
28
- */
29
- const normalizeMetrics = (metrics) => ({
30
- ascender: metrics.ascender / metrics.unitsPerEm,
31
- descender: metrics.descender / metrics.unitsPerEm,
32
- lineGap: metrics.lineGap / metrics.unitsPerEm,
33
- });
34
28
  /**
35
29
  * Build kerning lookup table for fast access
36
30
  * @param {Array} kernings - Kerning data from font
@@ -105,34 +99,27 @@ const processFontData = (fontFamily, fontData, atlasTexture, metrics) => {
105
99
  }
106
100
  i++;
107
101
  }
108
- // Determine metrics
109
- let normalizedMetrics;
110
- if (metrics !== undefined) {
111
- normalizedMetrics = normalizeMetrics(metrics);
112
- }
113
- else if (fontData.lightningMetrics !== undefined) {
114
- normalizedMetrics = normalizeMetrics(fontData.lightningMetrics);
115
- }
116
- else {
102
+ if (metrics === undefined && fontData.lightningMetrics === undefined) {
117
103
  console.warn(`Font metrics not found for SDF font ${fontFamily}. ` +
118
104
  'Make sure you are using the latest version of the Lightning ' +
119
105
  '3 msdf-generator tool to generate your SDF fonts. Using default metrics.');
120
- // Use default metrics
121
- normalizedMetrics = {
122
- ascender: 0.8,
123
- descender: -0.2,
124
- lineGap: 0.2,
125
- };
126
106
  }
107
+ metrics = metrics ||
108
+ fontData.lightningMetrics || {
109
+ ascender: 800,
110
+ descender: -200,
111
+ lineGap: 200,
112
+ unitsPerEm: 1000,
113
+ };
127
114
  // Cache processed data
128
- fontCache[fontFamily] = {
115
+ fontCache.set(fontFamily, {
129
116
  data: fontData,
130
117
  glyphMap,
131
118
  kernings,
132
119
  atlasTexture,
133
- metrics: normalizedMetrics,
120
+ metrics,
134
121
  maxCharHeight,
135
- };
122
+ });
136
123
  };
137
124
  /**
138
125
  * Check if the SDF font handler can render a font
@@ -153,7 +140,7 @@ export const canRenderFont = (trProps) => {
153
140
  export const loadFont = async (stage, options) => {
154
141
  const { fontFamily, atlasUrl, atlasDataUrl, metrics } = options;
155
142
  // Early return if already loaded
156
- if (loadedFonts.has(fontFamily) === true) {
143
+ if (fontCache.get(fontFamily) !== undefined) {
157
144
  return;
158
145
  }
159
146
  // Early return if already loading
@@ -192,7 +179,6 @@ export const loadFont = async (stage, options) => {
192
179
  if (atlasTexture.state === 'loaded') {
193
180
  // If already loaded, process immediately
194
181
  processFontData(fontFamily, fontData, atlasTexture, metrics);
195
- loadedFonts.add(fontFamily);
196
182
  fontLoadPromises.delete(fontFamily);
197
183
  for (let key in nwff) {
198
184
  nwff[key].setUpdateType(UpdateType.Local);
@@ -203,8 +189,7 @@ export const loadFont = async (stage, options) => {
203
189
  atlasTexture.on('loaded', () => {
204
190
  // Process and cache font data
205
191
  processFontData(fontFamily, fontData, atlasTexture, metrics);
206
- // Mark as loaded
207
- loadedFonts.add(fontFamily);
192
+ // remove from promises
208
193
  fontLoadPromises.delete(fontFamily);
209
194
  for (let key in nwff) {
210
195
  nwff[key].setUpdateType(UpdateType.Local);
@@ -270,25 +255,24 @@ export const type = 'sdf';
270
255
  * Check if a font is already loaded by font family
271
256
  */
272
257
  export const isFontLoaded = (fontFamily) => {
273
- return loadedFonts.has(fontFamily);
258
+ return fontCache.has(fontFamily);
274
259
  };
275
260
  /**
276
261
  * Get normalized font metrics for a font family
277
262
  */
278
- export const getFontMetrics = (fontFamily,
279
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
280
- fontSize) => {
281
- const cache = fontCache[fontFamily];
282
- return cache ? cache.metrics : { ascender: 0, descender: 0, lineGap: 0 };
283
- };
284
- /**
285
- * Set font metrics for a font family
286
- */
287
- export const setFontMetrics = (fontFamily, metrics) => {
288
- const cache = fontCache[fontFamily];
289
- if (cache !== undefined) {
290
- cache.metrics = metrics;
263
+ export const getFontMetrics = (fontFamily, fontSize) => {
264
+ const out = normalizedMetrics.get(fontFamily);
265
+ if (out !== undefined) {
266
+ return out;
291
267
  }
268
+ let metrics = fontCache.get(fontFamily).metrics;
269
+ return processFontMetrics(fontFamily, fontSize, metrics);
270
+ };
271
+ export const processFontMetrics = (fontFamily, fontSize, metrics) => {
272
+ const label = fontFamily + fontSize;
273
+ const normalized = normalizeFontMetrics(metrics, fontSize);
274
+ normalizedMetrics.set(label, normalized);
275
+ return normalized;
292
276
  };
293
277
  /**
294
278
  * Get glyph data for a character in a specific font
@@ -297,7 +281,7 @@ export const setFontMetrics = (fontFamily, metrics) => {
297
281
  * @returns {Object|null} Glyph data or null if not found
298
282
  */
299
283
  export const getGlyph = (fontFamily, codepoint) => {
300
- const cache = fontCache[fontFamily];
284
+ const cache = fontCache.get(fontFamily);
301
285
  if (cache === undefined)
302
286
  return null;
303
287
  return cache.glyphMap.get(codepoint) || cache.glyphMap.get(63) || null; // 63 = '?'
@@ -310,7 +294,7 @@ export const getGlyph = (fontFamily, codepoint) => {
310
294
  * @returns {number} Kerning value or 0
311
295
  */
312
296
  export const getKerning = (fontFamily, firstGlyph, secondGlyph) => {
313
- const cache = fontCache[fontFamily];
297
+ const cache = fontCache.get(fontFamily);
314
298
  if (cache === undefined)
315
299
  return 0;
316
300
  const seconds = cache.kernings[secondGlyph];
@@ -322,7 +306,7 @@ export const getKerning = (fontFamily, firstGlyph, secondGlyph) => {
322
306
  * @returns {ImageTexture|null} Atlas texture or null
323
307
  */
324
308
  export const getAtlas = (fontFamily) => {
325
- const cache = fontCache[fontFamily];
309
+ const cache = fontCache.get(fontFamily);
326
310
  return cache !== undefined ? cache.atlasTexture : null;
327
311
  };
328
312
  /**
@@ -331,8 +315,7 @@ export const getAtlas = (fontFamily) => {
331
315
  * @returns {SdfFontData|null} Font data or null
332
316
  */
333
317
  export const getFontData = (fontFamily) => {
334
- const cache = fontCache[fontFamily];
335
- return cache !== undefined ? cache.data : null;
318
+ return fontCache.get(fontFamily);
336
319
  };
337
320
  /**
338
321
  * Get maximum character height for a font family
@@ -340,7 +323,7 @@ export const getFontData = (fontFamily) => {
340
323
  * @returns {number} Max character height or 0
341
324
  */
342
325
  export const getMaxCharHeight = (fontFamily) => {
343
- const cache = fontCache[fontFamily];
326
+ const cache = fontCache.get(fontFamily);
344
327
  return cache !== undefined ? cache.maxCharHeight : 0;
345
328
  };
346
329
  /**
@@ -348,21 +331,58 @@ export const getMaxCharHeight = (fontFamily) => {
348
331
  * @returns {string[]} Array of font family names
349
332
  */
350
333
  export const getLoadedFonts = () => {
351
- return Array.from(loadedFonts);
334
+ return Array.from(fontCache.keys());
352
335
  };
353
336
  /**
354
337
  * Unload a font and free resources
355
338
  * @param {string} fontFamily - Font family name
356
339
  */
357
340
  export const unloadFont = (fontFamily) => {
358
- const cache = fontCache[fontFamily];
341
+ const cache = fontCache.get(fontFamily);
359
342
  if (cache !== undefined) {
360
343
  // Free texture if needed
361
344
  if (typeof cache.atlasTexture.free === 'function') {
362
345
  cache.atlasTexture.free();
363
346
  }
364
- delete fontCache[fontFamily];
365
- loadedFonts.delete(fontFamily);
347
+ fontCache.delete(fontFamily);
348
+ }
349
+ };
350
+ export const measureText = (text, fontFamily, letterSpacing) => {
351
+ if (text.length === 1) {
352
+ const char = text.charAt(0);
353
+ const codepoint = text.codePointAt(0);
354
+ if (codepoint === undefined)
355
+ return 0;
356
+ if (hasZeroWidthSpace(char) === true)
357
+ return 0;
358
+ const glyph = getGlyph(fontFamily, codepoint);
359
+ if (glyph === null)
360
+ return 0;
361
+ return glyph.xadvance + letterSpacing;
362
+ }
363
+ let width = 0;
364
+ let prevCodepoint = 0;
365
+ for (let i = 0; i < text.length; i++) {
366
+ const char = text.charAt(i);
367
+ const codepoint = text.codePointAt(i);
368
+ if (codepoint === undefined)
369
+ continue;
370
+ // Skip zero-width spaces in width calculations
371
+ if (hasZeroWidthSpace(char)) {
372
+ continue;
373
+ }
374
+ const glyph = getGlyph(fontFamily, codepoint);
375
+ if (glyph === null)
376
+ continue;
377
+ let advance = glyph.xadvance;
378
+ // Add kerning if there's a previous character
379
+ if (prevCodepoint !== 0) {
380
+ const kerning = getKerning(fontFamily, prevCodepoint, codepoint);
381
+ advance += kerning;
382
+ }
383
+ width += advance + letterSpacing;
384
+ prevCodepoint = codepoint;
366
385
  }
386
+ return width;
367
387
  };
368
388
  //# sourceMappingURL=SdfFontHandler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SdfFontHandler.js","sourceRoot":"","sources":["../../../../src/core/text-rendering/SdfFontHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SdfFontHandler.js","sourceRoot":"","sources":["../../../../src/core/text-rendering/SdfFontHandler.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ import type { TextLayout } from './TextRenderer.js';
9
9
  declare const SdfTextRenderer: {
10
10
  type: "sdf";
11
11
  font: FontHandler;
12
- renderText: (stage: Stage, props: CoreTextNodeProps) => TextRenderInfo;
12
+ renderText: (props: CoreTextNodeProps) => TextRenderInfo;
13
13
  addQuads: (layout?: TextLayout) => Float32Array | null;
14
14
  renderQuads: (renderer: CoreRenderer, layout: TextLayout, vertexBuffer: Float32Array, renderProps: TextRenderProps) => void;
15
15
  init: (stage: Stage) => void;
@@ -16,14 +16,14 @@
16
16
  * See the License for the specific language governing permissions and
17
17
  * limitations under the License.
18
18
  */
19
- import { isZeroWidthSpace } from './Utils.js';
19
+ import { hasZeroWidthSpace } from './Utils.js';
20
20
  import * as SdfFontHandler from './SdfFontHandler.js';
21
21
  import { WebGlRenderer } from '../renderers/webgl/WebGlRenderer.js';
22
22
  import { WebGlRenderOp } from '../renderers/webgl/WebGlRenderOp.js';
23
23
  import { Sdf } from '../shaders/webgl/SdfShader.js';
24
24
  import { BufferCollection } from '../renderers/webgl/internal/BufferCollection.js';
25
25
  import { mergeColorAlpha } from '../../utils.js';
26
- import { wrapText, measureLines } from './sdf/index.js';
26
+ import { mapTextLayout } from './TextLayoutEngine.js';
27
27
  // Each glyph requires 6 vertices (2 triangles) with 4 floats each (x, y, u, v)
28
28
  const FLOATS_PER_VERTEX = 4;
29
29
  const VERTICES_PER_GLYPH = 6;
@@ -45,7 +45,7 @@ const font = SdfFontHandler;
45
45
  * @param props - Text rendering properties
46
46
  * @returns Object containing ImageData and dimensions
47
47
  */
48
- const renderText = (stage, props) => {
48
+ const renderText = (props) => {
49
49
  // Early return if no text
50
50
  if (props.text.length === 0) {
51
51
  return {
@@ -55,7 +55,7 @@ const renderText = (stage, props) => {
55
55
  }
56
56
  // Get font cache for this font family
57
57
  const fontData = SdfFontHandler.getFontData(props.fontFamily);
58
- if (fontData === null) {
58
+ if (fontData === undefined) {
59
59
  // Font not loaded, return empty result
60
60
  return {
61
61
  width: 0,
@@ -66,6 +66,8 @@ const renderText = (stage, props) => {
66
66
  const layout = generateTextLayout(props, fontData);
67
67
  // For SDF renderer, ImageData is null since we render via WebGL
68
68
  return {
69
+ remainingLines: 0,
70
+ hasRemainingText: false,
69
71
  width: layout.width,
70
72
  height: layout.height,
71
73
  layout, // Cache layout for addQuads
@@ -142,7 +144,6 @@ const addQuads = (layout) => {
142
144
  const renderQuads = (renderer, layout, vertexBuffer, renderProps) => {
143
145
  const fontFamily = renderProps.fontFamily;
144
146
  const color = renderProps.color;
145
- const offsetY = renderProps.offsetY;
146
147
  const worldAlpha = renderProps.worldAlpha;
147
148
  const globalTransform = renderProps.globalTransform;
148
149
  const atlasTexture = SdfFontHandler.getAtlas(fontFamily);
@@ -190,9 +191,7 @@ const renderQuads = (renderer, layout, vertexBuffer, renderProps) => {
190
191
  transform: globalTransform,
191
192
  color: mergeColorAlpha(color, worldAlpha),
192
193
  size: layout.fontScale, // Use proper font scaling in shader
193
- scrollY: offsetY || 0,
194
194
  distanceRange: layout.distanceRange,
195
- debug: false, // Disable debug mode
196
195
  },
197
196
  sdfBuffers: webGlBuffers,
198
197
  shader: sdfShader,
@@ -214,85 +213,42 @@ const renderQuads = (renderer, layout, vertexBuffer, renderProps) => {
214
213
  /**
215
214
  * Generate complete text layout with glyph positioning for caching
216
215
  */
217
- const generateTextLayout = (props, fontData) => {
218
- const commonFontData = fontData.common;
219
- const text = props.text;
216
+ const generateTextLayout = (props, fontCache) => {
220
217
  const fontSize = props.fontSize;
221
- const letterSpacing = props.letterSpacing;
222
218
  const fontFamily = props.fontFamily;
223
- const textAlign = props.textAlign;
224
- const maxWidth = props.maxWidth;
225
- const maxHeight = props.maxHeight;
226
- const maxLines = props.maxLines;
227
- const overflowSuffix = props.overflowSuffix;
228
- const wordBreak = props.wordBreak;
229
- // Use the font's design size for proper scaling
230
- const designLineHeight = commonFontData.lineHeight;
219
+ const lineHeight = props.lineHeight;
220
+ const metrics = SdfFontHandler.getFontMetrics(fontFamily, fontSize);
221
+ const verticalAlign = props.verticalAlign;
222
+ const fontData = fontCache.data;
223
+ const commonFontData = fontData.common;
231
224
  const designFontSize = fontData.info.size;
232
- const lineHeight = props.lineHeight || (designLineHeight * fontSize) / designFontSize;
233
225
  const atlasWidth = commonFontData.scaleW;
234
226
  const atlasHeight = commonFontData.scaleH;
235
227
  // Calculate the pixel scale from design units to pixels
236
- const finalScale = fontSize / designFontSize;
237
- // Calculate design letter spacing
238
- const designLetterSpacing = (letterSpacing * designFontSize) / fontSize;
239
- // Determine text wrapping behavior based on contain mode
240
- const shouldWrapText = maxWidth > 0;
241
- const heightConstraint = maxHeight > 0;
242
- // Calculate maximum lines constraint from height if needed
243
- let effectiveMaxLines = maxLines;
244
- if (heightConstraint === true) {
245
- const maxLinesFromHeight = Math.floor(maxHeight / (lineHeight * finalScale));
246
- if (effectiveMaxLines === 0 || maxLinesFromHeight < effectiveMaxLines) {
247
- effectiveMaxLines = maxLinesFromHeight;
248
- }
249
- }
250
- const hasMaxLines = effectiveMaxLines > 0;
251
- // Split text into lines based on wrapping constraints
252
- const [lines, remainingLines, remainingText] = shouldWrapText
253
- ? wrapText(text, fontFamily, finalScale, maxWidth, letterSpacing, overflowSuffix, wordBreak, effectiveMaxLines, hasMaxLines)
254
- : measureLines(text.split('\n'), fontFamily, letterSpacing, finalScale, effectiveMaxLines, hasMaxLines);
228
+ const fontScale = fontSize / designFontSize;
229
+ const letterSpacing = props.letterSpacing / fontScale;
230
+ const maxWidth = props.maxWidth / fontScale;
231
+ const maxHeight = props.maxHeight;
232
+ const [lines, remainingLines, hasRemainingText, bareLineHeight, lineHeightPx, effectiveWidth, effectiveHeight,] = mapTextLayout(SdfFontHandler.measureText, metrics, props.text, props.textAlign, verticalAlign, fontFamily, lineHeight, props.overflowSuffix, props.wordBreak, letterSpacing, props.maxLines, maxWidth, maxHeight);
233
+ const lineAmount = lines.length;
255
234
  const glyphs = [];
256
- let maxWidthFound = 0;
235
+ let currentX = 0;
257
236
  let currentY = 0;
258
- for (let i = 0; i < lines.length; i++) {
259
- if (lines[i][1] > maxWidthFound) {
260
- maxWidthFound = lines[i][1];
261
- }
262
- }
263
- // Second pass: Generate glyph layouts with proper alignment
264
- let lineIndex = 0;
265
- const linesLength = lines.length;
266
- while (lineIndex < linesLength) {
267
- const [line, lineWidth] = lines[lineIndex];
268
- lineIndex++;
269
- // Calculate line X offset based on text alignment
270
- let lineXOffset = 0;
271
- if (textAlign === 'center') {
272
- const availableWidth = shouldWrapText
273
- ? maxWidth / finalScale
274
- : maxWidthFound;
275
- lineXOffset = (availableWidth - lineWidth) / 2;
276
- }
277
- else if (textAlign === 'right') {
278
- const availableWidth = shouldWrapText
279
- ? maxWidth / finalScale
280
- : maxWidthFound;
281
- lineXOffset = availableWidth - lineWidth;
282
- }
283
- let currentX = lineXOffset;
284
- let charIndex = 0;
285
- const lineLength = line.length;
237
+ for (let i = 0; i < lineAmount; i++) {
238
+ const line = lines[i];
239
+ const textLine = line[0];
240
+ const textLineLength = textLine.length;
286
241
  let prevCodepoint = 0;
287
- while (charIndex < lineLength) {
288
- const char = line.charAt(charIndex);
289
- const codepoint = char.codePointAt(0);
290
- charIndex++;
291
- if (codepoint === undefined) {
242
+ currentX = line[2];
243
+ //convert Y coord to vertex value
244
+ currentY = line[3] / fontScale;
245
+ for (let j = 0; j < textLineLength; j++) {
246
+ const char = textLine.charAt(j);
247
+ if (hasZeroWidthSpace(char) === true) {
292
248
  continue;
293
249
  }
294
- // Skip zero-width spaces for rendering but keep them in the text flow
295
- if (isZeroWidthSpace(char)) {
250
+ const codepoint = char.codePointAt(0);
251
+ if (codepoint === undefined) {
296
252
  continue;
297
253
  }
298
254
  // Get glyph data from font handler
@@ -324,19 +280,19 @@ const generateTextLayout = (props, fontData) => {
324
280
  };
325
281
  glyphs.push(glyphLayout);
326
282
  // Advance position with letter spacing (in design units)
327
- currentX += advance + designLetterSpacing;
283
+ currentX += advance + letterSpacing;
328
284
  prevCodepoint = codepoint;
329
285
  }
330
- currentY += designLineHeight;
286
+ currentY += lineHeightPx;
331
287
  }
332
288
  // Convert final dimensions to pixel space for the layout
333
289
  return {
334
290
  glyphs,
335
- distanceRange: finalScale * fontData.distanceField.distanceRange,
336
- width: Math.ceil(maxWidthFound * finalScale),
337
- height: Math.ceil(designLineHeight * lines.length * finalScale),
338
- fontScale: finalScale,
339
- lineHeight,
291
+ distanceRange: fontScale * fontData.distanceField.distanceRange,
292
+ width: maxWidth || effectiveWidth * fontScale,
293
+ height: maxHeight || effectiveHeight,
294
+ fontScale: fontScale,
295
+ lineHeight: lineHeightPx,
340
296
  fontFamily,
341
297
  };
342
298
  };
@@ -1 +1 @@
1
- {"version":3,"file":"SdfTextRenderer.js","sourceRoot":"","sources":["../../../../src/core/text-rendering/SdfTextRenderer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SdfTextRenderer.js","sourceRoot":"","sources":["../../../../src/core/text-rendering/SdfTextRenderer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { FontMetrics, MeasureTextFn, NormalizedFontMetrics, TextLayoutStruct, WrappedLinesStruct } from './TextRenderer.js';
2
+ export declare const defaultFontMetrics: FontMetrics;
3
+ export declare const normalizeFontMetrics: (metrics: FontMetrics, fontSize: number) => NormalizedFontMetrics;
4
+ export declare const mapTextLayout: (measureText: MeasureTextFn, metrics: NormalizedFontMetrics, text: string, textAlign: string, verticalAlign: string, fontFamily: string, lineHeight: number, overflowSuffix: string, wordBreak: string, letterSpacing: number, maxLines: number, maxWidth: number, maxHeight: number) => TextLayoutStruct;
5
+ export declare const measureLines: (measureText: MeasureTextFn, lines: string[], fontFamily: string, letterSpacing: number, maxLines: number) => WrappedLinesStruct;
6
+ export declare const wrapText: (measureText: MeasureTextFn, text: string, fontFamily: string, maxWidth: number, letterSpacing: number, overflowSuffix: string, wordBreak: string, maxLines: number) => WrappedLinesStruct;
7
+ export declare const wrapLine: (measureText: MeasureTextFn, line: string, fontFamily: string, maxWidth: number, letterSpacing: number, spaceWidth: number, overflowSuffix: string, wordBreak: string, remainingLines: number, hasMaxLines: boolean) => WrappedLinesStruct;
8
+ /**
9
+ * Truncate a line with overflow suffix to fit within width
10
+ */
11
+ export declare const truncateLineWithSuffix: (measureText: MeasureTextFn, line: string, fontFamily: string, maxWidth: number, letterSpacing: number, overflowSuffix: string) => string;
12
+ /**
13
+ * wordbreak function: https://developer.mozilla.org/en-US/docs/Web/CSS/word-break#break-word
14
+ */
15
+ export declare const breakWord: (measureText: MeasureTextFn, word: string, fontFamily: string, maxWidth: number, letterSpacing: number, remainingLines: number) => WrappedLinesStruct;
16
+ /**
17
+ * wordbreak function: https://developer.mozilla.org/en-US/docs/Web/CSS/word-break#break-word
18
+ */
19
+ export declare const breakAll: (measureText: MeasureTextFn, word: string, fontFamily: string, initial: number, maxWidth: number, letterSpacing: number, remainingLines: number) => WrappedLinesStruct;