shadow$provide.module$node_modules$pixi_DOT_js$lib$rendering$renderers$gpu$shader$BindGroup = function(global, require, module, exports) { class BindGroup { constructor(resources) { this.resources = Object.create(null); this._dirty = !0; let index = 0; for (const i in resources) { this.setResource(resources[i], index++); } this._updateKey(); } _updateKey() { if (this._dirty) { this._dirty = !1; var keyParts = [], index = 0; for (const i in this.resources) { keyParts[index++] = this.resources[i]._resourceId; } this._key = keyParts.join("|"); } } setResource(resource, index) { const currentResource = this.resources[index]; resource !== currentResource && (currentResource?.off?.("change", this.onResourceChange, this), resource.on?.("change", this.onResourceChange, this), this.resources[index] = resource, this._dirty = !0); } getResource(index) { return this.resources[index]; } _touch(now, tick) { const resources = this.resources; for (const i in resources) { resources[i]._gcLastUsed = now, resources[i]._touched = tick; } } destroy() { const resources = this.resources; for (const i in resources) { resources[i]?.off?.("change", this.onResourceChange, this); } this.resources = null; } onResourceChange(resource) { this._dirty = !0; resource.destroyed ? this.destroy() : this._updateKey(); } } exports.BindGroup = BindGroup; }; //# sourceMappingURL=module$node_modules$pixi_DOT_js$lib$rendering$renderers$gpu$shader$BindGroup.js.map