mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2025-12-20 17:26:01 +08:00
[ts][webcomponents] Avoid recreating texture when image is passed through cache.
This commit is contained in:
parent
2e5a099ef4
commit
40685bb6c6
@ -142,13 +142,13 @@ export class AssetManagerBase implements Disposable {
|
||||
const loadedStatus = this.cache.assetsLoaded[path];
|
||||
const alreadyExistsOrLoading = loadedStatus !== undefined;
|
||||
if (alreadyExistsOrLoading) {
|
||||
loadedStatus
|
||||
this.cache.assetsLoaded[path] = loadedStatus
|
||||
.then(data => {
|
||||
if (data instanceof Image) {
|
||||
data = this.textureLoader(data);
|
||||
this.cache.assetsLoaded[path] = Promise.resolve(data);
|
||||
}
|
||||
return this.success(success, path, data)
|
||||
// necessary when user preloads an image into the cache.
|
||||
// texture loader is not avaiable in the cache, so we transform in GLTexture at first use
|
||||
data = (data instanceof Image || data instanceof ImageBitmap) ? this.textureLoader(data) : data;
|
||||
this.success(success, path, data);
|
||||
return data;
|
||||
})
|
||||
.catch(errorMsg => this.error(error, path, errorMsg));
|
||||
}
|
||||
@ -407,7 +407,7 @@ export class AssetCache {
|
||||
return newCache;
|
||||
}
|
||||
|
||||
async addAsset(path: string, asset: any) {
|
||||
async addAsset (path: string, asset: any) {
|
||||
this.assetsLoaded[path] = Promise.resolve(asset);
|
||||
this.assets[path] = await asset;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user