@solidtv/renderer 1.1.5 → 1.2.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 (65) hide show
  1. package/dist/exports/canvas-shaders.d.ts +1 -0
  2. package/dist/exports/canvas-shaders.js +1 -0
  3. package/dist/exports/canvas-shaders.js.map +1 -1
  4. package/dist/exports/webgl-shaders.d.ts +1 -0
  5. package/dist/exports/webgl-shaders.js +1 -0
  6. package/dist/exports/webgl-shaders.js.map +1 -1
  7. package/dist/src/common/CommonTypes.d.ts +5 -0
  8. package/dist/src/core/CoreNode.js +4 -2
  9. package/dist/src/core/CoreNode.js.map +1 -1
  10. package/dist/src/core/CoreTextNode.d.ts +17 -0
  11. package/dist/src/core/CoreTextNode.js +33 -7
  12. package/dist/src/core/CoreTextNode.js.map +1 -1
  13. package/dist/src/core/Stage.js +6 -0
  14. package/dist/src/core/Stage.js.map +1 -1
  15. package/dist/src/core/renderers/webgl/WebGlRenderer.js +11 -8
  16. package/dist/src/core/renderers/webgl/WebGlRenderer.js.map +1 -1
  17. package/dist/src/core/renderers/webgl/WebGlShaderProgram.js +3 -2
  18. package/dist/src/core/renderers/webgl/WebGlShaderProgram.js.map +1 -1
  19. package/dist/src/core/shaders/canvas/RadialProgress.d.ts +10 -0
  20. package/dist/src/core/shaders/canvas/RadialProgress.js +87 -0
  21. package/dist/src/core/shaders/canvas/RadialProgress.js.map +1 -0
  22. package/dist/src/core/shaders/templates/BorderTemplate.d.ts +1 -1
  23. package/dist/src/core/shaders/templates/BorderTemplate.js +1 -1
  24. package/dist/src/core/shaders/templates/BorderTemplate.js.map +1 -1
  25. package/dist/src/core/shaders/templates/RadialProgressTemplate.d.ts +61 -0
  26. package/dist/src/core/shaders/templates/RadialProgressTemplate.js +54 -0
  27. package/dist/src/core/shaders/templates/RadialProgressTemplate.js.map +1 -0
  28. package/dist/src/core/shaders/webgl/RadialProgress.d.ts +3 -0
  29. package/dist/src/core/shaders/webgl/RadialProgress.js +145 -0
  30. package/dist/src/core/shaders/webgl/RadialProgress.js.map +1 -0
  31. package/dist/src/core/text-rendering/CanvasTextRenderer.js +12 -2
  32. package/dist/src/core/text-rendering/CanvasTextRenderer.js.map +1 -1
  33. package/dist/src/core/text-rendering/SdfFontHandler.js +35 -0
  34. package/dist/src/core/text-rendering/SdfFontHandler.js.map +1 -1
  35. package/dist/src/core/text-rendering/SdfTextRenderer.js +32 -20
  36. package/dist/src/core/text-rendering/SdfTextRenderer.js.map +1 -1
  37. package/dist/src/core/text-rendering/TextLayoutEngine.d.ts +7 -1
  38. package/dist/src/core/text-rendering/TextLayoutEngine.js +94 -10
  39. package/dist/src/core/text-rendering/TextLayoutEngine.js.map +1 -1
  40. package/dist/src/core/text-rendering/TextRenderer.d.ts +84 -10
  41. package/dist/src/main-api/Renderer.d.ts +23 -1
  42. package/dist/src/main-api/Renderer.js +6 -1
  43. package/dist/src/main-api/Renderer.js.map +1 -1
  44. package/dist/tsconfig.dist.tsbuildinfo +1 -1
  45. package/exports/canvas-shaders.ts +1 -0
  46. package/exports/webgl-shaders.ts +1 -0
  47. package/package.json +1 -1
  48. package/src/common/CommonTypes.ts +5 -0
  49. package/src/core/CoreNode.ts +6 -2
  50. package/src/core/CoreTextNode.ts +34 -6
  51. package/src/core/Stage.ts +7 -0
  52. package/src/core/renderers/webgl/WebGlCtxTexture.test.ts +94 -0
  53. package/src/core/renderers/webgl/WebGlRenderer.ts +14 -10
  54. package/src/core/renderers/webgl/WebGlShaderProgram.ts +3 -2
  55. package/src/core/shaders/canvas/RadialProgress.ts +113 -0
  56. package/src/core/shaders/templates/BorderTemplate.ts +2 -2
  57. package/src/core/shaders/templates/RadialProgressTemplate.test.ts +125 -0
  58. package/src/core/shaders/templates/RadialProgressTemplate.ts +112 -0
  59. package/src/core/shaders/webgl/RadialProgress.ts +163 -0
  60. package/src/core/text-rendering/CanvasTextRenderer.ts +14 -2
  61. package/src/core/text-rendering/SdfFontHandler.ts +37 -0
  62. package/src/core/text-rendering/SdfTextRenderer.ts +41 -22
  63. package/src/core/text-rendering/TextLayoutEngine.ts +99 -12
  64. package/src/core/text-rendering/TextRenderer.ts +85 -10
  65. package/src/main-api/Renderer.ts +33 -2
