@solidtv/renderer 1.6.1 → 1.6.2

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 (28) hide show
  1. package/dist/src/core/lib/ImageWorker.js +29 -20
  2. package/dist/src/core/lib/ImageWorker.js.map +1 -1
  3. package/dist/src/core/lib/validateImageBitmap.d.ts +13 -7
  4. package/dist/src/core/lib/validateImageBitmap.js +31 -10
  5. package/dist/src/core/lib/validateImageBitmap.js.map +1 -1
  6. package/dist/src/core/text-rendering/CanvasFontHandler.js +30 -15
  7. package/dist/src/core/text-rendering/CanvasFontHandler.js.map +1 -1
  8. package/dist/src/core/text-rendering/SdfFontHandler.js +52 -23
  9. package/dist/src/core/text-rendering/SdfFontHandler.js.map +1 -1
  10. package/dist/src/core/text-rendering/TextRenderer.d.ts +10 -1
  11. package/dist/src/core/textures/ImageTexture.js +4 -2
  12. package/dist/src/core/textures/ImageTexture.js.map +1 -1
  13. package/dist/src/main-api/Renderer.d.ts +10 -6
  14. package/dist/src/main-api/Renderer.js +3 -3
  15. package/dist/src/main-api/Renderer.js.map +1 -1
  16. package/dist/tsconfig.dist.tsbuildinfo +1 -1
  17. package/package.json +1 -1
  18. package/src/core/lib/ImageWorker.test.ts +19 -0
  19. package/src/core/lib/ImageWorker.ts +34 -40
  20. package/src/core/lib/validateImageBitmap.test.ts +17 -10
  21. package/src/core/lib/validateImageBitmap.ts +32 -14
  22. package/src/core/text-rendering/CanvasFontHandler.ts +36 -16
  23. package/src/core/text-rendering/SdfFontHandler.ts +55 -25
  24. package/src/core/text-rendering/TextRenderer.ts +10 -1
  25. package/src/core/text-rendering/tests/SdfFontHandler.test.ts +65 -1
  26. package/src/core/textures/ImageTexture.test.ts +94 -26
  27. package/src/core/textures/ImageTexture.ts +4 -2
  28. package/src/main-api/Renderer.ts +13 -9
