async function* getTextureStream() {
const textures = [];
const baseTextures = [];
invalidation.then(() => {
console.log("invalidate textures");
for (const [id, texture] of textures) {
texture.destroy();
}
for (const texture of baseTextures) {
texture.destroy();
}
});
for (const sprites of data.spritesheets) {
const baseTexture = await loadTexture(baseUrl + sprites.image);
baseTextures.push(baseTexture);
for (const spritedata of sprites.sprites) {
const texture = extractSpriteTexture(baseTexture, spritedata);
const tuple = [spritedata.name, texture]
textures.push(tuple)
yield tuple
}
if (delay) await Promises.delay(delay);
}
}