@lightningjs/renderer 0.6.1 → 0.7.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 (189) hide show
  1. package/dist/src/common/CommonTypes.d.ts +8 -0
  2. package/dist/src/core/CoreNode.js +45 -16
  3. package/dist/src/core/CoreNode.js.map +1 -1
  4. package/dist/src/core/CoreTextNode.d.ts +10 -0
  5. package/dist/src/core/CoreTextNode.js +45 -0
  6. package/dist/src/core/CoreTextNode.js.map +1 -1
  7. package/dist/src/core/CoreTextureManager.d.ts +3 -1
  8. package/dist/src/core/CoreTextureManager.js +4 -1
  9. package/dist/src/core/CoreTextureManager.js.map +1 -1
  10. package/dist/src/core/Stage.d.ts +6 -0
  11. package/dist/src/core/Stage.js +12 -3
  12. package/dist/src/core/Stage.js.map +1 -1
  13. package/dist/src/core/lib/ImageWorker.d.ts +16 -0
  14. package/dist/src/core/lib/ImageWorker.js +111 -0
  15. package/dist/src/core/lib/ImageWorker.js.map +1 -0
  16. package/dist/src/core/lib/WebGlContextWrapper.d.ts +4 -0
  17. package/dist/src/core/lib/WebGlContextWrapper.js +7 -2
  18. package/dist/src/core/lib/WebGlContextWrapper.js.map +1 -1
  19. package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.d.ts +2 -1
  20. package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.js +2 -2
  21. package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.js.map +1 -1
  22. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.d.ts +3 -2
  23. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js +23 -21
  24. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js.map +1 -1
  25. package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.d.ts +3 -2
  26. package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js +9 -13
  27. package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js.map +1 -1
  28. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.d.ts +4 -1
  29. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js +25 -24
  30. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js.map +1 -1
  31. package/dist/src/core/renderers/webgl/WebGlCoreShader.d.ts +2 -1
  32. package/dist/src/core/renderers/webgl/WebGlCoreShader.js +24 -24
  33. package/dist/src/core/renderers/webgl/WebGlCoreShader.js.map +1 -1
  34. package/dist/src/core/renderers/webgl/internal/RendererUtils.d.ts +8 -5
  35. package/dist/src/core/renderers/webgl/internal/RendererUtils.js +11 -13
  36. package/dist/src/core/renderers/webgl/internal/RendererUtils.js.map +1 -1
  37. package/dist/src/core/renderers/webgl/internal/ShaderUtils.d.ts +3 -2
  38. package/dist/src/core/renderers/webgl/internal/ShaderUtils.js +15 -15
  39. package/dist/src/core/renderers/webgl/internal/ShaderUtils.js.map +1 -1
  40. package/dist/src/core/renderers/webgl/shaders/DefaultShader.js +3 -6
  41. package/dist/src/core/renderers/webgl/shaders/DefaultShader.js.map +1 -1
  42. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js +3 -3
  43. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js.map +1 -1
  44. package/dist/src/core/renderers/webgl/shaders/DynamicShader.d.ts +1 -0
  45. package/dist/src/core/renderers/webgl/shaders/DynamicShader.js +32 -12
  46. package/dist/src/core/renderers/webgl/shaders/DynamicShader.js.map +1 -1
  47. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js +3 -3
  48. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js.map +1 -1
  49. package/dist/src/core/renderers/webgl/shaders/SdfShader.js +3 -3
  50. package/dist/src/core/renderers/webgl/shaders/SdfShader.js.map +1 -1
  51. package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js +1 -1
  52. package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.d.ts +14 -1
  53. package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js +15 -5
  54. package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js.map +1 -1
  55. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js +3 -3
  56. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js.map +1 -1
  57. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.d.ts +2 -1
  58. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.js +4 -2
  59. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.js.map +1 -1
  60. package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js +25 -0
  61. package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js.map +1 -1
  62. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.d.ts +1 -1
  63. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js +6 -6
  64. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js.map +1 -1
  65. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.d.ts +3 -2
  66. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js +82 -50
  67. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js.map +1 -1
  68. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/findNearestMultiple.d.ts +8 -0
  69. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/findNearestMultiple.js +29 -0
  70. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/findNearestMultiple.js.map +1 -0
  71. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.d.ts +4 -3
  72. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.js +15 -11
  73. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.js.map +1 -1
  74. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.d.ts +3 -2
  75. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js +30 -26
  76. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js.map +1 -1
  77. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/SdfBufferHelper.d.ts +19 -0
  78. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/SdfBufferHelper.js +84 -0
  79. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/SdfBufferHelper.js.map +1 -0
  80. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutLine.d.ts +8 -0
  81. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutLine.js +40 -0
  82. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutLine.js.map +1 -0
  83. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutText2.d.ts +2 -0
  84. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutText2.js +41 -0
  85. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutText2.js.map +1 -0
  86. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/utils.d.ts +1 -0
  87. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/utils.js +4 -0
  88. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/utils.js.map +1 -0
  89. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2.d.ts +1 -0
  90. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2.js +2 -0
  91. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2.js.map +1 -0
  92. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/roundUpToMultiple.d.ts +9 -0
  93. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/roundUpToMultiple.js +32 -0
  94. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/roundUpToMultiple.js.map +1 -0
  95. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.d.ts +26 -0
  96. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.js +70 -0
  97. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.js.map +1 -0
  98. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.d.ts +16 -0
  99. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.js +39 -0
  100. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.js.map +1 -0
  101. package/dist/src/core/text-rendering/renderers/TextRenderer.d.ts +50 -0
  102. package/dist/src/core/text-rendering/renderers/TextRenderer.js +19 -0
  103. package/dist/src/core/text-rendering/renderers/TextRenderer.js.map +1 -1
  104. package/dist/src/core/textures/ImageTexture.js +14 -9
  105. package/dist/src/core/textures/ImageTexture.js.map +1 -1
  106. package/dist/src/core/utils.d.ts +1 -6
  107. package/dist/src/core/utils.js +3 -2
  108. package/dist/src/core/utils.js.map +1 -1
  109. package/dist/src/main-api/ICoreDriver.d.ts +2 -1
  110. package/dist/src/main-api/RendererMain.d.ts +25 -0
  111. package/dist/src/main-api/RendererMain.js +14 -5
  112. package/dist/src/main-api/RendererMain.js.map +1 -1
  113. package/dist/src/render-drivers/main/MainCoreDriver.d.ts +2 -1
  114. package/dist/src/render-drivers/main/MainCoreDriver.js +6 -4
  115. package/dist/src/render-drivers/main/MainCoreDriver.js.map +1 -1
  116. package/dist/src/render-drivers/main/MainOnlyTextNode.d.ts +10 -0
  117. package/dist/src/render-drivers/main/MainOnlyTextNode.js +45 -0
  118. package/dist/src/render-drivers/main/MainOnlyTextNode.js.map +1 -1
  119. package/dist/src/render-drivers/threadx/TextNodeStruct.d.ts +10 -0
  120. package/dist/src/render-drivers/threadx/TextNodeStruct.js +45 -0
  121. package/dist/src/render-drivers/threadx/TextNodeStruct.js.map +1 -1
  122. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.d.ts +2 -1
  123. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js +8 -1
  124. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js.map +1 -1
  125. package/dist/src/render-drivers/threadx/ThreadXMainTextNode.d.ts +5 -0
  126. package/dist/src/render-drivers/threadx/ThreadXMainTextNode.js +5 -0
  127. package/dist/src/render-drivers/threadx/ThreadXMainTextNode.js.map +1 -1
  128. package/dist/src/render-drivers/threadx/ThreadXRendererMessage.d.ts +4 -1
  129. package/dist/src/render-drivers/threadx/ThreadXRendererMessage.js.map +1 -1
  130. package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.d.ts +5 -0
  131. package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.js +10 -0
  132. package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.js.map +1 -1
  133. package/dist/src/render-drivers/threadx/worker/renderer.js +5 -3
  134. package/dist/src/render-drivers/threadx/worker/renderer.js.map +1 -1
  135. package/dist/src/utils.d.ts +2 -1
  136. package/dist/src/utils.js +22 -3
  137. package/dist/src/utils.js.map +1 -1
  138. package/dist/tsconfig.dist.tsbuildinfo +1 -1
  139. package/package.json +3 -2
  140. package/src/common/CommonTypes.ts +9 -0
  141. package/src/core/CoreNode.ts +67 -34
  142. package/src/core/CoreTextNode.ts +56 -0
  143. package/src/core/CoreTextureManager.ts +4 -2
  144. package/src/core/Stage.ts +32 -3
  145. package/src/core/lib/ContextSpy.ts +41 -0
  146. package/src/core/lib/ImageWorker.ts +124 -0
  147. package/src/core/lib/WebGlContextWrapper.ts +965 -0
  148. package/src/core/renderers/webgl/WebGlCoreCtxSubTexture.ts +3 -2
  149. package/src/core/renderers/webgl/WebGlCoreCtxTexture.ts +29 -28
  150. package/src/core/renderers/webgl/WebGlCoreRenderOp.ts +10 -14
  151. package/src/core/renderers/webgl/WebGlCoreRenderer.ts +26 -24
  152. package/src/core/renderers/webgl/WebGlCoreShader.ts +34 -25
  153. package/src/core/renderers/webgl/internal/RendererUtils.ts +13 -16
  154. package/src/core/renderers/webgl/internal/ShaderUtils.ts +16 -15
  155. package/src/core/renderers/webgl/shaders/DefaultShader.ts +3 -7
  156. package/src/core/renderers/webgl/shaders/DefaultShaderBatched.ts +3 -3
  157. package/src/core/renderers/webgl/shaders/DynamicShader.ts +42 -14
  158. package/src/core/renderers/webgl/shaders/RoundedRectangle.ts +3 -3
  159. package/src/core/renderers/webgl/shaders/SdfShader.ts +3 -3
  160. package/src/core/renderers/webgl/shaders/effects/BorderEffect.ts +1 -1
  161. package/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.ts +35 -5
  162. package/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.ts +3 -3
  163. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.test.ts +9 -3
  164. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.ts +4 -2
  165. package/src/core/text-rendering/renderers/CanvasTextRenderer.ts +25 -0
  166. package/src/core/text-rendering/renderers/LightningTextTextureRenderer.ts +7 -7
  167. package/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.ts +115 -63
  168. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.ts +26 -18
  169. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.ts +40 -28
  170. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.test.ts +6 -1
  171. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.test.ts +205 -0
  172. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/{makeRenderWindow.ts → setRenderWindow.ts} +50 -21
  173. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.ts +40 -0
  174. package/src/core/text-rendering/renderers/TextRenderer.ts +73 -0
  175. package/src/core/textures/ImageTexture.ts +17 -9
  176. package/src/core/utils.ts +87 -85
  177. package/src/env.d.ts +7 -0
  178. package/src/main-api/ICoreDriver.ts +2 -1
  179. package/src/main-api/RendererMain.ts +43 -5
  180. package/src/render-drivers/main/MainCoreDriver.ts +8 -5
  181. package/src/render-drivers/main/MainOnlyTextNode.ts +55 -1
  182. package/src/render-drivers/threadx/TextNodeStruct.ts +45 -0
  183. package/src/render-drivers/threadx/ThreadXCoreDriver.ts +10 -2
  184. package/src/render-drivers/threadx/ThreadXMainTextNode.ts +10 -0
  185. package/src/render-drivers/threadx/ThreadXRendererMessage.ts +5 -1
  186. package/src/render-drivers/threadx/worker/ThreadXRendererTextNode.ts +15 -0
  187. package/src/render-drivers/threadx/worker/renderer.ts +6 -4
  188. package/src/utils.ts +25 -4
  189. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.test.ts +0 -136
