shadow$provide.module$node_modules$pixi_DOT_js$lib$rendering$renderers$gpu$shader$GpuShaderSystem = function(global, require, module, exports) {
  global = require("module$node_modules$pixi_DOT_js$lib$extensions$Extensions");
  "use strict";
  class GpuShaderSystem {
    constructor() {
      this._gpuProgramData = Object.create(null);
    }
    contextChange(gpu) {
      this._gpu = gpu;
    }
    getProgramData(program) {
      return this._gpuProgramData[program._layoutKey] || this._createGPUProgramData(program);
    }
    _createGPUProgramData(program) {
      const device = this._gpu.device, bindGroups = program.gpuLayout.map(group => device.createBindGroupLayout({entries:group}));
      this._gpuProgramData[program._layoutKey] = {bindGroups, pipeline:device.createPipelineLayout({bindGroupLayouts:bindGroups})};
      return this._gpuProgramData[program._layoutKey];
    }
    destroy() {
      this._gpuProgramData = this._gpu = null;
    }
  }
  GpuShaderSystem.extension = {type:[global.ExtensionType.WebGPUSystem], name:"shader"};
  exports.GpuShaderSystem = GpuShaderSystem;
};

//# sourceMappingURL=module$node_modules$pixi_DOT_js$lib$rendering$renderers$gpu$shader$GpuShaderSystem.js.map
