Files
nothoughts/node_modules/pixi.js/lib/unsafe-eval/uniforms/generateUniformsSyncPolyfill.js
2025-08-04 18:57:35 +02:00

40 lines
1.3 KiB
JavaScript

'use strict';
var uniformParsers = require('../../rendering/renderers/shared/shader/utils/uniformParsers.js');
var uniformSyncFunctions = require('./uniformSyncFunctions.js');
"use strict";
function generateUniformsSyncPolyfill(group, uniformData) {
const functionMap = {};
for (const i in group.uniformStructures) {
if (!uniformData[i])
continue;
const uniform = group.uniformStructures[i];
let parsed = false;
for (let j = 0; j < uniformParsers.uniformParsers.length; j++) {
const parser = uniformParsers.uniformParsers[j];
if (uniform.type === parser.type && parser.test(uniform)) {
functionMap[i] = uniformSyncFunctions.uniformParserFunctions[j];
parsed = true;
break;
}
}
if (!parsed) {
const templateType = uniform.size === 1 ? uniformSyncFunctions.uniformSingleParserFunctions : uniformSyncFunctions.uniformArrayParserFunctions;
functionMap[i] = templateType[uniform.type];
}
}
return (ud, uv, renderer) => {
const gl = renderer.gl;
for (const i in functionMap) {
const v = uv[i];
const cu = ud[i];
const cv = ud[i].value;
functionMap[i](i, cu, cv, v, ud, uv, gl);
}
};
}
exports.generateUniformsSyncPolyfill = generateUniformsSyncPolyfill;
//# sourceMappingURL=generateUniformsSyncPolyfill.js.map