@@ -16,13 +16,13 @@
16
16
  * See the License for the specific language governing permissions and
17
17
  * limitations under the License.
18
18
  */
19
- import { intersectBound, createBound, } from '../../../lib/utils.js';
19
+ import { intersectBound, createBound, intersectRect, isBoundPositive, } from '../../../lib/utils.js';
20
20
  import { TextRenderer, } from '../TextRenderer.js';
21
21
  import { SdfTrFontFace } from '../../font-face-types/SdfTrFontFace/SdfTrFontFace.js';
22
22
  import { FLOATS_PER_GLYPH } from './internal/constants.js';
23
23
  import { getStartConditions } from './internal/getStartConditions.js';
24
24
  import { layoutText } from './internal/layoutText.js';
25
- import { makeRenderWindow } from './internal/makeRenderWindow.js';
25
+ import { setRenderWindow, } from './internal/setRenderWindow.js';
26
26
  import { TrFontManager } from '../../TrFontManager.js';
27
27
  import { assertTruthy, mergeColorAlpha } from '../../../../utils.js';
28
28
  import { WebGlCoreRenderOp } from '../../../renderers/webgl/WebGlCoreRenderOp.js';
@@ -136,6 +136,26 @@ export class SdfTextRenderer extends TextRenderer {
136
136
  state.props.letterSpacing = value;
137
137
  this.invalidateLayoutCache(state);
138
138
  },