@@ -6,21 +6,50 @@ export const defaultFontMetrics = {
6
6
  lineGap: 200,
7
7
  unitsPerEm: 1000,
8
8
  };
9
+ /**
10
+ * Generic Latin-font ratios used when exact metric values aren't available.
11
+ * Within a few percent of OS/2 sCapHeight / sxHeight across the common Latin
12
+ * families (Ubuntu, Noto, Roboto, Arial, etc.).
13
+ */
14
+ const CAP_HEIGHT_FALLBACK_RATIO = 0.7;
15
+ const X_HEIGHT_FALLBACK_RATIO = 0.5;
9
16
  export const normalizeFontMetrics = (metrics, fontSize) => {
10
17
  const scale = fontSize / metrics.unitsPerEm;
18
+ const capHeightUnits = metrics.capHeight !== undefined
19
+ ? metrics.capHeight
20
+ : metrics.ascender * CAP_HEIGHT_FALLBACK_RATIO;
21
+ const xHeightUnits = metrics.xHeight !== undefined
22
+ ? metrics.xHeight
23
+ : metrics.ascender * X_HEIGHT_FALLBACK_RATIO;
11
24
  return {
12
25
  ascender: metrics.ascender * scale,
13
26
  descender: metrics.descender * scale,
14
27
  lineGap: metrics.lineGap * scale,
28
+ capHeight: capHeightUnits * scale,
29
+ xHeight: xHeightUnits * scale,
15
30
  };
16
31
  };
