{"version":3,"file":"generateBlurVertSource.mjs","sources":["../../../../../src/filters/defaults/blur/gl/generateBlurVertSource.ts"],"sourcesContent":["const vertTemplate = `\n    in vec2 aPosition;\n\n    uniform float uStrength;\n\n    out vec2 vBlurTexCoords[%size%];\n\n    uniform vec4 uInputSize;\n    uniform vec4 uOutputFrame;\n    uniform vec4 uOutputTexture;\n\n    vec4 filterVertexPosition( void )\n{\n    vec2 position = aPosition * uOutputFrame.zw + uOutputFrame.xy;\n    \n    position.x = position.x * (2.0 / uOutputTexture.x) - 1.0;\n    position.y = position.y * (2.0*uOutputTexture.z / uOutputTexture.y) - uOutputTexture.z;\n\n    return vec4(position, 0.0, 1.0);\n}\n\n    vec2 filterTextureCoord( void )\n    {\n        return aPosition * (uOutputFrame.zw * uInputSize.zw);\n    }\n\n    void main(void)\n    {\n        gl_Position = filterVertexPosition();\n\n        float pixelStrength = uInputSize.%dimension% * uStrength;\n\n        vec2 textureCoord = filterTextureCoord();\n        %blur%\n    }`;\n\nexport function generateBlurVertSource(kernelSize: number, x: boolean): string\n{\n    const halfLength = Math.ceil(kernelSize / 2);\n\n    let vertSource = vertTemplate;\n\n    let blurLoop = '';\n    let template;\n\n    if (x)\n    {\n        template = 'vBlurTexCoords[%index%] =  textureCoord + vec2(%sampleIndex% * pixelStrength, 0.0);';\n    }\n    else\n    {\n        template = 'vBlurTexCoords[%index%] =  textureCoord + vec2(0.0, %sampleIndex% * pixelStrength);';\n    }\n\n    for (let i = 0; i < kernelSize; i++)\n    {\n        let blur = template.replace('%index%', i.toString());\n\n        blur = blur.replace('%sampleIndex%', `${i - (halfLength - 1)}.0`);\n\n        blurLoop += blur;\n        blurLoop += '\\n';\n    }\n\n    vertSource = vertSource.replace('%blur%', blurLoop);\n    vertSource = vertSource.replace('%size%', kernelSize.toString());\n    vertSource = vertSource.replace('%dimension%', x ? 'z' : 'w');\n\n    return vertSource;\n}\n"],"names":[],"mappings":";AAAA,MAAM,YAAe,GAAA,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAAA,CAAA,CAAA;AAoCL,SAAA,sBAAA,CAAuB,YAAoB,CAC3D,EAAA;AACI,EAAA,MAAM,UAAa,GAAA,IAAA,CAAK,IAAK,CAAA,UAAA,GAAa,CAAC,CAAA,CAAA;AAE3C,EAAA,IAAI,UAAa,GAAA,YAAA,CAAA;AAEjB,EAAA,IAAI,QAAW,GAAA,EAAA,CAAA;AACf,EAAI,IAAA,QAAA,CAAA;AAEJ,EAAA,IAAI,CACJ,EAAA;AACI,IAAW,QAAA,GAAA,qFAAA,CAAA;AAAA,GAGf,MAAA;AACI,IAAW,QAAA,GAAA,qFAAA,CAAA;AAAA,GACf;AAEA,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,IAAA,IAAA,GAAO,KAAK,OAAQ,CAAA,eAAA,EAAiB,GAAG,CAAK,IAAA,UAAA,GAAa,EAAE,CAAI,EAAA,CAAA,CAAA,CAAA;AAEhE,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;AAC/D,EAAA,UAAA,GAAa,UAAW,CAAA,OAAA,CAAQ,aAAe,EAAA,CAAA,GAAI,MAAM,GAAG,CAAA,CAAA;AAE5D,EAAO,OAAA,UAAA,CAAA;AACX;;;;"}