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

38 lines
1.2 KiB
JavaScript

import { uniformParsers } from '../../rendering/renderers/shared/shader/utils/uniformParsers.mjs';
import { uniformParserFunctions, uniformSingleParserFunctions, uniformArrayParserFunctions } from './uniformSyncFunctions.mjs';
"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.length; j++) {
const parser = uniformParsers[j];
if (uniform.type === parser.type && parser.test(uniform)) {
functionMap[i] = uniformParserFunctions[j];
parsed = true;
break;
}
}
if (!parsed) {
const templateType = uniform.size === 1 ? uniformSingleParserFunctions : 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);
}
};
}
export { generateUniformsSyncPolyfill };
//# sourceMappingURL=generateUniformsSyncPolyfill.mjs.map