32 lines
1.8 KiB
JavaScript
32 lines
1.8 KiB
JavaScript
shadow$provide.module$node_modules$pixi_DOT_js$lib$rendering$renderers$shared$shader$utils$createUboSyncFunction = function(global, require, module, exports) {
|
|
var uniformParsers = require("module$node_modules$pixi_DOT_js$lib$rendering$renderers$shared$shader$utils$uniformParsers");
|
|
"use strict";
|
|
exports.createUboSyncFunction = function(uboElements, parserCode, arrayGenerationFunction, singleSettersMap) {
|
|
const funcFragments = ["\n var v \x3d null;\n var v2 \x3d null;\n var t \x3d 0;\n var index \x3d 0;\n var name \x3d null;\n var arrayOffset \x3d null;\n "];
|
|
let prev = 0;
|
|
for (let i = 0; i < uboElements.length; i++) {
|
|
const uboElement = uboElements[i], name = uboElement.data.name;
|
|
var parsed = !1;
|
|
let offset = 0;
|
|
for (let j = 0; j < uniformParsers.uniformParsers.length; j++) {
|
|
if (uniformParsers.uniformParsers[j].test(uboElement.data)) {
|
|
offset = uboElement.offset / 4;
|
|
funcFragments.push(`name = "${name}";`, `offset += ${offset - prev};`, uniformParsers.uniformParsers[j][parserCode] || uniformParsers.uniformParsers[j].ubo);
|
|
parsed = !0;
|
|
break;
|
|
}
|
|
}
|
|
parsed || (1 < uboElement.data.size ? (offset = uboElement.offset / 4, funcFragments.push(arrayGenerationFunction(uboElement, offset - prev))) : (parsed = singleSettersMap[uboElement.data.type], offset = uboElement.offset / 4, funcFragments.push(`
|
|
v = uv.${name};
|
|
offset += ${offset - prev};
|
|
${parsed};
|
|
`)));
|
|
prev = offset;
|
|
}
|
|
uboElements = funcFragments.join("\n");
|
|
return new Function("uv", "data", "dataInt32", "offset", uboElements);
|
|
};
|
|
};
|
|
|
|
//# sourceMappingURL=module$node_modules$pixi_DOT_js$lib$rendering$renderers$shared$shader$utils$createUboSyncFunction.js.map
|