pixi.js
Version:
<p align="center"> <a href="https://pixijs.com" target="_blank" rel="noopener noreferrer"> <img height="150" src="https://files.pixijs.download/branding/pixijs-logo-transparent-dark.svg?v=1" alt="PixiJS logo"> </a> </p> <br/> <p align="center">
34 lines (30 loc) • 1.06 kB
JavaScript
;
var _const = require('../const.js');
;
const fragTemplate = [
"in vec2 vBlurTexCoords[%size%];",
"uniform sampler2D uTexture;",
"out vec4 finalColor;",
"void main(void)",
"{",
" %blur%",
"}"
].join("\n");
function generateBlurFragSource(kernelSize) {
const kernel = _const.GAUSSIAN_VALUES[kernelSize];
const halfLength = kernel.length;
let blurLoop = "";
const prefixFirst = "finalColor = ";
const prefixRest = " + ";
const template = "texture(uTexture, vBlurTexCoords[%index%]) * %value%";
for (let i = 0; i < kernelSize; i++) {
const prefix = i === 0 ? prefixFirst : prefixRest;
const value = i < halfLength ? i : kernelSize - i - 1;
const blur = template.replace("%index%", i.toString()).replace("%value%", kernel[value].toString());
blurLoop += `${prefix}${blur}
`;
}
return fragTemplate.replace("%blur%", `${blurLoop};`).replace("%size%", kernelSize.toString());
}
exports.generateBlurFragSource = generateBlurFragSource;
//# sourceMappingURL=generateBlurFragSource.js.map