@@ -58,10 +58,12 @@ function createImageWorker() {
58
58
  supportsFullCreateImageBitmap === false) {
59
59
  // Fallback for browsers that do not support createImageBitmap with options
60
60
  // this is supported for Chrome v50 to v52/54 that doesn't support options.
61
- // The browser default premultiplies, so WebGL must not premultiply again.
61
+ // The browser default premultiplies, so WebGL must not premultiply again
62
+ // except on devices whose default returns straight alpha
63
+ // (premultiplyAlphaHonored: false); there WebGL premultiplies on upload.
62
64
  createImageBitmap(blob)
63
65
  .then(function (data) {
64
- resolve({ data: data, premultiplyAlpha: false });
66
+ resolve({ data: data, premultiplyAlpha: useGlPremultiply });
65
67
  })
66
68
  .catch(function (error) {
67
69
  reject(error);
@@ -95,11 +97,16 @@ function createImageWorker() {
95
97
  var y = event.data.sy;
96
98
  var width = event.data.sw;
97
99
  var height = event.data.sh;
98
- // these will be set to true if the browser supports the createImageBitmap options or full
99
- var supportsOptionsCreateImageBitmap = false;
100
- var supportsFullCreateImageBitmap = false;
101
- // set to false when the device is known to ignore the premultiply option
102
- var premultiplyAlphaHonored = true;
100
+ // Capability flags are sent as message DATA (not baked into the worker's
101
+ // source text) because they must survive minification: a production
102
+ // bundler renames these local variable names, which silently breaks any
103
+ // scheme that pattern-matches `createImageWorker.toString()` output for
104
+ // injection (see git history for the string-replace approach this
105
+ // replaced, and the bug it caused - capability detection was always a
106
+ // no-op in a minified build, regardless of device or config).
107
+ var supportsOptionsCreateImageBitmap = event.data.supportsOptionsCreateImageBitmap;
108
+ var supportsFullCreateImageBitmap = event.data.supportsFullCreateImageBitmap;
109
+ var premultiplyAlphaHonored = event.data.premultiplyAlphaHonored;
103
110
  getImage(src, premultiplyAlpha, x, y, width, height, {
104
111
  supportsOptionsCreateImageBitmap,
105
112
  supportsFullCreateImageBitmap,
@@ -137,7 +144,7 @@ export class ImageWorkerManager {
137
144
  if (this.workers.length > 0) {
138
145
  return;
139
146
  }
140
- this.workerBlob = this.createWorkerBlob(this.createImageBitmapSupport);
147
+ this.workerBlob = this.createWorkerBlob();
141
148
  for (let i = 0; i < this.maxWorkers; i++) {
142
149
  this.spawnWorker();
143
150
  }
@@ -175,19 +182,18 @@ export class ImageWorkerManager {
175
182
  }
176
183
  this.workerLoad[workerIndex] = 0;
177
184
  }
178
- createWorkerBlob(createImageBitmapSupport) {
185
+ createWorkerBlob() {
186
+ // Capability flags (options/full/premultiplyHonored) are NOT injected
187
+ // into this source text. An earlier version pattern-matched
188
+ // `createImageWorker.toString()` against literal variable-name strings
189
+ // (e.g. 'var supportsOptionsCreateImageBitmap = false;') and rewrote
190
+ // them - this silently breaks under any minifier that renames locals
191
+ // (guaranteed in a real production bundle), permanently freezing every
192
+ // device on the hardcoded defaults regardless of actual support. The
193
+ // flags are sent per-request as postMessage data instead (see
194
+ // `getImage` below and `self.onmessage` above) - plain data survives
195
+ // minification untouched.
179
196
  let workerCode = `(${createImageWorker.toString()})()`;
180
- // Replace placeholders with actual initialization values
181
- if (createImageBitmapSupport.options === true) {
182
- workerCode = workerCode.replace('var supportsOptionsCreateImageBitmap = false;', 'var supportsOptionsCreateImageBitmap = true;');
183
- }
184
- if (createImageBitmapSupport.full === true) {
185
- workerCode = workerCode.replace('var supportsOptionsCreateImageBitmap = false;', 'var supportsOptionsCreateImageBitmap = true;');
186
- workerCode = workerCode.replace('var supportsFullCreateImageBitmap = false;', 'var supportsFullCreateImageBitmap = true;');
187
- }
188
- if (createImageBitmapSupport.premultiplyHonored === false) {
189
- workerCode = workerCode.replace('var premultiplyAlphaHonored = true;', 'var premultiplyAlphaHonored = false;');
190
- }
191
197
  workerCode = workerCode.replace('"use strict";', '');
192
198
  return new Blob([workerCode], {
193
199
  type: 'application/javascript',
@@ -262,6 +268,9 @@ export class ImageWorkerManager {
262
268
  sy,
263
269
  sw,
264
270
  sh,
271
+ supportsOptionsCreateImageBitmap: this.createImageBitmapSupport.options,
272
+ supportsFullCreateImageBitmap: this.createImageBitmapSupport.full,
273
+ premultiplyAlphaHonored: this.createImageBitmapSupport.premultiplyHonored,
265
274
  });
266
275
  }
267
276
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"ImageWorker.js","sourceRoot":"","sources":["../../../../src/core/lib/ImageWorker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ImageWorker.js","sourceRoot":"","sources":["../../../../src/core/lib/ImageWorker.ts"],"names":[],"mappings":"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"}
@@ -10,16 +10,22 @@ export declare function validateCreateImageBitmap(platform: Platform): Promise<C
10
10
  * Determine whether `createImageBitmap(..., { premultiplyAlpha: 'premultiply' })`
11
11
  * is actually honored by this browser.
12
12
  *
13
- * Strategy: feed a known straight-alpha pixel (255, 0, 0, 128) through
14
- * createImageBitmap with 'premultiply', upload it to a WebGL texture with
15
- * GL-side premultiply DISABLED (so we observe the bitmap's own state), then
16
- * read the raw texel back via a framebuffer.
13
+ * Strategy: decode a known straight-alpha pixel (255, 0, 0, 128) delivered as
14
+ * a real PNG blob through createImageBitmap with 'premultiply', upload it to a
15
+ * WebGL texture with GL-side premultiply DISABLED (so we observe the bitmap's
16
+ * own state), then read the raw texel back via a framebuffer.
17
17
  *
18
18
  * - honored -> red comes back premultiplied (~128)
19
- * - ignored -> red comes back straight (~255) [older Safari/WebKit]
19
+ * - ignored -> red comes back straight (~255) [older Safari/WebKit,
20
+ * Movistar-class embedded STBs]
21
+ *
22
+ * A real PNG blob (not ImageData) is used deliberately: it matches the code
23
+ * path real textures take, and some embedded devices don't even support
24
+ * ImageData->createImageBitmap (the old ImageData probe returned null there,
25
+ * silently disabling detection on exactly the devices that needed it).
20
26
  *
21
27
  * @returns true if honored, false if ignored, null if it couldn't be measured
22
- * (no WebGL, createImageBitmap from ImageData unsupported, framebuffer
23
- * incomplete, etc.) — caller should treat null as "unknown".
28
+ * (no WebGL, createImageBitmap unsupported, framebuffer incomplete, etc.) —
29
+ * caller should treat null as "unknown".
24
30
  */
25
31
  export declare function detectPremultiplyAlphaHonored(platform: Platform): Promise<boolean | null>;
@@ -69,28 +69,49 @@ export async function validateCreateImageBitmap(platform) {
69
69
  // default (null) here.
70
70
  return support;
71
71
  }
72
+ // 1x1 PNG, color type 6 (RGBA), single pixel = (255, 0, 0, 128) in straight
73
+ // (un-premultiplied) alpha. Decoding this real PNG blob exercises the same
74
+ // image-decode pipeline that actual textures use — which on embedded WebKit
75
+ // forks can honor `premultiplyAlpha` differently from the raw
76
+ // ImageData->createImageBitmap path (some decoders ignore the option on the
77
+ // PNG path while honoring it for ImageData). Detecting via the path real
78
+ // images take is what makes this correct on devices like the Movistar STB.
79
+ // prettier-ignore
80
+ const STRAIGHT_ALPHA_TEST_PNG = new Uint8Array([
81
+ 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d,
82
+ 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01,
83
+ 0x08, 0x06, 0x00, 0x00, 0x00, 0x1f, 0x15, 0xc4, 0x89, 0x00, 0x00, 0x00,
84
+ 0x0d, 0x49, 0x44, 0x41, 0x54, 0x78, 0x9c, 0x63, 0xf8, 0xcf, 0xc0, 0xd0,
85
+ 0x00, 0x00, 0x04, 0x81, 0x01, 0x80, 0x2c, 0x55, 0xce, 0xb0, 0x00, 0x00,
86
+ 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82,
87
+ ]);
72
88
  /**
73
89
  * Determine whether `createImageBitmap(..., { premultiplyAlpha: 'premultiply' })`
74
90
  * is actually honored by this browser.
75
91
  *
76
- * Strategy: feed a known straight-alpha pixel (255, 0, 0, 128) through
77
- * createImageBitmap with 'premultiply', upload it to a WebGL texture with
78
- * GL-side premultiply DISABLED (so we observe the bitmap's own state), then
79
- * read the raw texel back via a framebuffer.
92
+ * Strategy: decode a known straight-alpha pixel (255, 0, 0, 128) delivered as
93
+ * a real PNG blob through createImageBitmap with 'premultiply', upload it to a
94
+ * WebGL texture with GL-side premultiply DISABLED (so we observe the bitmap's
95
+ * own state), then read the raw texel back via a framebuffer.
80
96
  *
81
97
  * - honored -> red comes back premultiplied (~128)
82
- * - ignored -> red comes back straight (~255) [older Safari/WebKit]
98
+ * - ignored -> red comes back straight (~255) [older Safari/WebKit,
99
+ * Movistar-class embedded STBs]
100
+ *
101
+ * A real PNG blob (not ImageData) is used deliberately: it matches the code
102
+ * path real textures take, and some embedded devices don't even support
103
+ * ImageData->createImageBitmap (the old ImageData probe returned null there,
104
+ * silently disabling detection on exactly the devices that needed it).
83
105
  *
84
106
  * @returns true if honored, false if ignored, null if it couldn't be measured
85
- * (no WebGL, createImageBitmap from ImageData unsupported, framebuffer
86
- * incomplete, etc.) — caller should treat null as "unknown".
107
+ * (no WebGL, createImageBitmap unsupported, framebuffer incomplete, etc.) —
108
+ * caller should treat null as "unknown".
87
109
  */
88
110
  export async function detectPremultiplyAlphaHonored(platform) {
89
111
  let bitmap;
90
112
  try {
91
- // Straight (un-premultiplied) RGBA. ImageData is straight-alpha by spec.
92
- const imageData = new ImageData(new Uint8ClampedArray([255, 0, 0, 128]), 1, 1);
93
- bitmap = await platform.createImageBitmap(imageData, {
113
+ const blob = new Blob([STRAIGHT_ALPHA_TEST_PNG], { type: 'image/png' });
114
+ bitmap = await platform.createImageBitmap(blob, {
94
115
  premultiplyAlpha: 'premultiply',
95
116
  colorSpaceConversion: 'none',
96
117
  imageOrientation: 'none',
@@ -1 +1 @@
1
- {"version":3,"file":"validateImageBitmap.js","sourceRoot":"","sources":["../../../../src/core/lib/validateImageBitmap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validateImageBitmap.js","sourceRoot":"","sources":["../../../../src/core/lib/validateImageBitmap.ts"],"names":[],"mappings":"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"}
@@ -30,34 +30,49 @@ const processFontData = (fontFamily, fontFace, metrics) => {
30
30
  */
31
31
  export const loadFont = (stage, options) => {
32
32
  const { fontFamily, fontUrl, metrics } = options;
33
+ // A single load may register the font under several names. The first entry
34
+ // is the primary name used to key the in-flight promise; the rest are
35
+ // aliases registered against the same source URL (the browser dedupes the
36
+ // download by URL).
37
+ const names = Array.isArray(fontFamily) ? fontFamily : [fontFamily];
38
+ const primary = names[0];
33
39
  // If already loaded, return immediately
34
- if (fontCache.has(fontFamily) === true) {
40
+ if (fontCache.has(primary) === true) {
35
41
  return Promise.resolve();
36
42
  }
37
- const existingPromise = fontLoadPromises.get(fontFamily);
43
+ const existingPromise = fontLoadPromises.get(primary);
38
44
  // If already loading, return the existing promise
39
45
  if (existingPromise !== undefined) {
40
46
  return existingPromise;
41
47
  }
42
- const nwff = (nodesWaitingForFont[fontFamily] = []);
43
- // Create and store the loading promise
44
- const loadPromise = new FontFace(fontFamily, `url(${fontUrl})`)
45
- .load()
46
- .then((loadedFont) => {
48
+ for (let i = 0; i < names.length; i++) {
49
+ nodesWaitingForFont[names[i]] = [];
50
+ }
51
+ // Register a FontFace under every name (all share the same source URL) and
52
+ // wait for all of them to be ready before waking parked nodes.
53
+ const loadPromise = Promise.all(names.map((name) => new FontFace(name, `url(${fontUrl})`).load().then((loadedFont) => {
47
54
  stage.platform.addFont(loadedFont);
48
- processFontData(fontFamily, loadedFont, metrics);
49
- fontLoadPromises.delete(fontFamily);
50
- for (let key in nwff) {
51
- nwff[key].setUpdateType(UpdateType.Local);
55
+ processFontData(name, loadedFont, metrics);
56
+ })))
57
+ .then(() => {
58
+ fontLoadPromises.delete(primary);
59
+ for (let i = 0; i < names.length; i++) {
60
+ const name = names[i];
61
+ const nwff = nodesWaitingForFont[name];
62
+ if (nwff !== undefined) {
63
+ for (let key in nwff) {
64
+ nwff[key].setUpdateType(UpdateType.Local);
65
+ }
66
+ delete nodesWaitingForFont[name];
67
+ }
52
68
  }
53
- delete nodesWaitingForFont[fontFamily];
54
69
  })
55
70
  .catch((error) => {
56
- fontLoadPromises.delete(fontFamily);
57
- console.error(`Failed to load font: ${fontFamily}`, error);
71
+ fontLoadPromises.delete(primary);
72
+ console.error(`Failed to load font: ${primary}`, error);
58
73
  throw error;
59
74
  });
60
- fontLoadPromises.set(fontFamily, loadPromise);
75
+ fontLoadPromises.set(primary, loadPromise);
61
76
  return loadPromise;
62
77
  };
63
78
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"CanvasFontHandler.js","sourceRoot":"","sources":["../../../../src/core/text-rendering/CanvasFontHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CanvasFontHandler.js","sourceRoot":"","sources":["../../../../src/core/text-rendering/CanvasFontHandler.ts"],"names":[],"mappings":"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"}
@@ -163,25 +163,33 @@ export const canRenderFont = (trProps) => {
163
163
  */
164
164
  export const loadFont = (stage, options) => {
165
165
  const { fontFamily, atlasUrl, atlasDataUrl, metrics } = options;
166
+ // A single load may register the font under several names (the atlas is
167
+ // fetched once and shared). The first entry is the primary name used to key
168
+ // the in-flight promise and drive the fetch; the rest are aliases.
169
+ const names = Array.isArray(fontFamily) ? fontFamily : [fontFamily];
170
+ const primary = names[0];
166
171
  // Early return if already loaded
167
- if (fontCache.get(fontFamily) !== undefined) {
172
+ if (fontCache.get(primary) !== undefined) {
168
173
  return Promise.resolve();
169
174
  }
170
175
  // Early return if already loading
171
- const existingPromise = fontLoadPromises.get(fontFamily);
176
+ const existingPromise = fontLoadPromises.get(primary);
172
177
  if (existingPromise !== undefined) {
173
178
  return existingPromise;
174
179
  }
175
180
  if (atlasDataUrl === undefined) {
176
- return Promise.reject(new Error(`Atlas data URL must be provided for SDF font: ${fontFamily}`));
181
+ return Promise.reject(new Error(`Atlas data URL must be provided for SDF font: ${primary}`));
177
182
  }
178
- // Reuse an existing waiter list. A previous load attempt for this font may
179
- // have failed and left nodes parked here; overwriting the list would strand
180
- // them, so a successful retry could never wake them. The list is consumed
181
- // (and deleted) on the next successful load.
182
- let nwff = nodesWaitingForFont[fontFamily];
183
- if (nwff === undefined) {
184
- nwff = nodesWaitingForFont[fontFamily] = [];
183
+ // Ensure every name has a waiter list so nodes requesting an alias can park
184
+ // and be woken on load. Reuse existing lists a previous load attempt for a
185
+ // name may have failed and left nodes parked there; overwriting the list
186
+ // would strand them, so a successful retry could never wake them. Lists are
187
+ // consumed (and deleted) on the next successful load.
188
+ for (let i = 0; i < names.length; i++) {
189
+ const name = names[i];
190
+ if (nodesWaitingForFont[name] === undefined) {
191
+ nodesWaitingForFont[name] = [];
192
+ }
185
193
  }
186
194
  // One attempt at fetching + decoding the JSON atlas description. A fresh
187
195
  // XHR runs per attempt so a transient network/parse failure can recover.
@@ -230,15 +238,32 @@ export const loadFont = (stage, options) => {
230
238
  src: atlasUrl,
231
239
  premultiplyAlpha: false,
232
240
  });
233
- atlasTexture.setRenderableOwner(fontFamily, true);
241
+ // Register every name as a renderable owner so the shared atlas stays
242
+ // alive as long as any of its names is in use.
243
+ for (let i = 0; i < names.length; i++) {
244
+ atlasTexture.setRenderableOwner(names[i], true);
245
+ }
234
246
  atlasTexture.preventCleanup = true; // Prevent automatic cleanup
235
247
  const onLoaded = () => {
236
- // Process and cache font data
237
- processFontData(fontFamily, fontData, atlasTexture, metrics);
238
- for (let key in nwff) {
239
- nwff[key].setUpdateType(UpdateType.Local);
248
+ // Process and cache font data under the primary name...
249
+ processFontData(primary, fontData, atlasTexture, metrics);
250
+ // ...then alias the remaining names onto the same cache entry so they
251
+ // resolve to the identical glyph/kerning/atlas data.
252
+ const cached = fontCache.get(primary);
253
+ for (let i = 1; i < names.length; i++) {
254
+ fontCache.set(names[i], cached);
255
+ }
256
+ // Wake every parked node across all names and clear their lists.
257
+ for (let i = 0; i < names.length; i++) {
258
+ const name = names[i];
259
+ const list = nodesWaitingForFont[name];
260
+ if (list !== undefined) {
261
+ for (let key in list) {
262
+ list[key].setUpdateType(UpdateType.Local);
263
+ }
264
+ delete nodesWaitingForFont[name];
265
+ }
240
266
  }
241
- delete nodesWaitingForFont[fontFamily];
242
267
  resolve();
243
268
  };
244
269
  if (atlasTexture.state === 'loaded') {
@@ -254,7 +279,9 @@ export const loadFont = (stage, options) => {
254
279
  atlasTexture.on('failed', (_target, error) => {
255
280
  // Drop the failed atlas so a retry builds a fresh texture rather than
256
281
  // getting this dead instance back from the createTexture key-cache.
257
- atlasTexture.setRenderableOwner(fontFamily, false);
282
+ for (let i = 0; i < names.length; i++) {
283
+ atlasTexture.setRenderableOwner(names[i], false);
284
+ }
258
285
  stage.txManager.removeTextureFromCache(atlasTexture);
259
286
  reject(error);
260
287
  });
@@ -268,13 +295,13 @@ export const loadFont = (stage, options) => {
268
295
  await loadAtlas(await fetchFontData());
269
296
  // Success: clear the in-flight marker (the font now lives in fontCache)
270
297
  // — parked nodes were already woken inside loadAtlas.
271
- fontLoadPromises.delete(fontFamily);
298
+ fontLoadPromises.delete(primary);
272
299
  return;
273
300
  }
274
301
  catch (error) {
275
302
  lastError = error;
276
303
  if (attempt < MAX_FONT_LOAD_RETRIES) {
277
- console.warn(`SDF font "${fontFamily}" failed to load (attempt ${attempt + 1} of ${MAX_FONT_LOAD_RETRIES + 1}), retrying.`, error);
304
+ console.warn(`SDF font "${primary}" failed to load (attempt ${attempt + 1} of ${MAX_FONT_LOAD_RETRIES + 1}), retrying.`, error);
278
305
  }
279
306
  }
280
307
  }
@@ -284,12 +311,14 @@ export const loadFont = (stage, options) => {
284
311
  // loadFont() (which reuses the list) can still wake them if the font
285
312
  // eventually loads. The list shrinks as nodes self-remove via
286
313
  // stopWaitingForFont on destroy.
287
- fontLoadPromises.delete(fontFamily);
288
- fontCache.delete(fontFamily);
289
- console.error(`Failed to load SDF font: ${fontFamily}`, lastError);
314
+ fontLoadPromises.delete(primary);
315
+ for (let i = 0; i < names.length; i++) {
316
+ fontCache.delete(names[i]);
317
+ }
318
+ console.error(`Failed to load SDF font: ${primary}`, lastError);
290
319
  throw lastError;
291
320
  })();
292
- fontLoadPromises.set(fontFamily, loadPromise);
321
+ fontLoadPromises.set(primary, loadPromise);
293
322
  return loadPromise;
294
323
  };
295
324
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"SdfFontHandler.js","sourceRoot":"","sources":["../../../../src/core/text-rendering/SdfFontHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SdfFontHandler.js","sourceRoot":"","sources":["../../../../src/core/text-rendering/SdfFontHandler.ts"],"names":[],"mappings":"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"}
@@ -331,7 +331,16 @@ export interface TextLayout {
331
331
  distanceRange: number;
332
332
  }
333
333
  export interface FontLoadOptions {
334
- fontFamily: string;
334
+ /**
335
+ * Font family name to register the font under.
336
+ *
337
+ * Pass an array to register the same font under several names in a single
338
+ * load — the atlas/font resource is fetched once and every name resolves to
339
+ * the same loaded font. The first entry is the primary name; the rest are
340
+ * aliases. Useful when one physical font is referenced by multiple families
341
+ * (e.g. `['Roboto', 'Roboto500']`).
342
+ */
343
+ fontFamily: string | string[];
335
344
  metrics?: FontMetrics;
336
345
  fontUrl?: string;
337
346
  atlasUrl?: string;
@@ -91,10 +91,12 @@ export class ImageTexture extends Texture {
91
91
  imageBitmapSupported.full === false) {
92
92
  // basic createImageBitmap without options or crop
93
93
  // this is supported for Chrome v50 to v52/54 that doesn't support options.
94
- // The browser default premultiplies, so WebGL must not premultiply again.
94
+ // The browser default premultiplies, so WebGL must not premultiply again
95
+ // except on devices whose default returns straight alpha
96
+ // (premultiplyAlphaHonored: false); there WebGL premultiplies on upload.
95
97
  return {
96
98
  data: await this.platform.createImageBitmap(blob),
97
- premultiplyAlpha: false,
99
+ premultiplyAlpha: useGlPremultiply,
98
100
  };
99
101
  }
100
102
  // default createImageBitmap without crop but with options
@@ -1 +1 @@
1
- {"version":3,"file":"ImageTexture.js","sourceRoot":"","sources":["../../../../src/core/textures/ImageTexture.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ImageTexture.js","sourceRoot":"","sources":["../../../../src/core/textures/ImageTexture.ts"],"names":[],"mappings":"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"}