@lightningjs/renderer 0.6.1 → 0.7.1

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 (201) hide show
  1. package/dist/src/common/CommonTypes.d.ts +8 -0
  2. package/dist/src/core/CoreNode.d.ts +4 -7
  3. package/dist/src/core/CoreNode.js +73 -40
  4. package/dist/src/core/CoreNode.js.map +1 -1
  5. package/dist/src/core/CoreTextNode.d.ts +12 -2
  6. package/dist/src/core/CoreTextNode.js +46 -1
  7. package/dist/src/core/CoreTextNode.js.map +1 -1
  8. package/dist/src/core/CoreTextureManager.d.ts +3 -1
  9. package/dist/src/core/CoreTextureManager.js +4 -1
  10. package/dist/src/core/CoreTextureManager.js.map +1 -1
  11. package/dist/src/core/Stage.d.ts +6 -0
  12. package/dist/src/core/Stage.js +13 -4
  13. package/dist/src/core/Stage.js.map +1 -1
  14. package/dist/src/core/animations/CoreAnimation.d.ts +1 -0
  15. package/dist/src/core/animations/CoreAnimation.js +7 -0
  16. package/dist/src/core/animations/CoreAnimation.js.map +1 -1
  17. package/dist/src/core/lib/ImageWorker.d.ts +16 -0
  18. package/dist/src/core/lib/ImageWorker.js +111 -0
  19. package/dist/src/core/lib/ImageWorker.js.map +1 -0
  20. package/dist/src/core/lib/WebGlContextWrapper.d.ts +4 -0
  21. package/dist/src/core/lib/WebGlContextWrapper.js +7 -2
  22. package/dist/src/core/lib/WebGlContextWrapper.js.map +1 -1
  23. package/dist/src/core/lib/utils.d.ts +9 -0
  24. package/dist/src/core/lib/utils.js +48 -1
  25. package/dist/src/core/lib/utils.js.map +1 -1
  26. package/dist/src/core/renderers/CoreRenderer.d.ts +2 -2
  27. package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.d.ts +2 -1
  28. package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.js +2 -2
  29. package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.js.map +1 -1
  30. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.d.ts +3 -2
  31. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js +23 -21
  32. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js.map +1 -1
  33. package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.d.ts +5 -4
  34. package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js +10 -14
  35. package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js.map +1 -1
  36. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.d.ts +4 -1
  37. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js +30 -24
  38. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js.map +1 -1
  39. package/dist/src/core/renderers/webgl/WebGlCoreShader.d.ts +2 -1
  40. package/dist/src/core/renderers/webgl/WebGlCoreShader.js +24 -24
  41. package/dist/src/core/renderers/webgl/WebGlCoreShader.js.map +1 -1
  42. package/dist/src/core/renderers/webgl/internal/RendererUtils.d.ts +8 -5
  43. package/dist/src/core/renderers/webgl/internal/RendererUtils.js +11 -13
  44. package/dist/src/core/renderers/webgl/internal/RendererUtils.js.map +1 -1
  45. package/dist/src/core/renderers/webgl/internal/ShaderUtils.d.ts +3 -2
  46. package/dist/src/core/renderers/webgl/internal/ShaderUtils.js +15 -15
  47. package/dist/src/core/renderers/webgl/internal/ShaderUtils.js.map +1 -1
  48. package/dist/src/core/renderers/webgl/shaders/DefaultShader.js +3 -6
  49. package/dist/src/core/renderers/webgl/shaders/DefaultShader.js.map +1 -1
  50. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js +3 -3
  51. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js.map +1 -1
  52. package/dist/src/core/renderers/webgl/shaders/DynamicShader.d.ts +1 -0
  53. package/dist/src/core/renderers/webgl/shaders/DynamicShader.js +32 -12
  54. package/dist/src/core/renderers/webgl/shaders/DynamicShader.js.map +1 -1
  55. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js +3 -3
  56. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js.map +1 -1
  57. package/dist/src/core/renderers/webgl/shaders/SdfShader.js +3 -3
  58. package/dist/src/core/renderers/webgl/shaders/SdfShader.js.map +1 -1
  59. package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js +1 -1
  60. package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.d.ts +14 -1
  61. package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js +15 -5
  62. package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js.map +1 -1
  63. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js +3 -3
  64. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js.map +1 -1
  65. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.d.ts +2 -1
  66. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.js +4 -2
  67. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.js.map +1 -1
  68. package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.d.ts +2 -2
  69. package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js +25 -0
  70. package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js.map +1 -1
  71. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.d.ts +1 -1
  72. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js +6 -6
  73. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js.map +1 -1
  74. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.d.ts +8 -11
  75. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js +140 -81
  76. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js.map +1 -1
  77. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/findNearestMultiple.d.ts +8 -0
  78. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/findNearestMultiple.js +29 -0
  79. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/findNearestMultiple.js.map +1 -0
  80. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.d.ts +4 -3
  81. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.js +15 -11
  82. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.js.map +1 -1
  83. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.d.ts +3 -2
  84. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js +30 -26
  85. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js.map +1 -1
  86. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/SdfBufferHelper.d.ts +19 -0
  87. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/SdfBufferHelper.js +84 -0
  88. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/SdfBufferHelper.js.map +1 -0
  89. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutLine.d.ts +8 -0
  90. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutLine.js +40 -0
  91. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutLine.js.map +1 -0
  92. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutText2.d.ts +2 -0
  93. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutText2.js +41 -0
  94. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutText2.js.map +1 -0
  95. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/utils.d.ts +1 -0
  96. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/utils.js +4 -0
  97. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/utils.js.map +1 -0
  98. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2.d.ts +1 -0
  99. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2.js +2 -0
  100. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2.js.map +1 -0
  101. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/roundUpToMultiple.d.ts +9 -0
  102. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/roundUpToMultiple.js +32 -0
  103. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/roundUpToMultiple.js.map +1 -0
  104. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.d.ts +26 -0
  105. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.js +70 -0
  106. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.js.map +1 -0
  107. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.d.ts +16 -0
  108. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.js +39 -0
  109. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.js.map +1 -0
  110. package/dist/src/core/text-rendering/renderers/TextRenderer.d.ts +52 -2
  111. package/dist/src/core/text-rendering/renderers/TextRenderer.js +19 -0
  112. package/dist/src/core/text-rendering/renderers/TextRenderer.js.map +1 -1
  113. package/dist/src/core/textures/ImageTexture.js +14 -9
  114. package/dist/src/core/textures/ImageTexture.js.map +1 -1
  115. package/dist/src/core/utils.d.ts +1 -6
  116. package/dist/src/core/utils.js +3 -2
  117. package/dist/src/core/utils.js.map +1 -1
  118. package/dist/src/main-api/ICoreDriver.d.ts +2 -1
  119. package/dist/src/main-api/RendererMain.d.ts +25 -0
  120. package/dist/src/main-api/RendererMain.js +14 -5
  121. package/dist/src/main-api/RendererMain.js.map +1 -1
  122. package/dist/src/render-drivers/main/MainCoreDriver.d.ts +2 -1
  123. package/dist/src/render-drivers/main/MainCoreDriver.js +6 -4
  124. package/dist/src/render-drivers/main/MainCoreDriver.js.map +1 -1
  125. package/dist/src/render-drivers/main/MainOnlyTextNode.d.ts +10 -0
  126. package/dist/src/render-drivers/main/MainOnlyTextNode.js +45 -0
  127. package/dist/src/render-drivers/main/MainOnlyTextNode.js.map +1 -1
  128. package/dist/src/render-drivers/threadx/TextNodeStruct.d.ts +10 -0
  129. package/dist/src/render-drivers/threadx/TextNodeStruct.js +45 -0
  130. package/dist/src/render-drivers/threadx/TextNodeStruct.js.map +1 -1
  131. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.d.ts +2 -1
  132. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js +8 -1
  133. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js.map +1 -1
  134. package/dist/src/render-drivers/threadx/ThreadXMainTextNode.d.ts +5 -0
  135. package/dist/src/render-drivers/threadx/ThreadXMainTextNode.js +5 -0
  136. package/dist/src/render-drivers/threadx/ThreadXMainTextNode.js.map +1 -1
  137. package/dist/src/render-drivers/threadx/ThreadXRendererMessage.d.ts +4 -1
  138. package/dist/src/render-drivers/threadx/ThreadXRendererMessage.js.map +1 -1
  139. package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.d.ts +5 -0
  140. package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.js +10 -0
  141. package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.js.map +1 -1
  142. package/dist/src/render-drivers/threadx/worker/renderer.js +5 -3
  143. package/dist/src/render-drivers/threadx/worker/renderer.js.map +1 -1
  144. package/dist/src/utils.d.ts +2 -1
  145. package/dist/src/utils.js +22 -3
  146. package/dist/src/utils.js.map +1 -1
  147. package/dist/tsconfig.dist.tsbuildinfo +1 -1
  148. package/package.json +3 -2
  149. package/src/common/CommonTypes.ts +9 -0
  150. package/src/core/CoreNode.ts +96 -62
  151. package/src/core/CoreTextNode.ts +58 -2
  152. package/src/core/CoreTextureManager.ts +4 -2
  153. package/src/core/Stage.ts +33 -4
  154. package/src/core/animations/CoreAnimation.ts +8 -0
  155. package/src/core/lib/ContextSpy.ts +41 -0
  156. package/src/core/lib/ImageWorker.ts +124 -0
  157. package/src/core/lib/WebGlContextWrapper.ts +965 -0
  158. package/src/core/lib/utils.ts +68 -1
  159. package/src/core/renderers/CoreRenderer.ts +2 -2
  160. package/src/core/renderers/webgl/WebGlCoreCtxSubTexture.ts +3 -2
  161. package/src/core/renderers/webgl/WebGlCoreCtxTexture.ts +29 -28
  162. package/src/core/renderers/webgl/WebGlCoreRenderOp.ts +13 -17
  163. package/src/core/renderers/webgl/WebGlCoreRenderer.ts +33 -25
  164. package/src/core/renderers/webgl/WebGlCoreShader.ts +34 -25
  165. package/src/core/renderers/webgl/internal/RendererUtils.ts +13 -16
  166. package/src/core/renderers/webgl/internal/ShaderUtils.ts +16 -15
  167. package/src/core/renderers/webgl/shaders/DefaultShader.ts +3 -7
  168. package/src/core/renderers/webgl/shaders/DefaultShaderBatched.ts +3 -3
  169. package/src/core/renderers/webgl/shaders/DynamicShader.ts +42 -14
  170. package/src/core/renderers/webgl/shaders/RoundedRectangle.ts +3 -3
  171. package/src/core/renderers/webgl/shaders/SdfShader.ts +3 -3
  172. package/src/core/renderers/webgl/shaders/effects/BorderEffect.ts +1 -1
  173. package/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.ts +35 -5
  174. package/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.ts +3 -3
  175. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.test.ts +9 -3
  176. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.ts +4 -2
  177. package/src/core/text-rendering/renderers/CanvasTextRenderer.ts +27 -1
  178. package/src/core/text-rendering/renderers/LightningTextTextureRenderer.ts +7 -7
  179. package/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.ts +193 -103
  180. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.ts +26 -18
  181. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.ts +40 -28
  182. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.test.ts +6 -1
  183. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.test.ts +205 -0
  184. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/{makeRenderWindow.ts → setRenderWindow.ts} +50 -21
  185. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.ts +40 -0
  186. package/src/core/text-rendering/renderers/TextRenderer.ts +75 -2
  187. package/src/core/textures/ImageTexture.ts +17 -9
  188. package/src/core/utils.ts +87 -85
  189. package/src/env.d.ts +7 -0
  190. package/src/main-api/ICoreDriver.ts +2 -1
  191. package/src/main-api/RendererMain.ts +43 -5
  192. package/src/render-drivers/main/MainCoreDriver.ts +8 -5
  193. package/src/render-drivers/main/MainOnlyTextNode.ts +55 -1
  194. package/src/render-drivers/threadx/TextNodeStruct.ts +45 -0
  195. package/src/render-drivers/threadx/ThreadXCoreDriver.ts +10 -2
  196. package/src/render-drivers/threadx/ThreadXMainTextNode.ts +10 -0
  197. package/src/render-drivers/threadx/ThreadXRendererMessage.ts +5 -1
  198. package/src/render-drivers/threadx/worker/ThreadXRendererTextNode.ts +15 -0
  199. package/src/render-drivers/threadx/worker/renderer.ts +6 -4
  200. package/src/utils.ts +25 -4
  201. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.test.ts +0 -136
