UNPKG

@woosh/meep-engine

Version:

Pure JavaScript game engine. Fully featured and production ready.

29 lines (23 loc) 801 B
import { promiseTextureLoaded } from "./promiseTextureLoaded.js"; import { traverseMaterialTextures } from "../../asset/loaders/material/traverseMaterialTextures.js"; /** * * @param {Material} material * @returns {<Promise<Texture[]>} */ export function promiseMaterialLoaded(material) { let textures = []; function processPrimitiveMaterial(mat) { traverseMaterialTextures(mat, Array.prototype.push, textures); } function processMaterial(mat) { if (mat.materials !== undefined) { mat.materials.forEach(processMaterial); } else { processPrimitiveMaterial(mat); } } processMaterial(material); const promises = textures.map(promiseTextureLoaded); return Promise.all(promises); }