@lightningjs/renderer 2.9.0-beta4 → 2.9.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/CoreNode.d.ts +5 -1
- package/dist/src/core/CoreNode.js +15 -5
- package/dist/src/core/CoreNode.js.map +1 -1
- package/dist/src/core/CoreTextureManager.d.ts +24 -0
- package/dist/src/core/CoreTextureManager.js.map +1 -1
- package/dist/src/core/text-rendering/font-face-types/WebTrFontFace.js +7 -3
- package/dist/src/core/text-rendering/font-face-types/WebTrFontFace.js.map +1 -1
- package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js +7 -0
- package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js.map +1 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js +5 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js.map +1 -1
- package/dist/src/core/textures/ImageTexture.js +1 -1
- package/dist/src/core/textures/SubTexture.d.ts +1 -0
- package/dist/src/core/textures/SubTexture.js +7 -0
- package/dist/src/core/textures/SubTexture.js.map +1 -1
- package/dist/src/core/textures/Texture.d.ts +9 -0
- package/dist/src/core/textures/Texture.js +23 -13
- package/dist/src/core/textures/Texture.js.map +1 -1
- package/dist/tsconfig.dist.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/core/CoreNode.ts +27 -5
- package/src/core/CoreTextureManager.ts +26 -0
- package/src/core/text-rendering/font-face-types/WebTrFontFace.ts +8 -3
- package/src/core/text-rendering/renderers/LightningTextTextureRenderer.ts +10 -0
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.ts +6 -1
- package/src/core/textures/ImageTexture.ts +1 -1
- package/src/core/textures/SubTexture.ts +8 -0
- package/src/core/textures/Texture.ts +27 -15
|
@@ -212,11 +212,7 @@ export abstract class Texture extends EventEmitter {
|
|
|
212
212
|
(this.renderable as boolean) = true;
|
|
213
213
|
(this.lastRenderableChangeTime as number) = this.txManager.frameTime;
|
|
214
214
|
this.onChangeIsRenderable?.(true);
|
|
215
|
-
|
|
216
|
-
// Check if the texture needs to be added to the loading queue
|
|
217
|
-
if (this.state === 'freed' || this.state === 'initial') {
|
|
218
|
-
this.txManager.loadTexture(this);
|
|
219
|
-
}
|
|
215
|
+
this.load();
|
|
220
216
|
}
|
|
221
217
|
} else {
|
|
222
218
|
this.renderableOwners.delete(owner);
|
|
@@ -229,6 +225,20 @@ export abstract class Texture extends EventEmitter {
|
|
|
229
225
|
}
|
|
230
226
|
}
|
|
231
227
|
|
|
228
|
+
load(): void {
|
|
229
|
+
if (this.sourceState === 'loaded' && this.coreCtxState === 'freed') {
|
|
230
|
+
// we need to load the texture data to the gpu
|
|
231
|
+
this.txManager.enqueueUploadTexture(this);
|
|
232
|
+
return;
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
if (this.state === 'loading' || this.state === 'loaded') {
|
|
236
|
+
return;
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
this.txManager.loadTexture(this);
|
|
240
|
+
}
|
|
241
|
+
|
|
232
242
|
/**
|
|
233
243
|
* Event called when the Texture becomes renderable or unrenderable.
|
|
234
244
|
*
|
|
@@ -262,10 +272,18 @@ export abstract class Texture extends EventEmitter {
|
|
|
262
272
|
*/
|
|
263
273
|
free(): void {
|
|
264
274
|
this.ctxTexture?.free();
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
/**
|
|
278
|
+
* Free the source texture data for this Texture.
|
|
279
|
+
*
|
|
280
|
+
* @remarks
|
|
281
|
+
* The texture data is the source data that is used to populate the CoreContextTexture.
|
|
282
|
+
* e.g. ImageData that is downloaded from a URL.
|
|
283
|
+
*/
|
|
284
|
+
freeTextureData(): void {
|
|
285
|
+
this.textureData = null;
|
|
286
|
+
this.setSourceState('freed');
|
|
269
287
|
}
|
|
270
288
|
|
|
271
289
|
private setState(
|
|
@@ -338,12 +356,6 @@ export abstract class Texture extends EventEmitter {
|
|
|
338
356
|
} else if (sourceState === 'loaded' && ctxState === 'loaded') {
|
|
339
357
|
newState = 'loaded';
|
|
340
358
|
payload = this.dimensions; // Dimensions set by the source
|
|
341
|
-
} else if (
|
|
342
|
-
(sourceState === 'loaded' && ctxState === 'freed') ||
|
|
343
|
-
(ctxState === 'loaded' && sourceState === 'freed')
|
|
344
|
-
) {
|
|
345
|
-
// If one is loaded and the other is freed, then we are in a loading state
|
|
346
|
-
newState = 'loading';
|
|
347
359
|
} else {
|
|
348
360
|
newState = 'freed';
|
|
349
361
|
}
|