Files
il/resources/public/js/cljs-runtime/module$node_modules$pixi_DOT_js$lib$utils$data$GCManagedHash.js
2026-07-01 22:38:29 -06:00

39 lines
1.3 KiB
JavaScript

shadow$provide.module$node_modules$pixi_DOT_js$lib$utils$data$GCManagedHash = function(global, require, module, exports) {
class GCManagedHash {
constructor(options) {
this.items = Object.create(null);
const {renderer, type, onUnload, priority, name} = options;
this._renderer = renderer;
renderer.gc.addResourceHash(this, "items", type, priority ?? 0);
this._onUnload = onUnload;
this.name = name;
}
add(item) {
if (this.items[item.uid]) {
return !1;
}
this.items[item.uid] = item;
item.once("unload", this.remove, this);
item._gcLastUsed = this._renderer.gc.now;
return !0;
}
remove(item, ...args) {
if (this.items[item.uid]) {
var gpuData = item._gpuData[this._renderer.uid];
gpuData && (this._onUnload?.(item, ...args), gpuData.destroy(), item._gpuData[this._renderer.uid] = null, this.items[item.uid] = null);
}
}
removeAll(...args) {
Object.values(this.items).forEach(item => item && this.remove(item, ...args));
}
destroy(...args) {
this.removeAll(...args);
this.items = Object.create(null);
this._onUnload = this._renderer = null;
}
}
exports.GCManagedHash = GCManagedHash;
};
//# sourceMappingURL=module$node_modules$pixi_DOT_js$lib$utils$data$GCManagedHash.js.map