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

66 lines
3.4 KiB
JavaScript

shadow$provide.module$node_modules$pixi_DOT_js$lib$rendering$renderers$shared$texture$sources$CubeTextureSource = function(global, require, module, exports) {
var warn = require("module$node_modules$pixi_DOT_js$lib$utils$logging$warn");
global = require("module$node_modules$pixi_DOT_js$lib$rendering$renderers$shared$texture$sources$TextureSource");
"use strict";
class CubeTextureSource extends global.TextureSource {
constructor(options) {
const {faces, ...rest} = options;
CubeTextureSource._validateFaces(faces);
options = faces.right;
const derivedResolution = options.resolution, derivedFormat = options.format, derivedAlphaMode = options.alphaMode, ignoredKeys = ["resolution", "format", "alphaMode", "dimensions", "viewDimension"].filter(key => void 0 !== rest[key]);
ignoredKeys.length && warn.warn(`[CubeTextureSource] Ignoring option(s) [${ignoredKeys.join(", ")}]; these are derived from face sources.`);
super({...rest, resource:faces, width:options.width, height:options.height, dimensions:"2d", viewDimension:"cube", arrayLayerCount:6, resolution:derivedResolution, format:derivedFormat, alphaMode:derivedAlphaMode});
this.uploadMethodId = "cube";
this.faces = faces;
for (const key of Object.keys(faces)) {
options = faces[key], options.on("update", this._onFaceUpdate, this), options.on("resize", this._onFaceResize, this), options.on("unload", this._onFaceUpdate, this);
}
}
destroy() {
const faces = this.faces;
if (faces) {
for (const key of Object.keys(faces)) {
const face = faces[key];
face.off("update", this._onFaceUpdate, this);
face.off("resize", this._onFaceResize, this);
face.off("unload", this._onFaceUpdate, this);
}
}
super.destroy();
}
_onFaceUpdate() {
this.emit("update", this);
}
_onFaceResize(face) {
CubeTextureSource._validateFaces(this.faces);
this.resize(face.width, face.height, face.resolution);
}
static _validateFaces(faces) {
if (!(faces.right && faces.left && faces.top && faces.bottom && faces.front && faces.back)) {
throw Error("[CubeTextureSource] Requires { left, right, top, bottom, front, back } faces.");
}
var first = faces.right;
const expectedPixelWidth = first.pixelWidth, expectedPixelHeight = first.pixelHeight, expectedFormat = first.format, expectedAlphaMode = first.alphaMode;
first = first.resolution;
for (const key of Object.keys(faces)) {
const face = faces[key];
if (face.pixelWidth !== expectedPixelWidth || face.pixelHeight !== expectedPixelHeight) {
throw Error(`[CubeTextureSource] Face '${String(key)}' has a different size. All faces must match.`);
}
if (face.format !== expectedFormat) {
throw Error(`[CubeTextureSource] Face '${String(key)}' has a different format. All faces must match.`);
}
if (face.alphaMode !== expectedAlphaMode) {
throw Error(`[CubeTextureSource] Face '${String(key)}' has a different alphaMode. All faces must match.`);
}
if (face.resolution !== first) {
throw Error(`[CubeTextureSource] Face '${String(key)}' has a different resolution. All faces must match.`);
}
}
}
}
exports.CubeTextureSource = CubeTextureSource;
};
//# sourceMappingURL=module$node_modules$pixi_DOT_js$lib$rendering$renderers$shared$texture$sources$CubeTextureSource.js.map