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