Files
il/resources/public/js/cljs-runtime/module$node_modules$pixi_DOT_js$lib$rendering$renderers$gpu$shader$GpuShaderSystem.js
2026-07-01 22:38:29 -06:00

28 lines
1.2 KiB
JavaScript

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