139
+ lineHeight: (state, value) => {
140
+ state.props.lineHeight = value;
141
+ this.invalidateLayoutCache(state);
142
+ },
143
+ maxLines: (state, value) => {
144
+ state.props.maxLines = value;
145
+ this.invalidateLayoutCache(state);
146
+ },
147
+ textBaseline: (state, value) => {
148
+ state.props.textBaseline = value;
149
+ this.invalidateLayoutCache(state);
150
+ },
151
+ verticalAlign: (state, value) => {
152
+ state.props.verticalAlign = value;
153
+ this.invalidateLayoutCache(state);
154
+ },
155
+ overflowSuffix: (state, value) => {
156
+ state.props.overflowSuffix = value;
157
+ this.invalidateLayoutCache(state);
158
+ },
139
159
  debug: (state, value) => {
140
160
  state.props.debug = value;
141
161
  },
@@ -182,7 +202,23 @@ export class SdfTextRenderer extends TextRenderer {
182
202
  emitter: new EventEmitter(),
183
203
  lineCache: [],
184
204
  forceFullLayoutCalc: false,
185
- renderWindow: undefined,
205
+ renderWindow: {
206
+ screen: {
207
+ x1: 0,
208
+ y1: 0,
209
+ x2: 0,
210
+ y2: 0,
211
+ },
212
+ sdf: {
213
+ x1: 0,
214
+ y1: 0,
215
+ x2: 0,
216
+ y2: 0,
217
+ },
218
+ firstLineIdx: 0,
219
+ numLines: 0,
220
+ valid: false,
221
+ },
186
222
  visibleWindow: {
187
223
  x1: 0,
188
224
  y1: 0,
@@ -239,17 +275,21 @@ export class SdfTextRenderer extends TextRenderer {
239
275
  }
240
276
  // If the font is loaded then so should the data
241
277
  assertTruthy(trFontFace.data, 'Font face data should be loaded');
242
- const { text, fontSize, x, y, contain, width, height, scrollable } = state.props;
278
+ const { text, fontSize, x, y, contain, width, height, lineHeight, verticalAlign, scrollable, overflowSuffix, maxLines, } = state.props;
243
279
  // scrollY only has an effect when contain === 'both' and scrollable === true
244
280
  const scrollY = contain === 'both' && scrollable ? state.props.scrollY : 0;
245
- let { renderWindow } = state;
246
- // Needed in renderWindow calculation
247
- const sdfLineHeight = trFontFace.data.info.size;
281
+ const { renderWindow } = state;
248
282
  /**
249
- * Divide screen space points by this to get the SDF space points
250
- * Mulitple SDF space points by this to get screen space points
283
+ * The font size of the SDF font face (the basis for SDF space units)
251
284
  */
252
- const fontSizeRatio = fontSize / sdfLineHeight;
285
+ const sdfFontSize = trFontFace.data.info.size;
286
+ /**
287
+ * Divide screen space units by this to get the SDF space units
288
+ * Mulitple SDF space units by this to get screen space units
289
+ */
290
+ const fontSizeRatio = fontSize / sdfFontSize;
291
+ // Needed in renderWindow calculation
292
+ const sdfLineHeight = lineHeight / fontSizeRatio;
253
293
  state.distanceRange =
254
294
  fontSizeRatio * trFontFace.data.distanceField.distanceRange;
255
295
  // Allocate buffers if needed
@@ -272,26 +312,26 @@ export class SdfTextRenderer extends TextRenderer {
272
312
  // Return early if we're still viewing inside the established render window
273
313
  // No need to re-render what we've already rendered
274
314
  // (Only if there's an established renderWindow and we're not suppressing early exit)
275
- if (!forceFullLayoutCalc && renderWindow) {
276
- if (x + renderWindow.x1 <= visibleWindow.x1 &&
277
- x + renderWindow.x2 >= visibleWindow.x2 &&
278
- y - scrollY + renderWindow.y1 <= visibleWindow.y1 &&
279
- y - scrollY + renderWindow.y2 >= visibleWindow.y2) {
315
+ if (!forceFullLayoutCalc && renderWindow.valid) {
316
+ const rwScreen = renderWindow.screen;
317
+ if (x + rwScreen.x1 <= visibleWindow.x1 &&
318
+ x + rwScreen.x2 >= visibleWindow.x2 &&
319
+ y - scrollY + rwScreen.y1 <= visibleWindow.y1 &&
320
+ y - scrollY + rwScreen.y2 >= visibleWindow.y2) {
280
321
  this.setStatus(state, 'loaded');
281
322
  return;
282
323
  }
283
- // Otherwise clear the renderWindow so it can be redone
284
- renderWindow = state.renderWindow = undefined;
324
+ // Otherwise invalidate the renderWindow so it can be redone
325
+ renderWindow.valid = false;
285
326
  this.setStatus(state, 'loading');
286
327
  }
287
328
  const { offsetY, textAlign } = state.props;
288
329
  // Create a new renderWindow if needed
289
- if (!renderWindow) {
290
- const visibleWindowHeight = visibleWindow.y2 - visibleWindow.y1;
291
- const maxLinesPerCanvasPage = Math.ceil(visibleWindowHeight / sdfLineHeight);
292
- renderWindow = makeRenderWindow(x, y, scrollY, sdfLineHeight, maxLinesPerCanvasPage, visibleWindow);
330
+ if (!renderWindow.valid) {
331
+ setRenderWindow(renderWindow, x, y, scrollY, lineHeight, visibleWindow.y2 - visibleWindow.y1, visibleWindow, fontSizeRatio);
332
+ // console.log('newRenderWindow', renderWindow);
293
333
  }
294
- const start = getStartConditions(fontSize, offsetY, fontSizeRatio, sdfLineHeight, renderWindow, lineCache, textH);
334
+ const start = getStartConditions(sdfFontSize, sdfLineHeight, lineHeight, verticalAlign, offsetY, fontSizeRatio, renderWindow, lineCache, textH);
295
335
  if (!start) {
296
336
  // Nothing to render, return early, but still mark as loaded (since the text is just scrolled
297
337
  // out of view)
@@ -299,7 +339,7 @@ export class SdfTextRenderer extends TextRenderer {
299
339
  return;
300
340
  }
301
341
  const { letterSpacing } = state.props;
302
- const out2 = layoutText(start.lineIndex, start.x, start.y, text, textAlign, width, height, fontSize, letterSpacing, vertexBuffer, contain, lineCache, renderWindow, trFontFace, forceFullLayoutCalc, scrollable);
342
+ const out2 = layoutText(start.lineIndex, start.sdfX, start.sdfY, text, textAlign, width, height, fontSize, lineHeight, letterSpacing, vertexBuffer, contain, lineCache, renderWindow.sdf, trFontFace, forceFullLayoutCalc, scrollable, overflowSuffix, maxLines);
303
343
  state.bufferUploaded = false;
304
344
  state.bufferNumFloats = out2.bufferNumFloats;
305
345
  state.bufferNumQuads = out2.bufferNumQuads;
@@ -323,19 +363,16 @@ export class SdfTextRenderer extends TextRenderer {
323
363
  // Nothing to draw
324
364
  return;
325
365
  }
326
- const drawStartTime = performance.now();
327
- const { sdfShader } = this;
328
366
  const { renderer } = this.stage;
329
- const { appWidth, appHeight } = this.stage.options;
330
367
  const { fontSize, color, contain, scrollable, zIndex, debug } = state.props;
331
368
  // scrollY only has an effect when contain === 'both' and scrollable === true
332
369
  const scrollY = contain === 'both' && scrollable ? state.props.scrollY : 0;
333
370
  const { textW = 0, textH = 0, distanceRange, vertexBuffer, bufferUploaded, trFontFace, } = state;
334
371
  let { webGlBuffers } = state;
335
372
  if (!webGlBuffers) {
336
- const gl = renderer.gl;
373
+ const glw = renderer.glw;
337
374
  const stride = 4 * Float32Array.BYTES_PER_ELEMENT;
338
- const webGlBuffer = gl.createBuffer();
375
+ const webGlBuffer = glw.createBuffer();
339
376
  assertTruthy(webGlBuffer);
340
377
  state.webGlBuffers = new BufferCollection([
341
378
  {
@@ -344,7 +381,7 @@ export class SdfTextRenderer extends TextRenderer {
344
381
  a_position: {
345
382
  name: 'a_position',
346
383
  size: 2,
347
- type: gl.FLOAT,
384
+ type: glw.FLOAT,
348
385
  normalized: false,
349
386
  stride,
350
387
  offset: 0, // start at the beginning of the buffer
@@ -352,7 +389,7 @@ export class SdfTextRenderer extends TextRenderer {
352
389
  a_textureCoordinate: {
353
390
  name: 'a_textureCoordinate',
354
391
  size: 2,
355
- type: gl.FLOAT,
392
+ type: glw.FLOAT,
356
393
  normalized: false,
357
394
  stride,
358
395
  offset: 2 * Float32Array.BYTES_PER_ELEMENT,
@@ -365,14 +402,24 @@ export class SdfTextRenderer extends TextRenderer {
365
402
  webGlBuffers = state.webGlBuffers;
366
403
  }
367
404
  if (!bufferUploaded) {
368
- const gl = renderer.gl;
405
+ const glw = renderer.glw;
369
406
  const buffer = webGlBuffers?.getBuffer('a_textureCoordinate') ?? null;
370
- gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
371
- gl.bufferData(gl.ARRAY_BUFFER, vertexBuffer, gl.STATIC_DRAW);
407
+ glw.arrayBufferData(buffer, vertexBuffer, glw.STATIC_DRAW);
372
408
  state.bufferUploaded = true;
373
409
  }
374
410
  assertTruthy(trFontFace);
375
- const renderOp = new WebGlCoreRenderOp(renderer.gl, renderer.options, webGlBuffers, this.sdfShader, {
411
+ if (scrollable && contain === 'both') {
412
+ const visibleWindowRect = {
413
+ x: state.visibleWindow.x1,
414
+ y: state.visibleWindow.y1,
415
+ width: state.visibleWindow.x2 - state.visibleWindow.x1,
416
+ height: state.visibleWindow.y2 - state.visibleWindow.y1,
417
+ };
418
+ clippingRect = clippingRect
419
+ ? intersectRect(clippingRect, visibleWindowRect)
420
+ : visibleWindowRect;
421
+ }
422
+ const renderOp = new WebGlCoreRenderOp(renderer.glw, renderer.options, webGlBuffers, this.sdfShader, {
376
423
  transform: transform.data,
377
424
  // IMPORTANT: The SDF Shader expects the color NOT to be premultiplied
378
425
  // for the best blending results. Which is why we use `mergeColorAlpha`
@@ -390,21 +437,6 @@ export class SdfTextRenderer extends TextRenderer {
390
437
  renderOp.length = state.bufferNumFloats;
391
438
  renderOp.numQuads = state.bufferNumQuads;
392
439
  renderer.addRenderOp(renderOp);
393
- // const elementRect = {
394
- // x: x,
395
- // y: y,
396
- // w: contain !== 'none' ? width : textW,
397
- // h: contain === 'both' ? height : textH,
398
- // };
399
- // const visibleRect = intersectRect(
400
- // {
401
- // x: 0,
402
- // y: 0,
403
- // w: renderer.w,
404
- // h: renderer.h,
405
- // },
406
- // elementRect,
407
- // );
408
440
  // if (!debug.disableScissor) {
409
441
  // renderer.enableScissor(
410
442
  // visibleRect.x,
@@ -477,7 +509,7 @@ export class SdfTextRenderer extends TextRenderer {
477
509
  */
478
510
  invalidateLayoutCache(state) {
479
511
  state.visibleWindow.valid = false;
480
- state.renderWindow = undefined;
512
+ state.renderWindow.valid = false;
481
513
  state.textH = undefined;
482
514
  state.textW = undefined;
483
515
  state.lineCache = [];
@@ -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":"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"}
1
+ {"version":3,"file":"layoutText.js","sourceRoot":"","sources":["../../../../../../../src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.ts"],"names":[],"mappings":"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"}