@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
35 lines (34 loc) • 1.04 kB
JavaScript
;
import { Poly } from "../../../engine/Poly";
import { CoreLoaderTexture } from "../Texture";
import { BaseTextureLoader } from "./_BaseTextureLoader";
export class BaseImageLoader {
}
export class BaseCoreImageLoader extends BaseTextureLoader {
constructor(_url, _node) {
super(_url, _node);
this._node = _node;
}
async loadImage(options) {
const url = this._urlToLoad();
return new Promise(async (resolve, reject) => {
const loader = await this._getLoader(options);
CoreLoaderTexture.incrementInProgressLoadsCount();
await CoreLoaderTexture.waitForMaxConcurrentLoadsQueueFreed();
loader.load(
url,
(texture) => {
texture.matrixAutoUpdate = false;
CoreLoaderTexture.decrementInProgressLoadsCount(url, texture);
resolve(texture);
},
void 0,
(error) => {
CoreLoaderTexture.decrementInProgressLoadsCount(url);
Poly.warn("error", error);
reject();
}
);
});
}
}