@lightningjs/renderer 2.19.1 → 2.20.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 (250) hide show
  1. package/dist/src/core/lib/WebGlContextWrapper.d.ts +14 -0
  2. package/dist/src/core/lib/WebGlContextWrapper.js +35 -0
  3. package/dist/src/core/lib/WebGlContextWrapper.js.map +1 -1
  4. package/dist/src/core/lib/textureCompression.d.ts +14 -2
  5. package/dist/src/core/lib/textureCompression.js +301 -65
  6. package/dist/src/core/lib/textureCompression.js.map +1 -1
  7. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.d.ts +4 -0
  8. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js +14 -11
  9. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js.map +1 -1
  10. package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js +1 -1
  11. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js +43 -8
  12. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js.map +1 -1
  13. package/dist/src/core/renderers/webgl/WebGlCoreShader.d.ts +2 -7
  14. package/dist/src/core/renderers/webgl/WebGlCoreShader.js +18 -49
  15. package/dist/src/core/renderers/webgl/WebGlCoreShader.js.map +1 -1
  16. package/dist/src/core/renderers/webgl/internal/ShaderUtils.d.ts +0 -2
  17. package/dist/src/core/renderers/webgl/internal/ShaderUtils.js.map +1 -1
  18. package/dist/src/core/renderers/webgl/shaders/DefaultShader.js +3 -6
  19. package/dist/src/core/renderers/webgl/shaders/DefaultShader.js.map +1 -1
  20. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js +0 -11
  21. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js.map +1 -1
  22. package/dist/src/core/renderers/webgl/shaders/DynamicShader.js +5 -10
  23. package/dist/src/core/renderers/webgl/shaders/DynamicShader.js.map +1 -1
  24. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js +5 -10
  25. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js.map +1 -1
  26. package/dist/src/core/renderers/webgl/shaders/SdfShader.js +0 -12
  27. package/dist/src/core/renderers/webgl/shaders/SdfShader.js.map +1 -1
  28. package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js +1 -1
  29. package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js +1 -1
  30. package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js +1 -1
  31. package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js +1 -1
  32. package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js +5 -5
  33. package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.js +1 -1
  34. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js +1 -1
  35. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js +1 -1
  36. package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js +1 -1
  37. package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js +5 -5
  38. package/dist/src/core/textures/Texture.d.ts +12 -5
  39. package/dist/src/core/textures/Texture.js.map +1 -1
  40. package/dist/src/main-api/Inspector.js +9 -5
  41. package/dist/src/main-api/Inspector.js.map +1 -1
  42. package/dist/tsconfig.dist.tsbuildinfo +1 -1
  43. package/package.json +1 -1
  44. package/src/core/lib/WebGlContextWrapper.ts +49 -0
  45. package/src/core/lib/textureCompression.ts +416 -75
  46. package/src/core/renderers/webgl/WebGlCoreCtxTexture.ts +16 -14
  47. package/src/core/renderers/webgl/WebGlCoreRenderOp.ts +1 -1
  48. package/src/core/renderers/webgl/WebGlCoreRenderer.ts +44 -11
  49. package/src/core/renderers/webgl/WebGlCoreShader.ts +27 -75
  50. package/src/core/renderers/webgl/internal/ShaderUtils.ts +0 -2
  51. package/src/core/renderers/webgl/shaders/DefaultShader.ts +3 -6
  52. package/src/core/renderers/webgl/shaders/DefaultShaderBatched.ts +0 -11
  53. package/src/core/renderers/webgl/shaders/DynamicShader.ts +5 -10
  54. package/src/core/renderers/webgl/shaders/RoundedRectangle.ts +5 -10
  55. package/src/core/renderers/webgl/shaders/SdfShader.ts +0 -12
  56. package/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.ts +1 -1
  57. package/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.ts +1 -1
  58. package/src/core/renderers/webgl/shaders/effects/BorderRightEffect.ts +1 -1
  59. package/src/core/renderers/webgl/shaders/effects/BorderTopEffect.ts +1 -1
  60. package/src/core/renderers/webgl/shaders/effects/FadeOutEffect.ts +5 -5
  61. package/src/core/renderers/webgl/shaders/effects/HolePunchEffect.ts +1 -1
  62. package/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.ts +1 -1
  63. package/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.ts +1 -1
  64. package/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.ts +1 -1
  65. package/src/core/renderers/webgl/shaders/effects/RadiusEffect.ts +5 -5
  66. package/src/core/textures/Texture.ts +13 -6
  67. package/src/main-api/Inspector.ts +9 -5
  68. package/dist/exports/canvas-shaders.d.ts +0 -10
  69. package/dist/exports/canvas-shaders.js +0 -27
  70. package/dist/exports/canvas-shaders.js.map +0 -1
  71. package/dist/exports/webgl-shaders.d.ts +0 -11
  72. package/dist/exports/webgl-shaders.js +0 -28
  73. package/dist/exports/webgl-shaders.js.map +0 -1
  74. package/dist/src/core/lib/colorCache.d.ts +0 -1
  75. package/dist/src/core/lib/colorCache.js +0 -19
  76. package/dist/src/core/lib/colorCache.js.map +0 -1
  77. package/dist/src/core/lib/colorParser.d.ts +0 -21
  78. package/dist/src/core/lib/colorParser.js +0 -72
  79. package/dist/src/core/lib/colorParser.js.map +0 -1
  80. package/dist/src/core/platforms/Platform.d.ts +0 -37
  81. package/dist/src/core/platforms/Platform.js +0 -22
  82. package/dist/src/core/platforms/Platform.js.map +0 -1
  83. package/dist/src/core/platforms/web/WebPlatform.d.ts +0 -9
  84. package/dist/src/core/platforms/web/WebPlatform.js +0 -84
  85. package/dist/src/core/platforms/web/WebPlatform.js.map +0 -1
  86. package/dist/src/core/renderers/CoreShaderNode.d.ts +0 -59
  87. package/dist/src/core/renderers/CoreShaderNode.js +0 -113
  88. package/dist/src/core/renderers/CoreShaderNode.js.map +0 -1
  89. package/dist/src/core/renderers/CoreShaderProgram.d.ts +0 -4
  90. package/dist/src/core/renderers/CoreShaderProgram.js +0 -20
  91. package/dist/src/core/renderers/CoreShaderProgram.js.map +0 -1
  92. package/dist/src/core/renderers/canvas/CanvasRenderer.d.ts +0 -35
  93. package/dist/src/core/renderers/canvas/CanvasRenderer.js +0 -201
  94. package/dist/src/core/renderers/canvas/CanvasRenderer.js.map +0 -1
  95. package/dist/src/core/renderers/canvas/CanvasShaderNode.d.ts +0 -21
  96. package/dist/src/core/renderers/canvas/CanvasShaderNode.js +0 -58
  97. package/dist/src/core/renderers/canvas/CanvasShaderNode.js.map +0 -1
  98. package/dist/src/core/renderers/canvas/CanvasTexture.d.ts +0 -16
  99. package/dist/src/core/renderers/canvas/CanvasTexture.js +0 -125
  100. package/dist/src/core/renderers/canvas/CanvasTexture.js.map +0 -1
  101. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.d.ts +0 -12
  102. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js +0 -57
  103. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js.map +0 -1
  104. package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.d.ts +0 -22
  105. package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.js +0 -67
  106. package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.js.map +0 -1
  107. package/dist/src/core/renderers/webgl/WebGlCtxTexture.d.ts +0 -56
  108. package/dist/src/core/renderers/webgl/WebGlCtxTexture.js +0 -236
  109. package/dist/src/core/renderers/webgl/WebGlCtxTexture.js.map +0 -1
  110. package/dist/src/core/renderers/webgl/WebGlRenderOp.d.ts +0 -44
  111. package/dist/src/core/renderers/webgl/WebGlRenderOp.js +0 -125
  112. package/dist/src/core/renderers/webgl/WebGlRenderOp.js.map +0 -1
  113. package/dist/src/core/renderers/webgl/WebGlRenderer.d.ts +0 -136
  114. package/dist/src/core/renderers/webgl/WebGlRenderer.js +0 -573
  115. package/dist/src/core/renderers/webgl/WebGlRenderer.js.map +0 -1
  116. package/dist/src/core/renderers/webgl/WebGlShaderNode.d.ts +0 -222
  117. package/dist/src/core/renderers/webgl/WebGlShaderNode.js +0 -331
  118. package/dist/src/core/renderers/webgl/WebGlShaderNode.js.map +0 -1
  119. package/dist/src/core/renderers/webgl/WebGlShaderProgram.d.ts +0 -37
  120. package/dist/src/core/renderers/webgl/WebGlShaderProgram.js +0 -218
  121. package/dist/src/core/renderers/webgl/WebGlShaderProgram.js.map +0 -1
  122. package/dist/src/core/shaders/canvas/Border.d.ts +0 -9
  123. package/dist/src/core/shaders/canvas/Border.js +0 -57
  124. package/dist/src/core/shaders/canvas/Border.js.map +0 -1
  125. package/dist/src/core/shaders/canvas/HolePunch.d.ts +0 -7
  126. package/dist/src/core/shaders/canvas/HolePunch.js +0 -38
  127. package/dist/src/core/shaders/canvas/HolePunch.js.map +0 -1
  128. package/dist/src/core/shaders/canvas/LinearGradient.d.ts +0 -10
  129. package/dist/src/core/shaders/canvas/LinearGradient.js +0 -48
  130. package/dist/src/core/shaders/canvas/LinearGradient.js.map +0 -1
  131. package/dist/src/core/shaders/canvas/RadialGradient.d.ts +0 -11
  132. package/dist/src/core/shaders/canvas/RadialGradient.js +0 -70
  133. package/dist/src/core/shaders/canvas/RadialGradient.js.map +0 -1
  134. package/dist/src/core/shaders/canvas/Rounded.d.ts +0 -7
  135. package/dist/src/core/shaders/canvas/Rounded.js +0 -33
  136. package/dist/src/core/shaders/canvas/Rounded.js.map +0 -1
  137. package/dist/src/core/shaders/canvas/RoundedWithBorder.d.ts +0 -7
  138. package/dist/src/core/shaders/canvas/RoundedWithBorder.js +0 -43
  139. package/dist/src/core/shaders/canvas/RoundedWithBorder.js.map +0 -1
  140. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.d.ts +0 -8
  141. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js +0 -41
  142. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js.map +0 -1
  143. package/dist/src/core/shaders/canvas/RoundedWithShadow.d.ts +0 -7
  144. package/dist/src/core/shaders/canvas/RoundedWithShadow.js +0 -40
  145. package/dist/src/core/shaders/canvas/RoundedWithShadow.js.map +0 -1
  146. package/dist/src/core/shaders/canvas/Shadow.d.ts +0 -8
  147. package/dist/src/core/shaders/canvas/Shadow.js +0 -31
  148. package/dist/src/core/shaders/canvas/Shadow.js.map +0 -1
  149. package/dist/src/core/shaders/canvas/utils/render.d.ts +0 -5
  150. package/dist/src/core/shaders/canvas/utils/render.js +0 -84
  151. package/dist/src/core/shaders/canvas/utils/render.js.map +0 -1
  152. package/dist/src/core/shaders/templates/BorderTemplate.d.ts +0 -37
  153. package/dist/src/core/shaders/templates/BorderTemplate.js +0 -73
  154. package/dist/src/core/shaders/templates/BorderTemplate.js.map +0 -1
  155. package/dist/src/core/shaders/templates/HolePunchTemplate.d.ts +0 -46
  156. package/dist/src/core/shaders/templates/HolePunchTemplate.js +0 -35
  157. package/dist/src/core/shaders/templates/HolePunchTemplate.js.map +0 -1
  158. package/dist/src/core/shaders/templates/LinearGradientTemplate.d.ts +0 -23
  159. package/dist/src/core/shaders/templates/LinearGradientTemplate.js +0 -47
  160. package/dist/src/core/shaders/templates/LinearGradientTemplate.js.map +0 -1
  161. package/dist/src/core/shaders/templates/RadialGradientTemplate.d.ts +0 -31
  162. package/dist/src/core/shaders/templates/RadialGradientTemplate.js +0 -49
  163. package/dist/src/core/shaders/templates/RadialGradientTemplate.js.map +0 -1
  164. package/dist/src/core/shaders/templates/RoundedTemplate.d.ts +0 -29
  165. package/dist/src/core/shaders/templates/RoundedTemplate.js +0 -67
  166. package/dist/src/core/shaders/templates/RoundedTemplate.js.map +0 -1
  167. package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.d.ts +0 -7
  168. package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.js +0 -24
  169. package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.js.map +0 -1
  170. package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.d.ts +0 -6
  171. package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.js +0 -23
  172. package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.js.map +0 -1
  173. package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.d.ts +0 -6
  174. package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.js +0 -23
  175. package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.js.map +0 -1
  176. package/dist/src/core/shaders/templates/ShadowTemplate.d.ts +0 -34
  177. package/dist/src/core/shaders/templates/ShadowTemplate.js +0 -66
  178. package/dist/src/core/shaders/templates/ShadowTemplate.js.map +0 -1
  179. package/dist/src/core/shaders/utils.d.ts +0 -5
  180. package/dist/src/core/shaders/utils.js +0 -41
  181. package/dist/src/core/shaders/utils.js.map +0 -1
  182. package/dist/src/core/shaders/webgl/Border.d.ts +0 -3
  183. package/dist/src/core/shaders/webgl/Border.js +0 -110
  184. package/dist/src/core/shaders/webgl/Border.js.map +0 -1
  185. package/dist/src/core/shaders/webgl/Default.d.ts +0 -2
  186. package/dist/src/core/shaders/webgl/Default.js +0 -86
  187. package/dist/src/core/shaders/webgl/Default.js.map +0 -1
  188. package/dist/src/core/shaders/webgl/DefaultBatched.d.ts +0 -2
  189. package/dist/src/core/shaders/webgl/DefaultBatched.js +0 -104
  190. package/dist/src/core/shaders/webgl/DefaultBatched.js.map +0 -1
  191. package/dist/src/core/shaders/webgl/HolePunch.d.ts +0 -3
  192. package/dist/src/core/shaders/webgl/HolePunch.js +0 -65
  193. package/dist/src/core/shaders/webgl/HolePunch.js.map +0 -1
  194. package/dist/src/core/shaders/webgl/LinearGradient.d.ts +0 -3
  195. package/dist/src/core/shaders/webgl/LinearGradient.js +0 -99
  196. package/dist/src/core/shaders/webgl/LinearGradient.js.map +0 -1
  197. package/dist/src/core/shaders/webgl/RadialGradient.d.ts +0 -3
  198. package/dist/src/core/shaders/webgl/RadialGradient.js +0 -96
  199. package/dist/src/core/shaders/webgl/RadialGradient.js.map +0 -1
  200. package/dist/src/core/shaders/webgl/Rounded.d.ts +0 -7
  201. package/dist/src/core/shaders/webgl/Rounded.js +0 -86
  202. package/dist/src/core/shaders/webgl/Rounded.js.map +0 -1
  203. package/dist/src/core/shaders/webgl/RoundedWithBorder.d.ts +0 -3
  204. package/dist/src/core/shaders/webgl/RoundedWithBorder.js +0 -140
  205. package/dist/src/core/shaders/webgl/RoundedWithBorder.js.map +0 -1
  206. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.d.ts +0 -3
  207. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js +0 -162
  208. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js.map +0 -1
  209. package/dist/src/core/shaders/webgl/RoundedWithShadow.d.ts +0 -3
  210. package/dist/src/core/shaders/webgl/RoundedWithShadow.js +0 -84
  211. package/dist/src/core/shaders/webgl/RoundedWithShadow.js.map +0 -1
  212. package/dist/src/core/shaders/webgl/SdfShader.d.ts +0 -30
  213. package/dist/src/core/shaders/webgl/SdfShader.js +0 -107
  214. package/dist/src/core/shaders/webgl/SdfShader.js.map +0 -1
  215. package/dist/src/core/shaders/webgl/Shadow.d.ts +0 -3
  216. package/dist/src/core/shaders/webgl/Shadow.js +0 -110
  217. package/dist/src/core/shaders/webgl/Shadow.js.map +0 -1
  218. package/dist/src/core/text-rendering/CanvasFont.d.ts +0 -14
  219. package/dist/src/core/text-rendering/CanvasFont.js +0 -111
  220. package/dist/src/core/text-rendering/CanvasFont.js.map +0 -1
  221. package/dist/src/core/text-rendering/CanvasFontHandler.d.ts +0 -59
  222. package/dist/src/core/text-rendering/CanvasFontHandler.js +0 -221
  223. package/dist/src/core/text-rendering/CanvasFontHandler.js.map +0 -1
  224. package/dist/src/core/text-rendering/CanvasTextRenderer.d.ts +0 -19
  225. package/dist/src/core/text-rendering/CanvasTextRenderer.js +0 -165
  226. package/dist/src/core/text-rendering/CanvasTextRenderer.js.map +0 -1
  227. package/dist/src/core/text-rendering/CoreFont.d.ts +0 -33
  228. package/dist/src/core/text-rendering/CoreFont.js +0 -48
  229. package/dist/src/core/text-rendering/CoreFont.js.map +0 -1
  230. package/dist/src/core/text-rendering/FontManager.d.ts +0 -11
  231. package/dist/src/core/text-rendering/FontManager.js +0 -42
  232. package/dist/src/core/text-rendering/FontManager.js.map +0 -1
  233. package/dist/src/core/text-rendering/SdfFont.d.ts +0 -29
  234. package/dist/src/core/text-rendering/SdfFont.js +0 -142
  235. package/dist/src/core/text-rendering/SdfFont.js.map +0 -1
  236. package/dist/src/core/text-rendering/SdfFontHandler.d.ts +0 -85
  237. package/dist/src/core/text-rendering/SdfFontHandler.js +0 -58
  238. package/dist/src/core/text-rendering/SdfFontHandler.js.map +0 -1
  239. package/dist/src/core/text-rendering/SdfTextRenderer.d.ts +0 -18
  240. package/dist/src/core/text-rendering/SdfTextRenderer.js +0 -315
  241. package/dist/src/core/text-rendering/SdfTextRenderer.js.map +0 -1
  242. package/dist/src/core/text-rendering/TextLayoutEngine.d.ts +0 -20
  243. package/dist/src/core/text-rendering/TextLayoutEngine.js +0 -324
  244. package/dist/src/core/text-rendering/TextLayoutEngine.js.map +0 -1
  245. package/dist/src/core/text-rendering/TextRenderer.d.ts +0 -369
  246. package/dist/src/core/text-rendering/TextRenderer.js +0 -20
  247. package/dist/src/core/text-rendering/TextRenderer.js.map +0 -1
  248. package/dist/src/core/text-rendering/Utils.d.ts +0 -30
  249. package/dist/src/core/text-rendering/Utils.js +0 -84
  250. package/dist/src/core/text-rendering/Utils.js.map +0 -1