32
+ /**
33
+ * Engine-wide per-line baseline anchor. Configured once at renderer creation
34
+ * via {@link RendererMainSettings.textBaselineMode}, not exposed per node so
35
+ * a single app can't mix anchor models across its text. Defaults to `'cap'`
36
+ * — see {@link TextBaselineMode} for the rationale.
37
+ */
38
+ let baselineMode = 'cap';
39
+ /**
40
+ * Sets the engine-wide baseline anchor. Called by `Stage` during construction;
41
+ * not intended to be called from user code (changing this mid-session would
42
+ * silently reflow every cached text layout).
43
+ */
44
+ export const setBaselineMode = (mode) => {
45
+ baselineMode = mode;
46
+ };
17
47
  export const mapTextLayout = (measureText, metrics, text, textAlign, fontFamily, lineHeight, overflowSuffix, wordBreak, letterSpacing, maxLines, maxWidth, maxHeight) => {
18
- const ascPx = metrics.ascender;
19
- const descPx = metrics.descender;
20
- const bareLineHeight = ascPx - descPx;
48
+ // Default line height matches CSS 'normal': ascender + lineGap - descender.
49
+ // metrics.descender is negative for descents below the baseline, so
50
+ // subtracting it adds the descent depth.
51
+ const bareLineHeight = metrics.ascender - metrics.descender + metrics.lineGap;
21
52
  const lineHeightPx = lineHeight <= 3 ? lineHeight * bareLineHeight : lineHeight;
22
- const lineHeightDelta = lineHeightPx - bareLineHeight;
23
- const halfDelta = lineHeightDelta * 0.5;
24
53
  let effectiveMaxLines = maxLines;
25
54
  if (maxHeight > 0) {
26
55
  let maxFromHeight = Math.floor(maxHeight / lineHeightPx);
@@ -39,11 +68,25 @@ export const mapTextLayout = (measureText, metrics, text, textAlign, fontFamily,
39
68
  const [lines, remainingLines, remainingText] = wrappedText === true
40
69
  ? wrapText(measureText, text, fontFamily, maxWidth, letterSpacing, overflowSuffix, wordBreak, effectiveMaxLines)
41
70
  : measureLines(measureText, text.split('\n'), fontFamily, letterSpacing, effectiveMaxLines);
42
- let effectiveLineAmount = lines.length;
71
+ const effectiveLineAmount = lines.length;
43
72
  let effectiveMaxWidth = 0;
73
+ // CSS letter-spacing applies between characters, not after the trailing one.
74
+ // measureText accumulates one advance + letterSpacing per glyph, so each
75
+ // line carries one extra trailing letterSpacing. Trim it once per line for
76
+ // alignment / reported width purposes. Wrap decisions inside the loops above
77
+ // intentionally still use the un-trimmed width (CSS engines also consider
78
+ // trailing letter-spacing during break decisions; only the rendered line
79
+ // width is trimmed).
80
+ if (letterSpacing !== 0) {
81
+ for (let i = 0; i < effectiveLineAmount; i++) {
82
+ const line = lines[i];
83
+ if (line[0].length > 0) {
84
+ line[1] -= letterSpacing;
85
+ }
86
+ }
87
+ }
44
88
  if (effectiveLineAmount > 0) {
45
89
  effectiveMaxWidth = lines[0][1];
46
- //check for longest line
47
90
  if (effectiveLineAmount > 1) {
48
91
  for (let i = 1; i < effectiveLineAmount; i++) {
49
92
  effectiveMaxWidth = Math.max(effectiveMaxWidth, lines[i][1]);
@@ -62,11 +105,52 @@ export const mapTextLayout = (measureText, metrics, text, textAlign, fontFamily,
62
105
  }
63
106
  }
64
107
  const effectiveMaxHeight = effectiveLineAmount * lineHeightPx;
65
- let firstBaseLine = halfDelta;
66
- const startY = firstBaseLine;
108
+ // line[4] stores the alphabetic baseline Y of each line in screen px.
109
+ //
110
+ // ── Per-line anchor: cap-height centering ─────────────────────────────
111
+ //
112
+ // baselineY(i) = lineHeight/2 + capHeight/2 + i × lineHeight
113
+ //
114
+ // The baseline sits below the line's geometric mid-line by exactly
115
+ // `capHeight / 2`, so the top of an uppercase letter lands the same
116
+ // distance *above* the mid-line — i.e. capital letters bracket the
117
+ // center symmetrically. Cap-height centering matches what designers
118
+ // expect for UI text (button labels, headings, badges): TXYZ and 1234
119
+ // sit centered; descenders like 'gjpq' hang slightly below, mirroring
120
+ // CSS button behavior in browsers.
121
+ //
122
+ // Alternative anchors considered (kept here for the record):
123
+ //
124
+ // ── x-height centering ──────────────────────────────────────────────
125
+ // baselineY(i) = lineHeight/2 + xHeight/2 + i × lineHeight
126
+ // Centers lowercase letters on the mid-line. Matches CSS inline
127
+ // `vertical-align: middle`. Reads well for running body text but
128
+ // capitals appear high in headings/labels — wrong default for TV UI.
129
+ //
130
+ // ── line-box centering (pre-cap-height behavior) ───────────────────
131
+ // const halfLeading = (lineHeightPx − bareLineHeight) / 2
132
+ // baselineY(i) = halfLeading + ascender + i × lineHeight
133
+ // Centers the abstract asc-to-desc-plus-leading rectangle. The visible
134
+ // ink lands noticeably high because asc/(asc−desc) is asymmetric for
135
+ // most Latin fonts (~4.2:1 for Ubuntu). Mathematically tidy, visually
136
+ // wrong.
137
+ //
138
+ // The active anchor is configured at renderer creation via
139
+ // `RendererMainSettings.textBaselineMode`. Defaults to `'cap'`.
140
+ let firstBaselineY;
141
+ if (baselineMode === 'x') {
142
+ firstBaselineY = (lineHeightPx + metrics.xHeight) * 0.5;
143
+ }
144
+ else if (baselineMode === 'linebox') {
145
+ const halfLeading = (lineHeightPx - bareLineHeight) * 0.5;
146
+ firstBaselineY = halfLeading + metrics.ascender;
147
+ }
148
+ else {
149
+ firstBaselineY = (lineHeightPx + metrics.capHeight) * 0.5;
150
+ }
67
151
  for (let i = 0; i < effectiveLineAmount; i++) {
68
152
  const line = lines[i];
69
- line[4] = startY + lineHeightPx * i;
153
+ line[4] = firstBaselineY + lineHeightPx * i;
70
154
  }
71
155
  return [
72
156
  lines,
@@ -1 +1 @@
1
- {"version":3,"file":"TextLayoutEngine.js","sourceRoot":"","sources":["../../../../src/core/text-rendering/TextLayoutEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TextLayoutEngine.js","sourceRoot":"","sources":["../../../../src/core/text-rendering/TextLayoutEngine.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,29 @@
1
+ import type { Dimensions } from '../../common/CommonTypes.js';
1
2
  import type { CoreTextNodeProps } from '../CoreTextNode.js';
3
+ import type { RectWithValid } from '../lib/utils.js';
2
4
  import type { CoreRenderer } from '../renderers/CoreRenderer.js';
3
5
  import type { SdfRenderOp } from '../renderers/webgl/SdfRenderOp.js';
4
6
  import type { Stage } from '../Stage.js';
5
7
  export type TextBaseline = 'alphabetic' | 'hanging' | 'middle' | 'ideographic' | 'bottom';
6
8
  export type TextVerticalAlign = 'top' | 'middle' | 'bottom';
7
9
  export type TextRenderers = 'canvas' | 'sdf';
10
+ /**
11
+ * Selects which font-derived height the text layout engine centers on each
12
+ * line's geometric mid-line. Configured via {@link RendererMainSettings} and
13
+ * cannot be overridden per node — see the engine-wide reasoning in
14
+ * `TextLayoutEngine.mapTextLayout`.
15
+ *
16
+ * - `'cap'` (default): capital letters centered. Best for UI text — button
17
+ * labels, headings, badges. Capitals and digits bracket the center
18
+ * symmetrically; descenders hang slightly below, matching CSS button
19
+ * behavior in browsers.
20
+ * - `'x'`: lowercase x-height centered. Better for running body text;
21
+ * capitals appear slightly high in headings.
22
+ * - `'linebox'`: legacy. Centers the abstract asc-to-desc-plus-leading
23
+ * rectangle. Mathematically tidy but visually unbalanced because most
24
+ * Latin fonts have asymmetric asc/desc ratios.
25
+ */
26
+ export type TextBaselineMode = 'cap' | 'x' | 'linebox';
8
27
  /**
9
28
  * Structure mapping font family names to a set of font faces.
10
29
  */
@@ -31,23 +50,53 @@ export interface FontMetrics {
31
50
  * The number of font units per 1 EM.
32
51
  */
33
52
  unitsPerEm: number;
53
+ /**
54
+ * The distance, in font units, from the baseline to the top of an uppercase
55
+ * letter (OS/2 sCapHeight).
56
+ *
57
+ * Used by the layout engine to vertically center capital letters on each
58
+ * line's geometric mid-line. When absent, the SDF backend derives this
59
+ * value from glyph `H` (id 72) in the BMFont atlas; the Canvas backend
60
+ * falls back to `0.7 × ascender` (a generic Latin-font approximation).
61
+ */
62
+ capHeight?: number;
63
+ /**
64
+ * The distance, in font units, from the baseline to the top of a lowercase
65
+ * letter (OS/2 sxHeight). Optional; used only when the baseline-anchor
66
+ * mode is set to x-height centering (experimental).
67
+ */
68
+ xHeight?: number;
34
69
  }
35
70
  /**
36
- * Normalized font metrics where values are expressed as a fraction of 1 EM.
71
+ * Normalized font metrics where values are expressed in pixels at the
72
+ * configured font size (em-px).
37
73
  */
38
74
  export interface NormalizedFontMetrics {
39
75
  /**
40
- * The distance, as a fraction of 1 EM, from the baseline to the highest point of the font.
76
+ * The distance, in em-px, from the baseline to the highest point of the font.
41
77
  */
42
78
  ascender: number;
43
79
  /**
44
- * The distance, as a fraction of 1 EM, from the baseline to the lowest point of the font.
80
+ * The distance, in em-px, from the baseline to the lowest point of the font.
45
81
  */
46
82
  descender: number;
47
83
  /**
48
- * The additional space used in the calculation of the default line height as a fraction of 1 EM
84
+ * The additional space used in the calculation of the default line height, in em-px.
49
85
  */
50
86
  lineGap: number;
87
+ /**
88
+ * The distance, in em-px, from the baseline to the top of an uppercase letter.
89
+ * Always populated; derived or approximated when {@link FontMetrics.capHeight}
90
+ * is not provided by the caller.
91
+ */
92
+ capHeight: number;
93
+ /**
94
+ * The distance, in em-px, from the baseline to the top of a lowercase letter.
95
+ * Always populated; derived from glyph `x` for SDF, falls back to
96
+ * `0.5 × ascender` otherwise. Only used by the experimental x-height
97
+ * baseline-anchor mode.
98
+ */
99
+ xHeight: number;
51
100
  }
52
101
  /**
53
102
  * Text renderer properties that are used in resolving appropriate font faces
@@ -169,13 +218,18 @@ export interface TrProps extends TrFontProps {
169
218
  */
170
219
  maxLines: number;
171
220
  /**
172
- * Vertical Align for text when lineHeight > fontSize
221
+ * Vertical alignment of the text block within its containing box.
173
222
  *
174
223
  * @remarks
175
- * This property sets the vertical align of the text.
176
- * Not yet implemented in the SDF renderer.
224
+ * The containing box is `maxHeight` if set, otherwise the node's
225
+ * own `h` (which a flex parent or the user may have grown beyond
226
+ * the intrinsic text height). Activates whenever the box is taller
227
+ * than the intrinsic text height. Composes with `textBaselineMode`
228
+ * (per-line anchor). CSS line-box semantics — `'top'` leaves
229
+ * half-leading above the first line's cap-top; `'bottom'` leaves
230
+ * half-leading below the last line's descender.
177
231
  *
178
- * @default middle
232
+ * @default top
179
233
  */
180
234
  verticalAlign: TextVerticalAlign;
181
235
  /**
@@ -246,6 +300,11 @@ export interface TextLayout {
246
300
  * Total text height
247
301
  */
248
302
  height: number;
303
+ /**
304
+ * Trimmed text height — cap-top of the first line to descender bottom
305
+ * of the last line. See `TextRenderInfo.trimmedHeight`.
306
+ */
307
+ trimmedHeight: number;
249
308
  /**
250
309
  * Font scale factor
251
310
  */
@@ -313,11 +372,11 @@ export interface TextRenderProps {
313
372
  offsetY: number;
314
373
  worldAlpha: number;
315
374
  globalTransform: Float32Array;
316
- clippingRect: unknown;
375
+ clippingRect: RectWithValid;
317
376
  width: number;
318
377
  height: number;
319
378
  parentHasRenderTexture: boolean;
320
- framebufferDimensions: unknown;
379
+ framebufferDimensions: Dimensions | null;
321
380
  stage: Stage;
322
381
  /** Optional SDF vertex cache — passed by CoreTextNode for cache-hit fast path. */
323
382
  sdfCache?: SdfVertexCache;
@@ -325,6 +384,21 @@ export interface TextRenderProps {
325
384
  export interface TextRenderInfo {
326
385
  width: number;
327
386
  height: number;
387
+ /**
388
+ * Height of the visible glyph extent — from the first line's cap-top to
389
+ * the last line's descender bottom. Excludes half-leading and the slack
390
+ * between the font's ascender and cap-top.
391
+ *
392
+ * @remarks
393
+ * Formula: `capHeight − descender + (lines − 1) × lineHeightPx`
394
+ * (descender is negative in font metrics, so subtracting it adds the
395
+ * descender depth). For empty text, this is 0.
396
+ *
397
+ * Use this when you want flex `alignItems: 'center'` (or any layout
398
+ * that aligns by node `h`) to optically center the visible glyphs.
399
+ * Set `node.h = node.trimmedHeight` after the `loaded` event.
400
+ */
401
+ trimmedHeight: number;
328
402
  hasRemainingText?: boolean;
329
403
  remainingLines?: number;
330
404
  imageData?: ImageData | null;
@@ -5,7 +5,7 @@ import { CoreNode, type CoreNodeProps } from '../core/CoreNode.js';
5
5
  import { type CoreTextNodeProps } from '../core/CoreTextNode.js';
6
6
  import type { INode, INodeProps, ITextNode, ITextNodeProps } from './INode.js';
7
7
  import type { TextureMemoryManagerSettings } from '../core/TextureMemoryManager.js';
8
- import type { TextRenderer } from '../core/text-rendering/TextRenderer.js';
8
+ import type { TextBaselineMode, TextRenderer } from '../core/text-rendering/TextRenderer.js';
9
9
  import type { CanvasRenderer } from '../core/renderers/canvas/CanvasRenderer.js';
10
10
  import type { WebGlRenderer } from '../core/renderers/webgl/WebGlRenderer.js';
11
11
  import type { Inspector, InspectorOptions } from './Inspector.js';
@@ -332,6 +332,27 @@ export type RendererMainSettings = RendererRuntimeSettings & {
332
332
  *
333
333
  */
334
334
  fontEngines: TextRenderer[];
335
+ /**
336
+ * Per-line vertical baseline anchor used by the text layout engine.
337
+ *
338
+ * @remarks
339
+ * Picks which font-derived height is centered on each line's geometric
340
+ * mid-line. This is engine-wide and intentionally not exposed per node —
341
+ * mixing anchor models within one app produces visually inconsistent text.
342
+ *
343
+ * - `'cap'` (default): capital letters and digits sit centered on the line.
344
+ * Best fit for UI text (button labels, headings, badges); descenders on
345
+ * words like 'gjpq' hang slightly below center, matching CSS button
346
+ * behavior in browsers.
347
+ * - `'x'`: lowercase x-height is centered. Better for running body text;
348
+ * capitals appear slightly high in headings.
349
+ * - `'linebox'`: legacy mode. Centers the asc/lineGap/desc rectangle.
350
+ * Mathematically tidy but visually unbalanced because most Latin fonts
351
+ * have asymmetric asc/desc ratios.
352
+ *
353
+ * @defaultValue `'cap'`
354
+ */
355
+ textBaselineMode: TextBaselineMode;
335
356
  /**
336
357
  * Force WebGL2
337
358
  *
@@ -643,4 +664,5 @@ export declare class RendererMain extends EventEmitter {
643
664
  * ```
644
665
  */
645
666
  set targetFPS(fps: number);
667
+ private windowDevicePixelRatio;
646
668
  }
@@ -77,7 +77,7 @@ export class RendererMain extends EventEmitter {
77
77
  textureMemory: resolvedTxSettings,
78
78
  boundsMargin: settings.boundsMargin || 0,
79
79
  deviceLogicalPixelRatio: settings.deviceLogicalPixelRatio || 1,
80
- devicePhysicalPixelRatio: settings.devicePhysicalPixelRatio || window.devicePixelRatio || 1,
80
+ devicePhysicalPixelRatio: settings.devicePhysicalPixelRatio || this.windowDevicePixelRatio() || 1,
81
81
  clearColor: settings.clearColor ?? 0x00000000,
82
82
  fpsUpdateInterval: settings.fpsUpdateInterval || 0,
83
83
  enableClear: settings.enableClear ?? true,
@@ -90,6 +90,7 @@ export class RendererMain extends EventEmitter {
90
90
  renderEngine: settings.renderEngine,
91
91
  quadBufferSize: settings.quadBufferSize ?? 4 * 1024 * 1024,
92
92
  fontEngines: settings.fontEngines ?? [],
93
+ textBaselineMode: settings.textBaselineMode ?? 'cap',
93
94
  textureProcessingTimeLimit: settings.textureProcessingTimeLimit || 10,
94
95
  canvas: settings.canvas,
95
96
  createImageBitmapSupport: settings.createImageBitmapSupport || 'full',
@@ -134,6 +135,7 @@ export class RendererMain extends EventEmitter {
134
135
  eventBus: this,
135
136
  quadBufferSize: settings.quadBufferSize,
136
137
  fontEngines: settings.fontEngines,
138
+ textBaselineMode: settings.textBaselineMode,
137
139
  inspector: settings.inspector !== null,
138
140
  targetFPS: settings.targetFPS,
139
141
  textureProcessingTimeLimit: settings.textureProcessingTimeLimit,
@@ -489,5 +491,8 @@ export class RendererMain extends EventEmitter {
489
491
  this.stage.options.targetFPS = fps > 0 ? fps : 0;
490
492
  this.stage.updateTargetFrameTime();
491
493
  }
494
+ windowDevicePixelRatio() {
495
+ return typeof window !== 'undefined' ? window.devicePixelRatio : undefined;
496
+ }
492
497
  }
493
498
  //# sourceMappingURL=Renderer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Renderer.js","sourceRoot":"","sources":["../../../src/main-api/Renderer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Renderer.js","sourceRoot":"","sources":["../../../src/main-api/Renderer.ts"],"names":[],"mappings":"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"}