{"version":3,"file":"pixi-filters.js","sources":["../../../filters/adjustment/dist/filter-adjustment.mjs","../../../filters/kawase-blur/dist/filter-kawase-blur.mjs","../../../filters/advanced-bloom/dist/filter-advanced-bloom.mjs","../../../filters/ascii/dist/filter-ascii.mjs","../../../filters/bevel/dist/filter-bevel.mjs","../../../filters/bloom/dist/filter-bloom.mjs","../../../filters/bulge-pinch/dist/filter-bulge-pinch.mjs","../../../filters/color-map/dist/filter-color-map.mjs","../../../filters/color-overlay/dist/filter-color-overlay.mjs","../../../filters/color-replace/dist/filter-color-replace.mjs","../../../filters/convolution/dist/filter-convolution.mjs","../../../filters/cross-hatch/dist/filter-cross-hatch.mjs","../../../filters/crt/dist/filter-crt.mjs","../../../filters/dot/dist/filter-dot.mjs","../../../filters/drop-shadow/dist/filter-drop-shadow.mjs","../../../filters/emboss/dist/filter-emboss.mjs","../../../filters/glitch/dist/filter-glitch.mjs","../../../filters/glow/dist/filter-glow.mjs","../../../filters/godray/dist/filter-godray.mjs","../../../filters/motion-blur/dist/filter-motion-blur.mjs","../../../filters/multi-color-replace/dist/filter-multi-color-replace.mjs","../../../filters/old-film/dist/filter-old-film.mjs","../../../filters/outline/dist/filter-outline.mjs","../../../filters/pixelate/dist/filter-pixelate.mjs","../../../filters/radial-blur/dist/filter-radial-blur.mjs","../../../filters/reflection/dist/filter-reflection.mjs","../../../filters/rgb-split/dist/filter-rgb-split.mjs","../../../filters/shockwave/dist/filter-shockwave.mjs","../../../filters/simple-lightmap/dist/filter-simple-lightmap.mjs","../../../filters/tilt-shift/dist/filter-tilt-shift.mjs","../../../filters/twist/dist/filter-twist.mjs","../../../filters/zoom-blur/dist/filter-zoom-blur.mjs"],"sourcesContent":["/*!\n * @pixi/filter-adjustment - v4.2.0\n * Compiled Fri, 23 Sep 2022 20:46:34 UTC\n *\n * @pixi/filter-adjustment is licensed under the MIT License.\n * http://www.opensource.org/licenses/mit-license\n */import{Filter as a}from\"@pixi/core\";var e=`attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nuniform mat3 projectionMatrix;\n\nvarying vec2 vTextureCoord;\n\nvoid main(void)\n{\n gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n vTextureCoord = aTextureCoord;\n}`,o=`varying vec2 vTextureCoord;\nuniform sampler2D uSampler;\n\nuniform float gamma;\nuniform float contrast;\nuniform float saturation;\nuniform float brightness;\nuniform float red;\nuniform float green;\nuniform float blue;\nuniform float alpha;\n\nvoid main(void)\n{\n vec4 c = texture2D(uSampler, vTextureCoord);\n\n if (c.a > 0.0) {\n c.rgb /= c.a;\n\n vec3 rgb = pow(c.rgb, vec3(1. / gamma));\n rgb = mix(vec3(.5), mix(vec3(dot(vec3(.2125, .7154, .0721), rgb)), rgb, saturation), contrast);\n rgb.r *= red;\n rgb.g *= green;\n rgb.b *= blue;\n c.rgb = rgb * brightness;\n\n c.rgb *= c.a;\n }\n\n gl_FragColor = c * alpha;\n}\n`;class s extends a{constructor(t){super(e,o),this.gamma=1,this.saturation=1,this.contrast=1,this.brightness=1,this.red=1,this.green=1,this.blue=1,this.alpha=1,Object.assign(this,t)}apply(t,r,n,i){this.uniforms.gamma=Math.max(this.gamma,1e-4),this.uniforms.saturation=this.saturation,this.uniforms.contrast=this.contrast,this.uniforms.brightness=this.brightness,this.uniforms.red=this.red,this.uniforms.green=this.green,this.uniforms.blue=this.blue,this.uniforms.alpha=this.alpha,t.applyFilter(this,r,n,i)}}export{s as AdjustmentFilter};\n//# sourceMappingURL=filter-adjustment.mjs.map\n","/*!\n * @pixi/filter-kawase-blur - v4.2.0\n * Compiled Fri, 23 Sep 2022 20:46:34 UTC\n *\n * @pixi/filter-kawase-blur is licensed under the MIT License.\n * http://www.opensource.org/licenses/mit-license\n */import{Filter as m,Point as h}from\"@pixi/core\";var c=`attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nuniform mat3 projectionMatrix;\n\nvarying vec2 vTextureCoord;\n\nvoid main(void)\n{\n gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n vTextureCoord = aTextureCoord;\n}`,v=`\nvarying vec2 vTextureCoord;\nuniform sampler2D uSampler;\n\nuniform vec2 uOffset;\n\nvoid main(void)\n{\n vec4 color = vec4(0.0);\n\n // Sample top left pixel\n color += texture2D(uSampler, vec2(vTextureCoord.x - uOffset.x, vTextureCoord.y + uOffset.y));\n\n // Sample top right pixel\n color += texture2D(uSampler, vec2(vTextureCoord.x + uOffset.x, vTextureCoord.y + uOffset.y));\n\n // Sample bottom right pixel\n color += texture2D(uSampler, vec2(vTextureCoord.x + uOffset.x, vTextureCoord.y - uOffset.y));\n\n // Sample bottom left pixel\n color += texture2D(uSampler, vec2(vTextureCoord.x - uOffset.x, vTextureCoord.y - uOffset.y));\n\n // Average\n color *= 0.25;\n\n gl_FragColor = color;\n}`,y=`\nvarying vec2 vTextureCoord;\nuniform sampler2D uSampler;\n\nuniform vec2 uOffset;\nuniform vec4 filterClamp;\n\nvoid main(void)\n{\n vec4 color = vec4(0.0);\n\n // Sample top left pixel\n color += texture2D(uSampler, clamp(vec2(vTextureCoord.x - uOffset.x, vTextureCoord.y + uOffset.y), filterClamp.xy, filterClamp.zw));\n\n // Sample top right pixel\n color += texture2D(uSampler, clamp(vec2(vTextureCoord.x + uOffset.x, vTextureCoord.y + uOffset.y), filterClamp.xy, filterClamp.zw));\n\n // Sample bottom right pixel\n color += texture2D(uSampler, clamp(vec2(vTextureCoord.x + uOffset.x, vTextureCoord.y - uOffset.y), filterClamp.xy, filterClamp.zw));\n\n // Sample bottom left pixel\n color += texture2D(uSampler, clamp(vec2(vTextureCoord.x - uOffset.x, vTextureCoord.y - uOffset.y), filterClamp.xy, filterClamp.zw));\n\n // Average\n color *= 0.25;\n\n gl_FragColor = color;\n}\n`;class _ extends m{constructor(e=4,t=3,i=!1){super(c,i?y:v),this._kernels=[],this._blur=4,this._quality=3,this.uniforms.uOffset=new Float32Array(2),this._pixelSize=new h,this.pixelSize=1,this._clamp=i,Array.isArray(e)?this.kernels=e:(this._blur=e,this.quality=t)}apply(e,t,i,o){const n=this._pixelSize.x/t._frame.width,l=this._pixelSize.y/t._frame.height;let r;if(this._quality===1||this._blur===0)r=this._kernels[0]+.5,this.uniforms.uOffset[0]=r*n,this.uniforms.uOffset[1]=r*l,e.applyFilter(this,t,i,o);else{const x=e.getFilterTexture();let s=t,u=x,f;const p=this._quality-1;for(let a=0;a
e+t+.5,0))}_generateKernels(){const e=this._blur,t=this._quality,i=[e];if(e>0){let o=e;const n=e/t;for(let l=1;l0;i--){const t=Math.random()*i>>0,n=e[i];e[i]=e[t],e[t]=n}}_randomizeOffsets(){for(let e=0;e>0)+1}set offset(e){this.uniforms.uOffset=e}get offset(){return this.uniforms.uOffset}}export{u as MotionBlurFilter};\n//# sourceMappingURL=filter-motion-blur.mjs.map\n","/*!\n * @pixi/filter-multi-color-replace - v4.2.0\n * Compiled Fri, 23 Sep 2022 20:46:34 UTC\n *\n * @pixi/filter-multi-color-replace is licensed under the MIT License.\n * http://www.opensource.org/licenses/mit-license\n */import{Filter as m,utils as a}from\"@pixi/core\";var c=`attribute vec2 aVertexPosition;\nattribute vec2 aTextureCoord;\n\nuniform mat3 projectionMatrix;\n\nvarying vec2 vTextureCoord;\n\nvoid main(void)\n{\n gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\n vTextureCoord = aTextureCoord;\n}`,g=`varying vec2 vTextureCoord;\nuniform sampler2D uSampler;\n\nuniform float epsilon;\n\nconst int MAX_COLORS = %maxColors%;\n\nuniform vec3 originalColors[MAX_COLORS];\nuniform vec3 targetColors[MAX_COLORS];\n\nvoid main(void)\n{\n gl_FragColor = texture2D(uSampler, vTextureCoord);\n\n float alpha = gl_FragColor.a;\n if (alpha < 0.0001)\n {\n return;\n }\n\n vec3 color = gl_FragColor.rgb / alpha;\n\n for(int i = 0; i < MAX_COLORS; i++)\n {\n vec3 origColor = originalColors[i];\n if (origColor.r < 0.0)\n {\n break;\n }\n vec3 colorDiff = origColor - color;\n if (length(colorDiff) < epsilon)\n {\n vec3 targetColor = targetColors[i];\n gl_FragColor = vec4((targetColor + colorDiff) * alpha, alpha);\n return;\n }\n }\n}\n`;class h extends m{constructor(o,i=.05,e=o.length){super(c,g.replace(/%maxColors%/g,e.toFixed(0))),this._replacements=[],this._maxColors=0,this.epsilon=i,this._maxColors=e,this.uniforms.originalColors=new Float32Array(e*3),this.uniforms.targetColors=new Float32Array(e*3),this.replacements=o}set replacements(o){const i=this.uniforms.originalColors,e=this.uniforms.targetColors,l=o.length;if(l>this._maxColors)throw new Error(`Length of replacements (${l}) exceeds the maximum colors length (${this._maxColors})`);i[l*3]=-1;for(let r=0;r