Files
il/resources/public/js/cljs-runtime/module$node_modules$pixi_DOT_js$lib$rendering$renderers$shared$texture$CubeTexture.js
2026-07-01 22:38:29 -06:00

52 lines
2.6 KiB
JavaScript

shadow$provide.module$node_modules$pixi_DOT_js$lib$rendering$renderers$shared$texture$CubeTexture = function(global, require, module, exports) {
function getCubeCacheKey(faceIds, options) {
const opts = options ? {...options} : {};
delete opts.label;
options = Object.keys(opts).sort();
options = options.length ? `|${options.map(k => `${k}=${String(opts[k])}`).join("\x26")}` : "";
return `cube:${faceKeys.map(k => faceIds[k]).join(",")}${options}`;
}
global = require("module$node_modules$eventemitter3$index");
var Cache = require("module$node_modules$pixi_DOT_js$lib$assets$cache$Cache"), uid = require("module$node_modules$pixi_DOT_js$lib$utils$data$uid"), CubeTextureSource = require("module$node_modules$pixi_DOT_js$lib$rendering$renderers$shared$texture$sources$CubeTextureSource"), Texture = require("module$node_modules$pixi_DOT_js$lib$rendering$renderers$shared$texture$Texture");
"use strict";
const faceKeys = "left right top bottom front back".split(" ");
class CubeTexture extends global {
constructor(options) {
super();
this.uid = uid.uid("cubeTexture");
this.destroyed = !1;
const {label, source} = options;
this.label = label;
this.source = source;
this.source.label = this.label ?? this.source.label;
}
static from(options, skipCache = !1) {
if (options instanceof CubeTextureSource.CubeTextureSource) {
return new CubeTexture({source:options});
}
const {faces, ...sourceOptions} = options;
let cacheKey = null;
options = faceKeys.every(key => "string" === typeof faces[key]);
if (!skipCache && options && (cacheKey = getCubeCacheKey(faces, sourceOptions), Cache.Cache.has(cacheKey))) {
return Cache.Cache.get(cacheKey);
}
skipCache = input => input.isTexture ? input : Texture.Texture.from(input);
options = {};
for (var key of faceKeys) {
options[key] = skipCache(faces[key]).source;
}
key = new CubeTexture({source:new CubeTextureSource.CubeTextureSource({...sourceOptions, faces:options}), label:sourceOptions.label});
cacheKey && (Cache.Cache.set(cacheKey, key), key.once("destroy", () => {
Cache.Cache.has(cacheKey) && Cache.Cache.remove(cacheKey);
}));
return key;
}
destroy(destroySource = !1) {
this.destroyed || (this.destroyed = !0, destroySource && this.source.destroy(), this.emit("destroy", this), this.removeAllListeners());
}
}
exports.CubeTexture = CubeTexture;
};
//# sourceMappingURL=module$node_modules$pixi_DOT_js$lib$rendering$renderers$shared$texture$CubeTexture.js.map