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