28 lines
1.2 KiB
JavaScript
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
|