@@ -1 +1 @@
1
- {"version":3,"file":"SdfTextRenderer.js","sourceRoot":"","sources":["../../../../../../src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SdfTextRenderer.js","sourceRoot":"","sources":["../../../../../../src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Round up to the nearest multiple of the given number.
3
+ *
4
+ * @param value
5
+ * @param multiple
6
+ * @returns
7
+ */
8
+ export declare function roundUpToMultiple(value: number, multiple: number): number;
@@ -0,0 +1,29 @@
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
+ /**
20
+ * Round up to the nearest multiple of the given number.
21
+ *
22
+ * @param value
23
+ * @param multiple
24
+ * @returns
25
+ */
26
+ export function roundUpToMultiple(value, multiple) {
27
+ return Math.ceil(value / multiple) * multiple;
28
+ }
29
+ //# sourceMappingURL=findNearestMultiple.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findNearestMultiple.js","sourceRoot":"","sources":["../../../../../../../src/core/text-rendering/renderers/SdfTextRenderer/internal/findNearestMultiple.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAa,EAAE,QAAgB;IAC/D,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,GAAG,QAAQ,CAAC;AAChD,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import type { TrProps, TextRendererState } from '../../TextRenderer.js';
2
2
  import type { SdfTextRendererState } from '../SdfTextRenderer.js';
3
+ import type { SdfRenderWindow } from './setRenderWindow.js';
3
4
  /**
4
5
  * Gets the start conditions for the layout loop.
5
6
  *
@@ -14,8 +15,8 @@ import type { SdfTextRendererState } from '../SdfTextRenderer.js';
14
15
  * @param textH
15
16
  * @returns
16
17
  */
17
- export declare function getStartConditions(fontSize: TrProps['fontSize'], offsetY: TrProps['offsetY'], fontSizeRatio: number, sdfLineHeight: number, renderWindow: SdfTextRendererState['renderWindow'], lineCache: SdfTextRendererState['lineCache'], textH: TextRendererState['textH']): {
18
- x: number;
19
- y: number;
18
+ export declare function getStartConditions(sdfFontSize: number, sdfLineHeight: number, lineHeight: number, verticalAlign: TrProps['verticalAlign'], offsetY: TrProps['offsetY'], fontSizeRatio: number, renderWindow: SdfRenderWindow, lineCache: SdfTextRendererState['lineCache'], textH: TextRendererState['textH']): {
19
+ sdfX: number;
20
+ sdfY: number;
20
21
  lineIndex: number;
21
22
  } | undefined;
@@ -30,23 +30,27 @@
30
30
  * @param textH
31
31
  * @returns
32
32
  */
33
- export function getStartConditions(fontSize, offsetY, fontSizeRatio, sdfLineHeight, renderWindow, lineCache, textH) {
33
+ export function getStartConditions(sdfFontSize, sdfLineHeight, lineHeight, verticalAlign, offsetY, fontSizeRatio, renderWindow, lineCache, textH) {
34
34
  // State variables
35
- let startLineIndex = 0;
36
- if (renderWindow) {
37
- startLineIndex = Math.min(Math.max(Math.floor(renderWindow.y1 / fontSize), 0), lineCache.length);
38
- }
39
- // TODO: Possibly break out startX / startY into a separate function
35
+ const startLineIndex = Math.min(Math.max(renderWindow.firstLineIdx, 0), lineCache.length);
40
36
  // TODO: (fontSize / 6.4286 / fontSizeRatio) Adding this to the startY helps the text line up better with Canvas rendered text
41
- const startX = 0;
42
- const startY = offsetY / fontSizeRatio + startLineIndex * sdfLineHeight; // TODO: Figure out what determines the initial y offset of text.
37
+ const sdfStartX = 0;
38
+ let sdfVerticalAlignYOffset = 0;
39
+ if (verticalAlign === 'middle') {
40
+ sdfVerticalAlignYOffset = (sdfLineHeight - sdfFontSize) / 2;
41
+ }
42
+ else if (verticalAlign === 'bottom') {
43
+ sdfVerticalAlignYOffset = sdfLineHeight - sdfFontSize;
44
+ }
45
+ const sdfOffsetY = offsetY / fontSizeRatio;
46
+ const sdfStartY = sdfOffsetY + startLineIndex * sdfLineHeight + sdfVerticalAlignYOffset; // TODO: Figure out what determines the initial y offset of text.
43
47
  // Don't attempt to render anything if we know we're starting past the established end of the text
44
- if (textH && startY >= textH / fontSizeRatio) {
48
+ if (textH && sdfStartY >= textH / fontSizeRatio) {
45
49
  return;
46
50
  }
47
51
  return {
48
- x: startX,
49
- y: startY,
52
+ sdfX: sdfStartX,
53
+ sdfY: sdfStartY,
50
54
  lineIndex: startLineIndex,
51
55
  };
52
56
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getStartConditions.js","sourceRoot":"","sources":["../../../../../../../src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAKH;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,kBAAkB,CAChC,QAA6B,EAC7B,OAA2B,EAC3B,aAAqB,EACrB,aAAqB,EACrB,YAAkD,EAClD,SAA4C,EAC5C,KAAiC;IAQjC,kBAAkB;IAClB,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,IAAI,YAAY,EAAE;QAChB,cAAc,GAAG,IAAI,CAAC,GAAG,CACvB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,EACnD,SAAS,CAAC,MAAM,CACjB,CAAC;KACH;IAED,oEAAoE;IACpE,8HAA8H;IAC9H,MAAM,MAAM,GAAG,CAAC,CAAC;IACjB,MAAM,MAAM,GAAG,OAAO,GAAG,aAAa,GAAG,cAAc,GAAG,aAAa,CAAC,CAAC,iEAAiE;IAE1I,kGAAkG;IAClG,IAAI,KAAK,IAAI,MAAM,IAAI,KAAK,GAAG,aAAa,EAAE;QAC5C,OAAO;KACR;IAED,OAAO;QACL,CAAC,EAAE,MAAM;QACT,CAAC,EAAE,MAAM;QACT,SAAS,EAAE,cAAc;KAC1B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"getStartConditions.js","sourceRoot":"","sources":["../../../../../../../src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAOH;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,kBAAkB,CAChC,WAAmB,EACnB,aAAqB,EACrB,UAAkB,EAClB,aAAuC,EACvC,OAA2B,EAC3B,aAAqB,EACrB,YAA6B,EAC7B,SAA4C,EAC5C,KAAiC;IAQjC,kBAAkB;IAClB,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAC7B,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC,EACtC,SAAS,CAAC,MAAM,CACjB,CAAC;IAEF,8HAA8H;IAC9H,MAAM,SAAS,GAAG,CAAC,CAAC;IACpB,IAAI,uBAAuB,GAAG,CAAC,CAAC;IAChC,IAAI,aAAa,KAAK,QAAQ,EAAE;QAC9B,uBAAuB,GAAG,CAAC,aAAa,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;KAC7D;SAAM,IAAI,aAAa,KAAK,QAAQ,EAAE;QACrC,uBAAuB,GAAG,aAAa,GAAG,WAAW,CAAC;KACvD;IACD,MAAM,UAAU,GAAG,OAAO,GAAG,aAAa,CAAC;IAC3C,MAAM,SAAS,GACb,UAAU,GAAG,cAAc,GAAG,aAAa,GAAG,uBAAuB,CAAC,CAAC,iEAAiE;IAE1I,kGAAkG;IAClG,IAAI,KAAK,IAAI,SAAS,IAAI,KAAK,GAAG,aAAa,EAAE;QAC/C,OAAO;KACR;IAED,OAAO;QACL,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,SAAS;QACf,SAAS,EAAE,cAAc;KAC1B,CAAC;AACJ,CAAC"}
@@ -1,6 +1,7 @@
1
+ import type { Bound } from '../../../../lib/utils.js';
1
2
  import type { TrProps, TextRendererState } from '../../TextRenderer.js';
2
3
  import type { SdfTextRendererState } from '../SdfTextRenderer.js';
3
- export declare function layoutText(curLineIndex: number, startX: number, startY: number, text: TrProps['text'], textAlign: TrProps['textAlign'], width: TrProps['width'], height: TrProps['height'], fontSize: TrProps['fontSize'], letterSpacing: TrProps['letterSpacing'],
4
+ export declare function layoutText(curLineIndex: number, startX: number, startY: number, text: TrProps['text'], textAlign: TrProps['textAlign'], width: TrProps['width'], height: TrProps['height'], fontSize: TrProps['fontSize'], lineHeight: TrProps['lineHeight'], letterSpacing: TrProps['letterSpacing'],
4
5
  /**
5
6
  * Mutated
6
7
  */
@@ -8,7 +9,7 @@ vertexBuffer: NonNullable<SdfTextRendererState['vertexBuffer']>, contain: TrProp
8
9
  /**
9
10
  * Mutated
10
11
  */
11
- lineCache: SdfTextRendererState['lineCache'], renderWindow: SdfTextRendererState['renderWindow'], trFontFace: SdfTextRendererState['trFontFace'], forceFullLayoutCalc: TextRendererState['forceFullLayoutCalc'], scrollable: TrProps['scrollable']): {
12
+ lineCache: SdfTextRendererState['lineCache'], rwSdf: Bound, trFontFace: SdfTextRendererState['trFontFace'], forceFullLayoutCalc: TextRendererState['forceFullLayoutCalc'], scrollable: TrProps['scrollable'], overflowSuffix: TrProps['overflowSuffix'], maxLines: TrProps['maxLines']): {
12
13
  bufferNumFloats: number;
13
14
  bufferNumQuads: number;
14
15
  layoutNumCharacters: number;
@@ -20,7 +20,7 @@ import { assertTruthy } from '../../../../../utils.js';
20
20
  import { PeekableIterator } from './PeekableGenerator.js';
21
21
  import { getUnicodeCodepoints } from './getUnicodeCodepoints.js';
22
22
  import { measureText } from './measureText.js';
23
- export function layoutText(curLineIndex, startX, startY, text, textAlign, width, height, fontSize, letterSpacing,
23
+ export function layoutText(curLineIndex, startX, startY, text, textAlign, width, height, fontSize, lineHeight, letterSpacing,
24
24
  /**
25
25
  * Mutated
26
26
  */
@@ -28,7 +28,7 @@ vertexBuffer, contain,
28
28
  /**
29
29
  * Mutated
30
30
  */
31
- lineCache, renderWindow, trFontFace, forceFullLayoutCalc, scrollable) {
31
+ lineCache, rwSdf, trFontFace, forceFullLayoutCalc, scrollable, overflowSuffix, maxLines) {
32
32
  assertTruthy(trFontFace, 'Font face must be loaded');
33
33
  assertTruthy(trFontFace.loaded, 'Font face must be loaded');
34
34
  assertTruthy(trFontFace.data, 'Font face must be loaded');
@@ -42,13 +42,13 @@ lineCache, renderWindow, trFontFace, forceFullLayoutCalc, scrollable) {
42
42
  // Input properties such as x, y, w, fontSize, letterSpacing, etc. are all expressed in screen space.
43
43
  // We convert these to the vertex space by dividing them the `fontSizeRatio` factor.
44
44
  /**
45
- * `lineHeight` in vertex coordinates
45
+ * See above
46
46
  */
47
- const vertexLineHeight = trFontFace.data.info.size;
47
+ const fontSizeRatio = fontSize / trFontFace.data.info.size;
48
48
  /**
49
- * See above
49
+ * `lineHeight` in vertex coordinates
50
50
  */
51
- const fontSizeRatio = fontSize / vertexLineHeight;
51
+ const vertexLineHeight = lineHeight / fontSizeRatio;
52
52
  /**
53
53
  * `w` in vertex coordinates
54
54
  */
@@ -84,22 +84,25 @@ lineCache, renderWindow, trFontFace, forceFullLayoutCalc, scrollable) {
84
84
  let glyphResult;
85
85
  let curLineBufferStart = -1;
86
86
  const bufferLineInfos = [];
87
- const truncateSeq = '...';
88
87
  const vertexTruncateHeight = height / fontSizeRatio;
89
- const truncateSeqVertexWidth = measureText(truncateSeq, shaperProps, shaper);
88
+ const overflowSuffVertexWidth = measureText(overflowSuffix, shaperProps, shaper);
90
89
  // Line-by-line layout
91
90
  let moreLines = true;
92
91
  while (moreLines) {
93
- const nextLineWillFit = contain !== 'both' ||
94
- scrollable ||
95
- curY + vertexLineHeight + vertexLineHeight <= vertexTruncateHeight;
92
+ const nextLineWillFit = (maxLines === 0 || curLineIndex + 1 < maxLines) &&
93
+ (contain !== 'both' ||
94
+ scrollable ||
95
+ curY + vertexLineHeight + vertexLineHeight <= vertexTruncateHeight);
96
96
  const lineVertexW = nextLineWillFit
97
97
  ? vertexW
98
- : vertexW - truncateSeqVertexWidth;
98
+ : vertexW - overflowSuffVertexWidth;
99
99
  /**
100
100
  * Vertex X position to the beginning of the last word boundary. This becomes -1 when we start traversing a word.
101
101
  */
102
102
  let xStartLastWordBoundary = 0;
103
+ const lineIsBelowWindowTop = curY + vertexLineHeight >= rwSdf.y1;
104
+ const lineIsAboveWindowBottom = curY <= rwSdf.y2;
105
+ const lineIsWithinWindow = lineIsBelowWindowTop && lineIsAboveWindowBottom;
103
106
  // Layout glyphs in this line
104
107
  // Any break statements in this while loop will trigger a line break
105
108
  while ((glyphResult = glyphs.next()) && !glyphResult.done) {
@@ -151,7 +154,7 @@ lineCache, renderWindow, trFontFace, forceFullLayoutCalc, scrollable) {
151
154
  break;
152
155
  }
153
156
  else {
154
- glyphs = shaper.shapeText(shaperProps, new PeekableIterator(getUnicodeCodepoints(truncateSeq, 0), 0));
157
+ glyphs = shaper.shapeText(shaperProps, new PeekableIterator(getUnicodeCodepoints(overflowSuffix, 0), 0));
155
158
  curX = lastWord.xStart;
156
159
  bufferOffset = lastWord.bufferOffset;
157
160
  }
@@ -160,14 +163,8 @@ lineCache, renderWindow, trFontFace, forceFullLayoutCalc, scrollable) {
160
163
  // This glyph fits, so we can add it to the buffer
161
164
  const quadX = curX + glyph.xOffset;
162
165
  const quadY = curY + glyph.yOffset;
163
- const lineIsBelowWindowTop = renderWindow
164
- ? curY + vertexLineHeight >= renderWindow.y1 / fontSizeRatio
165
- : true;
166
- const lineIsAboveWindowBottom = renderWindow
167
- ? curY <= renderWindow.y2 / fontSizeRatio
168
- : true;
169
166
  // Only add to buffer for rendering if the line is within the render window
170
- if (lineIsBelowWindowTop && lineIsAboveWindowBottom) {
167
+ if (lineIsWithinWindow) {
171
168
  if (curLineBufferStart === -1) {
172
169
  curLineBufferStart = bufferOffset;
173
170
  }
@@ -209,7 +206,17 @@ lineCache, renderWindow, trFontFace, forceFullLayoutCalc, scrollable) {
209
206
  // Unmapped character
210
207
  // Handle newlines
211
208
  if (glyph.codepoint === 10) {
212
- break;
209
+ if (nextLineWillFit) {
210
+ // The whole line fit, so we can break to the next line
211
+ break;
212
+ }
213
+ else {
214
+ // The whole line won't fit, so we need to add the overflow suffix
215
+ glyphs = shaper.shapeText(shaperProps, new PeekableIterator(getUnicodeCodepoints(overflowSuffix, 0), 0));
216
+ // HACK: For the rest of the line when inserting the overflow suffix,
217
+ // set contain = 'none' to prevent an infinite loop.
218
+ contain = 'none';
219
+ }
213
220
  }
214
221
  }
215
222
  }
@@ -227,10 +234,7 @@ lineCache, renderWindow, trFontFace, forceFullLayoutCalc, scrollable) {
227
234
  lastWord.codepointIndex = -1;
228
235
  xStartLastWordBoundary = 0;
229
236
  // Figure out if there are any more lines to render...
230
- if (!forceFullLayoutCalc &&
231
- contain === 'both' &&
232
- renderWindow &&
233
- curY > renderWindow.y2 / fontSizeRatio) {
237
+ if (!forceFullLayoutCalc && contain === 'both' && curY > rwSdf.y2) {
234
238
  // Stop layout calculation early (for performance purposes) if:
235
239
  // - We're not forcing a full layout calculation (for width/height calculation)
236
240
  // - ...and we're containing the text vertically+horizontally (contain === 'both')
@@ -242,7 +246,7 @@ lineCache, renderWindow, trFontFace, forceFullLayoutCalc, scrollable) {
242
246
  // If we've reached the end of the text, we know we're done
243
247
  moreLines = false;
244
248
  }
245
- else if (contain === 'both' && !scrollable && !nextLineWillFit) {
249
+ else if (!nextLineWillFit) {
246
250
  // If we're contained vertically+horizontally (contain === 'both')
247
251
  // but not scrollable and the next line won't fit, we're done.
248
252
  moreLines = false;
@@ -1 +1 @@
1
- {"version":3,"file":"layoutText.js","sourceRoot":"","sources":["../../../../../../../src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAQvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,UAAU,UAAU,CACxB,YAAoB,EACpB,MAAc,EACd,MAAc,EACd,IAAqB,EACrB,SAA+B,EAC/B,KAAuB,EACvB,MAAyB,EACzB,QAA6B,EAC7B,aAAuC;AACvC;;GAEG;AACH,YAA+D,EAC/D,OAA2B;AAC3B;;GAEG;AACH,SAA4C,EAC5C,YAAkD,EAClD,UAA8C,EAC9C,mBAA6D,EAC7D,UAAiC;IASjC,YAAY,CAAC,UAAU,EAAE,0BAA0B,CAAC,CAAC;IACrD,YAAY,CAAC,UAAU,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC;IAC5D,YAAY,CAAC,UAAU,CAAC,IAAI,EAAE,0BAA0B,CAAC,CAAC;IAC1D,YAAY,CAAC,UAAU,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC;IAE5D,6FAA6F;IAC7F,sFAAsF;IACtF,mEAAmE;IACnE,cAAc;IACd,8EAA8E;IAC9E,0CAA0C;IAC1C,qGAAqG;IACrG,oFAAoF;IAEpF;;OAEG;IACH,MAAM,gBAAgB,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACnD;;OAEG;IACH,MAAM,aAAa,GAAG,QAAQ,GAAG,gBAAgB,CAAC;IAClD;;OAEG;IACH,MAAM,OAAO,GAAG,KAAK,GAAG,aAAa,CAAC;IACtC;;OAEG;IACH,MAAM,cAAc,GAAG,aAAa,GAAG,aAAa,CAAC;IAErD,MAAM,sBAAsB,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC;IACvD,MAAM,sBAAsB,GAAG,sBAAsB,EAAE,cAAc,IAAI,CAAC,CAAC;IAC3E,MAAM,YAAY,GAAG,sBAAsB,EAAE,IAAI,IAAI,CAAC,CAAC;IACvD,MAAM,YAAY,GAAG,sBAAsB,EAAE,IAAI,IAAI,CAAC,CAAC;IAEvD,IAAI,IAAI,GAAG,YAAY,CAAC;IACxB,IAAI,IAAI,GAAG,YAAY,CAAC;IACxB,IAAI,IAAI,GAAG,MAAM,CAAC;IAClB,IAAI,IAAI,GAAG,MAAM,CAAC;IAElB,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB;;OAEG;IACH,MAAM,QAAQ,GAIV;QACF,cAAc,EAAE,CAAC,CAAC;QAClB,YAAY,EAAE,CAAC,CAAC;QAChB,MAAM,EAAE,CAAC,CAAC;KACX,CAAC;IAEF,oEAAoE;IACpE,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAEjC,MAAM,WAAW,GAAoB;QACnC,aAAa,EAAE,cAAc;KAC9B,CAAC;IAEF,aAAa;IACb,IAAI,MAAM,GAAG,MAAM,CAAC,SAAS,CAC3B,WAAW,EACX,IAAI,gBAAgB,CAClB,oBAAoB,CAAC,IAAI,EAAE,sBAAsB,CAAC,EAClD,sBAAsB,CACvB,CACF,CAAC;IAEF,IAAI,WAES,CAAC;IAEd,IAAI,kBAAkB,GAAG,CAAC,CAAC,CAAC;IAE5B,MAAM,eAAe,GAGf,EAAE,CAAC;IAET,MAAM,WAAW,GAAG,KAAK,CAAC;IAC1B,MAAM,oBAAoB,GAAG,MAAM,GAAG,aAAa,CAAC;IACpD,MAAM,sBAAsB,GAAG,WAAW,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;IAE7E,sBAAsB;IACtB,IAAI,SAAS,GAAG,IAAI,CAAC;IACrB,OAAO,SAAS,EAAE;QAChB,MAAM,eAAe,GACnB,OAAO,KAAK,MAAM;YAClB,UAAU;YACV,IAAI,GAAG,gBAAgB,GAAG,gBAAgB,IAAI,oBAAoB,CAAC;QACrE,MAAM,WAAW,GAAG,eAAe;YACjC,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,OAAO,GAAG,sBAAsB,CAAC;QACrC;;WAEG;QACH,IAAI,sBAAsB,GAAG,CAAC,CAAC;QAC/B,6BAA6B;QAC7B,oEAAoE;QACpE,OAAO,CAAC,WAAW,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;YACzD,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;YAEhC,IAAI,YAAY,KAAK,SAAS,CAAC,MAAM,EAAE;gBACrC,SAAS,CAAC,IAAI,CAAC;oBACb,cAAc,EAAE,KAAK,CAAC,OAAO;oBAC7B,IAAI;oBACJ,IAAI;iBACL,CAAC,CAAC;aACJ;iBAAM,IAAI,YAAY,GAAG,SAAS,CAAC,MAAM,EAAE;gBAC1C,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;aAChD;YAED,yEAAyE;YACzE,yEAAyE;YACzE,IAAI,KAAK,CAAC,SAAS,KAAK,EAAE,IAAI,KAAK,CAAC,SAAS,KAAK,EAAE,EAAE;gBACpD,IAAI,QAAQ,CAAC,cAAc,KAAK,CAAC,CAAC,EAAE;oBAClC,QAAQ,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;oBAC7B,sBAAsB,GAAG,IAAI,CAAC;iBAC/B;aACF;iBAAM,IAAI,QAAQ,CAAC,cAAc,KAAK,CAAC,CAAC,EAAE;gBACzC,QAAQ,CAAC,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC;gBACxC,QAAQ,CAAC,YAAY,GAAG,YAAY,CAAC;gBACrC,QAAQ,CAAC,MAAM,GAAG,sBAAsB,CAAC;aAC1C;YAED,IAAI,KAAK,CAAC,MAAM,EAAE;gBAChB,eAAe;gBACf,MAAM,QAAQ,GAAG,IAAI,GAAG,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC;gBACpD,kBAAkB;gBAClB;gBACE,6BAA6B;gBAC7B,OAAO,KAAK,MAAM;oBAClB,wDAAwD;oBACxD,QAAQ,IAAI,WAAW;oBACvB,0DAA0D;oBAC1D,QAAQ,CAAC,cAAc,KAAK,CAAC,CAAC;oBAC9B,sEAAsE;oBACtE,QAAQ,CAAC,cAAc,GAAG,KAAK,CAAC,OAAO;oBACvC,qEAAqE;oBACrE,QAAQ,CAAC,MAAM,GAAG,CAAC,EACnB;oBACA,sEAAsE;oBACtE,sDAAsD;oBACtD,kCAAkC;oBAClC,IAAI,eAAe,EAAE;wBACnB,MAAM,GAAG,MAAM,CAAC,SAAS,CACvB,WAAW,EACX,IAAI,gBAAgB,CAClB,oBAAoB,CAAC,IAAI,EAAE,QAAQ,CAAC,cAAc,CAAC,EACnD,QAAQ,CAAC,cAAc,CACxB,CACF,CAAC;wBACF,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC;wBACrC,MAAM;qBACP;yBAAM;wBACL,MAAM,GAAG,MAAM,CAAC,SAAS,CACvB,WAAW,EACX,IAAI,gBAAgB,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAC9D,CAAC;wBACF,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC;wBACvB,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC;qBACtC;iBACF;qBAAM;oBACL,kDAAkD;oBAClD,MAAM,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC;oBACnC,MAAM,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC;oBAEnC,MAAM,oBAAoB,GAAG,YAAY;wBACvC,CAAC,CAAC,IAAI,GAAG,gBAAgB,IAAI,YAAY,CAAC,EAAE,GAAG,aAAa;wBAC5D,CAAC,CAAC,IAAI,CAAC;oBACT,MAAM,uBAAuB,GAAG,YAAY;wBAC1C,CAAC,CAAC,IAAI,IAAI,YAAY,CAAC,EAAE,GAAG,aAAa;wBACzC,CAAC,CAAC,IAAI,CAAC;oBAET,2EAA2E;oBAC3E,IAAI,oBAAoB,IAAI,uBAAuB,EAAE;wBACnD,IAAI,kBAAkB,KAAK,CAAC,CAAC,EAAE;4BAC7B,kBAAkB,GAAG,YAAY,CAAC;yBACnC;wBAED,MAAM,UAAU,GAAG,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;wBAE3D,0BAA0B;wBAC1B,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;wBACvD,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;wBACvD,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;wBACjE,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;wBAEnE,yEAAyE;wBACzE,6CAA6C;wBAE7C,WAAW;wBACX,YAAY,CAAC,YAAY,EAAE,CAAC,GAAG,KAAK,CAAC;wBACrC,YAAY,CAAC,YAAY,EAAE,CAAC,GAAG,KAAK,CAAC;wBACrC,YAAY,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC;wBACjC,YAAY,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC;wBAEjC,YAAY;wBACZ,YAAY,CAAC,YAAY,EAAE,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;wBACnD,YAAY,CAAC,YAAY,EAAE,CAAC,GAAG,KAAK,CAAC;wBACrC,YAAY,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;wBAC3C,YAAY,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC;wBAEjC,cAAc;wBACd,YAAY,CAAC,YAAY,EAAE,CAAC,GAAG,KAAK,CAAC;wBACrC,YAAY,CAAC,YAAY,EAAE,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;wBACpD,YAAY,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC;wBACjC,YAAY,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;wBAE5C,eAAe;wBACf,YAAY,CAAC,YAAY,EAAE,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;wBACnD,YAAY,CAAC,YAAY,EAAE,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;wBACpD,YAAY,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;wBAC3C,YAAY,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;qBAC7C;oBAED,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;oBAC5C,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC;oBACvB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;iBAC7B;aACF;iBAAM;gBACL,qBAAqB;gBAErB,kBAAkB;gBAClB,IAAI,KAAK,CAAC,SAAS,KAAK,EAAE,EAAE;oBAC1B,MAAM;iBACP;aACF;SACF;QAED,+BAA+B;QAC/B,IAAI,kBAAkB,KAAK,CAAC,CAAC,EAAE;YAC7B,eAAe,CAAC,IAAI,CAAC;gBACnB,WAAW,EAAE,kBAAkB;gBAC/B,SAAS,EAAE,YAAY;aACxB,CAAC,CAAC;YACH,kBAAkB,GAAG,CAAC,CAAC,CAAC;SACzB;QACD,IAAI,GAAG,CAAC,CAAC;QACT,IAAI,IAAI,gBAAgB,CAAC;QACzB,YAAY,EAAE,CAAC;QACf,QAAQ,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;QAC7B,sBAAsB,GAAG,CAAC,CAAC;QAE3B,sDAAsD;QACtD,IACE,CAAC,mBAAmB;YACpB,OAAO,KAAK,MAAM;YAClB,YAAY;YACZ,IAAI,GAAG,YAAY,CAAC,EAAE,GAAG,aAAa,EACtC;YACA,+DAA+D;YAC/D,+EAA+E;YAC/E,kFAAkF;YAClF,mCAAmC;YACnC,kEAAkE;YAClE,SAAS,GAAG,KAAK,CAAC;SACnB;aAAM,IAAI,WAAW,IAAI,WAAW,CAAC,IAAI,EAAE;YAC1C,2DAA2D;YAC3D,SAAS,GAAG,KAAK,CAAC;SACnB;aAAM,IAAI,OAAO,KAAK,MAAM,IAAI,CAAC,UAAU,IAAI,CAAC,eAAe,EAAE;YAChE,kEAAkE;YAClE,8DAA8D;YAC9D,SAAS,GAAG,KAAK,CAAC;SACnB;KACF;IAED,6EAA6E;IAC7E,6BAA6B;IAC7B,IAAI,SAAS,KAAK,QAAQ,EAAE;QAC1B,MAAM,WAAW,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;QAExD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC/C,MAAM,IAAI,GAAG,eAAe,CAAC,CAAC,CAAE,CAAC;YACjC,6CAA6C;YAC7C,MAAM,SAAS;YACb,oEAAoE;YACpE,YAAY,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAE,GAAG,YAAY,CAAC,IAAI,CAAC,WAAW,CAAE,CAAC;YAEtE,MAAM,OAAO,GAAG,CAAC,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;YAC9C,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE;gBACzD,YAAY,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC;aAC5B;SACF;KACF;SAAM,IAAI,SAAS,KAAK,OAAO,EAAE;QAChC,MAAM,WAAW,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;QAExD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC/C,MAAM,IAAI,GAAG,eAAe,CAAC,CAAC,CAAE,CAAC;YACjC,MAAM,SAAS,GACb,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,WAAW;gBACjC,CAAC,CAAC,CAAC;gBACH,CAAC,CAAC,oEAAoE;oBACpE,YAAY,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAE,GAAG,YAAY,CAAC,IAAI,CAAC,WAAW,CAAE,CAAC;YAE1E,MAAM,OAAO,GAAG,WAAW,GAAG,SAAS,CAAC;YACxC,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE;gBACzD,YAAY,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC;aAC5B;SACF;KACF;IAED,YAAY,CAAC,WAAW,CAAC,CAAC;IAE1B,OAAO;QACL,eAAe,EAAE,YAAY;QAC7B,cAAc,EAAE,YAAY,GAAG,EAAE;QACjC,mBAAmB,EAAE,WAAW,CAAC,IAAI;YACnC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,sBAAsB;YACtC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,GAAG,sBAAsB,GAAG,CAAC;QAC1D,cAAc,EAAE,CAAC,CAAC,WAAW,CAAC,IAAI;QAClC,IAAI;QACJ,IAAI;KACL,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"layoutText.js","sourceRoot":"","sources":["../../../../../../../src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { SdfTrFontFace } from '../../../../font-face-types/SdfTrFontFace/SdfTrFontFace.js';
2
+ import type { MappedGlyphInfo } from '../../../../font-face-types/SdfTrFontFace/internal/FontShaper.js';
3
+ export declare class SdfBufferHelper {
4
+ bufferOffset: number;
5
+ vertexBuffer: Float32Array;
6
+ trFontFace: SdfTrFontFace;
7
+ scaleW: number;
8
+ scaleH: number;
9
+ standByGlyphs: MappedGlyphInfo[];
10
+ standByCurX: number;
11
+ standByStartXAfterLeadSpaces: number;
12
+ curX: number;
13
+ curY: number;
14
+ constructor(vertexBuffer: Float32Array, trFontFace: SdfTrFontFace);
15
+ glyphsStandingBy(): boolean;
16
+ getStandByGlyphsWidth(): number;
17
+ pushStandByGlyph(glyph: MappedGlyphInfo): void;
18
+ flushStandByGlyphs(skipLeadingSpaces?: boolean): void;
19
+ }
@@ -0,0 +1,84 @@
1
+ import { assertTruthy } from '../../../../../../utils.js';
2
+ import { isWhiteSpace } from './utils.js';
3
+ export class SdfBufferHelper {
4
+ bufferOffset = 0;
5
+ vertexBuffer;
6
+ trFontFace;
7
+ scaleW;
8
+ scaleH;
9
+ standByGlyphs = [];
10
+ standByCurX = -1;
11
+ standByStartXAfterLeadSpaces = -1;
12
+ curX = 0;
13
+ curY = 0;
14
+ constructor(vertexBuffer, trFontFace) {
15
+ assertTruthy(trFontFace.data);
16
+ this.vertexBuffer = vertexBuffer;
17
+ this.trFontFace = trFontFace;
18
+ this.scaleW = trFontFace.data.common.scaleW;
19
+ this.scaleH = trFontFace.data.common.scaleH;
20
+ }
21
+ glyphsStandingBy() {
22
+ return this.standByGlyphs.length > 0;
23
+ }
24
+ getStandByGlyphsWidth() {
25
+ if (this.standByStartXAfterLeadSpaces === -1 || this.standByCurX === -1) {
26
+ return 0;
27
+ }
28
+ return this.standByCurX - this.standByStartXAfterLeadSpaces;
29
+ }
30
+ pushStandByGlyph(glyph) {
31
+ this.standByGlyphs.push(glyph);
32
+ if (!isWhiteSpace(glyph.codepoint) &&
33
+ this.standByStartXAfterLeadSpaces === -1) {
34
+ this.standByStartXAfterLeadSpaces = this.standByCurX;
35
+ }
36
+ if (this.standByCurX === -1) {
37
+ this.standByCurX = this.curX;
38
+ }
39
+ this.standByCurX += glyph.xAdvance;
40
+ }
41
+ flushStandByGlyphs(skipLeadingSpaces = false) {
42
+ const { vertexBuffer, trFontFace, scaleW, scaleH, curX, curY, standByCurX, } = this;
43
+ let { bufferOffset } = this;
44
+ for (const glyph of this.standByGlyphs) {
45
+ if (skipLeadingSpaces && isWhiteSpace(glyph.codepoint)) {
46
+ continue;
47
+ }
48
+ const atlasEntry = trFontFace.getAtlasEntry(glyph.glyphId);
49
+ // This glyph fits, so we can add it to the buffer
50
+ const quadX = curX + glyph.xOffset;
51
+ const quadY = curY + glyph.yOffset;
52
+ const u = atlasEntry.x / scaleW;
53
+ const v = atlasEntry.y / scaleH;
54
+ const uvWidth = atlasEntry.width / scaleW;
55
+ const uvHeight = atlasEntry.height / scaleH;
56
+ // Top-left
57
+ vertexBuffer[bufferOffset++] = quadX;
58
+ vertexBuffer[bufferOffset++] = quadY;
59
+ vertexBuffer[bufferOffset++] = u;
60
+ vertexBuffer[bufferOffset++] = v;
61
+ // Top-right
62
+ vertexBuffer[bufferOffset++] = quadX + glyph.width;
63
+ vertexBuffer[bufferOffset++] = quadY;
64
+ vertexBuffer[bufferOffset++] = u + uvWidth;
65
+ vertexBuffer[bufferOffset++] = v;
66
+ // Bottom-left
67
+ vertexBuffer[bufferOffset++] = quadX;
68
+ vertexBuffer[bufferOffset++] = quadY + glyph.height;
69
+ vertexBuffer[bufferOffset++] = u;
70
+ vertexBuffer[bufferOffset++] = v + uvHeight;
71
+ // Bottom-right
72
+ vertexBuffer[bufferOffset++] = quadX + glyph.width;
73
+ vertexBuffer[bufferOffset++] = quadY + glyph.height;
74
+ vertexBuffer[bufferOffset++] = u + uvWidth;
75
+ vertexBuffer[bufferOffset++] = v + uvHeight;
76
+ this.bufferOffset = bufferOffset;
77
+ }
78
+ this.curX = standByCurX;
79
+ this.standByGlyphs.length = 0;
80
+ this.standByCurX = -1;
81
+ this.standByStartXAfterLeadSpaces = -1;
82
+ }
83
+ }
84
+ //# sourceMappingURL=SdfBufferHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SdfBufferHelper.js","sourceRoot":"","sources":["../../../../../../../../src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/SdfBufferHelper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAG1D,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,MAAM,OAAO,eAAe;IAC1B,YAAY,GAAG,CAAC,CAAC;IACjB,YAAY,CAAe;IAC3B,UAAU,CAAgB;IAC1B,MAAM,CAAS;IACf,MAAM,CAAS;IACf,aAAa,GAAsB,EAAE,CAAC;IACtC,WAAW,GAAG,CAAC,CAAC,CAAC;IACjB,4BAA4B,GAAG,CAAC,CAAC,CAAC;IAClC,IAAI,GAAG,CAAC,CAAC;IACT,IAAI,GAAG,CAAC,CAAC;IAET,YAAY,YAA0B,EAAE,UAAyB;QAC/D,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QAC5C,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC9C,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;IACvC,CAAC;IAED,qBAAqB;QACnB,IAAI,IAAI,CAAC,4BAA4B,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,WAAW,KAAK,CAAC,CAAC,EAAE;YACvE,OAAO,CAAC,CAAC;SACV;QACD,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,4BAA4B,CAAC;IAC9D,CAAC;IAED,gBAAgB,CAAC,KAAsB;QACrC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/B,IACE,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC;YAC9B,IAAI,CAAC,4BAA4B,KAAK,CAAC,CAAC,EACxC;YACA,IAAI,CAAC,4BAA4B,GAAG,IAAI,CAAC,WAAW,CAAC;SACtD;QACD,IAAI,IAAI,CAAC,WAAW,KAAK,CAAC,CAAC,EAAE;YAC3B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC;SAC9B;QACD,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC,QAAQ,CAAC;IACrC,CAAC;IAED,kBAAkB,CAAC,iBAAiB,GAAG,KAAK;QAC1C,MAAM,EACJ,YAAY,EACZ,UAAU,EACV,MAAM,EACN,MAAM,EACN,IAAI,EACJ,IAAI,EACJ,WAAW,GACZ,GAAG,IAAI,CAAC;QACT,IAAI,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;QAC5B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,aAAa,EAAE;YACtC,IAAI,iBAAiB,IAAI,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;gBACtD,SAAS;aACV;YAED,MAAM,UAAU,GAAG,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAE3D,kDAAkD;YAClD,MAAM,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC;YACnC,MAAM,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC;YACnC,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,GAAG,MAAM,CAAC;YAChC,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,GAAG,MAAM,CAAC;YAChC,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC;YAC1C,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC;YAE5C,WAAW;YACX,YAAY,CAAC,YAAY,EAAE,CAAC,GAAG,KAAK,CAAC;YACrC,YAAY,CAAC,YAAY,EAAE,CAAC,GAAG,KAAK,CAAC;YACrC,YAAY,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC;YACjC,YAAY,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC;YAEjC,YAAY;YACZ,YAAY,CAAC,YAAY,EAAE,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;YACnD,YAAY,CAAC,YAAY,EAAE,CAAC,GAAG,KAAK,CAAC;YACrC,YAAY,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;YAC3C,YAAY,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC;YAEjC,cAAc;YACd,YAAY,CAAC,YAAY,EAAE,CAAC,GAAG,KAAK,CAAC;YACrC,YAAY,CAAC,YAAY,EAAE,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;YACpD,YAAY,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC;YACjC,YAAY,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;YAE5C,eAAe;YACf,YAAY,CAAC,YAAY,EAAE,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;YACnD,YAAY,CAAC,YAAY,EAAE,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;YACpD,YAAY,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;YAC3C,YAAY,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;YAE5C,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;SAClC;QACD,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;QACxB,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,4BAA4B,GAAG,CAAC,CAAC,CAAC;IACzC,CAAC;CACF"}
@@ -0,0 +1,8 @@
1
+ import type { MappedGlyphInfo, UnmappedCharacterInfo } from '../../../../font-face-types/SdfTrFontFace/internal/FontShaper.js';
2
+ import { PeekableIterator } from '../PeekableGenerator.js';
3
+ import type { SdfBufferHelper } from './SdfBufferHelper.js';
4
+ export declare function layoutLine(glyphs: PeekableIterator<MappedGlyphInfo | UnmappedCharacterInfo>,
5
+ /**
6
+ * Can be Infinity
7
+ */
8
+ maxLineWidth: number, bufferHelper: SdfBufferHelper): boolean;
@@ -0,0 +1,40 @@
1
+ import { PeekableIterator } from '../PeekableGenerator.js';
2
+ import { getUnicodeCodepoints } from '../getUnicodeCodepoints.js';
3
+ import { isWhiteSpace } from './utils.js';
4
+ export function layoutLine(glyphs,
5
+ /**
6
+ * Can be Infinity
7
+ */
8
+ maxLineWidth, bufferHelper) {
9
+ let moreLeft = true;
10
+ let glyphResult;
11
+ // If there's any standByGlyphs at the beginning of the line, we need to
12
+ // we to flush them if they fit
13
+ if (bufferHelper.getStandByGlyphsWidth() < maxLineWidth) {
14
+ bufferHelper.flushStandByGlyphs(true);
15
+ }
16
+ while ((glyphResult = glyphs.next())) {
17
+ if (glyphResult.done || isWhiteSpace(glyphResult.value.codepoint)) {
18
+ // We're out of glyphs, or we hit a whitespace character.
19
+ // Flush the standByGlyphs if they fit or if this is the last line
20
+ // add the overflow suffix.
21
+ if (bufferHelper.glyphsStandingBy() &&
22
+ bufferHelper.standByCurX <= maxLineWidth) {
23
+ bufferHelper.flushStandByGlyphs();
24
+ }
25
+ else {
26
+ break;
27
+ }
28
+ }
29
+ if (glyphResult.done) {
30
+ moreLeft = false;
31
+ break;
32
+ }
33
+ const glyph = glyphResult.value;
34
+ if (glyph.mapped) {
35
+ bufferHelper.pushStandByGlyph(glyph);
36
+ }
37
+ }
38
+ return moreLeft;
39
+ }
40
+ //# sourceMappingURL=layoutLine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layoutLine.js","sourceRoot":"","sources":["../../../../../../../../src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutLine.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElE,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,MAAM,UAAU,UAAU,CACxB,MAAiE;AACjE;;GAEG;AACH,YAAoB,EACpB,YAA6B;IAE7B,IAAI,QAAQ,GAAG,IAAI,CAAC;IACpB,IAAI,WAAoE,CAAC;IAEzE,wEAAwE;IACxE,+BAA+B;IAC/B,IAAI,YAAY,CAAC,qBAAqB,EAAE,GAAG,YAAY,EAAE;QACvD,YAAY,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;KACvC;IAED,OAAO,CAAC,WAAW,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE;QACpC,IAAI,WAAW,CAAC,IAAI,IAAI,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;YACjE,yDAAyD;YACzD,kEAAkE;YAClE,2BAA2B;YAC3B,IACE,YAAY,CAAC,gBAAgB,EAAE;gBAC/B,YAAY,CAAC,WAAW,IAAI,YAAY,EACxC;gBACA,YAAY,CAAC,kBAAkB,EAAE,CAAC;aACnC;iBAAM;gBACL,MAAM;aACP;SACF;QAED,IAAI,WAAW,CAAC,IAAI,EAAE;YACpB,QAAQ,GAAG,KAAK,CAAC;YACjB,MAAM;SACP;QAED,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;QAEhC,IAAI,KAAK,CAAC,MAAM,EAAE;YAChB,YAAY,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;SACtC;KACF;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { SdfTrFontFace } from '../../../../font-face-types/SdfTrFontFace/SdfTrFontFace.js';
2
+ export declare function layoutText2(text: string, sdfLetterSpacing: number, trFontFace: SdfTrFontFace): void;
@@ -0,0 +1,41 @@
1
+ import { assertTruthy } from '../../../../../../utils.js';
2
+ import { PeekableIterator } from '../PeekableGenerator.js';
3
+ import { getUnicodeCodepoints } from '../getUnicodeCodepoints.js';
4
+ import { measureText } from '../measureText.js';
5
+ import { SdfBufferHelper } from './SdfBufferHelper.js';
6
+ import { layoutLine } from './layoutLine.js';
7
+ export function layoutText2(text, sdfLetterSpacing, trFontFace) {
8
+ const startingCodepointIndex = 0;
9
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
10
+ const shaper = trFontFace.shaper;
11
+ assertTruthy(shaper);
12
+ const shaperProps = {
13
+ letterSpacing: sdfLetterSpacing,
14
+ };
15
+ // Get glyphs
16
+ const glyphs = new PeekableIterator(shaper.shapeText(shaperProps, new PeekableIterator(getUnicodeCodepoints(text, startingCodepointIndex), startingCodepointIndex)));
17
+ const maxLineWidth = 100;
18
+ const maxLines = 1;
19
+ const overflowSuffix = '...';
20
+ const sdfOverflowSuffWidth = measureText(overflowSuffix, shaperProps, shaper);
21
+ const bufferHelper = new SdfBufferHelper(new Float32Array(100), trFontFace);
22
+ let moreLines = true;
23
+ let lastLine = false;
24
+ let curLineIndex = 0;
25
+ while (moreLines) {
26
+ lastLine = !(maxLines === 0 || curLineIndex + 1 < maxLines);
27
+ layoutLine(glyphs,
28
+ // If this is the last line, we need to account for the overflow suffix
29
+ // in the maxLineWidth it will definitely fit.
30
+ lastLine ? maxLineWidth - sdfOverflowSuffWidth : maxLineWidth, bufferHelper);
31
+ const moreGlyphs = !glyphs.peek().done;
32
+ // If lastLine and there are more glyphs, we need to add the overflow suffix
33
+ // to the end of the line
34
+ if (lastLine && moreGlyphs) {
35
+ layoutLine(new PeekableIterator(shaper.shapeText(shaperProps, new PeekableIterator(getUnicodeCodepoints(overflowSuffix, 0), 0))), Infinity, bufferHelper);
36
+ }
37
+ moreLines = !lastLine && moreGlyphs;
38
+ curLineIndex++;
39
+ }
40
+ }
41
+ //# sourceMappingURL=layoutText2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layoutText2.js","sourceRoot":"","sources":["../../../../../../../../src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutText2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAG1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,MAAM,UAAU,WAAW,CACzB,IAAY,EACZ,gBAAwB,EACxB,UAAyB;IAEzB,MAAM,sBAAsB,GAAG,CAAC,CAAC;IACjC,oEAAoE;IACpE,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAEjC,YAAY,CAAC,MAAM,CAAC,CAAC;IAErB,MAAM,WAAW,GAAoB;QACnC,aAAa,EAAE,gBAAgB;KAChC,CAAC;IAEF,aAAa;IACb,MAAM,MAAM,GAAG,IAAI,gBAAgB,CACjC,MAAM,CAAC,SAAS,CACd,WAAW,EACX,IAAI,gBAAgB,CAClB,oBAAoB,CAAC,IAAI,EAAE,sBAAsB,CAAC,EAClD,sBAAsB,CACvB,CACF,CACF,CAAC;IAEF,MAAM,YAAY,GAAG,GAAG,CAAC;IACzB,MAAM,QAAQ,GAAG,CAAW,CAAC;IAC7B,MAAM,cAAc,GAAG,KAAK,CAAC;IAC7B,MAAM,oBAAoB,GAAG,WAAW,CAAC,cAAc,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;IAE9E,MAAM,YAAY,GAAG,IAAI,eAAe,CAAC,IAAI,YAAY,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,CAAC;IAE5E,IAAI,SAAS,GAAG,IAAI,CAAC;IACrB,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,OAAO,SAAS,EAAE;QAChB,QAAQ,GAAG,CAAC,CAAC,QAAQ,KAAK,CAAC,IAAI,YAAY,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;QAE5D,UAAU,CACR,MAAM;QACN,uEAAuE;QACvE,8CAA8C;QAC9C,QAAQ,CAAC,CAAC,CAAC,YAAY,GAAG,oBAAoB,CAAC,CAAC,CAAC,YAAY,EAC7D,YAAY,CACb,CAAC;QAEF,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC;QACvC,4EAA4E;QAC5E,yBAAyB;QACzB,IAAI,QAAQ,IAAI,UAAU,EAAE;YAC1B,UAAU,CACR,IAAI,gBAAgB,CAClB,MAAM,CAAC,SAAS,CACd,WAAW,EACX,IAAI,gBAAgB,CAAC,oBAAoB,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CACjE,CACF,EACD,QAAQ,EACR,YAAY,CACb,CAAC;SACH;QACD,SAAS,GAAG,CAAC,QAAQ,IAAI,UAAU,CAAC;QACpC,YAAY,EAAE,CAAC;KAChB;AACH,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function isWhiteSpace(codepoint: number): boolean;
@@ -0,0 +1,4 @@
1
+ export function isWhiteSpace(codepoint) {
2
+ return codepoint === 32 || codepoint === 10;
3
+ }
4
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../../../../src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/utils.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,YAAY,CAAC,SAAiB;IAC5C,OAAO,SAAS,KAAK,EAAE,IAAI,SAAS,KAAK,EAAE,CAAC;AAC9C,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=layoutText2.js.map