@@ -1,369 +0,0 @@
1
- import type { CoreTextNodeProps } from '../CoreTextNode.js';
2
- import type { CoreRenderer } from '../renderers/CoreRenderer.js';
3
- import type { Stage } from '../Stage.js';
4
- import type { CoreFont } from './CoreFont.js';
5
- export type TextBaseline = 'alphabetic' | 'hanging' | 'middle' | 'ideographic' | 'bottom';
6
- export type TextVerticalAlign = 'top' | 'middle' | 'bottom';
7
- export type TextRenderers = 'canvas' | 'sdf';
8
- /**
9
- * Structure mapping font family names to a set of font faces.
10
- */
11
- export interface FontFamilyMap {
12
- [familyName: string]: FontFace;
13
- }
14
- /**
15
- * Font metrics used for layout and default line height calculations.
16
- */
17
- export interface FontMetrics {
18
- /**
19
- * The distance, in font units, from the baseline to the highest point of the font.
20
- */
21
- ascender: number;
22
- /**
23
- * The distance, in font units, from the baseline to the lowest point of the font.
24
- */
25
- descender: number;
26
- /**
27
- * The additional space used in the calculation of the default line height in font units.
28
- */
29
- lineGap: number;
30
- /**
31
- * The number of font units per 1 EM.
32
- */
33
- unitsPerEm: number;
34
- }
35
- /**
36
- * Normalized font metrics where values are expressed as a fraction of 1 EM.
37
- */
38
- export interface NormalizedFontMetrics {
39
- /**
40
- * The distance, as a fraction of 1 EM, from the baseline to the highest point of the font.
41
- */
42
- ascender: number;
43
- /**
44
- * The distance, as a fraction of 1 EM, from the baseline to the lowest point of the font.
45
- */
46
- descender: number;
47
- /**
48
- * The additional space used in the calculation of the default line height as a fraction of 1 EM
49
- */
50
- lineGap: number;
51
- }
52
- /**
53
- * Text renderer properties that are used in resolving appropriate font faces
54
- *
55
- * @remarks
56
- * Extended by {@link TrProps}
57
- */
58
- export interface TrFontProps {
59
- /**
60
- * Font Family
61
- *
62
- * @internalRemarks
63
- * `fontFamily` is defined currently as single string, but in the future we may want to
64
- * support multiple font family fallbacks, as this is supported by CSS / Canvas2d. We can
65
- * do this in a backwards compatible way by unioning an array of strings to the
66
- * `fontFamily` property.
67
- */
68
- fontFamily: string;
69
- /**
70
- * Font Style
71
- *
72
- * @remarks
73
- * The font style to use when looking up the font face. This can be one of the
74
- * following strings:
75
- * - `'normal'`
76
- * - `'italic'`
77
- * - `'oblique'`
78
- */
79
- fontStyle: 'normal' | 'italic' | 'oblique';
80
- /**
81
- * Font Size
82
- *
83
- * @remarks
84
- * The font size to use when looking up the font face.
85
- *
86
- * The font size is specified in pixels and is the height of the font's
87
- * em-square. The em-square is essentially the height of the capital letters
88
- * for the font. The actual height of the text can be larger than the
89
- * specified font size, as the font may have ascenders and descenders that
90
- * extend beyond the em-square.
91
- *
92
- * @default 16
93
- */
94
- fontSize: number;
95
- }
96
- export interface TrProps extends TrFontProps {
97
- /**
98
- * Text to display
99
- *
100
- * @default ''
101
- */
102
- text: string;
103
- /**
104
- * Text alignment
105
- *
106
- * @remarks
107
- * Alignment of the text relative to it's contained bounds. For best results,
108
- * use {@link contain} mode `'width'` or `'both'` and a set an explicit
109
- * {@link width} for the text to be aligned within.
110
- *
111
- * @default 'left'
112
- */
113
- textAlign: 'left' | 'center' | 'right';
114
- /**
115
- * Color of text
116
- *
117
- * @remarks
118
- * The color value is a number in the format 0xRRGGBBAA, where RR is the red
119
- * component, GG is the green component, BB is the blue component, and AA is
120
- * the alpha component.
121
- *
122
- * @default 0xffffffff (opaque white)
123
- */
124
- color: number;
125
- x: number;
126
- y: number;
127
- maxWidth: number;
128
- maxHeight: number;
129
- /**
130
- * Vertical offset for text
131
- *
132
- * @remarks
133
- * The vertical offset of the text.
134
- *
135
- * @default 0
136
- */
137
- offsetY: number;
138
- /**
139
- * Letter spacing for text (in pixels)
140
- *
141
- * @remarks
142
- * This property sets additional (or reduced, if value is negative) spacing
143
- * between characters in the text.
144
- *
145
- * @default 0
146
- */
147
- letterSpacing: number;
148
- /**
149
- * Line height for text (in pixels)
150
- *
151
- * @remarks
152
- * This property sets the height of each line. If set to `undefined`, the
153
- * line height will be calculated based on the font and font size to be the
154
- * minimal height required to completely contain a line of text.
155
- *
156
- * See: https://github.com/lightning-js/renderer/issues/170
157
- *
158
- * @default `undefined`
159
- */
160
- lineHeight: number;
161
- /**
162
- * Max lines for text
163
- *
164
- * @remarks
165
- * This property sets max number of lines of a text paragraph.
166
- * Not yet implemented in the SDF renderer.
167
- *
168
- * @default 0
169
- */
170
- maxLines: number;
171
- /**
172
- * Vertical Align for text when lineHeight > fontSize
173
- *
174
- * @remarks
175
- * This property sets the vertical align of the text.
176
- * Not yet implemented in the SDF renderer.
177
- *
178
- * @default middle
179
- */
180
- verticalAlign: TextVerticalAlign;
181
- /**
182
- * Overflow Suffix for text
183
- *
184
- * @remarks
185
- * The suffix to be added when text is cropped due to overflow.
186
- * Not yet implemented in the SDF renderer.
187
- *
188
- * @default "..."
189
- */
190
- overflowSuffix: string;
191
- /**
192
- * Word Break for text
193
- *
194
- * @remarks
195
- * This property sets how words should break when reaching the end of a line.
196
- *
197
- * - `'normal'`: Use the default line break rule.
198
- * - `'break-all'`: To prevent overflow, word breaks should happen between any two characters.
199
- * - `'break-word'`: To prevent overflow, word breaks should happen between words. If words are too long word breaks happen between any two characters.
200
- *
201
- * @default "normal"
202
- */
203
- wordBreak: 'normal' | 'break-all' | 'break-word';
204
- zIndex: number;
205
- }
206
- /**
207
- * Glyph layout information for WebGL rendering
208
- */
209
- export interface GlyphLayout {
210
- /**
211
- * Unicode codepoint
212
- */
213
- codepoint: number;
214
- /**
215
- * Glyph ID in the font atlas
216
- */
217
- glyphId: number;
218
- /**
219
- * X position relative to text origin
220
- */
221
- x: number;
222
- /**
223
- * Y position relative to text origin
224
- */
225
- y: number;
226
- /**
227
- * Width of glyph in font units
228
- */
229
- width: number;
230
- /**
231
- * Height of glyph in font units
232
- */
233
- height: number;
234
- /**
235
- * X offset for glyph positioning
236
- */
237
- xOffset: number;
238
- /**
239
- * Y offset for glyph positioning
240
- */
241
- yOffset: number;
242
- /**
243
- * Atlas texture coordinates (normalized 0-1)
244
- */
245
- atlasX: number;
246
- atlasY: number;
247
- atlasWidth: number;
248
- atlasHeight: number;
249
- }
250
- /**
251
- * Complete text layout information for caching
252
- */
253
- export interface TextLayout {
254
- /**
255
- * Individual glyph layouts
256
- */
257
- glyphs: GlyphLayout[];
258
- /**
259
- * Total text width
260
- */
261
- width: number;
262
- /**
263
- * Total text height
264
- */
265
- height: number;
266
- /**
267
- * Font scale factor
268
- */
269
- fontScale: number;
270
- /**
271
- * Line height
272
- */
273
- lineHeight: number;
274
- /**
275
- * Font family used
276
- */
277
- fontFamily: string;
278
- /**
279
- * distanceRange used
280
- */
281
- distanceRange: number;
282
- }
283
- export interface FontLoadOptions {
284
- fontFamily: string;
285
- metrics?: FontMetrics;
286
- fontUrl?: string;
287
- atlasUrl?: string;
288
- atlasDataUrl?: string;
289
- }
290
- /**
291
- * Measure Width of Text function to be defined in font handlers, used in TextLayoutEngine
292
- */
293
- export type MeasureTextFn = (text: string, fontFamily: string, letterSpacing: number) => number;
294
- export interface FontHandler {
295
- init: (c: CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D) => void;
296
- type: 'canvas' | 'sdf';
297
- isFontLoaded: (fontFamily: string) => boolean;
298
- loadFont: (stage: Stage, options: FontLoadOptions) => Promise<void>;
299
- waitingForFont: (fontFamily: string, CoreTextNode: any) => void;
300
- stopWaitingForFont: (fontFamily: string, CoreTextNode: any) => void;
301
- getFontFamilies: () => FontFamilyMap;
302
- canRenderFont: (trProps: TrProps) => boolean;
303
- getFontMetrics: (fontFamily: string, fontSize: number) => NormalizedFontMetrics;
304
- measureText: MeasureTextFn;
305
- }
306
- export interface TextRenderProps {
307
- fontFamily: string;
308
- fontSize: number;
309
- color: number;
310
- offsetY: number;
311
- worldAlpha: number;
312
- globalTransform: Float32Array;
313
- clippingRect: unknown;
314
- width: number;
315
- height: number;
316
- parentHasRenderTexture: boolean;
317
- framebufferDimensions: unknown;
318
- stage: Stage;
319
- }
320
- export interface TextRenderInfo {
321
- width: number;
322
- height: number;
323
- hasRemainingText?: boolean;
324
- remainingLines?: number;
325
- imageData?: ImageData | null;
326
- layout?: TextLayout;
327
- }
328
- export interface TextRenderer {
329
- type: 'canvas' | 'sdf';
330
- createFont: (settings: FontLoadOptions) => CoreFont | undefined;
331
- renderText: (font: CoreFont, props: CoreTextNodeProps) => TextRenderInfo;
332
- addQuads: (layout?: TextLayout) => Float32Array | null;
333
- renderQuads: (renderer: CoreRenderer, font: CoreFont, layout: TextLayout, vertexBuffer: Float32Array, renderProps: TextRenderProps) => void;
334
- init: (stage: Stage) => void;
335
- }
336
- /**
337
- * Text line struct for text mapping
338
- * 0 - text
339
- * 1 - width
340
- * 2 - line offset x
341
- * 3 - line offset y
342
- */
343
- export type TextLineStruct = [string, number, number, number];
344
- /**
345
- * Wrapped lines struct for text mapping
346
- * 0 - line structs
347
- * 1 - remaining lines
348
- * 2 - remaining text
349
- */
350
- export type WrappedLinesStruct = [TextLineStruct[], number, boolean];
351
- /**
352
- * Wrapped lines struct for text mapping
353
- * 0 - line structs
354
- * 1 - remaining lines
355
- * 2 - remaining text
356
- * 3 - bare line height
357
- * 4 - line height pixels
358
- * 5 - effective width
359
- * 6 - effective height
360
- */
361
- export type TextLayoutStruct = [
362
- TextLineStruct[],
363
- number,
364
- boolean,
365
- number,
366
- number,
367
- number,
368
- number
369
- ];
@@ -1,20 +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 2023 Comcast Cable Communications Management, LLC.
6
- *
7
- * Licensed under the Apache License, Version 2.0 (the License);
8
- * you may not use this file except in compliance with the License.
9
- * You may obtain a copy of the License at
10
- *
11
- * http://www.apache.org/licenses/LICENSE-2.0
12
- *
13
- * Unless required by applicable law or agreed to in writing, software
14
- * distributed under the License is distributed on an "AS IS" BASIS,
15
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
- * See the License for the specific language governing permissions and
17
- * limitations under the License.
18
- */
19
- export {};
20
- //# sourceMappingURL=TextRenderer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TextRenderer.js","sourceRoot":"","sources":["../../../../src/core/text-rendering/TextRenderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG"}
@@ -1,30 +0,0 @@
1
- /**
2
- * Returns CSS font setting string for use in canvas context.
3
- *
4
- * @param fontFace
5
- * @param fontStyle
6
- * @param fontSize
7
- * @param precision
8
- * @param defaultFontFace
9
- * @returns
10
- */
11
- export declare function getFontSetting(fontFace: string | string[], fontStyle: string, fontSize: number, precision: number, defaultFontFace: string): string;
12
- /**
13
- * Returns true if the given character is a zero-width space.
14
- *
15
- * @param space
16
- */
17
- export declare function hasZeroWidthSpace(space: string): boolean;
18
- /**
19
- * Returns true if the given character is a zero-width space or a regular space.
20
- *
21
- * @param space
22
- */
23
- export declare function isSpace(space: string): boolean;
24
- /**
25
- * Converts a string into an array of tokens and the words between them.
26
- *
27
- * @param tokenRegex
28
- * @param text
29
- */
30
- export declare function tokenizeString(tokenRegex: RegExp, text: string): string[];
@@ -1,84 +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
- const invisibleChars = /[\u200B\u200C\u200D\uFEFF\u00AD\u2060]/g;
20
- /**
21
- * Returns CSS font setting string for use in canvas context.
22
- *
23
- * @param fontFace
24
- * @param fontStyle
25
- * @param fontSize
26
- * @param precision
27
- * @param defaultFontFace
28
- * @returns
29
- */
30
- export function getFontSetting(fontFace, fontStyle, fontSize, precision, defaultFontFace) {
31
- let ff = fontFace;
32
- if (!Array.isArray(ff)) {
33
- ff = [ff];
34
- }
35
- const ffs = [];
36
- for (let i = 0, n = ff.length; i < n; i++) {
37
- let curFf = ff[i];
38
- // Replace the default font face `null` with the actual default font face set
39
- // on the stage.
40
- if (curFf === null || curFf === undefined) {
41
- curFf = defaultFontFace;
42
- }
43
- if (curFf === 'serif' || curFf === 'sans-serif') {
44
- ffs.push(curFf);
45
- }
46
- else {
47
- ffs.push(`"${curFf}"`);
48
- }
49
- }
50
- return `${fontStyle} ${fontSize * precision}px ${ffs.join(',')}`;
51
- }
52
- /**
53
- * Returns true if the given character is a zero-width space.
54
- *
55
- * @param space
56
- */
57
- export function hasZeroWidthSpace(space) {
58
- return invisibleChars.test(space) === true;
59
- }
60
- /**
61
- * Returns true if the given character is a zero-width space or a regular space.
62
- *
63
- * @param space
64
- */
65
- export function isSpace(space) {
66
- return hasZeroWidthSpace(space) || space === ' ';
67
- }
68
- /**
69
- * Converts a string into an array of tokens and the words between them.
70
- *
71
- * @param tokenRegex
72
- * @param text
73
- */
74
- export function tokenizeString(tokenRegex, text) {
75
- const delimeters = text.match(tokenRegex) || [];
76
- const words = text.split(tokenRegex) || [];
77
- const final = [];
78
- for (let i = 0; i < words.length; i++) {
79
- final.push(words[i], delimeters[i]);
80
- }
81
- final.pop();
82
- return final.filter((word) => word != '');
83
- }
84
- //# sourceMappingURL=Utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Utils.js","sourceRoot":"","sources":["../../../../src/core/text-rendering/Utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH,MAAM,cAAc,GAAG,yCAAyC,CAAC;AAEjE;;;;;;;;;GASG;AACH,MAAM,UAAU,cAAc,CAC5B,QAA2B,EAC3B,SAAiB,EACjB,QAAgB,EAChB,SAAiB,EACjB,eAAuB;IAEvB,IAAI,EAAE,GAAG,QAAQ,CAAC;IAElB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;QACvB,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IACZ,CAAC;IAED,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,IAAI,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QAClB,6EAA6E;QAC7E,gBAAgB;QAChB,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YAC1C,KAAK,GAAG,eAAe,CAAC;QAC1B,CAAC;QACD,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,YAAY,EAAE,CAAC;YAChD,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClB,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,OAAO,GAAG,SAAS,IAAI,QAAQ,GAAG,SAAS,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AACnE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,OAAO,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;AAC7C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,OAAO,CAAC,KAAa;IACnC,OAAO,iBAAiB,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,GAAG,CAAC;AACnD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,UAAkB,EAAE,IAAY;IAC7D,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IAChD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IAE3C,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,UAAU,CAAC,CAAC,CAAE,CAAC,CAAC;IACxC,CAAC;IACD,KAAK,CAAC,GAAG,EAAE,CAAC;IACZ,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;AAC5C,CAAC"}