@lightningjs/renderer 0.8.4 → 0.9.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.
- package/dist/src/core/lib/Matrix3d.d.ts +38 -24
- package/dist/src/core/lib/Matrix3d.js +143 -166
- package/dist/src/core/lib/Matrix3d.js.map +1 -1
- package/dist/src/core/text-rendering/TextTextureRendererUtils.d.ts +19 -0
- package/dist/src/core/text-rendering/TextTextureRendererUtils.js +61 -0
- package/dist/src/core/text-rendering/TextTextureRendererUtils.js.map +1 -1
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.d.ts +8 -2
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js +24 -3
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js.map +1 -1
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.d.ts +2 -0
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.js.map +1 -1
- package/dist/src/core/text-rendering/font-face-types/TrFontFace.d.ts +72 -1
- package/dist/src/core/text-rendering/font-face-types/TrFontFace.js +11 -1
- package/dist/src/core/text-rendering/font-face-types/TrFontFace.js.map +1 -1
- package/dist/src/core/text-rendering/font-face-types/WebTrFontFace.d.ts +5 -2
- package/dist/src/core/text-rendering/font-face-types/WebTrFontFace.js +4 -3
- package/dist/src/core/text-rendering/font-face-types/WebTrFontFace.js.map +1 -1
- package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.d.ts +8 -0
- package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js +42 -16
- package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js.map +1 -1
- package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.d.ts +7 -1
- package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js +42 -11
- package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js.map +1 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.d.ts +4 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js +26 -9
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js.map +1 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.d.ts +2 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.js +32 -5
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.js.map +1 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.d.ts +2 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js +2 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js.map +1 -1
- package/dist/src/core/text-rendering/renderers/TextRenderer.d.ts +8 -4
- package/dist/src/core/text-rendering/renderers/TextRenderer.js +6 -5
- package/dist/src/core/text-rendering/renderers/TextRenderer.js.map +1 -1
- package/dist/src/main-api/RendererMain.js +2 -2
- package/dist/src/main-api/RendererMain.js.map +1 -1
- package/dist/src/render-drivers/main/MainOnlyTextNode.js +1 -3
- package/dist/src/render-drivers/main/MainOnlyTextNode.js.map +1 -1
- package/dist/src/render-drivers/threadx/TextNodeStruct.js +3 -1
- package/dist/src/render-drivers/threadx/TextNodeStruct.js.map +1 -1
- package/dist/tsconfig.dist.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/src/core/lib/Matrix3d.ts +144 -190
- package/src/core/text-rendering/TextRenderingUtils.ts +36 -0
- package/src/core/text-rendering/TextTextureRendererUtils.ts +74 -0
- package/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.ts +41 -12
- package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.ts +2 -0
- package/src/core/text-rendering/font-face-types/TrFontFace.ts +86 -1
- package/src/core/text-rendering/font-face-types/WebTrFontFace.ts +13 -7
- package/src/core/text-rendering/renderers/CanvasTextRenderer.ts +52 -20
- package/src/core/text-rendering/renderers/LightningTextTextureRenderer.ts +59 -13
- package/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.ts +30 -9
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.ts +38 -5
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.ts +5 -2
- package/src/core/text-rendering/renderers/TextRenderer.ts +14 -10
- package/src/main-api/RendererMain.ts +2 -2
- package/src/render-drivers/main/MainOnlyTextNode.ts +1 -3
- package/src/render-drivers/threadx/TextNodeStruct.ts +3 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Stage } from '../../../Stage.js';
|
|
2
2
|
import { ImageTexture } from '../../../textures/ImageTexture.js';
|
|
3
|
-
import { TrFontFace, type
|
|
3
|
+
import { TrFontFace, type TrFontFaceOptions } from '../TrFontFace.js';
|
|
4
4
|
import type { FontShaper } from './internal/FontShaper.js';
|
|
5
5
|
import { type SdfFontData } from './internal/SdfFontShaper.js';
|
|
6
6
|
type SdfFontType = 'ssdf' | 'msdf';
|
|
@@ -16,17 +16,23 @@ interface GlyphAtlasEntry {
|
|
|
16
16
|
width: number;
|
|
17
17
|
height: number;
|
|
18
18
|
}
|
|
19
|
+
export interface SdfTrFontFaceOptions extends TrFontFaceOptions {
|
|
20
|
+
atlasUrl: string;
|
|
21
|
+
atlasDataUrl: string;
|
|
22
|
+
stage: Stage;
|
|
23
|
+
}
|
|
19
24
|
export declare class SdfTrFontFace<FontTypeT extends SdfFontType = SdfFontType> extends TrFontFace {
|
|
20
25
|
readonly type: FontTypeT;
|
|
21
26
|
readonly texture: ImageTexture;
|
|
22
27
|
/**
|
|
23
28
|
* Height of the tallest character in the font including the whitespace above it
|
|
29
|
+
* in SDF/vertex units.
|
|
24
30
|
*/
|
|
25
31
|
readonly maxCharHeight: number;
|
|
26
32
|
readonly data: SdfFontData | undefined;
|
|
27
33
|
readonly shaper: FontShaper | undefined;
|
|
28
34
|
readonly glyphMap: Map<number, SdfFontData['chars'][0]>;
|
|
29
|
-
constructor(
|
|
35
|
+
constructor(type: FontTypeT, options: SdfTrFontFaceOptions);
|
|
30
36
|
getAtlasEntry(glyphId: number): GlyphAtlasEntry;
|
|
31
37
|
private checkLoaded;
|
|
32
38
|
}
|
|
@@ -20,20 +20,22 @@
|
|
|
20
20
|
import { assertTruthy } from '../../../../utils.js';
|
|
21
21
|
import { WebGlCoreRenderer } from '../../../renderers/webgl/WebGlCoreRenderer.js';
|
|
22
22
|
import { ImageTexture } from '../../../textures/ImageTexture.js';
|
|
23
|
-
import { TrFontFace } from '../TrFontFace.js';
|
|
23
|
+
import { TrFontFace, } from '../TrFontFace.js';
|
|
24
24
|
import { SdfFontShaper } from './internal/SdfFontShaper.js';
|
|
25
25
|
export class SdfTrFontFace extends TrFontFace {
|
|
26
26
|
type;
|
|
27
27
|
texture;
|
|
28
28
|
/**
|
|
29
29
|
* Height of the tallest character in the font including the whitespace above it
|
|
30
|
+
* in SDF/vertex units.
|
|
30
31
|
*/
|
|
31
32
|
maxCharHeight = 0;
|
|
32
33
|
data;
|
|
33
34
|
shaper;
|
|
34
35
|
glyphMap = new Map();
|
|
35
|
-
constructor(
|
|
36
|
-
super(
|
|
36
|
+
constructor(type, options) {
|
|
37
|
+
super(options);
|
|
38
|
+
const { atlasUrl, atlasDataUrl, stage } = options;
|
|
37
39
|
this.type = type;
|
|
38
40
|
const renderer = stage.renderer;
|
|
39
41
|
assertTruthy(renderer instanceof WebGlCoreRenderer, 'SDF Font Faces can only be used with the WebGL Renderer');
|
|
@@ -55,6 +57,7 @@ export class SdfTrFontFace extends TrFontFace {
|
|
|
55
57
|
.then(async (response) => {
|
|
56
58
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
57
59
|
this.data = await response.json();
|
|
60
|
+
assertTruthy(this.data);
|
|
58
61
|
// Add all the glyphs to the glyph map
|
|
59
62
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
60
63
|
let maxCharHeight = 0;
|
|
@@ -70,6 +73,24 @@ export class SdfTrFontFace extends TrFontFace {
|
|
|
70
73
|
// We know `data` is defined here, because we just set it
|
|
71
74
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
72
75
|
this.shaper = new SdfFontShaper(this.data, this.glyphMap);
|
|
76
|
+
// If the metrics aren't provided explicitly in the font face options,
|
|
77
|
+
// Gather them from the metrics added by the msdf-generator tool ()
|
|
78
|
+
// If they are missing then we throw an error.
|
|
79
|
+
if (!this.metrics) {
|
|
80
|
+
if (this.data?.lightningMetrics) {
|
|
81
|
+
const { ascender, descender, lineGap, unitsPerEm } = this.data.lightningMetrics;
|
|
82
|
+
this.metrics = {
|
|
83
|
+
ascender: ascender / unitsPerEm,
|
|
84
|
+
descender: descender / unitsPerEm,
|
|
85
|
+
lineGap: lineGap / unitsPerEm,
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
throw new Error(`Font metrics not found in ${this.type} font ${this.fontFamily}. ` +
|
|
90
|
+
'Make sure you are using the latest version of the Lightning ' +
|
|
91
|
+
'3 `msdf-generator` tool to generate your SDF fonts.');
|
|
92
|
+
}
|
|
93
|
+
}
|
|
73
94
|
this.checkLoaded();
|
|
74
95
|
})
|
|
75
96
|
.catch(console.error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SdfTrFontFace.js","sourceRoot":"","sources":["../../../../../../src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,qDAAqD;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,
|
|
1
|
+
{"version":3,"file":"SdfTrFontFace.js","sourceRoot":"","sources":["../../../../../../src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.ts"],"names":[],"mappings":"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"}
|
package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { PeekableIterator } from '../../../renderers/SdfTextRenderer/internal/PeekableGenerator.js';
|
|
2
|
+
import type { FontMetrics } from '../../TrFontFace.js';
|
|
2
3
|
import { FontShaper, type FontShaperProps, type MappedGlyphInfo, type UnmappedCharacterInfo } from './FontShaper.js';
|
|
3
4
|
export declare class SdfFontShaper extends FontShaper {
|
|
4
5
|
private readonly data;
|
|
@@ -57,4 +58,5 @@ export interface SdfFontData {
|
|
|
57
58
|
fieldType: 'sdf' | 'msdf';
|
|
58
59
|
distanceRange: number;
|
|
59
60
|
};
|
|
61
|
+
lightningMetrics?: FontMetrics;
|
|
60
62
|
}
|
package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SdfFontShaper.js","sourceRoot":"","sources":["../../../../../../../src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kEAAkE,CAAC;
|
|
1
|
+
{"version":3,"file":"SdfFontShaper.js","sourceRoot":"","sources":["../../../../../../../src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kEAAkE,CAAC;AAErG,OAAO,EACL,UAAU,GAIX,MAAM,iBAAiB,CAAC;AAUzB,MAAM,OAAO,aAAc,SAAQ,UAAU;IAC1B,IAAI,CAAc;IAClB,QAAQ,CAAuC;IAC/C,QAAQ,CAAe;IAExC,YACE,IAAiB,EACjB,QAA8C;QAE9C,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAEzB,MAAM,QAAQ,GAAiB,CAAC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAChC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YAC9B,MAAM,MAAM,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YAC3D,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;QACzC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,CAAC,SAAS,CACR,KAAsB,EACtB,UAAoC;QAEpC,IAAI,eAAuC,CAAC;QAC5C,IAAI,WAAW,GAAuB,SAAS,CAAC;QAChD,OAAO,CAAC,eAAe,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE;YACrE,MAAM,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC;YACxC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC3C,UAAU,CAAC,IAAI,EAAE,CAAC;YAClB,IAAI,KAAK,KAAK,SAAS,EAAE;gBACvB,sCAAsC;gBACtC,8BAA8B;gBAE9B;;mBAEG;gBACH,MAAM,OAAO,GACX,WAAW,KAAK,SAAS;oBACvB,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;wBAC7C,KAAK,CAAC,aAAa;oBACrB,CAAC,CAAC,CAAC,CAAC;gBAER,WAAW,GAAG,KAAK,CAAC,EAAE,CAAC;gBACvB,MAAM;oBACJ,MAAM,EAAE,IAAI;oBACZ,OAAO,EAAE,KAAK,CAAC,EAAE;oBACjB,SAAS;oBACT,OAAO,EAAE,UAAU,CAAC,SAAS;oBAC7B,QAAQ,EAAE,KAAK,CAAC,QAAQ,GAAG,OAAO;oBAClC,QAAQ,EAAE,CAAC;oBACX,OAAO,EAAE,KAAK,CAAC,OAAO,GAAG,OAAO;oBAChC,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,QAAQ,EAAE,CAAC;oBACX,QAAQ,EAAE,CAAC;oBACX,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,MAAM,EAAE,KAAK,CAAC,MAAM;iBACrB,CAAC;aACH;iBAAM;gBACL,4CAA4C;gBAC5C,oCAAoC;gBAEpC,sEAAsE;gBACtE,uEAAuE;gBACvE,iBAAiB;gBACjB,IAAI,SAAS,KAAK,iBAAiB,CAAC,SAAS,EAAE;oBAC7C,WAAW,GAAG,SAAS,CAAC;iBACzB;gBACD,MAAM;oBACJ,MAAM,EAAE,KAAK;oBACb,SAAS;oBACT,OAAO,EAAE,UAAU,CAAC,SAAS;iBAC9B,CAAC;aACH;SACF;IACH,CAAC;CACF"}
|
|
@@ -33,11 +33,82 @@ export interface TrFontFaceDescriptors {
|
|
|
33
33
|
featureSettings?: string;
|
|
34
34
|
variant?: string;
|
|
35
35
|
}
|
|
36
|
+
export interface FontMetrics {
|
|
37
|
+
/**
|
|
38
|
+
* The distance, in font units, from the baseline to the highest point of the font.
|
|
39
|
+
*/
|
|
40
|
+
ascender: number;
|
|
41
|
+
/**
|
|
42
|
+
* The distance, in font units, from the baseline to the lowest point of the font.
|
|
43
|
+
*/
|
|
44
|
+
descender: number;
|
|
45
|
+
/**
|
|
46
|
+
* The additional space used in the calculation of the default line height in font units.
|
|
47
|
+
*/
|
|
48
|
+
lineGap: number;
|
|
49
|
+
/**
|
|
50
|
+
* The number of font units per 1 EM.
|
|
51
|
+
*/
|
|
52
|
+
unitsPerEm: number;
|
|
53
|
+
}
|
|
54
|
+
export interface NormalizedFontMetrics {
|
|
55
|
+
/**
|
|
56
|
+
* The distance, as a fraction of 1 EM, from the baseline to the highest point of the font.
|
|
57
|
+
*
|
|
58
|
+
* @remarks
|
|
59
|
+
* This value should be positive.
|
|
60
|
+
*/
|
|
61
|
+
ascender: number;
|
|
62
|
+
/**
|
|
63
|
+
* The distance, as a fraction of 1 EM, from the baseline to the lowest point of the font.
|
|
64
|
+
*
|
|
65
|
+
* @remarks
|
|
66
|
+
* This value should be positive.
|
|
67
|
+
*/
|
|
68
|
+
descender: number;
|
|
69
|
+
/**
|
|
70
|
+
* The additional space used in the calculation of the default line height as a fraction of 1 EM
|
|
71
|
+
*
|
|
72
|
+
* @remarks
|
|
73
|
+
* This value should be positive.
|
|
74
|
+
*/
|
|
75
|
+
lineGap: number;
|
|
76
|
+
}
|
|
77
|
+
export interface TrFontFaceOptions {
|
|
78
|
+
fontFamily: string;
|
|
79
|
+
descriptors: Partial<TrFontFaceDescriptors>;
|
|
80
|
+
/**
|
|
81
|
+
* Font metrics used for layout and default line height calculations.
|
|
82
|
+
*
|
|
83
|
+
* @remarks
|
|
84
|
+
* Provides the font metrics in order to ensure consistent text layout across
|
|
85
|
+
* different font types (Canvas/Web, SDF, etc.).
|
|
86
|
+
*
|
|
87
|
+
* **Important**: We HIGHLY recommend providing these metrics for both SDF
|
|
88
|
+
* and Web/Canvas fonts. You can use the Lightning 3 [msdf-generator](https://github.com/lightning-js/msdf-generator/)
|
|
89
|
+
* tool to generate these metrics from a font file. The metrics generated by
|
|
90
|
+
* this tool can be used with both SDF and Web/Canvas fonts.
|
|
91
|
+
*
|
|
92
|
+
* If not provided, a warning will be logged and the text layout may not be
|
|
93
|
+
* consistent across different font types.
|
|
94
|
+
*
|
|
95
|
+
* If not provided, the metrics will be gathered depending on the font type.
|
|
96
|
+
* - For SDF fonts, the metrics will be gathered from the font atlas data.
|
|
97
|
+
* If the font is generated using Lightning 3's msdf-generator tool, the
|
|
98
|
+
* metrics will be the most accurate.
|
|
99
|
+
* - For Web/Canvas fonts, the metrics will be gathered from the
|
|
100
|
+
* CanvasRenderingContext2D.measureText() method. The accuracy/consistency
|
|
101
|
+
* of these metrics depends on the browser implementation. And will not
|
|
102
|
+
* guarantee the line-by-line alignment of text with SDF fonts.
|
|
103
|
+
*/
|
|
104
|
+
metrics?: FontMetrics;
|
|
105
|
+
}
|
|
36
106
|
export declare class TrFontFace extends EventEmitter {
|
|
37
107
|
readonly fontFamily: string;
|
|
38
108
|
readonly descriptors: TrFontFaceDescriptors;
|
|
39
109
|
readonly loaded: boolean;
|
|
40
|
-
|
|
110
|
+
readonly metrics: NormalizedFontMetrics | null;
|
|
111
|
+
constructor(options: TrFontFaceOptions);
|
|
41
112
|
/**
|
|
42
113
|
* Convert a TrFontFaceDescriptors to a FontFaceDescriptors which differ slightly
|
|
43
114
|
*
|
|
@@ -21,8 +21,18 @@ export class TrFontFace extends EventEmitter {
|
|
|
21
21
|
fontFamily;
|
|
22
22
|
descriptors;
|
|
23
23
|
loaded = false;
|
|
24
|
-
|
|
24
|
+
metrics = null;
|
|
25
|
+
constructor(options) {
|
|
25
26
|
super();
|
|
27
|
+
const { fontFamily, descriptors, metrics } = options;
|
|
28
|
+
if (metrics) {
|
|
29
|
+
// Normalize metrics to be in the range of 0 to 1
|
|
30
|
+
this.metrics = {
|
|
31
|
+
ascender: metrics.ascender / metrics.unitsPerEm,
|
|
32
|
+
descender: metrics.descender / metrics.unitsPerEm,
|
|
33
|
+
lineGap: metrics.lineGap / metrics.unitsPerEm,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
26
36
|
this.fontFamily = fontFamily;
|
|
27
37
|
this.descriptors = {
|
|
28
38
|
style: 'normal',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TrFontFace.js","sourceRoot":"","sources":["../../../../../src/core/text-rendering/font-face-types/TrFontFace.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"TrFontFace.js","sourceRoot":"","sources":["../../../../../src/core/text-rendering/font-face-types/TrFontFace.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAwH/D,MAAM,OAAO,UAAW,SAAQ,YAAY;IAC1B,UAAU,CAAS;IACnB,WAAW,CAAwB;IACnC,MAAM,GAAY,KAAK,CAAC;IACxB,OAAO,GAAiC,IAAI,CAAC;IAE7D,YAAY,OAA0B;QACpC,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;QAErD,IAAI,OAAO,EAAE;YACX,iDAAiD;YACjD,IAAI,CAAC,OAAO,GAAG;gBACb,QAAQ,EAAE,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,UAAU;gBAC/C,SAAS,EAAE,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,UAAU;gBACjD,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,UAAU;aAC9C,CAAC;SACH;QAED,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG;YACjB,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,QAAQ;YACjB,GAAG,WAAW;SACf,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,+BAA+B,CAC3C,WAAkC;QAElC,OAAO;YACL,KAAK,EAAE,WAAW,CAAC,KAAK;YACxB,MAAM,EACJ,OAAO,WAAW,CAAC,MAAM,KAAK,QAAQ;gBACpC,CAAC,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE;gBACzB,CAAC,CAAC,WAAW,CAAC,MAAM;YACxB,OAAO,EAAE,WAAW,CAAC,OAAO;YAC5B,YAAY,EAAE,WAAW,CAAC,YAAY;YACtC,OAAO,EAAE,WAAW,CAAC,OAAO;YAC5B,eAAe,EAAE,WAAW,CAAC,eAAe;YAC5C,OAAO,EAAE,WAAW,CAAC,OAAO;SAC7B,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
|
-
import { TrFontFace, type
|
|
1
|
+
import { TrFontFace, type TrFontFaceOptions } from './TrFontFace.js';
|
|
2
2
|
declare module './TrFontFace.js' {
|
|
3
3
|
interface TrFontFaceMap {
|
|
4
4
|
web: WebTrFontFace;
|
|
5
5
|
}
|
|
6
6
|
}
|
|
7
|
+
export interface WebTrFontFaceOptions extends TrFontFaceOptions {
|
|
8
|
+
fontUrl: string;
|
|
9
|
+
}
|
|
7
10
|
export declare class WebTrFontFace extends TrFontFace {
|
|
8
11
|
readonly fontFace: FontFace;
|
|
9
12
|
readonly fontUrl: string;
|
|
10
|
-
constructor(
|
|
13
|
+
constructor(options: WebTrFontFaceOptions);
|
|
11
14
|
}
|
|
@@ -16,12 +16,13 @@
|
|
|
16
16
|
* See the License for the specific language governing permissions and
|
|
17
17
|
* limitations under the License.
|
|
18
18
|
*/
|
|
19
|
-
import { TrFontFace } from './TrFontFace.js';
|
|
19
|
+
import { TrFontFace, } from './TrFontFace.js';
|
|
20
20
|
export class WebTrFontFace extends TrFontFace {
|
|
21
21
|
fontFace;
|
|
22
22
|
fontUrl;
|
|
23
|
-
constructor(
|
|
24
|
-
super(
|
|
23
|
+
constructor(options) {
|
|
24
|
+
super(options);
|
|
25
|
+
const { fontFamily, fontUrl } = options;
|
|
25
26
|
// Filter out parentheses from fontUrl
|
|
26
27
|
const fontUrlWithoutParentheses = fontUrl.replace(/\(|\)/g, '');
|
|
27
28
|
// Defaults for descriptors resolved in the super constructor
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebTrFontFace.js","sourceRoot":"","sources":["../../../../../src/core/text-rendering/font-face-types/WebTrFontFace.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"WebTrFontFace.js","sourceRoot":"","sources":["../../../../../src/core/text-rendering/font-face-types/WebTrFontFace.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EACL,UAAU,GAGX,MAAM,iBAAiB,CAAC;AAYzB,MAAM,OAAO,aAAc,SAAQ,UAAU;IAC3B,QAAQ,CAAW;IACnB,OAAO,CAAS;IAEhC,YAAY,OAA6B;QACvC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEf,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;QAExC,sCAAsC;QACtC,MAAM,yBAAyB,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAEhE,6DAA6D;QAC7D,MAAM,qBAAqB,GAAG,IAAI,CAAC,WAAW,CAAC;QAE/C,2DAA2D;QAC3D,MAAM,cAAc,GAAwB;YAC1C,KAAK,EAAE,qBAAqB,CAAC,KAAK;YAClC,MAAM,EACJ,OAAO,qBAAqB,CAAC,MAAM,KAAK,QAAQ;gBAC9C,CAAC,CAAC,GAAG,qBAAqB,CAAC,MAAM,EAAE;gBACnC,CAAC,CAAC,qBAAqB,CAAC,MAAM;YAClC,OAAO,EAAE,qBAAqB,CAAC,OAAO;YACtC,YAAY,EAAE,qBAAqB,CAAC,YAAY;YAChD,OAAO,EAAE,qBAAqB,CAAC,OAAO;YACtC,eAAe,EAAE,qBAAqB,CAAC,eAAe;YACtD,OAAO,EAAE,qBAAqB,CAAC,OAAO;SACvC,CAAC;QAEF,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAC3B,UAAU,EACV,OAAO,yBAAyB,GAAG,EACnC,cAAc,CACf,CAAC;QAEF,QAAQ;aACL,IAAI,EAAE;aACN,IAAI,CAAC,GAAG,EAAE;YACT,4EAA4E;YAC3E,IAAI,CAAC,MAAkB,GAAG,IAAI,CAAC;YAChC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtB,CAAC,CAAC;aACD,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAExB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF"}
|
|
@@ -3,6 +3,7 @@ import type { Matrix3d } from '../../lib/Matrix3d.js';
|
|
|
3
3
|
import { type Bound, type BoundWithValid, type RectWithValid } from '../../lib/utils.js';
|
|
4
4
|
import type { ImageTexture } from '../../textures/ImageTexture.js';
|
|
5
5
|
import type { TrFontFace } from '../font-face-types/TrFontFace.js';
|
|
6
|
+
import { WebTrFontFace } from '../font-face-types/WebTrFontFace.js';
|
|
6
7
|
import { LightningTextTextureRenderer, type RenderInfo } from './LightningTextTextureRenderer.js';
|
|
7
8
|
import { TextRenderer, type TextRendererState, type TrFontProps, type TrPropSetters, type TrProps } from './TextRenderer.js';
|
|
8
9
|
declare module './TextRenderer.js' {
|
|
@@ -20,6 +21,7 @@ export interface CanvasTextRendererState extends TextRendererState {
|
|
|
20
21
|
props: TrProps;
|
|
21
22
|
fontFaceLoadedHandler: (() => void) | undefined;
|
|
22
23
|
fontInfo: {
|
|
24
|
+
fontFace: WebTrFontFace;
|
|
23
25
|
cssString: string;
|
|
24
26
|
loaded: boolean;
|
|
25
27
|
} | undefined;
|
|
@@ -33,6 +35,12 @@ export declare class CanvasTextRenderer extends TextRenderer<CanvasTextRendererS
|
|
|
33
35
|
protected canvas: OffscreenCanvas | HTMLCanvasElement;
|
|
34
36
|
protected context: OffscreenCanvasRenderingContext2D | CanvasRenderingContext2D;
|
|
35
37
|
private rendererBounds;
|
|
38
|
+
/**
|
|
39
|
+
* Font family map used to store web font faces that were added to the
|
|
40
|
+
* canvas text renderer.
|
|
41
|
+
*/
|
|
42
|
+
private fontFamilies;
|
|
43
|
+
private fontFamilyArray;
|
|
36
44
|
constructor(stage: Stage);
|
|
37
45
|
getPropertySetters(): Partial<TrPropSetters<CanvasTextRendererState>>;
|
|
38
46
|
canRenderFont(props: TrFontProps): boolean;
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
import { EventEmitter } from '../../../common/EventEmitter.js';
|
|
20
20
|
import { assertTruthy, mergeColorAlphaPremultiplied } from '../../../utils.js';
|
|
21
21
|
import { intersectRect, intersectBound, getNormalizedRgbaComponents, getNormalizedAlphaComponent, createBound, } from '../../lib/utils.js';
|
|
22
|
+
import { TrFontManager } from '../TrFontManager.js';
|
|
22
23
|
import { WebTrFontFace } from '../font-face-types/WebTrFontFace.js';
|
|
23
24
|
import { LightningTextTextureRenderer, } from './LightningTextTextureRenderer.js';
|
|
24
25
|
import { TextRenderer, } from './TextRenderer.js';
|
|
@@ -44,6 +45,12 @@ export class CanvasTextRenderer extends TextRenderer {
|
|
|
44
45
|
canvas;
|
|
45
46
|
context;
|
|
46
47
|
rendererBounds;
|
|
48
|
+
/**
|
|
49
|
+
* Font family map used to store web font faces that were added to the
|
|
50
|
+
* canvas text renderer.
|
|
51
|
+
*/
|
|
52
|
+
fontFamilies = {};
|
|
53
|
+
fontFamilyArray = [this.fontFamilies];
|
|
47
54
|
constructor(stage) {
|
|
48
55
|
super(stage);
|
|
49
56
|
if (typeof OffscreenCanvas !== 'undefined') {
|
|
@@ -69,6 +76,12 @@ export class CanvasTextRenderer extends TextRenderer {
|
|
|
69
76
|
x2: this.stage.options.appWidth,
|
|
70
77
|
y2: this.stage.options.appHeight,
|
|
71
78
|
};
|
|
79
|
+
// Install the default 'san-serif' font face
|
|
80
|
+
this.addFontFace(new WebTrFontFace({
|
|
81
|
+
fontFamily: 'sans-serif',
|
|
82
|
+
descriptors: {},
|
|
83
|
+
fontUrl: '',
|
|
84
|
+
}));
|
|
72
85
|
}
|
|
73
86
|
//#region Overrides
|
|
74
87
|
getPropertySetters() {
|
|
@@ -186,10 +199,22 @@ export class CanvasTextRenderer extends TextRenderer {
|
|
|
186
199
|
// Make sure the font face is an Canvas font face (it should have already passed
|
|
187
200
|
// the `isFontFaceSupported` check)
|
|
188
201
|
assertTruthy(fontFace instanceof WebTrFontFace);
|
|
189
|
-
//
|
|
190
|
-
//
|
|
191
|
-
//
|
|
192
|
-
|
|
202
|
+
// Add the font face to the document
|
|
203
|
+
// Except for the 'sans-serif' font family, which the Renderer provides
|
|
204
|
+
// as a special default fallback.
|
|
205
|
+
if (fontFace.fontFamily !== 'sans-serif') {
|
|
206
|
+
// @ts-expect-error `add()` method should be available from a FontFaceSet
|
|
207
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
|
|
208
|
+
globalFontSet.add(fontFace.fontFace);
|
|
209
|
+
}
|
|
210
|
+
const { fontFamilies } = this;
|
|
211
|
+
const familyName = fontFace.fontFace.family;
|
|
212
|
+
let faceSet = fontFamilies[familyName];
|
|
213
|
+
if (!faceSet) {
|
|
214
|
+
faceSet = new Set();
|
|
215
|
+
fontFamilies[familyName] = faceSet;
|
|
216
|
+
}
|
|
217
|
+
faceSet.add(fontFace);
|
|
193
218
|
}
|
|
194
219
|
createState(props) {
|
|
195
220
|
return {
|
|
@@ -233,7 +258,10 @@ export class CanvasTextRenderer extends TextRenderer {
|
|
|
233
258
|
// If fontInfo is invalid, we need to establish it
|
|
234
259
|
if (!state.fontInfo) {
|
|
235
260
|
const cssString = getFontCssString(state.props);
|
|
261
|
+
const trFontFace = TrFontManager.resolveFontFace(this.fontFamilyArray, state.props);
|
|
262
|
+
assertTruthy(trFontFace, `Could not resolve font face for ${cssString}`);
|
|
236
263
|
state.fontInfo = {
|
|
264
|
+
fontFace: trFontFace,
|
|
237
265
|
cssString: cssString,
|
|
238
266
|
// TODO: For efficiency we would use this here but it's not reliable on WPE -> document.fonts.check(cssString),
|
|
239
267
|
loaded: false,
|
|
@@ -252,18 +280,11 @@ export class CanvasTextRenderer extends TextRenderer {
|
|
|
252
280
|
return;
|
|
253
281
|
}
|
|
254
282
|
if (!state.renderInfo) {
|
|
255
|
-
const maxLines = state.props.maxLines;
|
|
256
|
-
const containedMaxLines = state.props.contain === 'both'
|
|
257
|
-
? Math.floor((state.props.height - state.props.offsetY) /
|
|
258
|
-
state.props.lineHeight)
|
|
259
|
-
: 0;
|
|
260
|
-
const calcMaxLines = containedMaxLines > 0 && maxLines > 0
|
|
261
|
-
? Math.min(containedMaxLines, maxLines)
|
|
262
|
-
: Math.max(containedMaxLines, maxLines);
|
|
263
283
|
state.lightning2TextRenderer.settings = {
|
|
264
284
|
text: state.props.text,
|
|
265
285
|
textAlign: state.props.textAlign,
|
|
266
|
-
|
|
286
|
+
fontFamily: state.props.fontFamily,
|
|
287
|
+
trFontFace: state.fontInfo.fontFace,
|
|
267
288
|
fontSize: state.props.fontSize,
|
|
268
289
|
fontStyle: [
|
|
269
290
|
state.props.fontStretch,
|
|
@@ -271,15 +292,19 @@ export class CanvasTextRenderer extends TextRenderer {
|
|
|
271
292
|
state.props.fontWeight,
|
|
272
293
|
].join(' '),
|
|
273
294
|
textColor: getNormalizedRgbaComponents(state.props.color),
|
|
274
|
-
offsetY: state.props.
|
|
295
|
+
offsetY: state.props.offsetY,
|
|
275
296
|
wordWrap: state.props.contain !== 'none',
|
|
276
297
|
wordWrapWidth: state.props.contain === 'none' ? undefined : state.props.width,
|
|
277
298
|
letterSpacing: state.props.letterSpacing,
|
|
278
|
-
lineHeight: state.props.lineHeight,
|
|
279
|
-
maxLines:
|
|
299
|
+
lineHeight: state.props.lineHeight ?? null,
|
|
300
|
+
maxLines: state.props.maxLines,
|
|
301
|
+
maxHeight: state.props.contain === 'both'
|
|
302
|
+
? state.props.height - state.props.offsetY
|
|
303
|
+
: null,
|
|
280
304
|
textBaseline: state.props.textBaseline,
|
|
281
305
|
verticalAlign: state.props.verticalAlign,
|
|
282
306
|
overflowSuffix: state.props.overflowSuffix,
|
|
307
|
+
w: state.props.contain !== 'none' ? state.props.width : undefined,
|
|
283
308
|
};
|
|
284
309
|
// const renderInfoCalculateTime = performance.now();
|
|
285
310
|
state.renderInfo = state.lightning2TextRenderer.calculateRenderInfo();
|
|
@@ -565,6 +590,7 @@ export class CanvasTextRenderer extends TextRenderer {
|
|
|
565
590
|
});
|
|
566
591
|
}
|
|
567
592
|
destroyState(state) {
|
|
593
|
+
super.destroyState(state);
|
|
568
594
|
// Remove state object owner from any canvas page textures
|
|
569
595
|
state.canvasPages?.forEach((pageInfo) => {
|
|
570
596
|
pageInfo.texture?.setRenderableOwner(state, false);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CanvasTextRenderer.js","sourceRoot":"","sources":["../../../../../src/core/text-rendering/renderers/CanvasTextRenderer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CanvasTextRenderer.js","sourceRoot":"","sources":["../../../../../src/core/text-rendering/renderers/CanvasTextRenderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { type RGBA } from '../../lib/utils.js';
|
|
2
|
+
import type { NormalizedFontMetrics } from '../font-face-types/TrFontFace.js';
|
|
3
|
+
import type { WebTrFontFace } from '../font-face-types/WebTrFontFace.js';
|
|
2
4
|
/**
|
|
3
5
|
* Text Overflow Values
|
|
4
6
|
*/
|
|
@@ -25,7 +27,8 @@ export interface Settings {
|
|
|
25
27
|
fontStyle: string;
|
|
26
28
|
fontSize: number;
|
|
27
29
|
fontBaselineRatio: number;
|
|
28
|
-
|
|
30
|
+
fontFamily: string | null;
|
|
31
|
+
trFontFace: WebTrFontFace | null;
|
|
29
32
|
wordWrap: boolean;
|
|
30
33
|
wordWrapWidth: number;
|
|
31
34
|
wordBreak: boolean;
|
|
@@ -36,6 +39,7 @@ export interface Settings {
|
|
|
36
39
|
verticalAlign: TextVerticalAlign;
|
|
37
40
|
offsetY: number | null;
|
|
38
41
|
maxLines: number;
|
|
42
|
+
maxHeight: number | null;
|
|
39
43
|
overflowSuffix: string;
|
|
40
44
|
precision: number;
|
|
41
45
|
textColor: RGBA;
|
|
@@ -77,12 +81,14 @@ export interface RenderInfo {
|
|
|
77
81
|
cutEx: number;
|
|
78
82
|
cutEy: number;
|
|
79
83
|
lineHeight: number;
|
|
84
|
+
defLineHeight: number;
|
|
80
85
|
lineWidths: number[];
|
|
81
86
|
offsetY: number;
|
|
82
87
|
paddingLeft: number;
|
|
83
88
|
paddingRight: number;
|
|
84
89
|
letterSpacing: number;
|
|
85
90
|
textIndent: number;
|
|
91
|
+
metrics: NormalizedFontMetrics;
|
|
86
92
|
}
|
|
87
93
|
export declare class LightningTextTextureRenderer {
|
|
88
94
|
private _canvas;
|