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">
1 lines • 3.28 kB
Source Map (JSON)
{"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\n/**\n * @internal\n * @param kernelSize - The size of the kernel.\n * @param x - Whether to generate a horizontal or vertical blur program.\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;AAyCL,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;;;;"}