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

28 lines
2.9 KiB
JavaScript

shadow$provide.module$node_modules$pixi_DOT_js$lib$rendering$renderers$gl$shader$program$generateProgram = function(global, require, module, exports) {
var warn = require("module$node_modules$pixi_DOT_js$lib$utils$logging$warn"), GlProgramData = require("module$node_modules$pixi_DOT_js$lib$rendering$renderers$gl$shader$GlProgramData"), compileShader = require("module$node_modules$pixi_DOT_js$lib$rendering$renderers$gl$shader$program$compileShader"), defaultValue = require("module$node_modules$pixi_DOT_js$lib$rendering$renderers$gl$shader$program$defaultValue"), extractAttributesFromGlProgram = require("module$node_modules$pixi_DOT_js$lib$rendering$renderers$gl$shader$program$extractAttributesFromGlProgram"),
getUboData = require("module$node_modules$pixi_DOT_js$lib$rendering$renderers$gl$shader$program$getUboData"), getUniformData = require("module$node_modules$pixi_DOT_js$lib$rendering$renderers$gl$shader$program$getUniformData"), logProgramError = require("module$node_modules$pixi_DOT_js$lib$rendering$renderers$gl$shader$program$logProgramError");
"use strict";
exports.generateProgram = function(gl, program) {
var glVertShader = compileShader.compileShader(gl, gl.VERTEX_SHADER, program.vertex), glFragShader = compileShader.compileShader(gl, gl.FRAGMENT_SHADER, program.fragment);
const webGLProgram = gl.createProgram();
gl.attachShader(webGLProgram, glVertShader);
gl.attachShader(webGLProgram, glFragShader);
const transformFeedbackVaryings = program.transformFeedbackVaryings;
transformFeedbackVaryings && ("function" !== typeof gl.transformFeedbackVaryings ? warn.warn("TransformFeedback is not supported but TransformFeedbackVaryings are given.") : gl.transformFeedbackVaryings(webGLProgram, transformFeedbackVaryings.names, "separate" === transformFeedbackVaryings.bufferMode ? gl.SEPARATE_ATTRIBS : gl.INTERLEAVED_ATTRIBS));
gl.linkProgram(webGLProgram);
gl.getProgramParameter(webGLProgram, gl.LINK_STATUS) || logProgramError.logProgramError(gl, webGLProgram, glVertShader, glFragShader);
program._attributeData = extractAttributesFromGlProgram.extractAttributesFromGlProgram(webGLProgram, gl, !/^[ \t]*#[ \t]*version[ \t]+300[ \t]+es[ \t]*$/m.test(program.vertex));
program._uniformData = getUniformData.getUniformData(webGLProgram, gl);
program._uniformBlockData = getUboData.getUboData(webGLProgram, gl);
gl.deleteShader(glVertShader);
gl.deleteShader(glFragShader);
glVertShader = {};
for (const i in program._uniformData) {
glFragShader = program._uniformData[i], glVertShader[i] = {location:gl.getUniformLocation(webGLProgram, i), value:defaultValue.defaultValue(glFragShader.type, glFragShader.size)};
}
return new GlProgramData.GlProgramData(webGLProgram, glVertShader);
};
};
//# sourceMappingURL=module$node_modules$pixi_DOT_js$lib$rendering$renderers$gl$shader$program$generateProgram.js.map