{"version":3,"file":"generateBlurFragSource.mjs","sources":["../src/generateBlurFragSource.ts"],"sourcesContent":["interface IGAUSSIAN_VALUES\n{\n    [x: number]: number[];\n}\nconst GAUSSIAN_VALUES: IGAUSSIAN_VALUES = {\n    5: [0.153388, 0.221461, 0.250301],\n    7: [0.071303, 0.131514, 0.189879, 0.214607],\n    9: [0.028532, 0.067234, 0.124009, 0.179044, 0.20236],\n    11: [0.0093, 0.028002, 0.065984, 0.121703, 0.175713, 0.198596],\n    13: [0.002406, 0.009255, 0.027867, 0.065666, 0.121117, 0.174868, 0.197641],\n    15: [0.000489, 0.002403, 0.009246, 0.02784, 0.065602, 0.120999, 0.174697, 0.197448],\n};\n\nconst fragTemplate = [\n    'varying vec2 vBlurTexCoords[%size%];',\n    'uniform sampler2D uSampler;',\n\n    'void main(void)',\n    '{',\n    '    gl_FragColor = vec4(0.0);',\n    '    %blur%',\n    '}',\n\n].join('\\n');\n\nexport function generateBlurFragSource(kernelSize: number): string\n{\n    const kernel = GAUSSIAN_VALUES[kernelSize];\n    const halfLength = kernel.length;\n\n    let fragSource = fragTemplate;\n\n    let blurLoop = '';\n    const template = 'gl_FragColor += texture2D(uSampler, vBlurTexCoords[%index%]) * %value%;';\n    let value: number;\n\n    for (let i = 0; i < kernelSize; i++)\n    {\n        let blur = template.replace('%index%', i.toString());\n\n        value = i;\n\n        if (i >= halfLength)\n        {\n            value = kernelSize - i - 1;\n        }\n\n        blur = blur.replace('%value%', kernel[value].toString());\n\n        blurLoop += blur;\n        blurLoop += '\\n';\n    }\n\n    fragSource = fragSource.replace('%blur%', blurLoop);\n    fragSource = fragSource.replace('%size%', kernelSize.toString());\n\n    return fragSource;\n}\n"],"names":[],"mappings":"AAIA,MAAM,eAAoC,GAAA;AAAA,EACtC,CAAG,EAAA,CAAC,QAAU,EAAA,QAAA,EAAU,QAAQ,CAAA;AAAA,EAChC,CAAG,EAAA,CAAC,QAAU,EAAA,QAAA,EAAU,UAAU,QAAQ,CAAA;AAAA,EAC1C,GAAG,CAAC,QAAA,EAAU,QAAU,EAAA,QAAA,EAAU,UAAU,OAAO,CAAA;AAAA,EACnD,IAAI,CAAC,KAAA,EAAQ,UAAU,QAAU,EAAA,QAAA,EAAU,UAAU,QAAQ,CAAA;AAAA,EAC7D,EAAA,EAAI,CAAC,OAAU,EAAA,OAAA,EAAU,UAAU,QAAU,EAAA,QAAA,EAAU,UAAU,QAAQ,CAAA;AAAA,EACzE,EAAA,EAAI,CAAC,MAAU,EAAA,OAAA,EAAU,SAAU,OAAS,EAAA,QAAA,EAAU,QAAU,EAAA,QAAA,EAAU,QAAQ,CAAA;AACtF,CAAA,CAAA;AAEA,MAAM,YAAe,GAAA;AAAA,EACjB,sCAAA;AAAA,EACA,6BAAA;AAAA,EAEA,iBAAA;AAAA,EACA,GAAA;AAAA,EACA,+BAAA;AAAA,EACA,YAAA;AAAA,EACA,GAAA;AAEJ,CAAA,CAAE,KAAK,IAAI,CAAA,CAAA;AAEJ,SAAA,sBAAA,CAAgC,UACvC,EAAA;AACI,EAAA,MAAM,SAAS,eAAgB,CAAA,UAAA,CAAA,CAAA;AAC/B,EAAA,MAAM,aAAa,MAAO,CAAA,MAAA,CAAA;AAE1B,EAAA,IAAI,UAAa,GAAA,YAAA,CAAA;AAEjB,EAAA,IAAI,QAAW,GAAA,EAAA,CAAA;AACf,EAAA,MAAM,QAAW,GAAA,yEAAA,CAAA;AACjB,EAAI,IAAA,KAAA,CAAA;AAEJ,EAAA,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAI,GAAA,UAAA,EAAY,CAChC,EAAA,EAAA;AACI,IAAA,IAAI,OAAO,QAAS,CAAA,OAAA,CAAQ,SAAW,EAAA,CAAA,CAAE,UAAU,CAAA,CAAA;AAEnD,IAAQ,KAAA,GAAA,CAAA,CAAA;AAER,IAAA,IAAI,KAAK,UACT,EAAA;AACI,MAAA,KAAA,GAAQ,aAAa,CAAI,GAAA,CAAA,CAAA;AAAA,KAC7B;AAEA,IAAA,IAAA,GAAO,KAAK,OAAQ,CAAA,SAAA,EAAW,MAAO,CAAA,KAAA,CAAA,CAAO,UAAU,CAAA,CAAA;AAEvD,IAAY,QAAA,IAAA,IAAA,CAAA;AACZ,IAAY,QAAA,IAAA,IAAA,CAAA;AAAA,GAChB;AAEA,EAAa,UAAA,GAAA,UAAA,CAAW,OAAQ,CAAA,QAAA,EAAU,QAAQ,CAAA,CAAA;AAClD,EAAA,UAAA,GAAa,UAAW,CAAA,OAAA,CAAQ,QAAU,EAAA,UAAA,CAAW,UAAU,CAAA,CAAA;AAE/D,EAAO,OAAA,UAAA,CAAA;AACX;;;;"}