{"version":3,"file":"generateBlurFragSource.mjs","sources":["../../../../../src/filters/defaults/blur/gl/generateBlurFragSource.ts"],"sourcesContent":["import { GAUSSIAN_VALUES } from '../const';\n\nconst fragTemplate = [\n    'in vec2 vBlurTexCoords[%size%];',\n    'uniform sampler2D uTexture;',\n    'out vec4 finalColor;',\n\n    'void main(void)',\n    '{',\n    '    %blur%',\n    '}',\n\n].join('\\n');\n\n/**\n * @internal\n * @param kernelSize - The size of the kernel.\n */\nexport function generateBlurFragSource(kernelSize: number): string\n{\n    const kernel = GAUSSIAN_VALUES[kernelSize];\n    const halfLength = kernel.length;\n\n    let blurLoop = '';\n    const prefixFirst = 'finalColor = ';\n    const prefixRest = '    + ';\n    const template = 'texture(uTexture, vBlurTexCoords[%index%]) * %value%';\n\n    for (let i = 0; i < kernelSize; i++)\n    {\n        const prefix = i === 0 ? prefixFirst : prefixRest;\n        const value = i < halfLength ? i : kernelSize - i - 1;\n        const blur = template\n            .replace('%index%', i.toString())\n            .replace('%value%', kernel[value].toString());\n\n        blurLoop += `${prefix}${blur}\\n`;\n    }\n\n    return fragTemplate\n        .replace('%blur%', `${blurLoop};`)\n        .replace('%size%', kernelSize.toString());\n}\n"],"names":[],"mappings":";;;AAEA,MAAM,YAAA,GAAe;AAAA,EACjB,iCAAA;AAAA,EACA,6BAAA;AAAA,EACA,sBAAA;AAAA,EAEA,iBAAA;AAAA,EACA,GAAA;AAAA,EACA,YAAA;AAAA,EACA;AAEJ,CAAA,CAAE,KAAK,IAAI,CAAA;AAMJ,SAAS,uBAAuB,UAAA,EACvC;AACI,EAAA,MAAM,MAAA,GAAS,gBAAgB,UAAU,CAAA;AACzC,EAAA,MAAM,aAAa,MAAA,CAAO,MAAA;AAE1B,EAAA,IAAI,QAAA,GAAW,EAAA;AACf,EAAA,MAAM,WAAA,GAAc,eAAA;AACpB,EAAA,MAAM,UAAA,GAAa,QAAA;AACnB,EAAA,MAAM,QAAA,GAAW,sDAAA;AAEjB,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,UAAA,EAAY,CAAA,EAAA,EAChC;AACI,IAAA,MAAM,MAAA,GAAS,CAAA,KAAM,CAAA,GAAI,WAAA,GAAc,UAAA;AACvC,IAAA,MAAM,KAAA,GAAQ,CAAA,GAAI,UAAA,GAAa,CAAA,GAAI,aAAa,CAAA,GAAI,CAAA;AACpD,IAAA,MAAM,IAAA,GAAO,QAAA,CACR,OAAA,CAAQ,SAAA,EAAW,EAAE,QAAA,EAAU,CAAA,CAC/B,OAAA,CAAQ,SAAA,EAAW,MAAA,CAAO,KAAK,CAAA,CAAE,UAAU,CAAA;AAEhD,IAAA,QAAA,IAAY,CAAA,EAAG,MAAM,CAAA,EAAG,IAAI;AAAA,CAAA;AAAA,EAChC;AAEA,EAAA,OAAO,YAAA,CACF,OAAA,CAAQ,QAAA,EAAU,CAAA,EAAG,QAAQ,CAAA,CAAA,CAAG,CAAA,CAChC,OAAA,CAAQ,QAAA,EAAU,UAAA,CAAW,QAAA,EAAU,CAAA;AAChD;;;;"}