@lightningjs/renderer 2.22.0 → 2.22.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.
- package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.d.ts +0 -1
- package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js +8 -13
- package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js.map +1 -1
- package/dist/src/core/shaders/webgl/Border.js +13 -7
- package/dist/src/core/shaders/webgl/Border.js.map +1 -1
- package/dist/src/core/shaders/webgl/RoundedWithBorder.js +17 -6
- package/dist/src/core/shaders/webgl/RoundedWithBorder.js.map +1 -1
- package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js +8 -4
- package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js.map +1 -1
- package/dist/src/core/text-rendering/CanvasFont.js +11 -7
- package/dist/src/core/text-rendering/CanvasFont.js.map +1 -1
- package/dist/src/core/text-rendering/CanvasTextRenderer.d.ts +8 -5
- package/dist/src/core/text-rendering/CanvasTextRenderer.js +30 -13
- package/dist/src/core/text-rendering/CanvasTextRenderer.js.map +1 -1
- package/dist/src/core/text-rendering/CoreFont.d.ts +3 -3
- package/dist/src/core/text-rendering/CoreFont.js +7 -7
- package/dist/src/core/text-rendering/CoreFont.js.map +1 -1
- package/dist/src/core/text-rendering/FontManager.d.ts +1 -1
- package/dist/src/core/text-rendering/FontManager.js +1 -1
- package/dist/src/core/text-rendering/FontManager.js.map +1 -1
- package/dist/src/core/text-rendering/SdfFontHandler.d.ts +28 -125
- package/dist/src/core/text-rendering/SdfFontHandler.js +4 -337
- package/dist/src/core/text-rendering/SdfFontHandler.js.map +1 -1
- package/dist/src/core/text-rendering/SdfTextRenderer.d.ts +6 -5
- package/dist/src/core/text-rendering/SdfTextRenderer.js +19 -15
- package/dist/src/core/text-rendering/SdfTextRenderer.js.map +1 -1
- package/dist/src/core/text-rendering/TextLayoutEngine.d.ts +12 -11
- package/dist/src/core/text-rendering/TextLayoutEngine.js +29 -29
- package/dist/src/core/text-rendering/TextLayoutEngine.js.map +1 -1
- package/dist/src/core/text-rendering/TextRenderer.d.ts +6 -16
- package/dist/tsconfig.dist.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.ts +8 -14
|
@@ -29,7 +29,6 @@ export declare class LinearGradientEffect extends ShaderEffect {
|
|
|
29
29
|
static getEffectKey(props: LinearGradientEffectProps): string;
|
|
30
30
|
static resolveDefaults(props: LinearGradientEffectProps): Required<LinearGradientEffectProps>;
|
|
31
31
|
static uniforms: ShaderEffectUniforms;
|
|
32
|
-
static methods: Record<string, string>;
|
|
33
32
|
static ColorLoop: (amount: number) => string;
|
|
34
33
|
static onColorize: (props: LinearGradientEffectProps) => string;
|
|
35
34
|
}
|
|
@@ -81,13 +81,6 @@ export class LinearGradientEffect extends ShaderEffect {
|
|
|
81
81
|
type: 'float',
|
|
82
82
|
},
|
|
83
83
|
};
|
|
84
|
-
static methods = {
|
|
85
|
-
calcPoint: `
|
|
86
|
-
vec2 function(float d, float angle) {
|
|
87
|
-
return d * vec2(cos(angle), sin(angle)) + (u_dimensions * 0.5);
|
|
88
|
-
}
|
|
89
|
-
`,
|
|
90
|
-
};
|
|
91
84
|
static ColorLoop = (amount) => {
|
|
92
85
|
let loop = '';
|
|
93
86
|
for (let i = 2; i < amount; i++) {
|
|
@@ -100,12 +93,14 @@ export class LinearGradientEffect extends ShaderEffect {
|
|
|
100
93
|
static onColorize = (props) => {
|
|
101
94
|
const colors = props.colors.length || 1;
|
|
102
95
|
return `
|
|
103
|
-
float a = angle
|
|
104
|
-
float
|
|
105
|
-
|
|
106
|
-
vec2
|
|
107
|
-
|
|
108
|
-
|
|
96
|
+
float a = angle + (PI / 180.0 * 90.0);
|
|
97
|
+
float aspectRatio = u_dimensions.x / u_dimensions.y;
|
|
98
|
+
|
|
99
|
+
vec2 gradDir = vec2(cos(a), sin(a));
|
|
100
|
+
float lineDist = abs(aspectRatio * gradDir.x) + abs(gradDir.y);
|
|
101
|
+
|
|
102
|
+
vec2 pos = v_nodeCoordinate.xy * vec2(aspectRatio, 1.0) - vec2(aspectRatio * 0.5, 0.5);
|
|
103
|
+
float dist = dot(pos, gradDir) / lineDist + 0.5;
|
|
109
104
|
|
|
110
105
|
float stopCalc = smoothstep(stops[0], stops[1], dist);
|
|
111
106
|
vec4 colorOut = mix(colors[0], colors[1], stopCalc);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LinearGradientEffect.js","sourceRoot":"","sources":["../../../../../../../src/core/renderers/webgl/shaders/effects/LinearGradientEffect.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"LinearGradientEffect.js","sourceRoot":"","sources":["../../../../../../../src/core/renderers/webgl/shaders/effects/LinearGradientEffect.ts"],"names":[],"mappings":"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"}
|
|
@@ -143,17 +143,23 @@ export const Border = {
|
|
|
143
143
|
vec4 resultColor = vec4(0.0);
|
|
144
144
|
vec2 boxUv = v_nodeCoords.xy * u_dimensions - v_halfDimensions;
|
|
145
145
|
|
|
146
|
-
float nodeDist = box(boxUv, v_halfDimensions - v_edgeWidth);
|
|
147
|
-
float nodeAlpha = 1.0 - smoothstep(-0.5 * v_edgeWidth, 0.5 * v_edgeWidth, nodeDist);
|
|
148
|
-
resultColor = mix(resultColor, color, nodeAlpha);
|
|
149
|
-
|
|
150
146
|
float outerDist = box(boxUv + v_outerBorderUv, v_outerSize - v_edgeWidth);
|
|
151
147
|
float innerDist = box(boxUv + v_innerBorderUv, v_innerSize - v_edgeWidth);
|
|
152
148
|
|
|
153
|
-
|
|
154
|
-
|
|
149
|
+
if(u_borderGap == 0.0) {
|
|
150
|
+
resultColor = mix(resultColor, u_borderColor, 1.0 - smoothstep(-0.5 * v_edgeWidth, 0.5 * v_edgeWidth, outerDist));
|
|
151
|
+
resultColor = mix(resultColor, color, 1.0 - smoothstep(-0.5 * v_edgeWidth, 0.5 * v_edgeWidth, innerDist));
|
|
152
|
+
gl_FragColor = resultColor * u_alpha;
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
155
|
|
|
156
|
-
|
|
156
|
+
float nodeDist = box(boxUv, v_halfDimensions - v_edgeWidth);
|
|
157
|
+
float nodeAlpha = 1.0 - smoothstep(-0.5 * v_edgeWidth, 0.5 * v_edgeWidth, nodeDist);
|
|
158
|
+
|
|
159
|
+
float borderDist = max(-innerDist, outerDist);
|
|
160
|
+
float borderAlpha = 1.0 - smoothstep(-0.5 * v_edgeWidth, 0.5 * v_edgeWidth, borderDist);
|
|
161
|
+
resultColor = mix(resultColor, color, nodeAlpha);
|
|
162
|
+
resultColor = mix(resultColor, u_borderColor, borderAlpha * u_borderColor.a);
|
|
157
163
|
|
|
158
164
|
gl_FragColor = resultColor * u_alpha;
|
|
159
165
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Border.js","sourceRoot":"","sources":["../../../../../src/core/shaders/webgl/Border.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EACL,cAAc,GAEf,MAAM,gCAAgC,CAAC;AAIxC,MAAM,CAAC,MAAM,MAAM,GAAiC;IAClD,KAAK,EAAE,cAAc,CAAC,KAAK;IAC3B,MAAM,CAAC,IAAI;QACT,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,IAAI,CAAC,KAAM,CAAC,CAAS,CAAC,CAAC;QACxD,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,IAAI,CAAC,KAAM,CAAC,KAAK,CAAC,CAAC;QACrD,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,CAAC,KAAM,CAAC,GAAa,CAAC,CAAC;QACzD,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,CAAC,KAAM,CAAC,KAAe,CAAC,CAAC;IAC/D,CAAC;IACD,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgFP;IACD,QAAQ,EAAE
|
|
1
|
+
{"version":3,"file":"Border.js","sourceRoot":"","sources":["../../../../../src/core/shaders/webgl/Border.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EACL,cAAc,GAEf,MAAM,gCAAgC,CAAC;AAIxC,MAAM,CAAC,MAAM,MAAM,GAAiC;IAClD,KAAK,EAAE,cAAc,CAAC,KAAK;IAC3B,MAAM,CAAC,IAAI;QACT,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,IAAI,CAAC,KAAM,CAAC,CAAS,CAAC,CAAC;QACxD,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,IAAI,CAAC,KAAM,CAAC,KAAK,CAAC,CAAC;QACrD,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,CAAC,KAAM,CAAC,GAAa,CAAC,CAAC;QACzD,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,CAAC,KAAM,CAAC,KAAe,CAAC,CAAC;IAC/D,CAAC;IACD,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgFP;IACD,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DT;CACF,CAAC"}
|
|
@@ -177,22 +177,33 @@ export const RoundedWithBorder = {
|
|
|
177
177
|
vec4 resultColor = vec4(0.0);
|
|
178
178
|
vec2 boxUv = v_nodeCoords.xy * u_dimensions - v_halfDimensions;
|
|
179
179
|
|
|
180
|
-
float nodeDist
|
|
181
|
-
float nodeAlpha
|
|
182
|
-
resultColor = mix(resultColor, color, nodeAlpha);
|
|
180
|
+
float nodeDist;
|
|
181
|
+
float nodeAlpha;
|
|
183
182
|
|
|
184
183
|
if(v_borderZero == 1.0) {
|
|
185
|
-
|
|
184
|
+
nodeDist = roundedBox(boxUv, v_halfDimensions - v_edgeWidth, u_radius);
|
|
185
|
+
nodeAlpha = 1.0 - smoothstep(-0.5 * v_edgeWidth, 0.5 * v_edgeWidth, nodeDist);
|
|
186
|
+
gl_FragColor = mix(vec4(0.0), color, nodeAlpha) * u_alpha;
|
|
186
187
|
return;
|
|
187
188
|
}
|
|
188
189
|
|
|
189
190
|
float outerDist = roundedBox(boxUv + v_outerBorderUv, v_outerSize - v_edgeWidth, v_outerBorderRadius);
|
|
190
191
|
float innerDist = roundedBox(boxUv + v_innerBorderUv, v_innerSize - v_edgeWidth, v_innerBorderRadius);
|
|
191
192
|
|
|
193
|
+
if(u_borderGap == 0.0) {
|
|
194
|
+
resultColor = mix(resultColor, u_borderColor, 1.0 - smoothstep(-0.5 * v_edgeWidth, 0.5 * v_edgeWidth, outerDist));
|
|
195
|
+
resultColor = mix(resultColor, color, 1.0 - smoothstep(-0.5 * v_edgeWidth, 0.5 * v_edgeWidth, innerDist));
|
|
196
|
+
gl_FragColor = resultColor * u_alpha;
|
|
197
|
+
return;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
nodeDist = roundedBox(boxUv, v_halfDimensions - v_edgeWidth, u_radius);
|
|
201
|
+
nodeAlpha = 1.0 - smoothstep(-0.5 * v_edgeWidth, 0.5 * v_edgeWidth, nodeDist);
|
|
192
202
|
float borderDist = max(-innerDist, outerDist);
|
|
193
|
-
float borderAlpha =
|
|
203
|
+
float borderAlpha = 1.0 - smoothstep(-0.5 * v_edgeWidth, 0.5 * v_edgeWidth, borderDist);
|
|
194
204
|
|
|
195
|
-
resultColor = mix(
|
|
205
|
+
resultColor = mix(vec4(0.0), color, nodeAlpha);
|
|
206
|
+
resultColor = mix(resultColor, u_borderColor, borderAlpha * u_borderColor.a);
|
|
196
207
|
gl_FragColor = resultColor * u_alpha;
|
|
197
208
|
}
|
|
198
209
|
`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RoundedWithBorder.js","sourceRoot":"","sources":["../../../../../src/core/shaders/webgl/RoundedWithBorder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAG7D,OAAO,EACL,yBAAyB,GAE1B,MAAM,2CAA2C,CAAC;AAEnD,MAAM,CAAC,MAAM,iBAAiB,GAA4C;IACxE,KAAK,EAAE,yBAAyB,CAAC,KAAK;IACtC,MAAM,CAAC,IAAc;QACnB,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,IAAI,CAAC,KAAM,CAAC,cAAc,CAAC,CAAC,CAAC;QAC/D,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,IAAI,CAAC,KAAM,CAAC,UAAU,CAAS,CAAC,CAAC;QAClE,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,CAAC,KAAM,CAAC,YAAY,CAAW,CAAC,CAAC;QACnE,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,CAAC,KAAM,CAAC,cAAc,CAAW,CAAC,CAAC;QAEvE,IAAI,CAAC,UAAU,CACb,UAAU,EACV,uBAAuB,CAAC,IAAI,CAAC,KAAM,CAAC,MAAc,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CACpE,CAAC;IACJ,CAAC;IACD,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0GP;IACD,QAAQ,EAAE
|
|
1
|
+
{"version":3,"file":"RoundedWithBorder.js","sourceRoot":"","sources":["../../../../../src/core/shaders/webgl/RoundedWithBorder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAG7D,OAAO,EACL,yBAAyB,GAE1B,MAAM,2CAA2C,CAAC;AAEnD,MAAM,CAAC,MAAM,iBAAiB,GAA4C;IACxE,KAAK,EAAE,yBAAyB,CAAC,KAAK;IACtC,MAAM,CAAC,IAAc;QACnB,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,IAAI,CAAC,KAAM,CAAC,cAAc,CAAC,CAAC,CAAC;QAC/D,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,IAAI,CAAC,KAAM,CAAC,UAAU,CAAS,CAAC,CAAC;QAClE,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,CAAC,KAAM,CAAC,YAAY,CAAW,CAAC,CAAC;QACnE,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,CAAC,KAAM,CAAC,cAAc,CAAW,CAAC,CAAC;QAEvE,IAAI,CAAC,UAAU,CACb,UAAU,EACV,uBAAuB,CAAC,IAAI,CAAC,KAAM,CAAC,MAAc,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CACpE,CAAC;IACJ,CAAC;IACD,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0GP;IACD,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0ET;CACF,CAAC"}
|
|
@@ -191,11 +191,13 @@ export const RoundedWithBorderAndShadow = {
|
|
|
191
191
|
vec4 color = texture2D(u_texture, v_textureCoords) * v_color;
|
|
192
192
|
vec4 resultColor = vec4(0.0);
|
|
193
193
|
vec2 boxUv = v_nodeCoords.xy * u_dimensions - v_halfDimensions;
|
|
194
|
-
float nodeDist
|
|
195
|
-
float nodeAlpha
|
|
194
|
+
float nodeDist;
|
|
195
|
+
float nodeAlpha;
|
|
196
196
|
float shadowAlpha;
|
|
197
197
|
|
|
198
198
|
if(v_borderZero == 1.0) {
|
|
199
|
+
nodeDist = roundedBox(boxUv, v_halfDimensions - v_edgeWidth, u_radius);
|
|
200
|
+
nodeAlpha = 1.0 - smoothstep(-0.5 * v_edgeWidth, 0.5 * v_edgeWidth, nodeDist);
|
|
199
201
|
shadowAlpha = shadowBox(boxUv - u_shadow.xy, v_halfDimensions + u_shadow.w - v_edgeWidth, u_radius + u_shadow.z);
|
|
200
202
|
resultColor = mix(resultColor, u_shadowColor, shadowAlpha);
|
|
201
203
|
gl_FragColor = mix(resultColor, color, nodeAlpha) * u_alpha;
|
|
@@ -209,13 +211,15 @@ export const RoundedWithBorderAndShadow = {
|
|
|
209
211
|
shadowAlpha = shadowBox(boxUv - u_shadow.xy, v_halfDimensions + u_shadow.w - v_edgeWidth, u_radius + u_shadow.z);
|
|
210
212
|
}
|
|
211
213
|
|
|
214
|
+
nodeDist = roundedBox(boxUv, v_halfDimensions - v_edgeWidth, u_radius);
|
|
215
|
+
nodeAlpha = 1.0 - smoothstep(-0.5 * v_edgeWidth, 0.5 * v_edgeWidth, nodeDist);
|
|
212
216
|
float outerDist = roundedBox(boxUv + v_outerBorderUv, v_outerSize - v_edgeWidth, v_outerBorderRadius);
|
|
213
217
|
float innerDist = roundedBox(boxUv + v_innerBorderUv, v_innerSize - v_edgeWidth, v_innerBorderRadius);
|
|
214
218
|
float borderDist = max(-innerDist, outerDist);
|
|
215
|
-
float borderAlpha =
|
|
219
|
+
float borderAlpha = 1.0 - smoothstep(-0.5 * v_edgeWidth, 0.5 * v_edgeWidth, borderDist);
|
|
216
220
|
resultColor = mix(resultColor, u_shadowColor, shadowAlpha);
|
|
217
221
|
resultColor = mix(resultColor, color, nodeAlpha);
|
|
218
|
-
resultColor = mix(resultColor,
|
|
222
|
+
resultColor = mix(resultColor, u_borderColor, borderAlpha * u_borderColor.a);
|
|
219
223
|
gl_FragColor = resultColor * u_alpha;
|
|
220
224
|
}
|
|
221
225
|
`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RoundedWithBorderAndShadow.js","sourceRoot":"","sources":["../../../../../src/core/shaders/webgl/RoundedWithBorderAndShadow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAG7D,OAAO,EACL,kCAAkC,GAEnC,MAAM,oDAAoD,CAAC;AAE5D,MAAM,CAAC,MAAM,0BAA0B,GACrC;IACE,KAAK,EAAE,kCAAkC,CAAC,KAAK;IAC/C,MAAM,CAAC,IAAc;QACnB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAM,CAAC;QAC1B,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,KAAK,CAAC,UAAU,CAAS,CAAC,CAAC;QAC5D,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,CAAC,KAAM,CAAC,YAAY,CAAW,CAAC,CAAC;QACnE,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,CAAC,KAAM,CAAC,cAAc,CAAW,CAAC,CAAC;QAEvE,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAExD,IAAI,CAAC,UAAU,CACb,UAAU,EACV,uBAAuB,CAAC,KAAK,CAAC,MAAc,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAC9D,CAAC;IACJ,CAAC;IACD,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6GT;IACC,QAAQ,EAAE
|
|
1
|
+
{"version":3,"file":"RoundedWithBorderAndShadow.js","sourceRoot":"","sources":["../../../../../src/core/shaders/webgl/RoundedWithBorderAndShadow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAG7D,OAAO,EACL,kCAAkC,GAEnC,MAAM,oDAAoD,CAAC;AAE5D,MAAM,CAAC,MAAM,0BAA0B,GACrC;IACE,KAAK,EAAE,kCAAkC,CAAC,KAAK;IAC/C,MAAM,CAAC,IAAc;QACnB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAM,CAAC;QAC1B,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,KAAK,CAAC,UAAU,CAAS,CAAC,CAAC;QAC5D,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,CAAC,KAAM,CAAC,YAAY,CAAW,CAAC,CAAC;QACnE,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,CAAC,KAAM,CAAC,cAAc,CAAW,CAAC,CAAC;QAEvE,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAExD,IAAI,CAAC,UAAU,CACb,UAAU,EACV,uBAAuB,CAAC,KAAK,CAAC,MAAc,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAC9D,CAAC;IACJ,CAAC;IACD,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6GT;IACC,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoFX;CACA,CAAC"}
|
|
@@ -27,7 +27,7 @@ export class CanvasFont extends CoreFont {
|
|
|
27
27
|
super(textRenderer, props);
|
|
28
28
|
this.measureContext = measureContext;
|
|
29
29
|
this.url = props.fontUrl;
|
|
30
|
-
this.metrics = props.metrics;
|
|
30
|
+
this.metrics = props.metrics ?? null;
|
|
31
31
|
}
|
|
32
32
|
load() {
|
|
33
33
|
if (this.state !== FontState.Created) {
|
|
@@ -73,7 +73,7 @@ export class CanvasFont extends CoreFont {
|
|
|
73
73
|
return m;
|
|
74
74
|
}
|
|
75
75
|
let metrics = this.metrics;
|
|
76
|
-
if (metrics ===
|
|
76
|
+
if (metrics === null) {
|
|
77
77
|
metrics = calculateCanvasMetrics(this.family, fontSize, this.measureContext);
|
|
78
78
|
}
|
|
79
79
|
m = this.normalizedMetrics[fontSize] = normalizeFontMetrics(metrics, fontSize);
|
|
@@ -95,7 +95,11 @@ function calculateCanvasMetrics(fontFamily, fontSize, measureContext) {
|
|
|
95
95
|
// as it's browser support is limited and it also tends to produce higher than
|
|
96
96
|
// expected values. It is instead HIGHLY RECOMMENDED that developers provide
|
|
97
97
|
// explicit metrics in the font face definition.
|
|
98
|
-
|
|
98
|
+
// Ensure font is loaded by checking document.fonts
|
|
99
|
+
if (!document.fonts.check(`${fontSize}px ${fontFamily}`)) {
|
|
100
|
+
console.warn(`Font ${fontFamily} may not be fully loaded yet when calculating metrics`);
|
|
101
|
+
}
|
|
102
|
+
measureContext.font = `${fontSize}px ${fontFamily}`;
|
|
99
103
|
const metrics = measureContext.measureText('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz');
|
|
100
104
|
console.warn(`Font metrics not provided for Canvas Web font ${fontFamily}. ` +
|
|
101
105
|
'Using fallback values. It is HIGHLY recommended you use the latest ' +
|
|
@@ -103,13 +107,13 @@ function calculateCanvasMetrics(fontFamily, fontSize, measureContext) {
|
|
|
103
107
|
'metrics for the font and provide them in the Canvas Web font definition.');
|
|
104
108
|
const ascender = metrics.fontBoundingBoxAscent ?? metrics.actualBoundingBoxAscent ?? 0;
|
|
105
109
|
const descender = metrics.fontBoundingBoxDescent ?? metrics.actualBoundingBoxDescent ?? 0;
|
|
110
|
+
const emHeight = (metrics.emHeightAscent ?? 0) + (metrics.emHeightDescent ?? 0);
|
|
111
|
+
const unitsPerEm = emHeight > 0 ? emHeight : ascender + descender;
|
|
106
112
|
return {
|
|
107
113
|
ascender,
|
|
108
114
|
descender: -descender,
|
|
109
|
-
lineGap: (
|
|
110
|
-
|
|
111
|
-
(ascender + descender),
|
|
112
|
-
unitsPerEm: (metrics.emHeightAscent ?? 0) + (metrics.emHeightDescent ?? 0),
|
|
115
|
+
lineGap: emHeight - (ascender + descender),
|
|
116
|
+
unitsPerEm,
|
|
113
117
|
};
|
|
114
118
|
}
|
|
115
119
|
//# sourceMappingURL=CanvasFont.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CanvasFont.js","sourceRoot":"","sources":["../../../../src/core/text-rendering/CanvasFont.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAsB,MAAM,eAAe,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAa/C,MAAM,OAAO,UAAW,SAAQ,QAAQ;IAO5B;IANH,IAAI,GAAG,QAAQ,CAAC;IAChB,GAAG,CAAS;IAEnB,YACE,YAA0B,EAC1B,KAAsB,EACd,cAE6B;QAErC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QAJnB,mBAAc,GAAd,cAAc,CAEe;QAGrC,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"CanvasFont.js","sourceRoot":"","sources":["../../../../src/core/text-rendering/CanvasFont.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,20 @@
|
|
|
1
1
|
import type { Stage } from '../Stage.js';
|
|
2
|
-
import type { TextRenderInfo } from './TextRenderer.js';
|
|
3
|
-
import * as CanvasFontHandler from './CanvasFontHandler.js';
|
|
2
|
+
import type { FontLoadOptions, TextRenderInfo } from './TextRenderer.js';
|
|
4
3
|
import type { CoreTextNodeProps } from '../CoreTextNode.js';
|
|
4
|
+
import { CanvasFont } from './CanvasFont.js';
|
|
5
|
+
import type { CoreFontManager } from './FontManager.js';
|
|
6
|
+
export declare let context: CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D | null;
|
|
7
|
+
export declare let measureContext: CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D | null;
|
|
5
8
|
/**
|
|
6
9
|
* Canvas Text Renderer - implements TextRenderer interface
|
|
7
10
|
*/
|
|
8
11
|
declare const CanvasTextRenderer: {
|
|
9
12
|
type: "canvas";
|
|
10
|
-
|
|
11
|
-
renderText: (props: CoreTextNodeProps) => TextRenderInfo;
|
|
13
|
+
createFont: (settings: FontLoadOptions) => CanvasFont | undefined;
|
|
14
|
+
renderText: (font: CanvasFont, props: CoreTextNodeProps) => TextRenderInfo;
|
|
12
15
|
addQuads: () => Float32Array | null;
|
|
13
16
|
renderQuads: () => void;
|
|
14
|
-
init: (stage: Stage) => void;
|
|
17
|
+
init: (stage: Stage, fontManager: CoreFontManager) => void;
|
|
15
18
|
clearLayoutCache: () => void;
|
|
16
19
|
};
|
|
17
20
|
export default CanvasTextRenderer;
|
|
@@ -17,20 +17,20 @@
|
|
|
17
17
|
* limitations under the License.
|
|
18
18
|
*/
|
|
19
19
|
import { assertTruthy } from '../../utils.js';
|
|
20
|
-
import * as CanvasFontHandler from './CanvasFontHandler.js';
|
|
21
20
|
import { hasZeroWidthSpace } from './Utils.js';
|
|
22
21
|
import { mapTextLayout } from './TextLayoutEngine.js';
|
|
22
|
+
import { CanvasFont } from './CanvasFont.js';
|
|
23
23
|
const MAX_TEXTURE_DIMENSION = 4096;
|
|
24
24
|
const type = 'canvas';
|
|
25
25
|
let canvas = null;
|
|
26
|
-
let context = null;
|
|
26
|
+
export let context = null;
|
|
27
27
|
// Separate canvas and context for text measurements
|
|
28
28
|
let measureCanvas = null;
|
|
29
|
-
let measureContext = null;
|
|
29
|
+
export let measureContext = null;
|
|
30
30
|
// Cache for text layout calculations
|
|
31
31
|
const layoutCache = new Map();
|
|
32
32
|
// Initialize the Text Renderer
|
|
33
|
-
const init = (stage) => {
|
|
33
|
+
const init = (stage, fontManager) => {
|
|
34
34
|
const dpr = stage.options.devicePhysicalPixelRatio;
|
|
35
35
|
// Drawing canvas and context
|
|
36
36
|
canvas = stage.platform.createCanvas();
|
|
@@ -45,7 +45,24 @@ const init = (stage) => {
|
|
|
45
45
|
// Set up a minimal size for the measuring canvas since we only use it for measurements
|
|
46
46
|
measureCanvas.width = 1;
|
|
47
47
|
measureCanvas.height = 1;
|
|
48
|
-
|
|
48
|
+
// Register the default 'sans-serif' font face
|
|
49
|
+
const defaultMetrics = {
|
|
50
|
+
ascender: 800,
|
|
51
|
+
descender: -200,
|
|
52
|
+
lineGap: 200,
|
|
53
|
+
unitsPerEm: 1000,
|
|
54
|
+
};
|
|
55
|
+
fontManager.loadFont(type, {
|
|
56
|
+
fontFamily: 'sans-serif',
|
|
57
|
+
metrics: defaultMetrics,
|
|
58
|
+
});
|
|
59
|
+
};
|
|
60
|
+
const createFont = (settings) => {
|
|
61
|
+
if (settings.fontFamily !== 'sans-serif' && settings.fontUrl === undefined) {
|
|
62
|
+
console.error('fontUrl is missing');
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
return new CanvasFont(CanvasTextRenderer, settings, measureContext);
|
|
49
66
|
};
|
|
50
67
|
/**
|
|
51
68
|
* Canvas text renderer
|
|
@@ -54,26 +71,26 @@ const init = (stage) => {
|
|
|
54
71
|
* @param props - Text rendering properties
|
|
55
72
|
* @returns Object containing ImageData and dimensions
|
|
56
73
|
*/
|
|
57
|
-
const renderText = (props) => {
|
|
74
|
+
const renderText = (font, props) => {
|
|
58
75
|
assertTruthy(canvas, 'Canvas is not initialized');
|
|
59
76
|
assertTruthy(context, 'Canvas context is not available');
|
|
60
77
|
assertTruthy(measureContext, 'Canvas measureContext is not available');
|
|
61
78
|
// Extract already normalized properties
|
|
62
79
|
const { text, fontFamily, fontStyle, fontSize, textAlign, maxLines, lineHeight, verticalAlign, overflowSuffix, maxWidth, maxHeight, wordBreak, } = props;
|
|
63
|
-
const
|
|
80
|
+
const canvasFont = `${fontStyle} ${fontSize}px Unknown, ${fontFamily}`;
|
|
64
81
|
// Get font metrics and calculate line height
|
|
65
|
-
measureContext.font =
|
|
82
|
+
measureContext.font = canvasFont;
|
|
66
83
|
measureContext.textBaseline = 'hanging';
|
|
67
|
-
const metrics =
|
|
84
|
+
const metrics = font.getMetrics(fontSize);
|
|
68
85
|
const letterSpacing = props.letterSpacing;
|
|
69
|
-
const [lines, remainingLines, hasRemainingText, bareLineHeight, lineHeightPx, effectiveWidth, effectiveHeight,] = mapTextLayout(
|
|
86
|
+
const [lines, remainingLines, hasRemainingText, bareLineHeight, lineHeightPx, effectiveWidth, effectiveHeight,] = mapTextLayout(font, metrics, text, textAlign, fontFamily, lineHeight, overflowSuffix, wordBreak, letterSpacing, maxLines, maxWidth, maxHeight);
|
|
70
87
|
const lineAmount = lines.length;
|
|
71
88
|
const canvasW = Math.ceil(effectiveWidth);
|
|
72
89
|
const canvasH = Math.ceil(effectiveHeight);
|
|
73
90
|
canvas.width = canvasW;
|
|
74
91
|
canvas.height = canvasH;
|
|
75
92
|
context.fillStyle = 'white';
|
|
76
|
-
context.font =
|
|
93
|
+
context.font = canvasFont;
|
|
77
94
|
context.textBaseline = 'hanging';
|
|
78
95
|
// Performance optimization for large fonts
|
|
79
96
|
if (fontSize >= 128) {
|
|
@@ -97,7 +114,7 @@ const renderText = (props) => {
|
|
|
97
114
|
continue;
|
|
98
115
|
}
|
|
99
116
|
context.fillText(char, currentX, currentY);
|
|
100
|
-
currentX +=
|
|
117
|
+
currentX += font.measureText(char, letterSpacing);
|
|
101
118
|
}
|
|
102
119
|
}
|
|
103
120
|
}
|
|
@@ -146,7 +163,7 @@ const renderQuads = () => {
|
|
|
146
163
|
*/
|
|
147
164
|
const CanvasTextRenderer = {
|
|
148
165
|
type,
|
|
149
|
-
|
|
166
|
+
createFont,
|
|
150
167
|
renderText,
|
|
151
168
|
addQuads,
|
|
152
169
|
renderQuads,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CanvasTextRenderer.js","sourceRoot":"","sources":["../../../../src/core/text-rendering/CanvasTextRenderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"CanvasTextRenderer.js","sourceRoot":"","sources":["../../../../src/core/text-rendering/CanvasTextRenderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,12 +15,12 @@ export interface CoreFontProps {
|
|
|
15
15
|
* EventEmiter only intended to communicated with FontManager
|
|
16
16
|
*/
|
|
17
17
|
export declare abstract class CoreFont extends EventEmitter {
|
|
18
|
-
protected waitingNodes
|
|
19
|
-
protected normalizedMetrics
|
|
18
|
+
protected waitingNodes: Record<number, CoreTextNode | null> | null;
|
|
19
|
+
protected normalizedMetrics: Record<number, NormalizedFontMetrics> | null;
|
|
20
20
|
textRenderer: TextRenderer;
|
|
21
21
|
state: FontState;
|
|
22
22
|
family: string;
|
|
23
|
-
metrics
|
|
23
|
+
metrics: FontMetrics | null;
|
|
24
24
|
constructor(textRenderer: TextRenderer, props: CoreFontProps);
|
|
25
25
|
protected onLoaded(): void;
|
|
26
26
|
waiting(node: CoreTextNode): void;
|
|
@@ -16,7 +16,7 @@ export class CoreFont extends EventEmitter {
|
|
|
16
16
|
textRenderer;
|
|
17
17
|
state;
|
|
18
18
|
family;
|
|
19
|
-
metrics;
|
|
19
|
+
metrics = null;
|
|
20
20
|
constructor(textRenderer, props) {
|
|
21
21
|
super();
|
|
22
22
|
this.family = props.fontFamily;
|
|
@@ -27,7 +27,7 @@ export class CoreFont extends EventEmitter {
|
|
|
27
27
|
const waitingNodes = this.waitingNodes;
|
|
28
28
|
for (let key in waitingNodes) {
|
|
29
29
|
waitingNodes[key].setUpdateType(UpdateType.Local);
|
|
30
|
-
|
|
30
|
+
waitingNodes[key] = null;
|
|
31
31
|
}
|
|
32
32
|
this.state = FontState.Loaded;
|
|
33
33
|
}
|
|
@@ -35,14 +35,14 @@ export class CoreFont extends EventEmitter {
|
|
|
35
35
|
this.waitingNodes[node.id] = node;
|
|
36
36
|
}
|
|
37
37
|
stopWaiting(node) {
|
|
38
|
-
if (this.waitingNodes[node.id]) {
|
|
39
|
-
|
|
38
|
+
if (this.waitingNodes[node.id] !== null) {
|
|
39
|
+
this.waitingNodes[node.id] = null;
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
42
|
destroy() {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
43
|
+
this.waitingNodes = null;
|
|
44
|
+
this.normalizedMetrics = null;
|
|
45
|
+
this.metrics = null;
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
48
|
//# sourceMappingURL=CoreFont.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CoreFont.js","sourceRoot":"","sources":["../../../../src/core/text-rendering/CoreFont.ts"],"names":[],"mappings":"AAwBA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE5D,MAAM,CAAN,IAAY,SAKX;AALD,WAAY,SAAS;IACnB,+CAAO,CAAA;IACP,+CAAO,CAAA;IACP,6CAAM,CAAA;IACN,6CAAM,CAAA;AACR,CAAC,EALW,SAAS,KAAT,SAAS,QAKpB;AAOD;;GAEG;AACH,MAAM,OAAgB,QAAS,SAAQ,YAAY;IACvC,YAAY,
|
|
1
|
+
{"version":3,"file":"CoreFont.js","sourceRoot":"","sources":["../../../../src/core/text-rendering/CoreFont.ts"],"names":[],"mappings":"AAwBA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAE5D,MAAM,CAAN,IAAY,SAKX;AALD,WAAY,SAAS;IACnB,+CAAO,CAAA;IACP,+CAAO,CAAA;IACP,6CAAM,CAAA;IACN,6CAAM,CAAA;AACR,CAAC,EALW,SAAS,KAAT,SAAS,QAKpB;AAOD;;GAEG;AACH,MAAM,OAAgB,QAAS,SAAQ,YAAY;IACvC,YAAY,GACpB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAwC,CAAC;IACnD,iBAAiB,GACzB,MAAM,CAAC,MAAM,CAAC,IAAI,CAA0C,CAAC;IAExD,YAAY,CAAe;IAC3B,KAAK,CAAY;IACjB,MAAM,CAAS;IACf,OAAO,GAAuB,IAAI,CAAC;IAE1C,YAAY,YAA0B,EAAE,KAAoB;QAC1D,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC;QAC/B,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAES,QAAQ;QAChB,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACvC,KAAK,IAAI,GAAG,IAAI,YAAY,EAAE,CAAC;YAC7B,YAAY,CAAC,GAAG,CAAE,CAAC,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACnD,YAAY,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QAC3B,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC;IAChC,CAAC;IAEM,OAAO,CAAC,IAAkB;QAC/B,IAAI,CAAC,YAAa,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;IACrC,CAAC;IAEM,WAAW,CAAC,IAAkB;QACnC,IAAI,IAAI,CAAC,YAAa,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;YACzC,IAAI,CAAC,YAAa,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;QACrC,CAAC;IACH,CAAC;IAEM,OAAO;QACZ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACtB,CAAC;CAMF"}
|
|
@@ -7,5 +7,5 @@ export declare class CoreFontManager {
|
|
|
7
7
|
constructor(stage: Stage, textRenderers: TextRenderer[]);
|
|
8
8
|
loadFont(type: TextRenderers, options: FontLoadOptions): void;
|
|
9
9
|
unloadFont(fontFamily: string): void;
|
|
10
|
-
getFont(fontFamily: string): CoreFont |
|
|
10
|
+
getFont(fontFamily: string): CoreFont | null;
|
|
11
11
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FontManager.js","sourceRoot":"","sources":["../../../../src/core/text-rendering/FontManager.ts"],"names":[],"mappings":"AAQA,MAAM,OAAO,eAAe;IAClB,KAAK,GAA6B,MAAM,CAAC,MAAM,CAAC,IAAI,CAG3D,CAAC;IACM,SAAS,GAAiC,MAAM,CAAC,MAAM,CAC7D,IAAI,CAC2B,CAAC;IAElC,YAAY,KAAY,EAAE,aAA6B;QACrD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9C,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAE,CAAC;YACnC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;YACzC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,QAAQ,CAAC,IAAmB,EAAE,OAAwB;QACpD,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YACjC,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;YAC5D,OAAO;QACT,CAAC;QACD,MAAM,IAAI,GAAG,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAChD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;IACxC,CAAC;IAED,UAAU,CAAC,UAAkB;QAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC1C,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO;QACT,CAAC;QACD,UAAU,CAAC,OAAO,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAChC,CAAC;IAED,OAAO,CAAC,UAAkB;QACxB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACpC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;YAC1C,OAAO;
|
|
1
|
+
{"version":3,"file":"FontManager.js","sourceRoot":"","sources":["../../../../src/core/text-rendering/FontManager.ts"],"names":[],"mappings":"AAQA,MAAM,OAAO,eAAe;IAClB,KAAK,GAA6B,MAAM,CAAC,MAAM,CAAC,IAAI,CAG3D,CAAC;IACM,SAAS,GAAiC,MAAM,CAAC,MAAM,CAC7D,IAAI,CAC2B,CAAC;IAElC,YAAY,KAAY,EAAE,aAA6B;QACrD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9C,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAE,CAAC;YACnC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;YACzC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,QAAQ,CAAC,IAAmB,EAAE,OAAwB;QACpD,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YACjC,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;YAC5D,OAAO;QACT,CAAC;QACD,MAAM,IAAI,GAAG,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAChD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;IACxC,CAAC;IAED,UAAU,CAAC,UAAkB;QAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC1C,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO;QACT,CAAC;QACD,UAAU,CAAC,OAAO,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAChC,CAAC;IAED,OAAO,CAAC,UAAkB;QACxB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACpC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
|