UNPKG

@polygonjs/polygonjs

Version:

node-based WebGL 3D engine https://polygonjs.com

39 lines (38 loc) 1.37 kB
"use strict"; import { ASSETS_ROOT } from "../AssetsUtils"; import { CubeTextureLoader } from "three"; import { CoreBaseLoader } from "../_Base"; import { CoreLoaderTexture } from "../Texture"; import { Poly } from "../../../engine/Poly"; export class CoreCubeTextureLoader extends CoreBaseLoader { async loadImage(options) { const urls = this._urlToLoad(); return new Promise(async (resolve, reject) => { const loader = await this._getLoader(options); urls.forEach((url) => CoreLoaderTexture.incrementInProgressLoadsCount()); await CoreLoaderTexture.waitForMaxConcurrentLoadsQueueFreed(); loader.load( urls, (texture) => { urls.forEach((url, i) => { const isLast = i == urls.length - 1; CoreLoaderTexture.decrementInProgressLoadsCount(url, isLast ? texture : void 0); }); resolve(texture); }, void 0, (error) => { urls.forEach((url) => CoreLoaderTexture.decrementInProgressLoadsCount(url)); Poly.warn("error", error); reject(); } ); }); } async _getLoader(options) { const loader = new CubeTextureLoader(this.loadingManager); return loader; } } CoreCubeTextureLoader.PARAM_DEFAULT_PREFIX = `${ASSETS_ROOT}/textures/cube`; CoreCubeTextureLoader.PARAM_DEFAULT_SUFFIX = `.jpg`;