pixi_filters 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.DS_Store +0 -0
- data/.gitignore +11 -0
- data/.rspec +3 -0
- data/.travis.yml +7 -0
- data/Gemfile +6 -0
- data/LICENSE.txt +21 -0
- data/README.md +39 -0
- data/Rakefile +6 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/lib/pixi_filters.rb +8 -0
- data/lib/pixi_filters/version.rb +3 -0
- data/pixi_filters.gemspec +28 -0
- data/vendor/.DS_Store +0 -0
- data/vendor/assets/.DS_Store +0 -0
- data/vendor/assets/javascripts/.DS_Store +0 -0
- data/vendor/assets/javascripts/.keep +0 -0
- data/vendor/assets/javascripts/pixi-filters.js +9 -0
- data/vendor/assets/javascripts/pixi-filters.js.map +1 -0
- data/vendor/assets/stylesheets/.keep +0 -0
- metadata +105 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 19a61716bf2fc0f6c356f1478ab5e55bbc5c0075f2545d7c6d0036181366ecbc
|
4
|
+
data.tar.gz: 86e95b5a46b94b8047a8ec2d12cea9a4f4fb405071ca28b8211d964648b4c32e
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 7fb5e89d243c50590cb3568bb6cdb8cbe0b12366597bba2368b8c5cdb067a41e2a605dcb44f184fd6c9692ab210b86a126aa3ed65023b9a3fdb7ea5666b1f9a1
|
7
|
+
data.tar.gz: b95088e1c779c9722f5d48ff0dc2e2a396931ee5ba5a50a6d000802727dbb7a8b73e88c9b2cdbc6870c92c389a541060f726f5d3936a9d993fc70dabd2978551
|
data/.DS_Store
ADDED
Binary file
|
data/.gitignore
ADDED
data/.rspec
ADDED
data/.travis.yml
ADDED
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
The MIT License (MIT)
|
2
|
+
|
3
|
+
Copyright (c) 2019 Chris Palmweaver
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in
|
13
|
+
all copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
21
|
+
THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,39 @@
|
|
1
|
+
# PixiFilters
|
2
|
+
|
3
|
+
Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/pixi_filters`. To experiment with that code, run `bin/console` for an interactive prompt.
|
4
|
+
|
5
|
+
TODO: Delete this and the text above, and describe your gem
|
6
|
+
|
7
|
+
## Installation
|
8
|
+
|
9
|
+
Add this line to your application's Gemfile:
|
10
|
+
|
11
|
+
```ruby
|
12
|
+
gem 'pixi_filters'
|
13
|
+
```
|
14
|
+
|
15
|
+
And then execute:
|
16
|
+
|
17
|
+
$ bundle
|
18
|
+
|
19
|
+
Or install it yourself as:
|
20
|
+
|
21
|
+
$ gem install pixi_filters
|
22
|
+
|
23
|
+
## Usage
|
24
|
+
|
25
|
+
TODO: Write usage instructions here
|
26
|
+
|
27
|
+
## Development
|
28
|
+
|
29
|
+
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
30
|
+
|
31
|
+
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
|
32
|
+
|
33
|
+
## Contributing
|
34
|
+
|
35
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/pixi_filters.
|
36
|
+
|
37
|
+
## License
|
38
|
+
|
39
|
+
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
|
data/Rakefile
ADDED
data/bin/console
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require "bundler/setup"
|
4
|
+
require "pixi_filters"
|
5
|
+
|
6
|
+
# You can add fixtures and/or initialization code here to make experimenting
|
7
|
+
# with your gem easier. You can also use a different console, if you like.
|
8
|
+
|
9
|
+
# (If you use this, don't forget to add pry to your Gemfile!)
|
10
|
+
# require "pry"
|
11
|
+
# Pry.start
|
12
|
+
|
13
|
+
require "irb"
|
14
|
+
IRB.start(__FILE__)
|
data/bin/setup
ADDED
data/lib/pixi_filters.rb
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
|
2
|
+
lib = File.expand_path("../lib", __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require "pixi_filters/version"
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "pixi_filters"
|
8
|
+
spec.version = PixiFilters::VERSION
|
9
|
+
spec.authors = ["Chris Scalf"]
|
10
|
+
spec.email = ["shrewdpixeldesign@gmail.com"]
|
11
|
+
|
12
|
+
spec.summary = %q{A gem for importing the pixi_spine.js canvas library into Rails projects.}
|
13
|
+
spec.homepage = "https://github.com/Palmweaver/pixi_filters"
|
14
|
+
spec.license = "MIT"
|
15
|
+
|
16
|
+
# Specify which files should be added to the gem when it is released.
|
17
|
+
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
18
|
+
spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
|
19
|
+
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
20
|
+
end
|
21
|
+
spec.bindir = "exe"
|
22
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
23
|
+
spec.require_paths = ["lib"]
|
24
|
+
|
25
|
+
spec.add_development_dependency "bundler", "~> 1.17"
|
26
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
27
|
+
spec.add_development_dependency "rspec", "~> 3.0"
|
28
|
+
end
|
data/vendor/.DS_Store
ADDED
Binary file
|
Binary file
|
Binary file
|
File without changes
|
@@ -0,0 +1,9 @@
|
|
1
|
+
/*!
|
2
|
+
* pixi-filters - v2.7.0
|
3
|
+
* Compiled Sun, 13 Jan 2019 22:51:52 UTC
|
4
|
+
*
|
5
|
+
* pixi-filters is licensed under the MIT License.
|
6
|
+
* http://www.opensource.org/licenses/mit-license
|
7
|
+
*/
|
8
|
+
var __filters=function(e,t){"use strict";var n="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}",r="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",o=function(e){function t(t){e.call(this,n,r),Object.assign(this,{gamma:1,saturation:1,contrast:1,brightness:1,red:1,green:1,blue:1,alpha:1},t)}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.apply=function(e,t,n,r){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,e.applyFilter(this,t,n,r)},t}(t.Filter),i=n,l="\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}",s="\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",a=function(e){function n(n,r,o){void 0===n&&(n=4),void 0===r&&(r=3),void 0===o&&(o=!1),e.call(this,i,o?s:l),this.uniforms.uOffset=new Float32Array(2),this._pixelSize=new t.Point,this.pixelSize=1,this._clamp=o,this._kernels=null,Array.isArray(n)?this.kernels=n:(this._blur=n,this.quality=r)}e&&(n.__proto__=e),n.prototype=Object.create(e&&e.prototype),n.prototype.constructor=n;var r={kernels:{configurable:!0},clamp:{configurable:!0},pixelSize:{configurable:!0},quality:{configurable:!0},blur:{configurable:!0}};return n.prototype.apply=function(e,t,n,r){var o,i=this.pixelSize.x/t.size.width,l=this.pixelSize.y/t.size.height;if(1===this._quality||0===this._blur)o=this._kernels[0]+.5,this.uniforms.uOffset[0]=o*i,this.uniforms.uOffset[1]=o*l,e.applyFilter(this,t,n,r);else{for(var s,a=e.getRenderTarget(!0),u=t,c=a,f=this._quality-1,h=0;h<f;h++)o=this._kernels[h]+.5,this.uniforms.uOffset[0]=o*i,this.uniforms.uOffset[1]=o*l,e.applyFilter(this,u,c,!0),s=u,u=c,c=s;o=this._kernels[f]+.5,this.uniforms.uOffset[0]=o*i,this.uniforms.uOffset[1]=o*l,e.applyFilter(this,u,n,r),e.returnRenderTarget(a)}},n.prototype._generateKernels=function(){var e=this._blur,t=this._quality,n=[e];if(e>0)for(var r=e,o=e/t,i=1;i<t;i++)r-=o,n.push(r);this._kernels=n},r.kernels.get=function(){return this._kernels},r.kernels.set=function(e){Array.isArray(e)&&e.length>0?(this._kernels=e,this._quality=e.length,this._blur=Math.max.apply(Math,e)):(this._kernels=[0],this._quality=1)},r.clamp.get=function(){return this._clamp},r.pixelSize.set=function(e){"number"==typeof e?(this._pixelSize.x=e,this._pixelSize.y=e):Array.isArray(e)?(this._pixelSize.x=e[0],this._pixelSize.y=e[1]):e instanceof t.Point?(this._pixelSize.x=e.x,this._pixelSize.y=e.y):(this._pixelSize.x=1,this._pixelSize.y=1)},r.pixelSize.get=function(){return this._pixelSize},r.quality.get=function(){return this._quality},r.quality.set=function(e){this._quality=Math.max(1,Math.round(e)),this._generateKernels()},r.blur.get=function(){return this._blur},r.blur.set=function(e){this._blur=e,this._generateKernels()},Object.defineProperties(n.prototype,r),n}(t.Filter),u=n,c="\nuniform sampler2D uSampler;\nvarying vec2 vTextureCoord;\n\nuniform float threshold;\n\nvoid main() {\n vec4 color = texture2D(uSampler, vTextureCoord);\n\n // A simple & fast algorithm for getting brightness.\n // It's inaccuracy , but good enought for this feature.\n float _max = max(max(color.r, color.g), color.b);\n float _min = min(min(color.r, color.g), color.b);\n float brightness = (_max + _min) * 0.5;\n\n if(brightness > threshold) {\n gl_FragColor = color;\n } else {\n gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);\n }\n}\n",f=function(e){function t(t){void 0===t&&(t=.5),e.call(this,u,c),this.threshold=t}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var n={threshold:{configurable:!0}};return n.threshold.get=function(){return this.uniforms.threshold},n.threshold.set=function(e){this.uniforms.threshold=e},Object.defineProperties(t.prototype,n),t}(t.Filter),h="uniform sampler2D uSampler;\nvarying vec2 vTextureCoord;\n\nuniform sampler2D bloomTexture;\nuniform float bloomScale;\nuniform float brightness;\n\nvoid main() {\n vec4 color = texture2D(uSampler, vTextureCoord);\n color.rgb *= brightness;\n vec4 bloomColor = vec4(texture2D(bloomTexture, vTextureCoord).rgb, 0.0);\n bloomColor.rgb *= bloomScale;\n gl_FragColor = color + bloomColor;\n}\n",p=function(e){function n(n){e.call(this,u,h),"number"==typeof n&&(n={threshold:n}),n=Object.assign({threshold:.5,bloomScale:1,brightness:1,kernels:null,blur:8,quality:4,pixelSize:1,resolution:t.settings.RESOLUTION},n),this.bloomScale=n.bloomScale,this.brightness=n.brightness;var r=n.kernels,o=n.blur,i=n.quality,l=n.pixelSize,s=n.resolution;this._extractFilter=new f(n.threshold),this._extractFilter.resolution=s,this._blurFilter=r?new a(r):new a(o,i),this.pixelSize=l,this.resolution=s}e&&(n.__proto__=e),n.prototype=Object.create(e&&e.prototype),n.prototype.constructor=n;var r={resolution:{configurable:!0},threshold:{configurable:!0},kernels:{configurable:!0},blur:{configurable:!0},quality:{configurable:!0},pixelSize:{configurable:!0}};return n.prototype.apply=function(e,t,n,r,o){var i=e.getRenderTarget(!0);this._extractFilter.apply(e,t,i,!0,o);var l=e.getRenderTarget(!0);this._blurFilter.apply(e,i,l,!0,o),this.uniforms.bloomScale=this.bloomScale,this.uniforms.brightness=this.brightness,this.uniforms.bloomTexture=l,e.applyFilter(this,t,n,r),e.returnRenderTarget(l),e.returnRenderTarget(i)},r.resolution.get=function(){return this._resolution},r.resolution.set=function(e){this._resolution=e,this._extractFilter&&(this._extractFilter.resolution=e),this._blurFilter&&(this._blurFilter.resolution=e)},r.threshold.get=function(){return this._extractFilter.threshold},r.threshold.set=function(e){this._extractFilter.threshold=e},r.kernels.get=function(){return this._blurFilter.kernels},r.kernels.set=function(e){this._blurFilter.kernels=e},r.blur.get=function(){return this._blurFilter.blur},r.blur.set=function(e){this._blurFilter.blur=e},r.quality.get=function(){return this._blurFilter.quality},r.quality.set=function(e){this._blurFilter.quality=e},r.pixelSize.get=function(){return this._blurFilter.pixelSize},r.pixelSize.set=function(e){this._blurFilter.pixelSize=e},Object.defineProperties(n.prototype,r),n}(t.Filter),d=n,m="varying vec2 vTextureCoord;\n\nuniform vec4 filterArea;\nuniform float pixelSize;\nuniform sampler2D uSampler;\n\nvec2 mapCoord( vec2 coord )\n{\n coord *= filterArea.xy;\n coord += filterArea.zw;\n\n return coord;\n}\n\nvec2 unmapCoord( vec2 coord )\n{\n coord -= filterArea.zw;\n coord /= filterArea.xy;\n\n return coord;\n}\n\nvec2 pixelate(vec2 coord, vec2 size)\n{\n return floor( coord / size ) * size;\n}\n\nvec2 getMod(vec2 coord, vec2 size)\n{\n return mod( coord , size) / size;\n}\n\nfloat character(float n, vec2 p)\n{\n p = floor(p*vec2(4.0, -4.0) + 2.5);\n if (clamp(p.x, 0.0, 4.0) == p.x && clamp(p.y, 0.0, 4.0) == p.y)\n {\n if (int(mod(n/exp2(p.x + 5.0*p.y), 2.0)) == 1) return 1.0;\n }\n return 0.0;\n}\n\nvoid main()\n{\n vec2 coord = mapCoord(vTextureCoord);\n\n // get the rounded color..\n vec2 pixCoord = pixelate(coord, vec2(pixelSize));\n pixCoord = unmapCoord(pixCoord);\n\n vec4 color = texture2D(uSampler, pixCoord);\n\n // determine the character to use\n float gray = (color.r + color.g + color.b) / 3.0;\n\n float n = 65536.0; // .\n if (gray > 0.2) n = 65600.0; // :\n if (gray > 0.3) n = 332772.0; // *\n if (gray > 0.4) n = 15255086.0; // o\n if (gray > 0.5) n = 23385164.0; // &\n if (gray > 0.6) n = 15252014.0; // 8\n if (gray > 0.7) n = 13199452.0; // @\n if (gray > 0.8) n = 11512810.0; // #\n\n // get the mod..\n vec2 modd = getMod(coord, vec2(pixelSize));\n\n gl_FragColor = color * character( n, vec2(-1.0) + modd * 2.0);\n\n}",g=function(e){function t(t){void 0===t&&(t=8),e.call(this,d,m),this.size=t}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var n={size:{configurable:!0}};return n.size.get=function(){return this.uniforms.pixelSize},n.size.set=function(e){this.uniforms.pixelSize=e},Object.defineProperties(t.prototype,n),t}(t.Filter),v=n,x="precision mediump float;\n\nvarying vec2 vTextureCoord;\nuniform sampler2D uSampler;\nuniform vec4 filterArea;\n\nuniform float transformX;\nuniform float transformY;\nuniform vec3 lightColor;\nuniform float lightAlpha;\nuniform vec3 shadowColor;\nuniform float shadowAlpha;\n\nvoid main(void) {\n vec2 transform = vec2(1.0 / filterArea) * vec2(transformX, transformY);\n vec4 color = texture2D(uSampler, vTextureCoord);\n float light = texture2D(uSampler, vTextureCoord - transform).a;\n float shadow = texture2D(uSampler, vTextureCoord + transform).a;\n\n color.rgb = mix(color.rgb, lightColor, clamp((color.a - light) * lightAlpha, 0.0, 1.0));\n color.rgb = mix(color.rgb, shadowColor, clamp((color.a - shadow) * shadowAlpha, 0.0, 1.0));\n gl_FragColor = vec4(color.rgb * color.a, color.a);\n}\n",y=function(e){function n(t){void 0===t&&(t={}),e.call(this,v,x),this.uniforms.lightColor=new Float32Array(3),this.uniforms.shadowColor=new Float32Array(3),t=Object.assign({rotation:45,thickness:2,lightColor:16777215,lightAlpha:.7,shadowColor:0,shadowAlpha:.7},t),this.rotation=t.rotation,this.thickness=t.thickness,this.lightColor=t.lightColor,this.lightAlpha=t.lightAlpha,this.shadowColor=t.shadowColor,this.shadowAlpha=t.shadowAlpha}e&&(n.__proto__=e),n.prototype=Object.create(e&&e.prototype),n.prototype.constructor=n;var r={rotation:{configurable:!0},thickness:{configurable:!0},lightColor:{configurable:!0},lightAlpha:{configurable:!0},shadowColor:{configurable:!0},shadowAlpha:{configurable:!0}};return n.prototype._updateTransform=function(){this.uniforms.transformX=this._thickness*Math.cos(this._angle),this.uniforms.transformY=this._thickness*Math.sin(this._angle)},r.rotation.get=function(){return this._angle/t.DEG_TO_RAD},r.rotation.set=function(e){this._angle=e*t.DEG_TO_RAD,this._updateTransform()},r.thickness.get=function(){return this._thickness},r.thickness.set=function(e){this._thickness=e,this._updateTransform()},r.lightColor.get=function(){return t.utils.rgb2hex(this.uniforms.lightColor)},r.lightColor.set=function(e){t.utils.hex2rgb(e,this.uniforms.lightColor)},r.lightAlpha.get=function(){return this.uniforms.lightAlpha},r.lightAlpha.set=function(e){this.uniforms.lightAlpha=e},r.shadowColor.get=function(){return t.utils.rgb2hex(this.uniforms.shadowColor)},r.shadowColor.set=function(e){t.utils.hex2rgb(e,this.uniforms.shadowColor)},r.shadowAlpha.get=function(){return this.uniforms.shadowAlpha},r.shadowAlpha.set=function(e){this.uniforms.shadowAlpha=e},Object.defineProperties(n.prototype,r),n}(t.Filter),b=t.filters,_=b.BlurXFilter,C=b.BlurYFilter,S=b.AlphaFilter,F=function(e){function n(n,r,o,i){var l,s;void 0===n&&(n=2),void 0===r&&(r=4),void 0===o&&(o=t.settings.RESOLUTION),void 0===i&&(i=5),e.call(this),"number"==typeof n?(l=n,s=n):n instanceof t.Point?(l=n.x,s=n.y):Array.isArray(n)&&(l=n[0],s=n[1]),this.blurXFilter=new _(l,r,o,i),this.blurYFilter=new C(s,r,o,i),this.blurYFilter.blendMode=t.BLEND_MODES.SCREEN,this.defaultFilter=new S}e&&(n.__proto__=e),n.prototype=Object.create(e&&e.prototype),n.prototype.constructor=n;var r={blur:{configurable:!0},blurX:{configurable:!0},blurY:{configurable:!0}};return n.prototype.apply=function(e,t,n){var r=e.getRenderTarget(!0);this.defaultFilter.apply(e,t,n),this.blurXFilter.apply(e,t,r),this.blurYFilter.apply(e,r,n),e.returnRenderTarget(r)},r.blur.get=function(){return this.blurXFilter.blur},r.blur.set=function(e){this.blurXFilter.blur=this.blurYFilter.blur=e},r.blurX.get=function(){return this.blurXFilter.blur},r.blurX.set=function(e){this.blurXFilter.blur=e},r.blurY.get=function(){return this.blurYFilter.blur},r.blurY.set=function(e){this.blurYFilter.blur=e},Object.defineProperties(n.prototype,r),n}(t.Filter),z=n,A="uniform float radius;\nuniform float strength;\nuniform vec2 center;\nuniform sampler2D uSampler;\nvarying vec2 vTextureCoord;\n\nuniform vec4 filterArea;\nuniform vec4 filterClamp;\nuniform vec2 dimensions;\n\nvoid main()\n{\n vec2 coord = vTextureCoord * filterArea.xy;\n coord -= center * dimensions.xy;\n float distance = length(coord);\n if (distance < radius) {\n float percent = distance / radius;\n if (strength > 0.0) {\n coord *= mix(1.0, smoothstep(0.0, radius / distance, percent), strength * 0.75);\n } else {\n coord *= mix(1.0, pow(percent, 1.0 + strength * 0.75) * radius / distance, 1.0 - percent);\n }\n }\n coord += center * dimensions.xy;\n coord /= filterArea.xy;\n vec2 clampedCoord = clamp(coord, filterClamp.xy, filterClamp.zw);\n vec4 color = texture2D(uSampler, clampedCoord);\n if (coord != clampedCoord) {\n color *= max(0.0, 1.0 - length(coord - clampedCoord));\n }\n\n gl_FragColor = color;\n}\n",w=function(e){function t(t,n,r){e.call(this,z,A),this.uniforms.dimensions=new Float32Array(2),this.center=t||[.5,.5],this.radius="number"==typeof n?n:100,this.strength="number"==typeof r?r:1}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var n={radius:{configurable:!0},strength:{configurable:!0},center:{configurable:!0}};return t.prototype.apply=function(e,t,n,r){this.uniforms.dimensions[0]=t.sourceFrame.width,this.uniforms.dimensions[1]=t.sourceFrame.height,e.applyFilter(this,t,n,r)},n.radius.get=function(){return this.uniforms.radius},n.radius.set=function(e){this.uniforms.radius=e},n.strength.get=function(){return this.uniforms.strength},n.strength.set=function(e){this.uniforms.strength=e},n.center.get=function(){return this.uniforms.center},n.center.set=function(e){this.uniforms.center=e},Object.defineProperties(t.prototype,n),t}(t.Filter),T=n,D="varying vec2 vTextureCoord;\nuniform sampler2D uSampler;\nuniform sampler2D colorMap;\nuniform float _mix;\nuniform float _size;\nuniform float _sliceSize;\nuniform float _slicePixelSize;\nuniform float _sliceInnerSize;\nvoid main() {\n vec4 color = texture2D(uSampler, vTextureCoord.xy);\n\n vec4 adjusted;\n if (color.a > 0.0) {\n color.rgb /= color.a;\n float innerWidth = _size - 1.0;\n float zSlice0 = min(floor(color.b * innerWidth), innerWidth);\n float zSlice1 = min(zSlice0 + 1.0, innerWidth);\n float xOffset = _slicePixelSize * 0.5 + color.r * _sliceInnerSize;\n float s0 = xOffset + (zSlice0 * _sliceSize);\n float s1 = xOffset + (zSlice1 * _sliceSize);\n float yOffset = _sliceSize * 0.5 + color.g * (1.0 - _sliceSize);\n vec4 slice0Color = texture2D(colorMap, vec2(s0,yOffset));\n vec4 slice1Color = texture2D(colorMap, vec2(s1,yOffset));\n float zOffset = fract(color.b * innerWidth);\n adjusted = mix(slice0Color, slice1Color, zOffset);\n\n color.rgb *= color.a;\n }\n gl_FragColor = vec4(mix(color, adjusted, _mix).rgb, color.a);\n\n}",O=function(e){function n(t,n,r){void 0===n&&(n=!1),void 0===r&&(r=1),e.call(this,T,D),this._size=0,this._sliceSize=0,this._slicePixelSize=0,this._sliceInnerSize=0,this._scaleMode=null,this._nearest=!1,this.nearest=n,this.mix=r,this.colorMap=t}e&&(n.__proto__=e),n.prototype=Object.create(e&&e.prototype),n.prototype.constructor=n;var r={colorSize:{configurable:!0},colorMap:{configurable:!0},nearest:{configurable:!0}};return n.prototype.apply=function(e,t,n,r){this.uniforms._mix=this.mix,e.applyFilter(this,t,n,r)},r.colorSize.get=function(){return this._size},r.colorMap.get=function(){return this._colorMap},r.colorMap.set=function(e){e instanceof t.Texture||(e=t.Texture.from(e)),e&&e.baseTexture&&(e.baseTexture.scaleMode=this._scaleMode,e.baseTexture.mipmap=!1,this._size=e.height,this._sliceSize=1/this._size,this._slicePixelSize=this._sliceSize/this._size,this._sliceInnerSize=this._slicePixelSize*(this._size-1),this.uniforms._size=this._size,this.uniforms._sliceSize=this._sliceSize,this.uniforms._slicePixelSize=this._slicePixelSize,this.uniforms._sliceInnerSize=this._sliceInnerSize,this.uniforms.colorMap=e),this._colorMap=e},r.nearest.get=function(){return this._nearest},r.nearest.set=function(e){this._nearest=e,this._scaleMode=e?t.SCALE_MODES.NEAREST:t.SCALE_MODES.LINEAR;var n=this._colorMap;n&&n.baseTexture&&(n.baseTexture._glTextures={},n.baseTexture.scaleMode=this._scaleMode,n.baseTexture.mipmap=!1,n._updateID++,n.baseTexture.emit("update",n.baseTexture))},n.prototype.updateColorMap=function(){var e=this._colorMap;e&&e.baseTexture&&(e._updateID++,e.baseTexture.emit("update",e.baseTexture),this.colorMap=e)},n.prototype.destroy=function(t){this._colorMap&&this._colorMap.destroy(t),e.prototype.destroy.call(this)},Object.defineProperties(n.prototype,r),n}(t.Filter),P=n,M="varying vec2 vTextureCoord;\nuniform sampler2D uSampler;\nuniform vec3 originalColor;\nuniform vec3 newColor;\nuniform float epsilon;\nvoid main(void) {\n vec4 currentColor = texture2D(uSampler, vTextureCoord);\n vec3 colorDiff = originalColor - (currentColor.rgb / max(currentColor.a, 0.0000000001));\n float colorDistance = length(colorDiff);\n float doReplace = step(colorDistance, epsilon);\n gl_FragColor = vec4(mix(currentColor.rgb, (newColor + colorDiff) * currentColor.a, doReplace), currentColor.a);\n}\n",R=function(e){function n(t,n,r){void 0===t&&(t=16711680),void 0===n&&(n=0),void 0===r&&(r=.4),e.call(this,P,M),this.uniforms.originalColor=new Float32Array(3),this.uniforms.newColor=new Float32Array(3),this.originalColor=t,this.newColor=n,this.epsilon=r}e&&(n.__proto__=e),n.prototype=Object.create(e&&e.prototype),n.prototype.constructor=n;var r={originalColor:{configurable:!0},newColor:{configurable:!0},epsilon:{configurable:!0}};return r.originalColor.set=function(e){var n=this.uniforms.originalColor;"number"==typeof e?(t.utils.hex2rgb(e,n),this._originalColor=e):(n[0]=e[0],n[1]=e[1],n[2]=e[2],this._originalColor=t.utils.rgb2hex(n))},r.originalColor.get=function(){return this._originalColor},r.newColor.set=function(e){var n=this.uniforms.newColor;"number"==typeof e?(t.utils.hex2rgb(e,n),this._newColor=e):(n[0]=e[0],n[1]=e[1],n[2]=e[2],this._newColor=t.utils.rgb2hex(n))},r.newColor.get=function(){return this._newColor},r.epsilon.set=function(e){this.uniforms.epsilon=e},r.epsilon.get=function(){return this.uniforms.epsilon},Object.defineProperties(n.prototype,r),n}(t.Filter),j=n,L="precision mediump float;\n\nvarying mediump vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\nuniform vec2 texelSize;\nuniform float matrix[9];\n\nvoid main(void)\n{\n vec4 c11 = texture2D(uSampler, vTextureCoord - texelSize); // top left\n vec4 c12 = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y - texelSize.y)); // top center\n vec4 c13 = texture2D(uSampler, vec2(vTextureCoord.x + texelSize.x, vTextureCoord.y - texelSize.y)); // top right\n\n vec4 c21 = texture2D(uSampler, vec2(vTextureCoord.x - texelSize.x, vTextureCoord.y)); // mid left\n vec4 c22 = texture2D(uSampler, vTextureCoord); // mid center\n vec4 c23 = texture2D(uSampler, vec2(vTextureCoord.x + texelSize.x, vTextureCoord.y)); // mid right\n\n vec4 c31 = texture2D(uSampler, vec2(vTextureCoord.x - texelSize.x, vTextureCoord.y + texelSize.y)); // bottom left\n vec4 c32 = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y + texelSize.y)); // bottom center\n vec4 c33 = texture2D(uSampler, vTextureCoord + texelSize); // bottom right\n\n gl_FragColor =\n c11 * matrix[0] + c12 * matrix[1] + c13 * matrix[2] +\n c21 * matrix[3] + c22 * matrix[4] + c23 * matrix[5] +\n c31 * matrix[6] + c32 * matrix[7] + c33 * matrix[8];\n\n gl_FragColor.a = c22.a;\n}\n",k=function(e){function t(t,n,r){void 0===n&&(n=200),void 0===r&&(r=200),e.call(this,j,L),this.uniforms.texelSize=new Float32Array(2),this.uniforms.matrix=new Float32Array(9),void 0!==t&&(this.matrix=t),this.width=n,this.height=r}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var n={matrix:{configurable:!0},width:{configurable:!0},height:{configurable:!0}};return n.matrix.get=function(){return this.uniforms.matrix},n.matrix.set=function(e){var t=this;e.forEach(function(e,n){return t.uniforms.matrix[n]=e})},n.width.get=function(){return 1/this.uniforms.texelSize[0]},n.width.set=function(e){this.uniforms.texelSize[0]=1/e},n.height.get=function(){return 1/this.uniforms.texelSize[1]},n.height.set=function(e){this.uniforms.texelSize[1]=1/e},Object.defineProperties(t.prototype,n),t}(t.Filter),I=n,E="precision mediump float;\n\nvarying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\n\nvoid main(void)\n{\n float lum = length(texture2D(uSampler, vTextureCoord.xy).rgb);\n\n gl_FragColor = vec4(1.0, 1.0, 1.0, 1.0);\n\n if (lum < 1.00)\n {\n if (mod(gl_FragCoord.x + gl_FragCoord.y, 10.0) == 0.0)\n {\n gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0);\n }\n }\n\n if (lum < 0.75)\n {\n if (mod(gl_FragCoord.x - gl_FragCoord.y, 10.0) == 0.0)\n {\n gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0);\n }\n }\n\n if (lum < 0.50)\n {\n if (mod(gl_FragCoord.x + gl_FragCoord.y - 5.0, 10.0) == 0.0)\n {\n gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0);\n }\n }\n\n if (lum < 0.3)\n {\n if (mod(gl_FragCoord.x - gl_FragCoord.y - 5.0, 10.0) == 0.0)\n {\n gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0);\n }\n }\n}\n",B=function(e){function t(){e.call(this,I,E)}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t}(t.Filter),X=n,q="varying vec2 vTextureCoord;\nuniform sampler2D uSampler;\n\nuniform vec4 filterArea;\nuniform vec2 dimensions;\n\nconst float SQRT_2 = 1.414213;\n\nconst float light = 1.0;\n\nuniform float curvature;\nuniform float lineWidth;\nuniform float lineContrast;\nuniform bool verticalLine;\nuniform float noise;\nuniform float noiseSize;\n\nuniform float vignetting;\nuniform float vignettingAlpha;\nuniform float vignettingBlur;\n\nuniform float seed;\nuniform float time;\n\nfloat rand(vec2 co) {\n return fract(sin(dot(co.xy, vec2(12.9898, 78.233))) * 43758.5453);\n}\n\nvoid main(void)\n{\n vec2 pixelCoord = vTextureCoord.xy * filterArea.xy;\n vec2 coord = pixelCoord / dimensions;\n\n vec2 dir = vec2(coord - vec2(0.5, 0.5));\n\n float _c = curvature > 0. ? curvature : 1.;\n float k = curvature > 0. ?(length(dir * dir) * 0.25 * _c * _c + 0.935 * _c) : 1.;\n vec2 uv = dir * k;\n\n gl_FragColor = texture2D(uSampler, vTextureCoord);\n vec3 rgb = gl_FragColor.rgb;\n\n\n if (noise > 0.0 && noiseSize > 0.0)\n {\n pixelCoord.x = floor(pixelCoord.x / noiseSize);\n pixelCoord.y = floor(pixelCoord.y / noiseSize);\n float _noise = rand(pixelCoord * noiseSize * seed) - 0.5;\n rgb += _noise * noise;\n }\n\n if (lineWidth > 0.0) {\n float v = (verticalLine ? uv.x * dimensions.x : uv.y * dimensions.y) * min(1.0, 2.0 / lineWidth ) / _c;\n float j = 1. + cos(v * 1.2 - time) * 0.5 * lineContrast;\n rgb *= j;\n float segment = verticalLine ? mod((dir.x + .5) * dimensions.x, 4.) : mod((dir.y + .5) * dimensions.y, 4.);\n rgb *= 0.99 + ceil(segment) * 0.015;\n }\n\n if (vignetting > 0.0)\n {\n float outter = SQRT_2 - vignetting * SQRT_2;\n float darker = clamp((outter - length(dir) * SQRT_2) / ( 0.00001 + vignettingBlur * SQRT_2), 0.0, 1.0);\n rgb *= darker + (1.0 - darker) * (1.0 - vignettingAlpha);\n }\n\n gl_FragColor.rgb = rgb;\n}\n",N=function(e){function t(t){e.call(this,X,q),this.uniforms.dimensions=new Float32Array(2),this.time=0,this.seed=0,Object.assign(this,{curvature:1,lineWidth:1,lineContrast:.25,verticalLine:!1,noise:0,noiseSize:1,seed:0,vignetting:.3,vignettingAlpha:1,vignettingBlur:.3,time:0},t)}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var n={curvature:{configurable:!0},lineWidth:{configurable:!0},lineContrast:{configurable:!0},verticalLine:{configurable:!0},noise:{configurable:!0},noiseSize:{configurable:!0},vignetting:{configurable:!0},vignettingAlpha:{configurable:!0},vignettingBlur:{configurable:!0}};return t.prototype.apply=function(e,t,n,r){this.uniforms.dimensions[0]=t.sourceFrame.width,this.uniforms.dimensions[1]=t.sourceFrame.height,this.uniforms.seed=this.seed,this.uniforms.time=this.time,e.applyFilter(this,t,n,r)},n.curvature.set=function(e){this.uniforms.curvature=e},n.curvature.get=function(){return this.uniforms.curvature},n.lineWidth.set=function(e){this.uniforms.lineWidth=e},n.lineWidth.get=function(){return this.uniforms.lineWidth},n.lineContrast.set=function(e){this.uniforms.lineContrast=e},n.lineContrast.get=function(){return this.uniforms.lineContrast},n.verticalLine.set=function(e){this.uniforms.verticalLine=e},n.verticalLine.get=function(){return this.uniforms.verticalLine},n.noise.set=function(e){this.uniforms.noise=e},n.noise.get=function(){return this.uniforms.noise},n.noiseSize.set=function(e){this.uniforms.noiseSize=e},n.noiseSize.get=function(){return this.uniforms.noiseSize},n.vignetting.set=function(e){this.uniforms.vignetting=e},n.vignetting.get=function(){return this.uniforms.vignetting},n.vignettingAlpha.set=function(e){this.uniforms.vignettingAlpha=e},n.vignettingAlpha.get=function(){return this.uniforms.vignettingAlpha},n.vignettingBlur.set=function(e){this.uniforms.vignettingBlur=e},n.vignettingBlur.get=function(){return this.uniforms.vignettingBlur},Object.defineProperties(t.prototype,n),t}(t.Filter),W=n,G="precision mediump float;\n\nvarying vec2 vTextureCoord;\nvarying vec4 vColor;\n\nuniform vec4 filterArea;\nuniform sampler2D uSampler;\n\nuniform float angle;\nuniform float scale;\n\nfloat pattern()\n{\n float s = sin(angle), c = cos(angle);\n vec2 tex = vTextureCoord * filterArea.xy;\n vec2 point = vec2(\n c * tex.x - s * tex.y,\n s * tex.x + c * tex.y\n ) * scale;\n return (sin(point.x) * sin(point.y)) * 4.0;\n}\n\nvoid main()\n{\n vec4 color = texture2D(uSampler, vTextureCoord);\n float average = (color.r + color.g + color.b) / 3.0;\n gl_FragColor = vec4(vec3(average * 10.0 - 5.0 + pattern()), color.a);\n}\n",K=function(e){function t(t,n){void 0===t&&(t=1),void 0===n&&(n=5),e.call(this,W,G),this.scale=t,this.angle=n}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var n={scale:{configurable:!0},angle:{configurable:!0}};return n.scale.get=function(){return this.uniforms.scale},n.scale.set=function(e){this.uniforms.scale=e},n.angle.get=function(){return this.uniforms.angle},n.angle.set=function(e){this.uniforms.angle=e},Object.defineProperties(t.prototype,n),t}(t.Filter),Y=n,Q="varying vec2 vTextureCoord;\nuniform sampler2D uSampler;\nuniform float alpha;\nuniform vec3 color;\nvoid main(void){\n vec4 sample = texture2D(uSampler, vTextureCoord);\n\n // Un-premultiply alpha before applying the color\n if (sample.a > 0.0) {\n sample.rgb /= sample.a;\n }\n\n // Premultiply alpha again\n sample.rgb = color.rgb * sample.a;\n\n // alpha user alpha\n sample *= alpha;\n\n gl_FragColor = sample;\n}",U=function(e){function n(n){n&&n.constructor!==Object&&(console.warn("DropShadowFilter now uses options instead of (rotation, distance, blur, color, alpha)"),n={rotation:n},void 0!==arguments[1]&&(n.distance=arguments[1]),void 0!==arguments[2]&&(n.blur=arguments[2]),void 0!==arguments[3]&&(n.color=arguments[3]),void 0!==arguments[4]&&(n.alpha=arguments[4])),n=Object.assign({rotation:45,distance:5,color:0,alpha:.5,shadowOnly:!1,kernels:null,blur:2,quality:3,pixelSize:1,resolution:t.settings.RESOLUTION},n),e.call(this);var r=n.kernels,o=n.blur,i=n.quality,l=n.pixelSize,s=n.resolution;this._tintFilter=new t.Filter(Y,Q),this._tintFilter.uniforms.color=new Float32Array(4),this._tintFilter.resolution=s,this._blurFilter=r?new a(r):new a(o,i),this.pixelSize=l,this.resolution=s,this.targetTransform=new t.Matrix;var u=n.shadowOnly,c=n.rotation,f=n.distance,h=n.alpha,p=n.color;this.shadowOnly=u,this.rotation=c,this.distance=f,this.alpha=h,this.color=p,this._updatePadding()}e&&(n.__proto__=e),n.prototype=Object.create(e&&e.prototype),n.prototype.constructor=n;var r={resolution:{configurable:!0},distance:{configurable:!0},rotation:{configurable:!0},alpha:{configurable:!0},color:{configurable:!0},kernels:{configurable:!0},blur:{configurable:!0},quality:{configurable:!0},pixelSize:{configurable:!0}};return n.prototype.apply=function(e,t,n,r){var o=e.getRenderTarget();o.transform=this.targetTransform,this._tintFilter.apply(e,t,o,!0),o.transform=null,this._blurFilter.apply(e,o,n,r),!0!==this.shadowOnly&&e.applyFilter(this,t,n,!1),e.returnRenderTarget(o)},n.prototype._updatePadding=function(){this.padding=this.distance+2*this.blur},n.prototype._updateTargetTransform=function(){this.targetTransform.tx=this.distance*Math.cos(this.angle),this.targetTransform.ty=this.distance*Math.sin(this.angle)},r.resolution.get=function(){return this._resolution},r.resolution.set=function(e){this._resolution=e,this._tintFilter&&(this._tintFilter.resolution=e),this._blurFilter&&(this._blurFilter.resolution=e)},r.distance.get=function(){return this._distance},r.distance.set=function(e){this._distance=e,this._updatePadding(),this._updateTargetTransform()},r.rotation.get=function(){return this.angle/t.DEG_TO_RAD},r.rotation.set=function(e){this.angle=e*t.DEG_TO_RAD,this._updateTargetTransform()},r.alpha.get=function(){return this._tintFilter.uniforms.alpha},r.alpha.set=function(e){this._tintFilter.uniforms.alpha=e},r.color.get=function(){return t.utils.rgb2hex(this._tintFilter.uniforms.color)},r.color.set=function(e){t.utils.hex2rgb(e,this._tintFilter.uniforms.color)},r.kernels.get=function(){return this._blurFilter.kernels},r.kernels.set=function(e){this._blurFilter.kernels=e},r.blur.get=function(){return this._blurFilter.blur},r.blur.set=function(e){this._blurFilter.blur=e,this._updatePadding()},r.quality.get=function(){return this._blurFilter.quality},r.quality.set=function(e){this._blurFilter.quality=e},r.pixelSize.get=function(){return this._blurFilter.pixelSize},r.pixelSize.set=function(e){this._blurFilter.pixelSize=e},Object.defineProperties(n.prototype,r),n}(t.Filter),Z=n,V="precision mediump float;\n\nvarying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\nuniform float strength;\nuniform vec4 filterArea;\n\n\nvoid main(void)\n{\n\tvec2 onePixel = vec2(1.0 / filterArea);\n\n\tvec4 color;\n\n\tcolor.rgb = vec3(0.5);\n\n\tcolor -= texture2D(uSampler, vTextureCoord - onePixel) * strength;\n\tcolor += texture2D(uSampler, vTextureCoord + onePixel) * strength;\n\n\tcolor.rgb = vec3((color.r + color.g + color.b) / 3.0);\n\n\tfloat alpha = texture2D(uSampler, vTextureCoord).a;\n\n\tgl_FragColor = vec4(color.rgb * alpha, alpha);\n}\n",H=function(e){function t(t){void 0===t&&(t=5),e.call(this,Z,V),this.strength=t}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var n={strength:{configurable:!0}};return n.strength.get=function(){return this.uniforms.strength},n.strength.set=function(e){this.uniforms.strength=e},Object.defineProperties(t.prototype,n),t}(t.Filter),$=n,J="// precision highp float;\n\nvarying vec2 vTextureCoord;\nuniform sampler2D uSampler;\n\nuniform vec4 filterArea;\nuniform vec4 filterClamp;\nuniform vec2 dimensions;\nuniform float aspect;\n\nuniform sampler2D displacementMap;\nuniform float offset;\nuniform float sinDir;\nuniform float cosDir;\nuniform int fillMode;\n\nuniform float seed;\nuniform vec2 red;\nuniform vec2 green;\nuniform vec2 blue;\n\nconst int TRANSPARENT = 0;\nconst int ORIGINAL = 1;\nconst int LOOP = 2;\nconst int CLAMP = 3;\nconst int MIRROR = 4;\n\nvoid main(void)\n{\n vec2 coord = (vTextureCoord * filterArea.xy) / dimensions;\n\n if (coord.x > 1.0 || coord.y > 1.0) {\n return;\n }\n\n float cx = coord.x - 0.5;\n float cy = (coord.y - 0.5) * aspect;\n float ny = (-sinDir * cx + cosDir * cy) / aspect + 0.5;\n\n // displacementMap: repeat\n // ny = ny > 1.0 ? ny - 1.0 : (ny < 0.0 ? 1.0 + ny : ny);\n\n // displacementMap: mirror\n ny = ny > 1.0 ? 2.0 - ny : (ny < 0.0 ? -ny : ny);\n\n vec4 dc = texture2D(displacementMap, vec2(0.5, ny));\n\n float displacement = (dc.r - dc.g) * (offset / filterArea.x);\n\n coord = vTextureCoord + vec2(cosDir * displacement, sinDir * displacement * aspect);\n\n if (fillMode == CLAMP) {\n coord = clamp(coord, filterClamp.xy, filterClamp.zw);\n } else {\n if( coord.x > filterClamp.z ) {\n if (fillMode == ORIGINAL) {\n gl_FragColor = texture2D(uSampler, vTextureCoord);\n return;\n } else if (fillMode == LOOP) {\n coord.x -= filterClamp.z;\n } else if (fillMode == MIRROR) {\n coord.x = filterClamp.z * 2.0 - coord.x;\n } else {\n gl_FragColor = vec4(0., 0., 0., 0.);\n return;\n }\n } else if( coord.x < filterClamp.x ) {\n if (fillMode == ORIGINAL) {\n gl_FragColor = texture2D(uSampler, vTextureCoord);\n return;\n } else if (fillMode == LOOP) {\n coord.x += filterClamp.z;\n } else if (fillMode == MIRROR) {\n coord.x *= -filterClamp.z;\n } else {\n gl_FragColor = vec4(0., 0., 0., 0.);\n return;\n }\n }\n\n if( coord.y > filterClamp.w ) {\n if (fillMode == ORIGINAL) {\n gl_FragColor = texture2D(uSampler, vTextureCoord);\n return;\n } else if (fillMode == LOOP) {\n coord.y -= filterClamp.w;\n } else if (fillMode == MIRROR) {\n coord.y = filterClamp.w * 2.0 - coord.y;\n } else {\n gl_FragColor = vec4(0., 0., 0., 0.);\n return;\n }\n } else if( coord.y < filterClamp.y ) {\n if (fillMode == ORIGINAL) {\n gl_FragColor = texture2D(uSampler, vTextureCoord);\n return;\n } else if (fillMode == LOOP) {\n coord.y += filterClamp.w;\n } else if (fillMode == MIRROR) {\n coord.y *= -filterClamp.w;\n } else {\n gl_FragColor = vec4(0., 0., 0., 0.);\n return;\n }\n }\n }\n\n gl_FragColor.r = texture2D(uSampler, coord + red * (1.0 - seed * 0.4) / filterArea.xy).r;\n gl_FragColor.g = texture2D(uSampler, coord + green * (1.0 - seed * 0.3) / filterArea.xy).g;\n gl_FragColor.b = texture2D(uSampler, coord + blue * (1.0 - seed * 0.2) / filterArea.xy).b;\n gl_FragColor.a = texture2D(uSampler, coord).a;\n}\n",ee=function(e){function n(n){void 0===n&&(n={}),e.call(this,$,J),this.uniforms.dimensions=new Float32Array(2),n=Object.assign({slices:5,offset:100,direction:0,fillMode:0,average:!1,seed:0,red:[0,0],green:[0,0],blue:[0,0],minSize:8,sampleSize:512},n),this.direction=n.direction,this.red=n.red,this.green=n.green,this.blue=n.blue,this.offset=n.offset,this.fillMode=n.fillMode,this.average=n.average,this.seed=n.seed,this.minSize=n.minSize,this.sampleSize=n.sampleSize,this._canvas=document.createElement("canvas"),this._canvas.width=4,this._canvas.height=this.sampleSize,this.texture=t.Texture.fromCanvas(this._canvas,t.SCALE_MODES.NEAREST),this._slices=0,this.slices=n.slices}e&&(n.__proto__=e),n.prototype=Object.create(e&&e.prototype),n.prototype.constructor=n;var r={sizes:{configurable:!0},offsets:{configurable:!0},slices:{configurable:!0},direction:{configurable:!0},red:{configurable:!0},green:{configurable:!0},blue:{configurable:!0}};return n.prototype.apply=function(e,t,n,r){var o=t.sourceFrame.width,i=t.sourceFrame.height;this.uniforms.dimensions[0]=o,this.uniforms.dimensions[1]=i,this.uniforms.aspect=i/o,this.uniforms.seed=this.seed,this.uniforms.offset=this.offset,this.uniforms.fillMode=this.fillMode,e.applyFilter(this,t,n,r)},n.prototype._randomizeSizes=function(){var e=this._sizes,t=this._slices-1,n=this.sampleSize,r=Math.min(this.minSize/n,.9/this._slices);if(this.average){for(var o=this._slices,i=1,l=0;l<t;l++){var s=i/(o-l),a=Math.max(s*(1-.6*Math.random()),r);e[l]=a,i-=a}e[t]=i}else{for(var u=1,c=Math.sqrt(1/this._slices),f=0;f<t;f++){var h=Math.max(c*u*Math.random(),r);e[f]=h,u-=h}e[t]=u}this.shuffle()},n.prototype.shuffle=function(){for(var e=this._sizes,t=this._slices-1;t>0;t--){var n=Math.random()*t>>0,r=e[t];e[t]=e[n],e[n]=r}},n.prototype._randomizeOffsets=function(){for(var e=0;e<this._slices;e++)this._offsets[e]=Math.random()*(Math.random()<.5?-1:1)},n.prototype.refresh=function(){this._randomizeSizes(),this._randomizeOffsets(),this.redraw()},n.prototype.redraw=function(){var e,t=this.sampleSize,n=this.texture,r=this._canvas.getContext("2d");r.clearRect(0,0,8,t);for(var o=0,i=0;i<this._slices;i++){e=Math.floor(256*this._offsets[i]);var l=this._sizes[i]*t,s=e>0?e:0,a=e<0?-e:0;r.fillStyle="rgba("+s+", "+a+", 0, 1)",r.fillRect(0,o>>0,t,l+1>>0),o+=l}n.baseTexture.update(),this.uniforms.displacementMap=n},r.sizes.set=function(e){for(var t=Math.min(this._slices,e.length),n=0;n<t;n++)this._sizes[n]=e[n]},r.sizes.get=function(){return this._sizes},r.offsets.set=function(e){for(var t=Math.min(this._slices,e.length),n=0;n<t;n++)this._offsets[n]=e[n]},r.offsets.get=function(){return this._offsets},r.slices.get=function(){return this._slices},r.slices.set=function(e){this._slices!==e&&(this._slices=e,this.uniforms.slices=e,this._sizes=this.uniforms.slicesWidth=new Float32Array(e),this._offsets=this.uniforms.slicesOffset=new Float32Array(e),this.refresh())},r.direction.get=function(){return this._direction},r.direction.set=function(e){if(this._direction!==e){this._direction=e;var n=e*t.DEG_TO_RAD;this.uniforms.sinDir=Math.sin(n),this.uniforms.cosDir=Math.cos(n)}},r.red.get=function(){return this.uniforms.red},r.red.set=function(e){this.uniforms.red=e},r.green.get=function(){return this.uniforms.green},r.green.set=function(e){this.uniforms.green=e},r.blue.get=function(){return this.uniforms.blue},r.blue.set=function(e){this.uniforms.blue=e},n.prototype.destroy=function(){this.texture.destroy(!0),this.texture=null,this._canvas=null,this.red=null,this.green=null,this.blue=null,this._sizes=null,this._offsets=null},Object.defineProperties(n.prototype,r),n}(t.Filter);ee.TRANSPARENT=0,ee.ORIGINAL=1,ee.LOOP=2,ee.CLAMP=3,ee.MIRROR=4;var te=n,ne="varying vec2 vTextureCoord;\nvarying vec4 vColor;\n\nuniform sampler2D uSampler;\n\nuniform float distance;\nuniform float outerStrength;\nuniform float innerStrength;\nuniform vec4 glowColor;\nuniform vec4 filterArea;\nuniform vec4 filterClamp;\nconst float PI = 3.14159265358979323846264;\n\nvoid main(void) {\n vec2 px = vec2(1.0 / filterArea.x, 1.0 / filterArea.y);\n vec4 ownColor = texture2D(uSampler, vTextureCoord);\n vec4 curColor;\n float totalAlpha = 0.0;\n float maxTotalAlpha = 0.0;\n float cosAngle;\n float sinAngle;\n vec2 displaced;\n for (float angle = 0.0; angle <= PI * 2.0; angle += %QUALITY_DIST%) {\n cosAngle = cos(angle);\n sinAngle = sin(angle);\n for (float curDistance = 1.0; curDistance <= %DIST%; curDistance++) {\n displaced.x = vTextureCoord.x + cosAngle * curDistance * px.x;\n displaced.y = vTextureCoord.y + sinAngle * curDistance * px.y;\n curColor = texture2D(uSampler, clamp(displaced, filterClamp.xy, filterClamp.zw));\n totalAlpha += (distance - curDistance) * curColor.a;\n maxTotalAlpha += (distance - curDistance);\n }\n }\n maxTotalAlpha = max(maxTotalAlpha, 0.0001);\n\n ownColor.a = max(ownColor.a, 0.0001);\n ownColor.rgb = ownColor.rgb / ownColor.a;\n float outerGlowAlpha = (totalAlpha / maxTotalAlpha) * outerStrength * (1. - ownColor.a);\n float innerGlowAlpha = ((maxTotalAlpha - totalAlpha) / maxTotalAlpha) * innerStrength * ownColor.a;\n float resultAlpha = (ownColor.a + outerGlowAlpha);\n gl_FragColor = vec4(mix(mix(ownColor.rgb, glowColor.rgb, innerGlowAlpha / ownColor.a), glowColor.rgb, outerGlowAlpha / resultAlpha) * resultAlpha, resultAlpha);\n}\n",re=function(e){function n(t,n,r,o,i){void 0===t&&(t=10),void 0===n&&(n=4),void 0===r&&(r=0),void 0===o&&(o=16777215),void 0===i&&(i=.1),e.call(this,te,ne.replace(/%QUALITY_DIST%/gi,""+(1/i/t).toFixed(7)).replace(/%DIST%/gi,""+t.toFixed(7))),this.uniforms.glowColor=new Float32Array([0,0,0,1]),this.distance=t,this.color=o,this.outerStrength=n,this.innerStrength=r}e&&(n.__proto__=e),n.prototype=Object.create(e&&e.prototype),n.prototype.constructor=n;var r={color:{configurable:!0},distance:{configurable:!0},outerStrength:{configurable:!0},innerStrength:{configurable:!0}};return r.color.get=function(){return t.utils.rgb2hex(this.uniforms.glowColor)},r.color.set=function(e){t.utils.hex2rgb(e,this.uniforms.glowColor)},r.distance.get=function(){return this.uniforms.distance},r.distance.set=function(e){this.uniforms.distance=e},r.outerStrength.get=function(){return this.uniforms.outerStrength},r.outerStrength.set=function(e){this.uniforms.outerStrength=e},r.innerStrength.get=function(){return this.uniforms.innerStrength},r.innerStrength.set=function(e){this.uniforms.innerStrength=e},Object.defineProperties(n.prototype,r),n}(t.Filter),oe=n,ie="vec3 mod289(vec3 x)\n{\n return x - floor(x * (1.0 / 289.0)) * 289.0;\n}\nvec4 mod289(vec4 x)\n{\n return x - floor(x * (1.0 / 289.0)) * 289.0;\n}\nvec4 permute(vec4 x)\n{\n return mod289(((x * 34.0) + 1.0) * x);\n}\nvec4 taylorInvSqrt(vec4 r)\n{\n return 1.79284291400159 - 0.85373472095314 * r;\n}\nvec3 fade(vec3 t)\n{\n return t * t * t * (t * (t * 6.0 - 15.0) + 10.0);\n}\n// Classic Perlin noise, periodic variant\nfloat pnoise(vec3 P, vec3 rep)\n{\n vec3 Pi0 = mod(floor(P), rep); // Integer part, modulo period\n vec3 Pi1 = mod(Pi0 + vec3(1.0), rep); // Integer part + 1, mod period\n Pi0 = mod289(Pi0);\n Pi1 = mod289(Pi1);\n vec3 Pf0 = fract(P); // Fractional part for interpolation\n vec3 Pf1 = Pf0 - vec3(1.0); // Fractional part - 1.0\n vec4 ix = vec4(Pi0.x, Pi1.x, Pi0.x, Pi1.x);\n vec4 iy = vec4(Pi0.yy, Pi1.yy);\n vec4 iz0 = Pi0.zzzz;\n vec4 iz1 = Pi1.zzzz;\n vec4 ixy = permute(permute(ix) + iy);\n vec4 ixy0 = permute(ixy + iz0);\n vec4 ixy1 = permute(ixy + iz1);\n vec4 gx0 = ixy0 * (1.0 / 7.0);\n vec4 gy0 = fract(floor(gx0) * (1.0 / 7.0)) - 0.5;\n gx0 = fract(gx0);\n vec4 gz0 = vec4(0.5) - abs(gx0) - abs(gy0);\n vec4 sz0 = step(gz0, vec4(0.0));\n gx0 -= sz0 * (step(0.0, gx0) - 0.5);\n gy0 -= sz0 * (step(0.0, gy0) - 0.5);\n vec4 gx1 = ixy1 * (1.0 / 7.0);\n vec4 gy1 = fract(floor(gx1) * (1.0 / 7.0)) - 0.5;\n gx1 = fract(gx1);\n vec4 gz1 = vec4(0.5) - abs(gx1) - abs(gy1);\n vec4 sz1 = step(gz1, vec4(0.0));\n gx1 -= sz1 * (step(0.0, gx1) - 0.5);\n gy1 -= sz1 * (step(0.0, gy1) - 0.5);\n vec3 g000 = vec3(gx0.x, gy0.x, gz0.x);\n vec3 g100 = vec3(gx0.y, gy0.y, gz0.y);\n vec3 g010 = vec3(gx0.z, gy0.z, gz0.z);\n vec3 g110 = vec3(gx0.w, gy0.w, gz0.w);\n vec3 g001 = vec3(gx1.x, gy1.x, gz1.x);\n vec3 g101 = vec3(gx1.y, gy1.y, gz1.y);\n vec3 g011 = vec3(gx1.z, gy1.z, gz1.z);\n vec3 g111 = vec3(gx1.w, gy1.w, gz1.w);\n vec4 norm0 = taylorInvSqrt(vec4(dot(g000, g000), dot(g010, g010), dot(g100, g100), dot(g110, g110)));\n g000 *= norm0.x;\n g010 *= norm0.y;\n g100 *= norm0.z;\n g110 *= norm0.w;\n vec4 norm1 = taylorInvSqrt(vec4(dot(g001, g001), dot(g011, g011), dot(g101, g101), dot(g111, g111)));\n g001 *= norm1.x;\n g011 *= norm1.y;\n g101 *= norm1.z;\n g111 *= norm1.w;\n float n000 = dot(g000, Pf0);\n float n100 = dot(g100, vec3(Pf1.x, Pf0.yz));\n float n010 = dot(g010, vec3(Pf0.x, Pf1.y, Pf0.z));\n float n110 = dot(g110, vec3(Pf1.xy, Pf0.z));\n float n001 = dot(g001, vec3(Pf0.xy, Pf1.z));\n float n101 = dot(g101, vec3(Pf1.x, Pf0.y, Pf1.z));\n float n011 = dot(g011, vec3(Pf0.x, Pf1.yz));\n float n111 = dot(g111, Pf1);\n vec3 fade_xyz = fade(Pf0);\n vec4 n_z = mix(vec4(n000, n100, n010, n110), vec4(n001, n101, n011, n111), fade_xyz.z);\n vec2 n_yz = mix(n_z.xy, n_z.zw, fade_xyz.y);\n float n_xyz = mix(n_yz.x, n_yz.y, fade_xyz.x);\n return 2.2 * n_xyz;\n}\nfloat turb(vec3 P, vec3 rep, float lacunarity, float gain)\n{\n float sum = 0.0;\n float sc = 1.0;\n float totalgain = 1.0;\n for (float i = 0.0; i < 6.0; i++)\n {\n sum += totalgain * pnoise(P * sc, rep);\n sc *= lacunarity;\n totalgain *= gain;\n }\n return abs(sum);\n}\n",le="varying vec2 vTextureCoord;\nuniform sampler2D uSampler;\nuniform vec4 filterArea;\nuniform vec2 dimensions;\n\nuniform vec2 light;\nuniform bool parallel;\nuniform float aspect;\n\nuniform float gain;\nuniform float lacunarity;\nuniform float time;\n\n${perlin}\n\nvoid main(void) {\n vec2 coord = vTextureCoord * filterArea.xy / dimensions.xy;\n\n float d;\n\n if (parallel) {\n float _cos = light.x;\n float _sin = light.y;\n d = (_cos * coord.x) + (_sin * coord.y * aspect);\n } else {\n float dx = coord.x - light.x / dimensions.x;\n float dy = (coord.y - light.y / dimensions.y) * aspect;\n float dis = sqrt(dx * dx + dy * dy) + 0.00001;\n d = dy / dis;\n }\n\n vec3 dir = vec3(d, d, 0.0);\n\n float noise = turb(dir + vec3(time, 0.0, 62.1 + time) * 0.05, vec3(480.0, 320.0, 480.0), lacunarity, gain);\n noise = mix(noise, 0.0, 0.3);\n //fade vertically.\n vec4 mist = vec4(noise, noise, noise, 1.0) * (1.0 - coord.y);\n mist.a = 1.0;\n\n gl_FragColor = texture2D(uSampler, vTextureCoord) + mist;\n}\n",se=function(e){function n(n){e.call(this,oe,le.replace("${perlin}",ie)),this.uniforms.dimensions=new Float32Array(2),"number"==typeof n&&(console.warn("GodrayFilter now uses options instead of (angle, gain, lacunarity, time)"),n={angle:n},void 0!==arguments[1]&&(n.gain=arguments[1]),void 0!==arguments[2]&&(n.lacunarity=arguments[2]),void 0!==arguments[3]&&(n.time=arguments[3])),n=Object.assign({angle:30,gain:.5,lacunarity:2.5,time:0,parallel:!0,center:[0,0]},n),this._angleLight=new t.Point,this.angle=n.angle,this.gain=n.gain,this.lacunarity=n.lacunarity,this.parallel=n.parallel,this.center=n.center,this.time=n.time}e&&(n.__proto__=e),n.prototype=Object.create(e&&e.prototype),n.prototype.constructor=n;var r={angle:{configurable:!0},gain:{configurable:!0},lacunarity:{configurable:!0}};return n.prototype.apply=function(e,t,n,r){var o=t.sourceFrame,i=o.width,l=o.height;this.uniforms.light=this.parallel?this._angleLight:this.center,this.uniforms.parallel=this.parallel,this.uniforms.dimensions[0]=i,this.uniforms.dimensions[1]=l,this.uniforms.aspect=l/i,this.uniforms.time=this.time,e.applyFilter(this,t,n,r)},r.angle.get=function(){return this._angle},r.angle.set=function(e){this._angle=e;var n=e*t.DEG_TO_RAD;this._angleLight.x=Math.cos(n),this._angleLight.y=Math.sin(n)},r.gain.get=function(){return this.uniforms.gain},r.gain.set=function(e){this.uniforms.gain=e},r.lacunarity.get=function(){return this.uniforms.lacunarity},r.lacunarity.set=function(e){this.uniforms.lacunarity=e},Object.defineProperties(n.prototype,r),n}(t.Filter),ae=n,ue="varying vec2 vTextureCoord;\nuniform sampler2D uSampler;\nuniform vec4 filterArea;\n\nuniform vec2 uVelocity;\nuniform int uKernelSize;\nuniform float uOffset;\n\nconst int MAX_KERNEL_SIZE = 2048;\n\n// Notice:\n// the perfect way:\n// int kernelSize = min(uKernelSize, MAX_KERNELSIZE);\n// BUT in real use-case , uKernelSize < MAX_KERNELSIZE almost always.\n// So use uKernelSize directly.\n\nvoid main(void)\n{\n vec4 color = texture2D(uSampler, vTextureCoord);\n\n if (uKernelSize == 0)\n {\n gl_FragColor = color;\n return;\n }\n\n vec2 velocity = uVelocity / filterArea.xy;\n float offset = -uOffset / length(uVelocity) - 0.5;\n int k = uKernelSize - 1;\n\n for(int i = 0; i < MAX_KERNEL_SIZE - 1; i++) {\n if (i == k) {\n break;\n }\n vec2 bias = velocity * (float(i) / float(k) + offset);\n color += texture2D(uSampler, vTextureCoord + bias);\n }\n gl_FragColor = color / float(uKernelSize);\n}\n",ce=function(e){function n(n,r,o){void 0===n&&(n=[0,0]),void 0===r&&(r=5),void 0===o&&(o=0),e.call(this,ae,ue),this.uniforms.uVelocity=new Float32Array(2),this._velocity=new t.ObservablePoint(this.velocityChanged,this),this.velocity=n,this.kernelSize=r,this.offset=o}e&&(n.__proto__=e),n.prototype=Object.create(e&&e.prototype),n.prototype.constructor=n;var r={velocity:{configurable:!0},offset:{configurable:!0}};return n.prototype.apply=function(e,t,n,r){var o=this.velocity,i=o.x,l=o.y;this.uniforms.uKernelSize=0!==i||0!==l?this.kernelSize:0,e.applyFilter(this,t,n,r)},r.velocity.set=function(e){Array.isArray(e)?this._velocity.set(e[0],e[1]):(e instanceof t.Point||e instanceof t.ObservablePoint)&&this._velocity.copy(e)},r.velocity.get=function(){return this._velocity},n.prototype.velocityChanged=function(){this.uniforms.uVelocity[0]=this._velocity.x,this.uniforms.uVelocity[1]=this._velocity.y},r.offset.set=function(e){this.uniforms.uOffset=e},r.offset.get=function(){return this.uniforms.uOffset},Object.defineProperties(n.prototype,r),n}(t.Filter),fe=n,he="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",pe=function(e){function n(t,n,r){void 0===n&&(n=.05),void 0===r&&(r=null),r=r||t.length,e.call(this,fe,he.replace(/%maxColors%/g,r)),this.epsilon=n,this._maxColors=r,this._replacements=null,this.uniforms.originalColors=new Float32Array(3*r),this.uniforms.targetColors=new Float32Array(3*r),this.replacements=t}e&&(n.__proto__=e),n.prototype=Object.create(e&&e.prototype),n.prototype.constructor=n;var r={replacements:{configurable:!0},maxColors:{configurable:!0},epsilon:{configurable:!0}};return r.replacements.set=function(e){var n=this.uniforms.originalColors,r=this.uniforms.targetColors,o=e.length;if(o>this._maxColors)throw"Length of replacements ("+o+") exceeds the maximum colors length ("+this._maxColors+")";n[3*o]=-1;for(var i=0;i<o;i++){var l=e[i],s=l[0];"number"==typeof s?s=t.utils.hex2rgb(s):l[0]=t.utils.rgb2hex(s),n[3*i]=s[0],n[3*i+1]=s[1],n[3*i+2]=s[2];var a=l[1];"number"==typeof a?a=t.utils.hex2rgb(a):l[1]=t.utils.rgb2hex(a),r[3*i]=a[0],r[3*i+1]=a[1],r[3*i+2]=a[2]}this._replacements=e},r.replacements.get=function(){return this._replacements},n.prototype.refresh=function(){this.replacements=this._replacements},r.maxColors.get=function(){return this._maxColors},r.epsilon.set=function(e){this.uniforms.epsilon=e},r.epsilon.get=function(){return this.uniforms.epsilon},Object.defineProperties(n.prototype,r),n}(t.Filter),de=n,me="varying vec2 vTextureCoord;\nuniform sampler2D uSampler;\nuniform vec4 filterArea;\nuniform vec2 dimensions;\n\nuniform float sepia;\nuniform float noise;\nuniform float noiseSize;\nuniform float scratch;\nuniform float scratchDensity;\nuniform float scratchWidth;\nuniform float vignetting;\nuniform float vignettingAlpha;\nuniform float vignettingBlur;\nuniform float seed;\n\nconst float SQRT_2 = 1.414213;\nconst vec3 SEPIA_RGB = vec3(112.0 / 255.0, 66.0 / 255.0, 20.0 / 255.0);\n\nfloat rand(vec2 co) {\n return fract(sin(dot(co.xy, vec2(12.9898, 78.233))) * 43758.5453);\n}\n\nvec3 Overlay(vec3 src, vec3 dst)\n{\n // if (dst <= 0.5) then: 2 * src * dst\n // if (dst > 0.5) then: 1 - 2 * (1 - dst) * (1 - src)\n return vec3((dst.x <= 0.5) ? (2.0 * src.x * dst.x) : (1.0 - 2.0 * (1.0 - dst.x) * (1.0 - src.x)),\n (dst.y <= 0.5) ? (2.0 * src.y * dst.y) : (1.0 - 2.0 * (1.0 - dst.y) * (1.0 - src.y)),\n (dst.z <= 0.5) ? (2.0 * src.z * dst.z) : (1.0 - 2.0 * (1.0 - dst.z) * (1.0 - src.z)));\n}\n\n\nvoid main()\n{\n gl_FragColor = texture2D(uSampler, vTextureCoord);\n vec3 color = gl_FragColor.rgb;\n\n if (sepia > 0.0)\n {\n float gray = (color.x + color.y + color.z) / 3.0;\n vec3 grayscale = vec3(gray);\n\n color = Overlay(SEPIA_RGB, grayscale);\n\n color = grayscale + sepia * (color - grayscale);\n }\n\n vec2 coord = vTextureCoord * filterArea.xy / dimensions.xy;\n\n if (vignetting > 0.0)\n {\n float outter = SQRT_2 - vignetting * SQRT_2;\n vec2 dir = vec2(vec2(0.5, 0.5) - coord);\n dir.y *= dimensions.y / dimensions.x;\n float darker = clamp((outter - length(dir) * SQRT_2) / ( 0.00001 + vignettingBlur * SQRT_2), 0.0, 1.0);\n color.rgb *= darker + (1.0 - darker) * (1.0 - vignettingAlpha);\n }\n\n if (scratchDensity > seed && scratch != 0.0)\n {\n float phase = seed * 256.0;\n float s = mod(floor(phase), 2.0);\n float dist = 1.0 / scratchDensity;\n float d = distance(coord, vec2(seed * dist, abs(s - seed * dist)));\n if (d < seed * 0.6 + 0.4)\n {\n highp float period = scratchDensity * 10.0;\n\n float xx = coord.x * period + phase;\n float aa = abs(mod(xx, 0.5) * 4.0);\n float bb = mod(floor(xx / 0.5), 2.0);\n float yy = (1.0 - bb) * aa + bb * (2.0 - aa);\n\n float kk = 2.0 * period;\n float dw = scratchWidth / dimensions.x * (0.75 + seed);\n float dh = dw * kk;\n\n float tine = (yy - (2.0 - dh));\n\n if (tine > 0.0) {\n float _sign = sign(scratch);\n\n tine = s * tine / period + scratch + 0.1;\n tine = clamp(tine + 1.0, 0.5 + _sign * 0.5, 1.5 + _sign * 0.5);\n\n color.rgb *= tine;\n }\n }\n }\n\n if (noise > 0.0 && noiseSize > 0.0)\n {\n vec2 pixelCoord = vTextureCoord.xy * filterArea.xy;\n pixelCoord.x = floor(pixelCoord.x / noiseSize);\n pixelCoord.y = floor(pixelCoord.y / noiseSize);\n // vec2 d = pixelCoord * noiseSize * vec2(1024.0 + seed * 512.0, 1024.0 - seed * 512.0);\n // float _noise = snoise(d) * 0.5;\n float _noise = rand(pixelCoord * noiseSize * seed) - 0.5;\n color += _noise * noise;\n }\n\n gl_FragColor.rgb = color;\n}\n",ge=function(e){function t(t,n){void 0===n&&(n=0),e.call(this,de,me),this.uniforms.dimensions=new Float32Array(2),"number"==typeof t?(this.seed=t,t=null):this.seed=n,Object.assign(this,{sepia:.3,noise:.3,noiseSize:1,scratch:.5,scratchDensity:.3,scratchWidth:1,vignetting:.3,vignettingAlpha:1,vignettingBlur:.3},t)}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var n={sepia:{configurable:!0},noise:{configurable:!0},noiseSize:{configurable:!0},scratch:{configurable:!0},scratchDensity:{configurable:!0},scratchWidth:{configurable:!0},vignetting:{configurable:!0},vignettingAlpha:{configurable:!0},vignettingBlur:{configurable:!0}};return t.prototype.apply=function(e,t,n,r){this.uniforms.dimensions[0]=t.sourceFrame.width,this.uniforms.dimensions[1]=t.sourceFrame.height,this.uniforms.seed=this.seed,e.applyFilter(this,t,n,r)},n.sepia.set=function(e){this.uniforms.sepia=e},n.sepia.get=function(){return this.uniforms.sepia},n.noise.set=function(e){this.uniforms.noise=e},n.noise.get=function(){return this.uniforms.noise},n.noiseSize.set=function(e){this.uniforms.noiseSize=e},n.noiseSize.get=function(){return this.uniforms.noiseSize},n.scratch.set=function(e){this.uniforms.scratch=e},n.scratch.get=function(){return this.uniforms.scratch},n.scratchDensity.set=function(e){this.uniforms.scratchDensity=e},n.scratchDensity.get=function(){return this.uniforms.scratchDensity},n.scratchWidth.set=function(e){this.uniforms.scratchWidth=e},n.scratchWidth.get=function(){return this.uniforms.scratchWidth},n.vignetting.set=function(e){this.uniforms.vignetting=e},n.vignetting.get=function(){return this.uniforms.vignetting},n.vignettingAlpha.set=function(e){this.uniforms.vignettingAlpha=e},n.vignettingAlpha.get=function(){return this.uniforms.vignettingAlpha},n.vignettingBlur.set=function(e){this.uniforms.vignettingBlur=e},n.vignettingBlur.get=function(){return this.uniforms.vignettingBlur},Object.defineProperties(t.prototype,n),t}(t.Filter),ve=n,xe="varying vec2 vTextureCoord;\nuniform sampler2D uSampler;\n\nuniform vec2 thickness;\nuniform vec4 outlineColor;\nuniform vec4 filterClamp;\n\nconst float DOUBLE_PI = 3.14159265358979323846264 * 2.;\n\nvoid main(void) {\n vec4 ownColor = texture2D(uSampler, vTextureCoord);\n vec4 curColor;\n float maxAlpha = 0.;\n vec2 displaced;\n for (float angle = 0.; angle <= DOUBLE_PI; angle += ${angleStep}) {\n displaced.x = vTextureCoord.x + thickness.x * cos(angle);\n displaced.y = vTextureCoord.y + thickness.y * sin(angle);\n curColor = texture2D(uSampler, clamp(displaced, filterClamp.xy, filterClamp.zw));\n maxAlpha = max(maxAlpha, curColor.a);\n }\n float resultAlpha = max(maxAlpha, ownColor.a);\n gl_FragColor = vec4((ownColor.rgb + outlineColor.rgb * (1. - ownColor.a)) * resultAlpha, resultAlpha);\n}\n",ye=function(e){function n(t,r,o){void 0===t&&(t=1),void 0===r&&(r=0),void 0===o&&(o=.1);var i=Math.max(o*n.MAX_SAMPLES,n.MIN_SAMPLES),l=(2*Math.PI/i).toFixed(7);e.call(this,ve,xe.replace(/\$\{angleStep\}/,l)),this.uniforms.thickness=new Float32Array([0,0]),this.thickness=t,this.uniforms.outlineColor=new Float32Array([0,0,0,1]),this.color=r,this.quality=o}e&&(n.__proto__=e),n.prototype=Object.create(e&&e.prototype),n.prototype.constructor=n;var r={color:{configurable:!0}};return n.prototype.apply=function(e,t,n,r){this.uniforms.thickness[0]=this.thickness/t.size.width,this.uniforms.thickness[1]=this.thickness/t.size.height,e.applyFilter(this,t,n,r)},r.color.get=function(){return t.utils.rgb2hex(this.uniforms.outlineColor)},r.color.set=function(e){t.utils.hex2rgb(e,this.uniforms.outlineColor)},Object.defineProperties(n.prototype,r),n}(t.Filter);ye.MIN_SAMPLES=1,ye.MAX_SAMPLES=100;var be=n,_e="precision mediump float;\n\nvarying vec2 vTextureCoord;\n\nuniform vec2 size;\nuniform sampler2D uSampler;\n\nuniform vec4 filterArea;\n\nvec2 mapCoord( vec2 coord )\n{\n coord *= filterArea.xy;\n coord += filterArea.zw;\n\n return coord;\n}\n\nvec2 unmapCoord( vec2 coord )\n{\n coord -= filterArea.zw;\n coord /= filterArea.xy;\n\n return coord;\n}\n\nvec2 pixelate(vec2 coord, vec2 size)\n{\n\treturn floor( coord / size ) * size;\n}\n\nvoid main(void)\n{\n vec2 coord = mapCoord(vTextureCoord);\n\n coord = pixelate(coord, size);\n\n coord = unmapCoord(coord);\n\n gl_FragColor = texture2D(uSampler, coord);\n}\n",Ce=function(e){function t(t){void 0===t&&(t=10),e.call(this,be,_e),this.size=t}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var n={size:{configurable:!0}};return n.size.get=function(){return this.uniforms.size},n.size.set=function(e){"number"==typeof e&&(e=[e,e]),this.uniforms.size=e},Object.defineProperties(t.prototype,n),t}(t.Filter),Se=n,Fe="varying vec2 vTextureCoord;\nuniform sampler2D uSampler;\nuniform vec4 filterArea;\n\nuniform float uRadian;\nuniform vec2 uCenter;\nuniform float uRadius;\nuniform int uKernelSize;\n\nconst int MAX_KERNEL_SIZE = 2048;\n\nvoid main(void)\n{\n vec4 color = texture2D(uSampler, vTextureCoord);\n\n if (uKernelSize == 0)\n {\n gl_FragColor = color;\n return;\n }\n\n float aspect = filterArea.y / filterArea.x;\n vec2 center = uCenter.xy / filterArea.xy;\n float gradient = uRadius / filterArea.x * 0.3;\n float radius = uRadius / filterArea.x - gradient * 0.5;\n int k = uKernelSize - 1;\n\n vec2 coord = vTextureCoord;\n vec2 dir = vec2(center - coord);\n float dist = length(vec2(dir.x, dir.y * aspect));\n\n float radianStep = uRadian;\n if (radius >= 0.0 && dist > radius) {\n float delta = dist - radius;\n float gap = gradient;\n float scale = 1.0 - abs(delta / gap);\n if (scale <= 0.0) {\n gl_FragColor = color;\n return;\n }\n radianStep *= scale;\n }\n radianStep /= float(k);\n\n float s = sin(radianStep);\n float c = cos(radianStep);\n mat2 rotationMatrix = mat2(vec2(c, -s), vec2(s, c));\n\n for(int i = 0; i < MAX_KERNEL_SIZE - 1; i++) {\n if (i == k) {\n break;\n }\n\n coord -= center;\n coord.y *= aspect;\n coord = rotationMatrix * coord;\n coord.y /= aspect;\n coord += center;\n\n vec4 sample = texture2D(uSampler, coord);\n\n // switch to pre-multiplied alpha to correctly blur transparent images\n // sample.rgb *= sample.a;\n\n color += sample;\n }\n\n gl_FragColor = color / float(uKernelSize);\n}\n",ze=function(e){function t(t,n,r,o){void 0===t&&(t=0),void 0===n&&(n=[0,0]),void 0===r&&(r=5),void 0===o&&(o=-1),e.call(this,Se,Fe),this._angle=0,this.angle=t,this.center=n,this.kernelSize=r,this.radius=o}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var n={angle:{configurable:!0},center:{configurable:!0},radius:{configurable:!0}};return t.prototype.apply=function(e,t,n,r){this.uniforms.uKernelSize=0!==this._angle?this.kernelSize:0,e.applyFilter(this,t,n,r)},n.angle.set=function(e){this._angle=e,this.uniforms.uRadian=e*Math.PI/180},n.angle.get=function(){return this._angle},n.center.get=function(){return this.uniforms.uCenter},n.center.set=function(e){this.uniforms.uCenter=e},n.radius.get=function(){return this.uniforms.uRadius},n.radius.set=function(e){(e<0||e===1/0)&&(e=-1),this.uniforms.uRadius=e},Object.defineProperties(t.prototype,n),t}(t.Filter),Ae=n,we="varying vec2 vTextureCoord;\nuniform sampler2D uSampler;\n\nuniform vec4 filterArea;\nuniform vec4 filterClamp;\nuniform vec2 dimensions;\n\nuniform bool mirror;\nuniform float boundary;\nuniform vec2 amplitude;\nuniform vec2 waveLength;\nuniform vec2 alpha;\nuniform float time;\n\nfloat rand(vec2 co) {\n return fract(sin(dot(co.xy, vec2(12.9898, 78.233))) * 43758.5453);\n}\n\nvoid main(void)\n{\n vec2 pixelCoord = vTextureCoord.xy * filterArea.xy;\n vec2 coord = pixelCoord / dimensions;\n\n if (coord.y < boundary) {\n gl_FragColor = texture2D(uSampler, vTextureCoord);\n return;\n }\n\n float k = (coord.y - boundary) / (1. - boundary + 0.0001);\n float areaY = boundary * dimensions.y / filterArea.y;\n float v = areaY + areaY - vTextureCoord.y;\n float y = mirror ? v : vTextureCoord.y;\n\n float _amplitude = ((amplitude.y - amplitude.x) * k + amplitude.x ) / filterArea.x;\n float _waveLength = ((waveLength.y - waveLength.x) * k + waveLength.x) / filterArea.y;\n float _alpha = (alpha.y - alpha.x) * k + alpha.x;\n\n float x = vTextureCoord.x + cos(v * 6.28 / _waveLength - time) * _amplitude;\n x = clamp(x, filterClamp.x, filterClamp.z);\n\n vec4 color = texture2D(uSampler, vec2(x, y));\n\n gl_FragColor = color * _alpha;\n}\n",Te=function(e){function t(t){e.call(this,Ae,we),this.uniforms.amplitude=new Float32Array(2),this.uniforms.waveLength=new Float32Array(2),this.uniforms.alpha=new Float32Array(2),this.uniforms.dimensions=new Float32Array(2),Object.assign(this,{mirror:!0,boundary:.5,amplitude:[0,20],waveLength:[30,100],alpha:[1,1],time:0},t)}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var n={mirror:{configurable:!0},boundary:{configurable:!0},amplitude:{configurable:!0},waveLength:{configurable:!0},alpha:{configurable:!0}};return t.prototype.apply=function(e,t,n,r){this.uniforms.dimensions[0]=t.sourceFrame.width,this.uniforms.dimensions[1]=t.sourceFrame.height,this.uniforms.time=this.time,e.applyFilter(this,t,n,r)},n.mirror.set=function(e){this.uniforms.mirror=e},n.mirror.get=function(){return this.uniforms.mirror},n.boundary.set=function(e){this.uniforms.boundary=e},n.boundary.get=function(){return this.uniforms.boundary},n.amplitude.set=function(e){this.uniforms.amplitude[0]=e[0],this.uniforms.amplitude[1]=e[1]},n.amplitude.get=function(){return this.uniforms.amplitude},n.waveLength.set=function(e){this.uniforms.waveLength[0]=e[0],this.uniforms.waveLength[1]=e[1]},n.waveLength.get=function(){return this.uniforms.waveLength},n.alpha.set=function(e){this.uniforms.alpha[0]=e[0],this.uniforms.alpha[1]=e[1]},n.alpha.get=function(){return this.uniforms.alpha},Object.defineProperties(t.prototype,n),t}(t.Filter),De=n,Oe="precision mediump float;\n\nvarying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\nuniform vec4 filterArea;\nuniform vec2 red;\nuniform vec2 green;\nuniform vec2 blue;\n\nvoid main(void)\n{\n gl_FragColor.r = texture2D(uSampler, vTextureCoord + red/filterArea.xy).r;\n gl_FragColor.g = texture2D(uSampler, vTextureCoord + green/filterArea.xy).g;\n gl_FragColor.b = texture2D(uSampler, vTextureCoord + blue/filterArea.xy).b;\n gl_FragColor.a = texture2D(uSampler, vTextureCoord).a;\n}\n",Pe=function(e){function t(t,n,r){void 0===t&&(t=[-10,0]),void 0===n&&(n=[0,10]),void 0===r&&(r=[0,0]),e.call(this,De,Oe),this.red=t,this.green=n,this.blue=r}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var n={red:{configurable:!0},green:{configurable:!0},blue:{configurable:!0}};return n.red.get=function(){return this.uniforms.red},n.red.set=function(e){this.uniforms.red=e},n.green.get=function(){return this.uniforms.green},n.green.set=function(e){this.uniforms.green=e},n.blue.get=function(){return this.uniforms.blue},n.blue.set=function(e){this.uniforms.blue=e},Object.defineProperties(t.prototype,n),t}(t.Filter),Me=n,Re="varying vec2 vTextureCoord;\nuniform sampler2D uSampler;\nuniform vec4 filterArea;\nuniform vec4 filterClamp;\n\nuniform vec2 center;\n\nuniform float amplitude;\nuniform float wavelength;\n// uniform float power;\nuniform float brightness;\nuniform float speed;\nuniform float radius;\n\nuniform float time;\n\nconst float PI = 3.14159;\n\nvoid main()\n{\n float halfWavelength = wavelength * 0.5 / filterArea.x;\n float maxRadius = radius / filterArea.x;\n float currentRadius = time * speed / filterArea.x;\n\n float fade = 1.0;\n\n if (maxRadius > 0.0) {\n if (currentRadius > maxRadius) {\n gl_FragColor = texture2D(uSampler, vTextureCoord);\n return;\n }\n fade = 1.0 - pow(currentRadius / maxRadius, 2.0);\n }\n\n vec2 dir = vec2(vTextureCoord - center / filterArea.xy);\n dir.y *= filterArea.y / filterArea.x;\n float dist = length(dir);\n\n if (dist <= 0.0 || dist < currentRadius - halfWavelength || dist > currentRadius + halfWavelength) {\n gl_FragColor = texture2D(uSampler, vTextureCoord);\n return;\n }\n\n vec2 diffUV = normalize(dir);\n\n float diff = (dist - currentRadius) / halfWavelength;\n\n float p = 1.0 - pow(abs(diff), 2.0);\n\n // float powDiff = diff * pow(p, 2.0) * ( amplitude * fade );\n float powDiff = 1.25 * sin(diff * PI) * p * ( amplitude * fade );\n\n vec2 offset = diffUV * powDiff / filterArea.xy;\n\n // Do clamp :\n vec2 coord = vTextureCoord + offset;\n vec2 clampedCoord = clamp(coord, filterClamp.xy, filterClamp.zw);\n vec4 color = texture2D(uSampler, clampedCoord);\n if (coord != clampedCoord) {\n color *= max(0.0, 1.0 - length(coord - clampedCoord));\n }\n\n // No clamp :\n // gl_FragColor = texture2D(uSampler, vTextureCoord + offset);\n\n color.rgb *= 1.0 + (brightness - 1.0) * p * fade;\n\n gl_FragColor = color;\n}\n",je=function(e){function t(t,n,r){void 0===t&&(t=[0,0]),void 0===n&&(n={}),void 0===r&&(r=0),e.call(this,Me,Re),this.center=t,Array.isArray(n)&&(console.warn("Deprecated Warning: ShockwaveFilter params Array has been changed to options Object."),n={}),n=Object.assign({amplitude:30,wavelength:160,brightness:1,speed:500,radius:-1},n),this.amplitude=n.amplitude,this.wavelength=n.wavelength,this.brightness=n.brightness,this.speed=n.speed,this.radius=n.radius,this.time=r}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var n={center:{configurable:!0},amplitude:{configurable:!0},wavelength:{configurable:!0},brightness:{configurable:!0},speed:{configurable:!0},radius:{configurable:!0}};return t.prototype.apply=function(e,t,n,r){this.uniforms.time=this.time,e.applyFilter(this,t,n,r)},n.center.get=function(){return this.uniforms.center},n.center.set=function(e){this.uniforms.center=e},n.amplitude.get=function(){return this.uniforms.amplitude},n.amplitude.set=function(e){this.uniforms.amplitude=e},n.wavelength.get=function(){return this.uniforms.wavelength},n.wavelength.set=function(e){this.uniforms.wavelength=e},n.brightness.get=function(){return this.uniforms.brightness},n.brightness.set=function(e){this.uniforms.brightness=e},n.speed.get=function(){return this.uniforms.speed},n.speed.set=function(e){this.uniforms.speed=e},n.radius.get=function(){return this.uniforms.radius},n.radius.set=function(e){this.uniforms.radius=e},Object.defineProperties(t.prototype,n),t}(t.Filter),Le=n,ke="varying vec2 vTextureCoord;\nuniform sampler2D uSampler;\nuniform sampler2D uLightmap;\nuniform vec4 filterArea;\nuniform vec2 dimensions;\nuniform vec4 ambientColor;\nvoid main() {\n vec4 diffuseColor = texture2D(uSampler, vTextureCoord);\n vec2 lightCoord = (vTextureCoord * filterArea.xy) / dimensions;\n vec4 light = texture2D(uLightmap, lightCoord);\n vec3 ambient = ambientColor.rgb * ambientColor.a;\n vec3 intensity = ambient + light.rgb;\n vec3 finalColor = diffuseColor.rgb * intensity;\n gl_FragColor = vec4(finalColor, diffuseColor.a);\n}\n",Ie=function(e){function n(t,n,r){void 0===n&&(n=0),void 0===r&&(r=1),e.call(this,Le,ke),this.uniforms.dimensions=new Float32Array(2),this.uniforms.ambientColor=new Float32Array([0,0,0,r]),this.texture=t,this.color=n}e&&(n.__proto__=e),n.prototype=Object.create(e&&e.prototype),n.prototype.constructor=n;var r={texture:{configurable:!0},color:{configurable:!0},alpha:{configurable:!0}};return n.prototype.apply=function(e,t,n,r){this.uniforms.dimensions[0]=t.sourceFrame.width,this.uniforms.dimensions[1]=t.sourceFrame.height,e.applyFilter(this,t,n,r)},r.texture.get=function(){return this.uniforms.uLightmap},r.texture.set=function(e){this.uniforms.uLightmap=e},r.color.set=function(e){var n=this.uniforms.ambientColor;"number"==typeof e?(t.utils.hex2rgb(e,n),this._color=e):(n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=e[3],this._color=t.utils.rgb2hex(n))},r.color.get=function(){return this._color},r.alpha.get=function(){return this.uniforms.ambientColor[3]},r.alpha.set=function(e){this.uniforms.ambientColor[3]=e},Object.defineProperties(n.prototype,r),n}(t.Filter),Ee=n,Be="varying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\nuniform float blur;\nuniform float gradientBlur;\nuniform vec2 start;\nuniform vec2 end;\nuniform vec2 delta;\nuniform vec2 texSize;\n\nfloat random(vec3 scale, float seed)\n{\n return fract(sin(dot(gl_FragCoord.xyz + seed, scale)) * 43758.5453 + seed);\n}\n\nvoid main(void)\n{\n vec4 color = vec4(0.0);\n float total = 0.0;\n\n float offset = random(vec3(12.9898, 78.233, 151.7182), 0.0);\n vec2 normal = normalize(vec2(start.y - end.y, end.x - start.x));\n float radius = smoothstep(0.0, 1.0, abs(dot(vTextureCoord * texSize - start, normal)) / gradientBlur) * blur;\n\n for (float t = -30.0; t <= 30.0; t++)\n {\n float percent = (t + offset - 0.5) / 30.0;\n float weight = 1.0 - abs(percent);\n vec4 sample = texture2D(uSampler, vTextureCoord + delta / texSize * percent * radius);\n sample.rgb *= sample.a;\n color += sample * weight;\n total += weight;\n }\n\n color /= total;\n color.rgb /= color.a + 0.00001;\n\n gl_FragColor = color;\n}\n",Xe=function(e){function n(n,r,o,i){void 0===n&&(n=100),void 0===r&&(r=600),void 0===o&&(o=null),void 0===i&&(i=null),e.call(this,Ee,Be),this.uniforms.blur=n,this.uniforms.gradientBlur=r,this.uniforms.start=o||new t.Point(0,window.innerHeight/2),this.uniforms.end=i||new t.Point(600,window.innerHeight/2),this.uniforms.delta=new t.Point(30,30),this.uniforms.texSize=new t.Point(window.innerWidth,window.innerHeight),this.updateDelta()}e&&(n.__proto__=e),n.prototype=Object.create(e&&e.prototype),n.prototype.constructor=n;var r={blur:{configurable:!0},gradientBlur:{configurable:!0},start:{configurable:!0},end:{configurable:!0}};return n.prototype.updateDelta=function(){this.uniforms.delta.x=0,this.uniforms.delta.y=0},r.blur.get=function(){return this.uniforms.blur},r.blur.set=function(e){this.uniforms.blur=e},r.gradientBlur.get=function(){return this.uniforms.gradientBlur},r.gradientBlur.set=function(e){this.uniforms.gradientBlur=e},r.start.get=function(){return this.uniforms.start},r.start.set=function(e){this.uniforms.start=e,this.updateDelta()},r.end.get=function(){return this.uniforms.end},r.end.set=function(e){this.uniforms.end=e,this.updateDelta()},Object.defineProperties(n.prototype,r),n}(t.Filter),qe=function(e){function t(){e.apply(this,arguments)}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.updateDelta=function(){var e=this.uniforms.end.x-this.uniforms.start.x,t=this.uniforms.end.y-this.uniforms.start.y,n=Math.sqrt(e*e+t*t);this.uniforms.delta.x=e/n,this.uniforms.delta.y=t/n},t}(Xe),Ne=function(e){function t(){e.apply(this,arguments)}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.updateDelta=function(){var e=this.uniforms.end.x-this.uniforms.start.x,t=this.uniforms.end.y-this.uniforms.start.y,n=Math.sqrt(e*e+t*t);this.uniforms.delta.x=-t/n,this.uniforms.delta.y=e/n},t}(Xe),We=function(e){function t(t,n,r,o){void 0===t&&(t=100),void 0===n&&(n=600),void 0===r&&(r=null),void 0===o&&(o=null),e.call(this),this.tiltShiftXFilter=new qe(t,n,r,o),this.tiltShiftYFilter=new Ne(t,n,r,o)}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var n={blur:{configurable:!0},gradientBlur:{configurable:!0},start:{configurable:!0},end:{configurable:!0}};return t.prototype.apply=function(e,t,n){var r=e.getRenderTarget(!0);this.tiltShiftXFilter.apply(e,t,r),this.tiltShiftYFilter.apply(e,r,n),e.returnRenderTarget(r)},n.blur.get=function(){return this.tiltShiftXFilter.blur},n.blur.set=function(e){this.tiltShiftXFilter.blur=this.tiltShiftYFilter.blur=e},n.gradientBlur.get=function(){return this.tiltShiftXFilter.gradientBlur},n.gradientBlur.set=function(e){this.tiltShiftXFilter.gradientBlur=this.tiltShiftYFilter.gradientBlur=e},n.start.get=function(){return this.tiltShiftXFilter.start},n.start.set=function(e){this.tiltShiftXFilter.start=this.tiltShiftYFilter.start=e},n.end.get=function(){return this.tiltShiftXFilter.end},n.end.set=function(e){this.tiltShiftXFilter.end=this.tiltShiftYFilter.end=e},Object.defineProperties(t.prototype,n),t}(t.Filter),Ge=n,Ke="varying vec2 vTextureCoord;\n\nuniform sampler2D uSampler;\nuniform float radius;\nuniform float angle;\nuniform vec2 offset;\nuniform vec4 filterArea;\n\nvec2 mapCoord( vec2 coord )\n{\n coord *= filterArea.xy;\n coord += filterArea.zw;\n\n return coord;\n}\n\nvec2 unmapCoord( vec2 coord )\n{\n coord -= filterArea.zw;\n coord /= filterArea.xy;\n\n return coord;\n}\n\nvec2 twist(vec2 coord)\n{\n coord -= offset;\n\n float dist = length(coord);\n\n if (dist < radius)\n {\n float ratioDist = (radius - dist) / radius;\n float angleMod = ratioDist * ratioDist * angle;\n float s = sin(angleMod);\n float c = cos(angleMod);\n coord = vec2(coord.x * c - coord.y * s, coord.x * s + coord.y * c);\n }\n\n coord += offset;\n\n return coord;\n}\n\nvoid main(void)\n{\n\n vec2 coord = mapCoord(vTextureCoord);\n\n coord = twist(coord);\n\n coord = unmapCoord(coord);\n\n gl_FragColor = texture2D(uSampler, coord );\n\n}\n",Ye=function(e){function t(t,n,r){void 0===t&&(t=200),void 0===n&&(n=4),void 0===r&&(r=20),e.call(this,Ge,Ke),this.radius=t,this.angle=n,this.padding=r}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var n={offset:{configurable:!0},radius:{configurable:!0},angle:{configurable:!0}};return n.offset.get=function(){return this.uniforms.offset},n.offset.set=function(e){this.uniforms.offset=e},n.radius.get=function(){return this.uniforms.radius},n.radius.set=function(e){this.uniforms.radius=e},n.angle.get=function(){return this.uniforms.angle},n.angle.set=function(e){this.uniforms.angle=e},Object.defineProperties(t.prototype,n),t}(t.Filter),Qe=n,Ue="varying vec2 vTextureCoord;\nuniform sampler2D uSampler;\nuniform vec4 filterArea;\n\nuniform vec2 uCenter;\nuniform float uStrength;\nuniform float uInnerRadius;\nuniform float uRadius;\n\nconst float MAX_KERNEL_SIZE = 32.0;\n\n// author: http://byteblacksmith.com/improvements-to-the-canonical-one-liner-glsl-rand-for-opengl-es-2-0/\nhighp float rand(vec2 co, float seed) {\n const highp float a = 12.9898, b = 78.233, c = 43758.5453;\n highp float dt = dot(co + seed, vec2(a, b)), sn = mod(dt, 3.14159);\n return fract(sin(sn) * c + seed);\n}\n\nvoid main() {\n\n float minGradient = uInnerRadius * 0.3;\n float innerRadius = (uInnerRadius + minGradient * 0.5) / filterArea.x;\n\n float gradient = uRadius * 0.3;\n float radius = (uRadius - gradient * 0.5) / filterArea.x;\n\n float countLimit = MAX_KERNEL_SIZE;\n\n vec2 dir = vec2(uCenter.xy / filterArea.xy - vTextureCoord);\n float dist = length(vec2(dir.x, dir.y * filterArea.y / filterArea.x));\n\n float strength = uStrength;\n\n float delta = 0.0;\n float gap;\n if (dist < innerRadius) {\n delta = innerRadius - dist;\n gap = minGradient;\n } else if (radius >= 0.0 && dist > radius) { // radius < 0 means it's infinity\n delta = dist - radius;\n gap = gradient;\n }\n\n if (delta > 0.0) {\n float normalCount = gap / filterArea.x;\n delta = (normalCount - delta) / normalCount;\n countLimit *= delta;\n strength *= delta;\n if (countLimit < 1.0)\n {\n gl_FragColor = texture2D(uSampler, vTextureCoord);\n return;\n }\n }\n\n // randomize the lookup values to hide the fixed number of samples\n float offset = rand(vTextureCoord, 0.0);\n\n float total = 0.0;\n vec4 color = vec4(0.0);\n\n dir *= strength;\n\n for (float t = 0.0; t < MAX_KERNEL_SIZE; t++) {\n float percent = (t + offset) / MAX_KERNEL_SIZE;\n float weight = 4.0 * (percent - percent * percent);\n vec2 p = vTextureCoord + dir * percent;\n vec4 sample = texture2D(uSampler, p);\n\n // switch to pre-multiplied alpha to correctly blur transparent images\n // sample.rgb *= sample.a;\n\n color += sample * weight;\n total += weight;\n\n if (t > countLimit){\n break;\n }\n }\n\n color /= total;\n // switch back from pre-multiplied alpha\n // color.rgb /= color.a + 0.00001;\n\n gl_FragColor = color;\n}\n",Ze=function(e){function t(t,n,r,o){void 0===t&&(t=.1),void 0===n&&(n=[0,0]),void 0===r&&(r=0),void 0===o&&(o=-1),e.call(this,Qe,Ue),this.center=n,this.strength=t,this.innerRadius=r,this.radius=o}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var n={center:{configurable:!0},strength:{configurable:!0},innerRadius:{configurable:!0},radius:{configurable:!0}};return n.center.get=function(){return this.uniforms.uCenter},n.center.set=function(e){this.uniforms.uCenter=e},n.strength.get=function(){return this.uniforms.uStrength},n.strength.set=function(e){this.uniforms.uStrength=e},n.innerRadius.get=function(){return this.uniforms.uInnerRadius},n.innerRadius.set=function(e){this.uniforms.uInnerRadius=e},n.radius.get=function(){return this.uniforms.uRadius},n.radius.set=function(e){(e<0||e===1/0)&&(e=-1),this.uniforms.uRadius=e},Object.defineProperties(t.prototype,n),t}(t.Filter);return e.AdjustmentFilter=o,e.AdvancedBloomFilter=p,e.AsciiFilter=g,e.BevelFilter=y,e.BloomFilter=F,e.BulgePinchFilter=w,e.ColorMapFilter=O,e.ColorReplaceFilter=R,e.ConvolutionFilter=k,e.CrossHatchFilter=B,e.CRTFilter=N,e.DotFilter=K,e.DropShadowFilter=U,e.EmbossFilter=H,e.GlitchFilter=ee,e.GlowFilter=re,e.GodrayFilter=se,e.KawaseBlurFilter=a,e.MotionBlurFilter=ce,e.MultiColorReplaceFilter=pe,e.OldFilmFilter=ge,e.OutlineFilter=ye,e.PixelateFilter=Ce,e.RadialBlurFilter=ze,e.ReflectionFilter=Te,e.RGBSplitFilter=Pe,e.ShockwaveFilter=je,e.SimpleLightmapFilter=Ie,e.TiltShiftFilter=We,e.TiltShiftAxisFilter=Xe,e.TiltShiftXFilter=qe,e.TiltShiftYFilter=Ne,e.TwistFilter=Ye,e.ZoomBlurFilter=Ze,e}({},PIXI);Object.assign(PIXI.filters,this?this.__filters:__filters);
|
9
|
+
//# sourceMappingURL=pixi-filters.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"pixi-filters.js","sources":["../../filters/adjustment/lib/filter-adjustment.esm.js","../../filters/kawase-blur/lib/filter-kawase-blur.esm.js","../../filters/advanced-bloom/lib/filter-advanced-bloom.esm.js","../../filters/ascii/lib/filter-ascii.esm.js","../../filters/bevel/lib/filter-bevel.esm.js","../../filters/bloom/lib/filter-bloom.esm.js","../../filters/bulge-pinch/lib/filter-bulge-pinch.esm.js","../../filters/color-map/lib/filter-color-map.esm.js","../../filters/color-replace/lib/filter-color-replace.esm.js","../../filters/convolution/lib/filter-convolution.esm.js","../../filters/cross-hatch/lib/filter-cross-hatch.esm.js","../../filters/crt/lib/filter-crt.esm.js","../../filters/dot/lib/filter-dot.esm.js","../../filters/drop-shadow/lib/filter-drop-shadow.esm.js","../../filters/emboss/lib/filter-emboss.esm.js","../../filters/glitch/lib/filter-glitch.esm.js","../../filters/glow/lib/filter-glow.esm.js","../../filters/godray/lib/filter-godray.esm.js","../../filters/motion-blur/lib/filter-motion-blur.esm.js","../../filters/multi-color-replace/lib/filter-multi-color-replace.esm.js","../../filters/old-film/lib/filter-old-film.esm.js","../../filters/outline/lib/filter-outline.esm.js","../../filters/pixelate/lib/filter-pixelate.esm.js","../../filters/radial-blur/lib/filter-radial-blur.esm.js","../../filters/reflection/lib/filter-reflection.esm.js","../../filters/rgb-split/lib/filter-rgb-split.esm.js","../../filters/shockwave/lib/filter-shockwave.esm.js","../../filters/simple-lightmap/lib/filter-simple-lightmap.esm.js","../../filters/tilt-shift/lib/filter-tilt-shift.esm.js","../../filters/twist/lib/filter-twist.esm.js","../../filters/zoom-blur/lib/filter-zoom-blur.esm.js"],"sourcesContent":["/*!\n * @pixi/filter-adjustment - v2.7.0\n * Compiled Sun, 13 Jan 2019 22:51:52 UTC\n *\n * @pixi/filter-adjustment is licensed under the MIT License.\n * http://www.opensource.org/licenses/mit-license\n */\nimport{Filter as r}from\"pixi.js\";var t=\"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}\",n=\"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\",o=function(r){function o(o){r.call(this,t,n),Object.assign(this,{gamma:1,saturation:1,contrast:1,brightness:1,red:1,green:1,blue:1,alpha:1},o)}return r&&(o.__proto__=r),o.prototype=Object.create(r&&r.prototype),o.prototype.constructor=o,o.prototype.apply=function(r,t,n,o){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,r.applyFilter(this,t,n,o)},o}(r);export{o as AdjustmentFilter};\n//# sourceMappingURL=filter-adjustment.esm.js.map\n","/*!\n * @pixi/filter-kawase-blur - v2.7.0\n * Compiled Sun, 13 Jan 2019 22:51:52 UTC\n *\n * @pixi/filter-kawase-blur is licensed under the MIT License.\n * http://www.opensource.org/licenses/mit-license\n */\nimport{Point as e,Filter as t}from\"pixi.js\";var r=\"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}\",i=\"\\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}\",o=\"\\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\",n=function(t){function n(n,l,u){void 0===n&&(n=4),void 0===l&&(l=3),void 0===u&&(u=!1),t.call(this,r,u?o:i),this.uniforms.uOffset=new Float32Array(2),this._pixelSize=new e,this.pixelSize=1,this._clamp=u,this._kernels=null,Array.isArray(n)?this.kernels=n:(this._blur=n,this.quality=l)}t&&(n.__proto__=t),n.prototype=Object.create(t&&t.prototype),n.prototype.constructor=n;var l={kernels:{configurable:!0},clamp:{configurable:!0},pixelSize:{configurable:!0},quality:{configurable:!0},blur:{configurable:!0}};return n.prototype.apply=function(e,t,r,i){var o,n=this.pixelSize.x/t.size.width,l=this.pixelSize.y/t.size.height;if(1===this._quality||0===this._blur)o=this._kernels[0]+.5,this.uniforms.uOffset[0]=o*n,this.uniforms.uOffset[1]=o*l,e.applyFilter(this,t,r,i);else{for(var u,s=e.getRenderTarget(!0),a=t,f=s,p=this._quality-1,x=0;x<p;x++)o=this._kernels[x]+.5,this.uniforms.uOffset[0]=o*n,this.uniforms.uOffset[1]=o*l,e.applyFilter(this,a,f,!0),u=a,a=f,f=u;o=this._kernels[p]+.5,this.uniforms.uOffset[0]=o*n,this.uniforms.uOffset[1]=o*l,e.applyFilter(this,a,r,i),e.returnRenderTarget(s)}},n.prototype._generateKernels=function(){var e=this._blur,t=this._quality,r=[e];if(e>0)for(var i=e,o=e/t,n=1;n<t;n++)i-=o,r.push(i);this._kernels=r},l.kernels.get=function(){return this._kernels},l.kernels.set=function(e){Array.isArray(e)&&e.length>0?(this._kernels=e,this._quality=e.length,this._blur=Math.max.apply(Math,e)):(this._kernels=[0],this._quality=1)},l.clamp.get=function(){return this._clamp},l.pixelSize.set=function(t){\"number\"==typeof t?(this._pixelSize.x=t,this._pixelSize.y=t):Array.isArray(t)?(this._pixelSize.x=t[0],this._pixelSize.y=t[1]):t instanceof e?(this._pixelSize.x=t.x,this._pixelSize.y=t.y):(this._pixelSize.x=1,this._pixelSize.y=1)},l.pixelSize.get=function(){return this._pixelSize},l.quality.get=function(){return this._quality},l.quality.set=function(e){this._quality=Math.max(1,Math.round(e)),this._generateKernels()},l.blur.get=function(){return this._blur},l.blur.set=function(e){this._blur=e,this._generateKernels()},Object.defineProperties(n.prototype,l),n}(t);export{n as KawaseBlurFilter};\n//# sourceMappingURL=filter-kawase-blur.esm.js.map\n","/*!\n * @pixi/filter-advanced-bloom - v2.7.0\n * Compiled Sun, 13 Jan 2019 22:51:52 UTC\n *\n * @pixi/filter-advanced-bloom is licensed under the MIT License.\n * http://www.opensource.org/licenses/mit-license\n */\nimport{Filter as t,settings as r}from\"pixi.js\";import{KawaseBlurFilter as e}from\"@pixi/filter-kawase-blur\";var o=\"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}\",i=\"\\nuniform sampler2D uSampler;\\nvarying vec2 vTextureCoord;\\n\\nuniform float threshold;\\n\\nvoid main() {\\n vec4 color = texture2D(uSampler, vTextureCoord);\\n\\n // A simple & fast algorithm for getting brightness.\\n // It's inaccuracy , but good enought for this feature.\\n float _max = max(max(color.r, color.g), color.b);\\n float _min = min(min(color.r, color.g), color.b);\\n float brightness = (_max + _min) * 0.5;\\n\\n if(brightness > threshold) {\\n gl_FragColor = color;\\n } else {\\n gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);\\n }\\n}\\n\",n=function(t){function r(r){void 0===r&&(r=.5),t.call(this,o,i),this.threshold=r}t&&(r.__proto__=t),r.prototype=Object.create(t&&t.prototype),r.prototype.constructor=r;var e={threshold:{configurable:!0}};return e.threshold.get=function(){return this.uniforms.threshold},e.threshold.set=function(t){this.uniforms.threshold=t},Object.defineProperties(r.prototype,e),r}(t),l=\"uniform sampler2D uSampler;\\nvarying vec2 vTextureCoord;\\n\\nuniform sampler2D bloomTexture;\\nuniform float bloomScale;\\nuniform float brightness;\\n\\nvoid main() {\\n vec4 color = texture2D(uSampler, vTextureCoord);\\n color.rgb *= brightness;\\n vec4 bloomColor = vec4(texture2D(bloomTexture, vTextureCoord).rgb, 0.0);\\n bloomColor.rgb *= bloomScale;\\n gl_FragColor = color + bloomColor;\\n}\\n\",s=function(t){function i(i){t.call(this,o,l),\"number\"==typeof i&&(i={threshold:i}),i=Object.assign({threshold:.5,bloomScale:1,brightness:1,kernels:null,blur:8,quality:4,pixelSize:1,resolution:r.RESOLUTION},i),this.bloomScale=i.bloomScale,this.brightness=i.brightness;var s=i.kernels,u=i.blur,a=i.quality,c=i.pixelSize,h=i.resolution;this._extractFilter=new n(i.threshold),this._extractFilter.resolution=h,this._blurFilter=s?new e(s):new e(u,a),this.pixelSize=c,this.resolution=h}t&&(i.__proto__=t),i.prototype=Object.create(t&&t.prototype),i.prototype.constructor=i;var s={resolution:{configurable:!0},threshold:{configurable:!0},kernels:{configurable:!0},blur:{configurable:!0},quality:{configurable:!0},pixelSize:{configurable:!0}};return i.prototype.apply=function(t,r,e,o,i){var n=t.getRenderTarget(!0);this._extractFilter.apply(t,r,n,!0,i);var l=t.getRenderTarget(!0);this._blurFilter.apply(t,n,l,!0,i),this.uniforms.bloomScale=this.bloomScale,this.uniforms.brightness=this.brightness,this.uniforms.bloomTexture=l,t.applyFilter(this,r,e,o),t.returnRenderTarget(l),t.returnRenderTarget(n)},s.resolution.get=function(){return this._resolution},s.resolution.set=function(t){this._resolution=t,this._extractFilter&&(this._extractFilter.resolution=t),this._blurFilter&&(this._blurFilter.resolution=t)},s.threshold.get=function(){return this._extractFilter.threshold},s.threshold.set=function(t){this._extractFilter.threshold=t},s.kernels.get=function(){return this._blurFilter.kernels},s.kernels.set=function(t){this._blurFilter.kernels=t},s.blur.get=function(){return this._blurFilter.blur},s.blur.set=function(t){this._blurFilter.blur=t},s.quality.get=function(){return this._blurFilter.quality},s.quality.set=function(t){this._blurFilter.quality=t},s.pixelSize.get=function(){return this._blurFilter.pixelSize},s.pixelSize.set=function(t){this._blurFilter.pixelSize=t},Object.defineProperties(i.prototype,s),i}(t);export{s as AdvancedBloomFilter};\n//# sourceMappingURL=filter-advanced-bloom.esm.js.map\n","/*!\n * @pixi/filter-ascii - v2.7.0\n * Compiled Sun, 13 Jan 2019 22:51:52 UTC\n *\n * @pixi/filter-ascii is licensed under the MIT License.\n * http://www.opensource.org/licenses/mit-license\n */\nimport{Filter as o}from\"pixi.js\";var n=\"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}\",e=\"varying vec2 vTextureCoord;\\n\\nuniform vec4 filterArea;\\nuniform float pixelSize;\\nuniform sampler2D uSampler;\\n\\nvec2 mapCoord( vec2 coord )\\n{\\n coord *= filterArea.xy;\\n coord += filterArea.zw;\\n\\n return coord;\\n}\\n\\nvec2 unmapCoord( vec2 coord )\\n{\\n coord -= filterArea.zw;\\n coord /= filterArea.xy;\\n\\n return coord;\\n}\\n\\nvec2 pixelate(vec2 coord, vec2 size)\\n{\\n return floor( coord / size ) * size;\\n}\\n\\nvec2 getMod(vec2 coord, vec2 size)\\n{\\n return mod( coord , size) / size;\\n}\\n\\nfloat character(float n, vec2 p)\\n{\\n p = floor(p*vec2(4.0, -4.0) + 2.5);\\n if (clamp(p.x, 0.0, 4.0) == p.x && clamp(p.y, 0.0, 4.0) == p.y)\\n {\\n if (int(mod(n/exp2(p.x + 5.0*p.y), 2.0)) == 1) return 1.0;\\n }\\n return 0.0;\\n}\\n\\nvoid main()\\n{\\n vec2 coord = mapCoord(vTextureCoord);\\n\\n // get the rounded color..\\n vec2 pixCoord = pixelate(coord, vec2(pixelSize));\\n pixCoord = unmapCoord(pixCoord);\\n\\n vec4 color = texture2D(uSampler, pixCoord);\\n\\n // determine the character to use\\n float gray = (color.r + color.g + color.b) / 3.0;\\n\\n float n = 65536.0; // .\\n if (gray > 0.2) n = 65600.0; // :\\n if (gray > 0.3) n = 332772.0; // *\\n if (gray > 0.4) n = 15255086.0; // o\\n if (gray > 0.5) n = 23385164.0; // &\\n if (gray > 0.6) n = 15252014.0; // 8\\n if (gray > 0.7) n = 13199452.0; // @\\n if (gray > 0.8) n = 11512810.0; // #\\n\\n // get the mod..\\n vec2 modd = getMod(coord, vec2(pixelSize));\\n\\n gl_FragColor = color * character( n, vec2(-1.0) + modd * 2.0);\\n\\n}\",r=function(o){function r(r){void 0===r&&(r=8),o.call(this,n,e),this.size=r}o&&(r.__proto__=o),r.prototype=Object.create(o&&o.prototype),r.prototype.constructor=r;var t={size:{configurable:!0}};return t.size.get=function(){return this.uniforms.pixelSize},t.size.set=function(o){this.uniforms.pixelSize=o},Object.defineProperties(r.prototype,t),r}(o);export{r as AsciiFilter};\n//# sourceMappingURL=filter-ascii.esm.js.map\n","/*!\n * @pixi/filter-bevel - v2.7.0\n * Compiled Sun, 13 Jan 2019 22:51:52 UTC\n *\n * @pixi/filter-bevel is licensed under the MIT License.\n * http://www.opensource.org/licenses/mit-license\n */\nimport{DEG_TO_RAD as o,utils as t,Filter as r}from\"pixi.js\";var n=\"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}\",i=\"precision mediump float;\\n\\nvarying vec2 vTextureCoord;\\nuniform sampler2D uSampler;\\nuniform vec4 filterArea;\\n\\nuniform float transformX;\\nuniform float transformY;\\nuniform vec3 lightColor;\\nuniform float lightAlpha;\\nuniform vec3 shadowColor;\\nuniform float shadowAlpha;\\n\\nvoid main(void) {\\n vec2 transform = vec2(1.0 / filterArea) * vec2(transformX, transformY);\\n vec4 color = texture2D(uSampler, vTextureCoord);\\n float light = texture2D(uSampler, vTextureCoord - transform).a;\\n float shadow = texture2D(uSampler, vTextureCoord + transform).a;\\n\\n color.rgb = mix(color.rgb, lightColor, clamp((color.a - light) * lightAlpha, 0.0, 1.0));\\n color.rgb = mix(color.rgb, shadowColor, clamp((color.a - shadow) * shadowAlpha, 0.0, 1.0));\\n gl_FragColor = vec4(color.rgb * color.a, color.a);\\n}\\n\",a=function(r){function a(o){void 0===o&&(o={}),r.call(this,n,i),this.uniforms.lightColor=new Float32Array(3),this.uniforms.shadowColor=new Float32Array(3),o=Object.assign({rotation:45,thickness:2,lightColor:16777215,lightAlpha:.7,shadowColor:0,shadowAlpha:.7},o),this.rotation=o.rotation,this.thickness=o.thickness,this.lightColor=o.lightColor,this.lightAlpha=o.lightAlpha,this.shadowColor=o.shadowColor,this.shadowAlpha=o.shadowAlpha}r&&(a.__proto__=r),a.prototype=Object.create(r&&r.prototype),a.prototype.constructor=a;var e={rotation:{configurable:!0},thickness:{configurable:!0},lightColor:{configurable:!0},lightAlpha:{configurable:!0},shadowColor:{configurable:!0},shadowAlpha:{configurable:!0}};return a.prototype._updateTransform=function(){this.uniforms.transformX=this._thickness*Math.cos(this._angle),this.uniforms.transformY=this._thickness*Math.sin(this._angle)},e.rotation.get=function(){return this._angle/o},e.rotation.set=function(t){this._angle=t*o,this._updateTransform()},e.thickness.get=function(){return this._thickness},e.thickness.set=function(o){this._thickness=o,this._updateTransform()},e.lightColor.get=function(){return t.rgb2hex(this.uniforms.lightColor)},e.lightColor.set=function(o){t.hex2rgb(o,this.uniforms.lightColor)},e.lightAlpha.get=function(){return this.uniforms.lightAlpha},e.lightAlpha.set=function(o){this.uniforms.lightAlpha=o},e.shadowColor.get=function(){return t.rgb2hex(this.uniforms.shadowColor)},e.shadowColor.set=function(o){t.hex2rgb(o,this.uniforms.shadowColor)},e.shadowAlpha.get=function(){return this.uniforms.shadowAlpha},e.shadowAlpha.set=function(o){this.uniforms.shadowAlpha=o},Object.defineProperties(a.prototype,e),a}(r);export{a as BevelFilter};\n//# sourceMappingURL=filter-bevel.esm.js.map\n","/*!\n * @pixi/filter-bloom - v2.7.0\n * Compiled Sun, 13 Jan 2019 22:51:52 UTC\n *\n * @pixi/filter-bloom is licensed under the MIT License.\n * http://www.opensource.org/licenses/mit-license\n */\nimport{Filter as r,filters as t,settings as e,Point as l,BLEND_MODES as i}from\"pixi.js\";var u=t,n=u.BlurXFilter,o=u.BlurYFilter,b=u.AlphaFilter,p=function(r){function t(t,u,p,s){var a,c;void 0===t&&(t=2),void 0===u&&(u=4),void 0===p&&(p=e.RESOLUTION),void 0===s&&(s=5),r.call(this),\"number\"==typeof t?(a=t,c=t):t instanceof l?(a=t.x,c=t.y):Array.isArray(t)&&(a=t[0],c=t[1]),this.blurXFilter=new n(a,u,p,s),this.blurYFilter=new o(c,u,p,s),this.blurYFilter.blendMode=i.SCREEN,this.defaultFilter=new b}r&&(t.__proto__=r),t.prototype=Object.create(r&&r.prototype),t.prototype.constructor=t;var u={blur:{configurable:!0},blurX:{configurable:!0},blurY:{configurable:!0}};return t.prototype.apply=function(r,t,e){var l=r.getRenderTarget(!0);this.defaultFilter.apply(r,t,e),this.blurXFilter.apply(r,t,l),this.blurYFilter.apply(r,l,e),r.returnRenderTarget(l)},u.blur.get=function(){return this.blurXFilter.blur},u.blur.set=function(r){this.blurXFilter.blur=this.blurYFilter.blur=r},u.blurX.get=function(){return this.blurXFilter.blur},u.blurX.set=function(r){this.blurXFilter.blur=r},u.blurY.get=function(){return this.blurYFilter.blur},u.blurY.set=function(r){this.blurYFilter.blur=r},Object.defineProperties(t.prototype,u),t}(r);export{p as BloomFilter};\n//# sourceMappingURL=filter-bloom.esm.js.map\n","/*!\n * @pixi/filter-bulge-pinch - v2.7.0\n * Compiled Sun, 13 Jan 2019 22:51:52 UTC\n *\n * @pixi/filter-bulge-pinch is licensed under the MIT License.\n * http://www.opensource.org/licenses/mit-license\n */\nimport{Filter as n}from\"pixi.js\";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}\",r=\"uniform float radius;\\nuniform float strength;\\nuniform vec2 center;\\nuniform sampler2D uSampler;\\nvarying vec2 vTextureCoord;\\n\\nuniform vec4 filterArea;\\nuniform vec4 filterClamp;\\nuniform vec2 dimensions;\\n\\nvoid main()\\n{\\n vec2 coord = vTextureCoord * filterArea.xy;\\n coord -= center * dimensions.xy;\\n float distance = length(coord);\\n if (distance < radius) {\\n float percent = distance / radius;\\n if (strength > 0.0) {\\n coord *= mix(1.0, smoothstep(0.0, radius / distance, percent), strength * 0.75);\\n } else {\\n coord *= mix(1.0, pow(percent, 1.0 + strength * 0.75) * radius / distance, 1.0 - percent);\\n }\\n }\\n coord += center * dimensions.xy;\\n coord /= filterArea.xy;\\n vec2 clampedCoord = clamp(coord, filterClamp.xy, filterClamp.zw);\\n vec4 color = texture2D(uSampler, clampedCoord);\\n if (coord != clampedCoord) {\\n color *= max(0.0, 1.0 - length(coord - clampedCoord));\\n }\\n\\n gl_FragColor = color;\\n}\\n\",t=function(n){function t(t,o,i){n.call(this,e,r),this.uniforms.dimensions=new Float32Array(2),this.center=t||[.5,.5],this.radius=\"number\"==typeof o?o:100,this.strength=\"number\"==typeof i?i:1}n&&(t.__proto__=n),t.prototype=Object.create(n&&n.prototype),t.prototype.constructor=t;var o={radius:{configurable:!0},strength:{configurable:!0},center:{configurable:!0}};return t.prototype.apply=function(n,e,r,t){this.uniforms.dimensions[0]=e.sourceFrame.width,this.uniforms.dimensions[1]=e.sourceFrame.height,n.applyFilter(this,e,r,t)},o.radius.get=function(){return this.uniforms.radius},o.radius.set=function(n){this.uniforms.radius=n},o.strength.get=function(){return this.uniforms.strength},o.strength.set=function(n){this.uniforms.strength=n},o.center.get=function(){return this.uniforms.center},o.center.set=function(n){this.uniforms.center=n},Object.defineProperties(t.prototype,o),t}(n);export{t as BulgePinchFilter};\n//# sourceMappingURL=filter-bulge-pinch.esm.js.map\n","/*!\n * @pixi/filter-color-map - v2.7.0\n * Compiled Sun, 13 Jan 2019 22:51:52 UTC\n *\n * @pixi/filter-color-map is licensed under the MIT License.\n * http://www.opensource.org/licenses/mit-license\n */\nimport{Texture as e,SCALE_MODES as i,Filter as t}from\"pixi.js\";var o=\"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}\",r=\"varying vec2 vTextureCoord;\\nuniform sampler2D uSampler;\\nuniform sampler2D colorMap;\\nuniform float _mix;\\nuniform float _size;\\nuniform float _sliceSize;\\nuniform float _slicePixelSize;\\nuniform float _sliceInnerSize;\\nvoid main() {\\n vec4 color = texture2D(uSampler, vTextureCoord.xy);\\n\\n vec4 adjusted;\\n if (color.a > 0.0) {\\n color.rgb /= color.a;\\n float innerWidth = _size - 1.0;\\n float zSlice0 = min(floor(color.b * innerWidth), innerWidth);\\n float zSlice1 = min(zSlice0 + 1.0, innerWidth);\\n float xOffset = _slicePixelSize * 0.5 + color.r * _sliceInnerSize;\\n float s0 = xOffset + (zSlice0 * _sliceSize);\\n float s1 = xOffset + (zSlice1 * _sliceSize);\\n float yOffset = _sliceSize * 0.5 + color.g * (1.0 - _sliceSize);\\n vec4 slice0Color = texture2D(colorMap, vec2(s0,yOffset));\\n vec4 slice1Color = texture2D(colorMap, vec2(s1,yOffset));\\n float zOffset = fract(color.b * innerWidth);\\n adjusted = mix(slice0Color, slice1Color, zOffset);\\n\\n color.rgb *= color.a;\\n }\\n gl_FragColor = vec4(mix(color, adjusted, _mix).rgb, color.a);\\n\\n}\",s=function(t){function s(e,i,s){void 0===i&&(i=!1),void 0===s&&(s=1),t.call(this,o,r),this._size=0,this._sliceSize=0,this._slicePixelSize=0,this._sliceInnerSize=0,this._scaleMode=null,this._nearest=!1,this.nearest=i,this.mix=s,this.colorMap=e}t&&(s.__proto__=t),s.prototype=Object.create(t&&t.prototype),s.prototype.constructor=s;var n={colorSize:{configurable:!0},colorMap:{configurable:!0},nearest:{configurable:!0}};return s.prototype.apply=function(e,i,t,o){this.uniforms._mix=this.mix,e.applyFilter(this,i,t,o)},n.colorSize.get=function(){return this._size},n.colorMap.get=function(){return this._colorMap},n.colorMap.set=function(i){i instanceof e||(i=e.from(i)),i&&i.baseTexture&&(i.baseTexture.scaleMode=this._scaleMode,i.baseTexture.mipmap=!1,this._size=i.height,this._sliceSize=1/this._size,this._slicePixelSize=this._sliceSize/this._size,this._sliceInnerSize=this._slicePixelSize*(this._size-1),this.uniforms._size=this._size,this.uniforms._sliceSize=this._sliceSize,this.uniforms._slicePixelSize=this._slicePixelSize,this.uniforms._sliceInnerSize=this._sliceInnerSize,this.uniforms.colorMap=i),this._colorMap=i},n.nearest.get=function(){return this._nearest},n.nearest.set=function(e){this._nearest=e,this._scaleMode=e?i.NEAREST:i.LINEAR;var t=this._colorMap;t&&t.baseTexture&&(t.baseTexture._glTextures={},t.baseTexture.scaleMode=this._scaleMode,t.baseTexture.mipmap=!1,t._updateID++,t.baseTexture.emit(\"update\",t.baseTexture))},s.prototype.updateColorMap=function(){var e=this._colorMap;e&&e.baseTexture&&(e._updateID++,e.baseTexture.emit(\"update\",e.baseTexture),this.colorMap=e)},s.prototype.destroy=function(e){this._colorMap&&this._colorMap.destroy(e),t.prototype.destroy.call(this)},Object.defineProperties(s.prototype,n),s}(t);export{s as ColorMapFilter};\n//# sourceMappingURL=filter-color-map.esm.js.map\n","/*!\n * @pixi/filter-color-replace - v2.7.0\n * Compiled Sun, 13 Jan 2019 22:51:52 UTC\n *\n * @pixi/filter-color-replace is licensed under the MIT License.\n * http://www.opensource.org/licenses/mit-license\n */\nimport{utils as o,Filter as r}from\"pixi.js\";var n=\"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}\",e=\"varying vec2 vTextureCoord;\\nuniform sampler2D uSampler;\\nuniform vec3 originalColor;\\nuniform vec3 newColor;\\nuniform float epsilon;\\nvoid main(void) {\\n vec4 currentColor = texture2D(uSampler, vTextureCoord);\\n vec3 colorDiff = originalColor - (currentColor.rgb / max(currentColor.a, 0.0000000001));\\n float colorDistance = length(colorDiff);\\n float doReplace = step(colorDistance, epsilon);\\n gl_FragColor = vec4(mix(currentColor.rgb, (newColor + colorDiff) * currentColor.a, doReplace), currentColor.a);\\n}\\n\",i=function(r){function i(o,i,t){void 0===o&&(o=16711680),void 0===i&&(i=0),void 0===t&&(t=.4),r.call(this,n,e),this.uniforms.originalColor=new Float32Array(3),this.uniforms.newColor=new Float32Array(3),this.originalColor=o,this.newColor=i,this.epsilon=t}r&&(i.__proto__=r),i.prototype=Object.create(r&&r.prototype),i.prototype.constructor=i;var t={originalColor:{configurable:!0},newColor:{configurable:!0},epsilon:{configurable:!0}};return t.originalColor.set=function(r){var n=this.uniforms.originalColor;\"number\"==typeof r?(o.hex2rgb(r,n),this._originalColor=r):(n[0]=r[0],n[1]=r[1],n[2]=r[2],this._originalColor=o.rgb2hex(n))},t.originalColor.get=function(){return this._originalColor},t.newColor.set=function(r){var n=this.uniforms.newColor;\"number\"==typeof r?(o.hex2rgb(r,n),this._newColor=r):(n[0]=r[0],n[1]=r[1],n[2]=r[2],this._newColor=o.rgb2hex(n))},t.newColor.get=function(){return this._newColor},t.epsilon.set=function(o){this.uniforms.epsilon=o},t.epsilon.get=function(){return this.uniforms.epsilon},Object.defineProperties(i.prototype,t),i}(r);export{i as ColorReplaceFilter};\n//# sourceMappingURL=filter-color-replace.esm.js.map\n","/*!\n * @pixi/filter-convolution - v2.7.0\n * Compiled Sun, 13 Jan 2019 22:51:52 UTC\n *\n * @pixi/filter-convolution is licensed under the MIT License.\n * http://www.opensource.org/licenses/mit-license\n */\nimport{Filter as e}from\"pixi.js\";var t=\"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}\",r=\"precision mediump float;\\n\\nvarying mediump vec2 vTextureCoord;\\n\\nuniform sampler2D uSampler;\\nuniform vec2 texelSize;\\nuniform float matrix[9];\\n\\nvoid main(void)\\n{\\n vec4 c11 = texture2D(uSampler, vTextureCoord - texelSize); // top left\\n vec4 c12 = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y - texelSize.y)); // top center\\n vec4 c13 = texture2D(uSampler, vec2(vTextureCoord.x + texelSize.x, vTextureCoord.y - texelSize.y)); // top right\\n\\n vec4 c21 = texture2D(uSampler, vec2(vTextureCoord.x - texelSize.x, vTextureCoord.y)); // mid left\\n vec4 c22 = texture2D(uSampler, vTextureCoord); // mid center\\n vec4 c23 = texture2D(uSampler, vec2(vTextureCoord.x + texelSize.x, vTextureCoord.y)); // mid right\\n\\n vec4 c31 = texture2D(uSampler, vec2(vTextureCoord.x - texelSize.x, vTextureCoord.y + texelSize.y)); // bottom left\\n vec4 c32 = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y + texelSize.y)); // bottom center\\n vec4 c33 = texture2D(uSampler, vTextureCoord + texelSize); // bottom right\\n\\n gl_FragColor =\\n c11 * matrix[0] + c12 * matrix[1] + c13 * matrix[2] +\\n c21 * matrix[3] + c22 * matrix[4] + c23 * matrix[5] +\\n c31 * matrix[6] + c32 * matrix[7] + c33 * matrix[8];\\n\\n gl_FragColor.a = c22.a;\\n}\\n\",o=function(e){function o(o,i,n){void 0===i&&(i=200),void 0===n&&(n=200),e.call(this,t,r),this.uniforms.texelSize=new Float32Array(2),this.uniforms.matrix=new Float32Array(9),void 0!==o&&(this.matrix=o),this.width=i,this.height=n}e&&(o.__proto__=e),o.prototype=Object.create(e&&e.prototype),o.prototype.constructor=o;var i={matrix:{configurable:!0},width:{configurable:!0},height:{configurable:!0}};return i.matrix.get=function(){return this.uniforms.matrix},i.matrix.set=function(e){var t=this;e.forEach(function(e,r){return t.uniforms.matrix[r]=e})},i.width.get=function(){return 1/this.uniforms.texelSize[0]},i.width.set=function(e){this.uniforms.texelSize[0]=1/e},i.height.get=function(){return 1/this.uniforms.texelSize[1]},i.height.set=function(e){this.uniforms.texelSize[1]=1/e},Object.defineProperties(o.prototype,i),o}(e);export{o as ConvolutionFilter};\n//# sourceMappingURL=filter-convolution.esm.js.map\n","/*!\n * @pixi/filter-cross-hatch - v2.7.0\n * Compiled Sun, 13 Jan 2019 22:51:52 UTC\n *\n * @pixi/filter-cross-hatch is licensed under the MIT License.\n * http://www.opensource.org/licenses/mit-license\n */\nimport{Filter as o}from\"pixi.js\";var n=\"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}\",r=\"precision mediump float;\\n\\nvarying vec2 vTextureCoord;\\n\\nuniform sampler2D uSampler;\\n\\nvoid main(void)\\n{\\n float lum = length(texture2D(uSampler, vTextureCoord.xy).rgb);\\n\\n gl_FragColor = vec4(1.0, 1.0, 1.0, 1.0);\\n\\n if (lum < 1.00)\\n {\\n if (mod(gl_FragCoord.x + gl_FragCoord.y, 10.0) == 0.0)\\n {\\n gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0);\\n }\\n }\\n\\n if (lum < 0.75)\\n {\\n if (mod(gl_FragCoord.x - gl_FragCoord.y, 10.0) == 0.0)\\n {\\n gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0);\\n }\\n }\\n\\n if (lum < 0.50)\\n {\\n if (mod(gl_FragCoord.x + gl_FragCoord.y - 5.0, 10.0) == 0.0)\\n {\\n gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0);\\n }\\n }\\n\\n if (lum < 0.3)\\n {\\n if (mod(gl_FragCoord.x - gl_FragCoord.y - 5.0, 10.0) == 0.0)\\n {\\n gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0);\\n }\\n }\\n}\\n\",e=function(o){function e(){o.call(this,n,r)}return o&&(e.__proto__=o),e.prototype=Object.create(o&&o.prototype),e.prototype.constructor=e,e}(o);export{e as CrossHatchFilter};\n//# sourceMappingURL=filter-cross-hatch.esm.js.map\n","/*!\n * @pixi/filter-crt - v2.7.0\n * Compiled Sun, 13 Jan 2019 22:51:52 UTC\n *\n * @pixi/filter-crt is licensed under the MIT License.\n * http://www.opensource.org/licenses/mit-license\n */\nimport{Filter as n}from\"pixi.js\";var i=\"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}\",t=\"varying vec2 vTextureCoord;\\nuniform sampler2D uSampler;\\n\\nuniform vec4 filterArea;\\nuniform vec2 dimensions;\\n\\nconst float SQRT_2 = 1.414213;\\n\\nconst float light = 1.0;\\n\\nuniform float curvature;\\nuniform float lineWidth;\\nuniform float lineContrast;\\nuniform bool verticalLine;\\nuniform float noise;\\nuniform float noiseSize;\\n\\nuniform float vignetting;\\nuniform float vignettingAlpha;\\nuniform float vignettingBlur;\\n\\nuniform float seed;\\nuniform float time;\\n\\nfloat rand(vec2 co) {\\n return fract(sin(dot(co.xy, vec2(12.9898, 78.233))) * 43758.5453);\\n}\\n\\nvoid main(void)\\n{\\n vec2 pixelCoord = vTextureCoord.xy * filterArea.xy;\\n vec2 coord = pixelCoord / dimensions;\\n\\n vec2 dir = vec2(coord - vec2(0.5, 0.5));\\n\\n float _c = curvature > 0. ? curvature : 1.;\\n float k = curvature > 0. ?(length(dir * dir) * 0.25 * _c * _c + 0.935 * _c) : 1.;\\n vec2 uv = dir * k;\\n\\n gl_FragColor = texture2D(uSampler, vTextureCoord);\\n vec3 rgb = gl_FragColor.rgb;\\n\\n\\n if (noise > 0.0 && noiseSize > 0.0)\\n {\\n pixelCoord.x = floor(pixelCoord.x / noiseSize);\\n pixelCoord.y = floor(pixelCoord.y / noiseSize);\\n float _noise = rand(pixelCoord * noiseSize * seed) - 0.5;\\n rgb += _noise * noise;\\n }\\n\\n if (lineWidth > 0.0) {\\n float v = (verticalLine ? uv.x * dimensions.x : uv.y * dimensions.y) * min(1.0, 2.0 / lineWidth ) / _c;\\n float j = 1. + cos(v * 1.2 - time) * 0.5 * lineContrast;\\n rgb *= j;\\n float segment = verticalLine ? mod((dir.x + .5) * dimensions.x, 4.) : mod((dir.y + .5) * dimensions.y, 4.);\\n rgb *= 0.99 + ceil(segment) * 0.015;\\n }\\n\\n if (vignetting > 0.0)\\n {\\n float outter = SQRT_2 - vignetting * SQRT_2;\\n float darker = clamp((outter - length(dir) * SQRT_2) / ( 0.00001 + vignettingBlur * SQRT_2), 0.0, 1.0);\\n rgb *= darker + (1.0 - darker) * (1.0 - vignettingAlpha);\\n }\\n\\n gl_FragColor.rgb = rgb;\\n}\\n\",e=function(n){function e(e){n.call(this,i,t),this.uniforms.dimensions=new Float32Array(2),this.time=0,this.seed=0,Object.assign(this,{curvature:1,lineWidth:1,lineContrast:.25,verticalLine:!1,noise:0,noiseSize:1,seed:0,vignetting:.3,vignettingAlpha:1,vignettingBlur:.3,time:0},e)}n&&(e.__proto__=n),e.prototype=Object.create(n&&n.prototype),e.prototype.constructor=e;var o={curvature:{configurable:!0},lineWidth:{configurable:!0},lineContrast:{configurable:!0},verticalLine:{configurable:!0},noise:{configurable:!0},noiseSize:{configurable:!0},vignetting:{configurable:!0},vignettingAlpha:{configurable:!0},vignettingBlur:{configurable:!0}};return e.prototype.apply=function(n,i,t,e){this.uniforms.dimensions[0]=i.sourceFrame.width,this.uniforms.dimensions[1]=i.sourceFrame.height,this.uniforms.seed=this.seed,this.uniforms.time=this.time,n.applyFilter(this,i,t,e)},o.curvature.set=function(n){this.uniforms.curvature=n},o.curvature.get=function(){return this.uniforms.curvature},o.lineWidth.set=function(n){this.uniforms.lineWidth=n},o.lineWidth.get=function(){return this.uniforms.lineWidth},o.lineContrast.set=function(n){this.uniforms.lineContrast=n},o.lineContrast.get=function(){return this.uniforms.lineContrast},o.verticalLine.set=function(n){this.uniforms.verticalLine=n},o.verticalLine.get=function(){return this.uniforms.verticalLine},o.noise.set=function(n){this.uniforms.noise=n},o.noise.get=function(){return this.uniforms.noise},o.noiseSize.set=function(n){this.uniforms.noiseSize=n},o.noiseSize.get=function(){return this.uniforms.noiseSize},o.vignetting.set=function(n){this.uniforms.vignetting=n},o.vignetting.get=function(){return this.uniforms.vignetting},o.vignettingAlpha.set=function(n){this.uniforms.vignettingAlpha=n},o.vignettingAlpha.get=function(){return this.uniforms.vignettingAlpha},o.vignettingBlur.set=function(n){this.uniforms.vignettingBlur=n},o.vignettingBlur.get=function(){return this.uniforms.vignettingBlur},Object.defineProperties(e.prototype,o),e}(n);export{e as CRTFilter};\n//# sourceMappingURL=filter-crt.esm.js.map\n","/*!\n * @pixi/filter-dot - v2.7.0\n * Compiled Sun, 13 Jan 2019 22:51:52 UTC\n *\n * @pixi/filter-dot is licensed under the MIT License.\n * http://www.opensource.org/licenses/mit-license\n */\nimport{Filter as e}from\"pixi.js\";var n=\"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=\"precision mediump float;\\n\\nvarying vec2 vTextureCoord;\\nvarying vec4 vColor;\\n\\nuniform vec4 filterArea;\\nuniform sampler2D uSampler;\\n\\nuniform float angle;\\nuniform float scale;\\n\\nfloat pattern()\\n{\\n float s = sin(angle), c = cos(angle);\\n vec2 tex = vTextureCoord * filterArea.xy;\\n vec2 point = vec2(\\n c * tex.x - s * tex.y,\\n s * tex.x + c * tex.y\\n ) * scale;\\n return (sin(point.x) * sin(point.y)) * 4.0;\\n}\\n\\nvoid main()\\n{\\n vec4 color = texture2D(uSampler, vTextureCoord);\\n float average = (color.r + color.g + color.b) / 3.0;\\n gl_FragColor = vec4(vec3(average * 10.0 - 5.0 + pattern()), color.a);\\n}\\n\",t=function(e){function t(t,r){void 0===t&&(t=1),void 0===r&&(r=5),e.call(this,n,o),this.scale=t,this.angle=r}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var r={scale:{configurable:!0},angle:{configurable:!0}};return r.scale.get=function(){return this.uniforms.scale},r.scale.set=function(e){this.uniforms.scale=e},r.angle.get=function(){return this.uniforms.angle},r.angle.set=function(e){this.uniforms.angle=e},Object.defineProperties(t.prototype,r),t}(e);export{t as DotFilter};\n//# sourceMappingURL=filter-dot.esm.js.map\n","/*!\n * @pixi/filter-drop-shadow - v2.7.0\n * Compiled Sun, 13 Jan 2019 22:51:52 UTC\n *\n * @pixi/filter-drop-shadow is licensed under the MIT License.\n * http://www.opensource.org/licenses/mit-license\n */\nimport{KawaseBlurFilter as t}from\"@pixi/filter-kawase-blur\";import{DEG_TO_RAD as i,utils as r,Filter as e,settings as n,Matrix as o}from\"pixi.js\";var a=\"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}\",l=\"varying vec2 vTextureCoord;\\nuniform sampler2D uSampler;\\nuniform float alpha;\\nuniform vec3 color;\\nvoid main(void){\\n vec4 sample = texture2D(uSampler, vTextureCoord);\\n\\n // Un-premultiply alpha before applying the color\\n if (sample.a > 0.0) {\\n sample.rgb /= sample.a;\\n }\\n\\n // Premultiply alpha again\\n sample.rgb = color.rgb * sample.a;\\n\\n // alpha user alpha\\n sample *= alpha;\\n\\n gl_FragColor = sample;\\n}\",s=function(s){function u(i){i&&i.constructor!==Object&&(console.warn(\"DropShadowFilter now uses options instead of (rotation, distance, blur, color, alpha)\"),i={rotation:i},void 0!==arguments[1]&&(i.distance=arguments[1]),void 0!==arguments[2]&&(i.blur=arguments[2]),void 0!==arguments[3]&&(i.color=arguments[3]),void 0!==arguments[4]&&(i.alpha=arguments[4])),i=Object.assign({rotation:45,distance:5,color:0,alpha:.5,shadowOnly:!1,kernels:null,blur:2,quality:3,pixelSize:1,resolution:n.RESOLUTION},i),s.call(this);var r=i.kernels,u=i.blur,c=i.quality,p=i.pixelSize,h=i.resolution;this._tintFilter=new e(a,l),this._tintFilter.uniforms.color=new Float32Array(4),this._tintFilter.resolution=h,this._blurFilter=r?new t(r):new t(u,c),this.pixelSize=p,this.resolution=h,this.targetTransform=new o;var f=i.shadowOnly,d=i.rotation,g=i.distance,b=i.alpha,_=i.color;this.shadowOnly=f,this.rotation=d,this.distance=g,this.alpha=b,this.color=_,this._updatePadding()}s&&(u.__proto__=s),u.prototype=Object.create(s&&s.prototype),u.prototype.constructor=u;var c={resolution:{configurable:!0},distance:{configurable:!0},rotation:{configurable:!0},alpha:{configurable:!0},color:{configurable:!0},kernels:{configurable:!0},blur:{configurable:!0},quality:{configurable:!0},pixelSize:{configurable:!0}};return u.prototype.apply=function(t,i,r,e){var n=t.getRenderTarget();n.transform=this.targetTransform,this._tintFilter.apply(t,i,n,!0),n.transform=null,this._blurFilter.apply(t,n,r,e),!0!==this.shadowOnly&&t.applyFilter(this,i,r,!1),t.returnRenderTarget(n)},u.prototype._updatePadding=function(){this.padding=this.distance+2*this.blur},u.prototype._updateTargetTransform=function(){this.targetTransform.tx=this.distance*Math.cos(this.angle),this.targetTransform.ty=this.distance*Math.sin(this.angle)},c.resolution.get=function(){return this._resolution},c.resolution.set=function(t){this._resolution=t,this._tintFilter&&(this._tintFilter.resolution=t),this._blurFilter&&(this._blurFilter.resolution=t)},c.distance.get=function(){return this._distance},c.distance.set=function(t){this._distance=t,this._updatePadding(),this._updateTargetTransform()},c.rotation.get=function(){return this.angle/i},c.rotation.set=function(t){this.angle=t*i,this._updateTargetTransform()},c.alpha.get=function(){return this._tintFilter.uniforms.alpha},c.alpha.set=function(t){this._tintFilter.uniforms.alpha=t},c.color.get=function(){return r.rgb2hex(this._tintFilter.uniforms.color)},c.color.set=function(t){r.hex2rgb(t,this._tintFilter.uniforms.color)},c.kernels.get=function(){return this._blurFilter.kernels},c.kernels.set=function(t){this._blurFilter.kernels=t},c.blur.get=function(){return this._blurFilter.blur},c.blur.set=function(t){this._blurFilter.blur=t,this._updatePadding()},c.quality.get=function(){return this._blurFilter.quality},c.quality.set=function(t){this._blurFilter.quality=t},c.pixelSize.get=function(){return this._blurFilter.pixelSize},c.pixelSize.set=function(t){this._blurFilter.pixelSize=t},Object.defineProperties(u.prototype,c),u}(e);export{s as DropShadowFilter};\n//# sourceMappingURL=filter-drop-shadow.esm.js.map\n","/*!\n * @pixi/filter-emboss - v2.7.0\n * Compiled Sun, 13 Jan 2019 22:51:52 UTC\n *\n * @pixi/filter-emboss is licensed under the MIT License.\n * http://www.opensource.org/licenses/mit-license\n */\nimport{Filter as t}from\"pixi.js\";var r=\"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}\",e=\"precision mediump float;\\n\\nvarying vec2 vTextureCoord;\\n\\nuniform sampler2D uSampler;\\nuniform float strength;\\nuniform vec4 filterArea;\\n\\n\\nvoid main(void)\\n{\\n\\tvec2 onePixel = vec2(1.0 / filterArea);\\n\\n\\tvec4 color;\\n\\n\\tcolor.rgb = vec3(0.5);\\n\\n\\tcolor -= texture2D(uSampler, vTextureCoord - onePixel) * strength;\\n\\tcolor += texture2D(uSampler, vTextureCoord + onePixel) * strength;\\n\\n\\tcolor.rgb = vec3((color.r + color.g + color.b) / 3.0);\\n\\n\\tfloat alpha = texture2D(uSampler, vTextureCoord).a;\\n\\n\\tgl_FragColor = vec4(color.rgb * alpha, alpha);\\n}\\n\",o=function(t){function o(o){void 0===o&&(o=5),t.call(this,r,e),this.strength=o}t&&(o.__proto__=t),o.prototype=Object.create(t&&t.prototype),o.prototype.constructor=o;var n={strength:{configurable:!0}};return n.strength.get=function(){return this.uniforms.strength},n.strength.set=function(t){this.uniforms.strength=t},Object.defineProperties(o.prototype,n),o}(t);export{o as EmbossFilter};\n//# sourceMappingURL=filter-emboss.esm.js.map\n","/*!\n * @pixi/filter-glitch - v2.7.0\n * Compiled Sun, 13 Jan 2019 22:51:52 UTC\n *\n * @pixi/filter-glitch is licensed under the MIT License.\n * http://www.opensource.org/licenses/mit-license\n */\nimport{Filter as e,Texture as i,SCALE_MODES as t,DEG_TO_RAD as n}from\"pixi.js\";var r=\"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}\",s=\"// precision highp float;\\n\\nvarying vec2 vTextureCoord;\\nuniform sampler2D uSampler;\\n\\nuniform vec4 filterArea;\\nuniform vec4 filterClamp;\\nuniform vec2 dimensions;\\nuniform float aspect;\\n\\nuniform sampler2D displacementMap;\\nuniform float offset;\\nuniform float sinDir;\\nuniform float cosDir;\\nuniform int fillMode;\\n\\nuniform float seed;\\nuniform vec2 red;\\nuniform vec2 green;\\nuniform vec2 blue;\\n\\nconst int TRANSPARENT = 0;\\nconst int ORIGINAL = 1;\\nconst int LOOP = 2;\\nconst int CLAMP = 3;\\nconst int MIRROR = 4;\\n\\nvoid main(void)\\n{\\n vec2 coord = (vTextureCoord * filterArea.xy) / dimensions;\\n\\n if (coord.x > 1.0 || coord.y > 1.0) {\\n return;\\n }\\n\\n float cx = coord.x - 0.5;\\n float cy = (coord.y - 0.5) * aspect;\\n float ny = (-sinDir * cx + cosDir * cy) / aspect + 0.5;\\n\\n // displacementMap: repeat\\n // ny = ny > 1.0 ? ny - 1.0 : (ny < 0.0 ? 1.0 + ny : ny);\\n\\n // displacementMap: mirror\\n ny = ny > 1.0 ? 2.0 - ny : (ny < 0.0 ? -ny : ny);\\n\\n vec4 dc = texture2D(displacementMap, vec2(0.5, ny));\\n\\n float displacement = (dc.r - dc.g) * (offset / filterArea.x);\\n\\n coord = vTextureCoord + vec2(cosDir * displacement, sinDir * displacement * aspect);\\n\\n if (fillMode == CLAMP) {\\n coord = clamp(coord, filterClamp.xy, filterClamp.zw);\\n } else {\\n if( coord.x > filterClamp.z ) {\\n if (fillMode == ORIGINAL) {\\n gl_FragColor = texture2D(uSampler, vTextureCoord);\\n return;\\n } else if (fillMode == LOOP) {\\n coord.x -= filterClamp.z;\\n } else if (fillMode == MIRROR) {\\n coord.x = filterClamp.z * 2.0 - coord.x;\\n } else {\\n gl_FragColor = vec4(0., 0., 0., 0.);\\n return;\\n }\\n } else if( coord.x < filterClamp.x ) {\\n if (fillMode == ORIGINAL) {\\n gl_FragColor = texture2D(uSampler, vTextureCoord);\\n return;\\n } else if (fillMode == LOOP) {\\n coord.x += filterClamp.z;\\n } else if (fillMode == MIRROR) {\\n coord.x *= -filterClamp.z;\\n } else {\\n gl_FragColor = vec4(0., 0., 0., 0.);\\n return;\\n }\\n }\\n\\n if( coord.y > filterClamp.w ) {\\n if (fillMode == ORIGINAL) {\\n gl_FragColor = texture2D(uSampler, vTextureCoord);\\n return;\\n } else if (fillMode == LOOP) {\\n coord.y -= filterClamp.w;\\n } else if (fillMode == MIRROR) {\\n coord.y = filterClamp.w * 2.0 - coord.y;\\n } else {\\n gl_FragColor = vec4(0., 0., 0., 0.);\\n return;\\n }\\n } else if( coord.y < filterClamp.y ) {\\n if (fillMode == ORIGINAL) {\\n gl_FragColor = texture2D(uSampler, vTextureCoord);\\n return;\\n } else if (fillMode == LOOP) {\\n coord.y += filterClamp.w;\\n } else if (fillMode == MIRROR) {\\n coord.y *= -filterClamp.w;\\n } else {\\n gl_FragColor = vec4(0., 0., 0., 0.);\\n return;\\n }\\n }\\n }\\n\\n gl_FragColor.r = texture2D(uSampler, coord + red * (1.0 - seed * 0.4) / filterArea.xy).r;\\n gl_FragColor.g = texture2D(uSampler, coord + green * (1.0 - seed * 0.3) / filterArea.xy).g;\\n gl_FragColor.b = texture2D(uSampler, coord + blue * (1.0 - seed * 0.2) / filterArea.xy).b;\\n gl_FragColor.a = texture2D(uSampler, coord).a;\\n}\\n\",o=function(e){function o(n){void 0===n&&(n={}),e.call(this,r,s),this.uniforms.dimensions=new Float32Array(2),n=Object.assign({slices:5,offset:100,direction:0,fillMode:0,average:!1,seed:0,red:[0,0],green:[0,0],blue:[0,0],minSize:8,sampleSize:512},n),this.direction=n.direction,this.red=n.red,this.green=n.green,this.blue=n.blue,this.offset=n.offset,this.fillMode=n.fillMode,this.average=n.average,this.seed=n.seed,this.minSize=n.minSize,this.sampleSize=n.sampleSize,this._canvas=document.createElement(\"canvas\"),this._canvas.width=4,this._canvas.height=this.sampleSize,this.texture=i.fromCanvas(this._canvas,t.NEAREST),this._slices=0,this.slices=n.slices}e&&(o.__proto__=e),o.prototype=Object.create(e&&e.prototype),o.prototype.constructor=o;var l={sizes:{configurable:!0},offsets:{configurable:!0},slices:{configurable:!0},direction:{configurable:!0},red:{configurable:!0},green:{configurable:!0},blue:{configurable:!0}};return o.prototype.apply=function(e,i,t,n){var r=i.sourceFrame.width,s=i.sourceFrame.height;this.uniforms.dimensions[0]=r,this.uniforms.dimensions[1]=s,this.uniforms.aspect=s/r,this.uniforms.seed=this.seed,this.uniforms.offset=this.offset,this.uniforms.fillMode=this.fillMode,e.applyFilter(this,i,t,n)},o.prototype._randomizeSizes=function(){var e=this._sizes,i=this._slices-1,t=this.sampleSize,n=Math.min(this.minSize/t,.9/this._slices);if(this.average){for(var r=this._slices,s=1,o=0;o<i;o++){var l=s/(r-o),f=Math.max(l*(1-.6*Math.random()),n);e[o]=f,s-=f}e[i]=s}else{for(var a=1,c=Math.sqrt(1/this._slices),u=0;u<i;u++){var d=Math.max(c*a*Math.random(),n);e[u]=d,a-=d}e[i]=a}this.shuffle()},o.prototype.shuffle=function(){for(var e=this._sizes,i=this._slices-1;i>0;i--){var t=Math.random()*i>>0,n=e[i];e[i]=e[t],e[t]=n}},o.prototype._randomizeOffsets=function(){for(var e=0;e<this._slices;e++)this._offsets[e]=Math.random()*(Math.random()<.5?-1:1)},o.prototype.refresh=function(){this._randomizeSizes(),this._randomizeOffsets(),this.redraw()},o.prototype.redraw=function(){var e,i=this.sampleSize,t=this.texture,n=this._canvas.getContext(\"2d\");n.clearRect(0,0,8,i);for(var r=0,s=0;s<this._slices;s++){e=Math.floor(256*this._offsets[s]);var o=this._sizes[s]*i,l=e>0?e:0,f=e<0?-e:0;n.fillStyle=\"rgba(\"+l+\", \"+f+\", 0, 1)\",n.fillRect(0,r>>0,i,o+1>>0),r+=o}t.baseTexture.update(),this.uniforms.displacementMap=t},l.sizes.set=function(e){for(var i=Math.min(this._slices,e.length),t=0;t<i;t++)this._sizes[t]=e[t]},l.sizes.get=function(){return this._sizes},l.offsets.set=function(e){for(var i=Math.min(this._slices,e.length),t=0;t<i;t++)this._offsets[t]=e[t]},l.offsets.get=function(){return this._offsets},l.slices.get=function(){return this._slices},l.slices.set=function(e){this._slices!==e&&(this._slices=e,this.uniforms.slices=e,this._sizes=this.uniforms.slicesWidth=new Float32Array(e),this._offsets=this.uniforms.slicesOffset=new Float32Array(e),this.refresh())},l.direction.get=function(){return this._direction},l.direction.set=function(e){if(this._direction!==e){this._direction=e;var i=e*n;this.uniforms.sinDir=Math.sin(i),this.uniforms.cosDir=Math.cos(i)}},l.red.get=function(){return this.uniforms.red},l.red.set=function(e){this.uniforms.red=e},l.green.get=function(){return this.uniforms.green},l.green.set=function(e){this.uniforms.green=e},l.blue.get=function(){return this.uniforms.blue},l.blue.set=function(e){this.uniforms.blue=e},o.prototype.destroy=function(){this.texture.destroy(!0),this.texture=null,this._canvas=null,this.red=null,this.green=null,this.blue=null,this._sizes=null,this._offsets=null},Object.defineProperties(o.prototype,l),o}(e);o.TRANSPARENT=0,o.ORIGINAL=1,o.LOOP=2,o.CLAMP=3,o.MIRROR=4;export{o as GlitchFilter};\n//# sourceMappingURL=filter-glitch.esm.js.map\n","/*!\n * @pixi/filter-glow - v2.7.0\n * Compiled Sun, 13 Jan 2019 22:51:52 UTC\n *\n * @pixi/filter-glow is licensed under the MIT License.\n * http://www.opensource.org/licenses/mit-license\n */\nimport{utils as o,Filter as n}from\"pixi.js\";var t=\"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}\",r=\"varying vec2 vTextureCoord;\\nvarying vec4 vColor;\\n\\nuniform sampler2D uSampler;\\n\\nuniform float distance;\\nuniform float outerStrength;\\nuniform float innerStrength;\\nuniform vec4 glowColor;\\nuniform vec4 filterArea;\\nuniform vec4 filterClamp;\\nconst float PI = 3.14159265358979323846264;\\n\\nvoid main(void) {\\n vec2 px = vec2(1.0 / filterArea.x, 1.0 / filterArea.y);\\n vec4 ownColor = texture2D(uSampler, vTextureCoord);\\n vec4 curColor;\\n float totalAlpha = 0.0;\\n float maxTotalAlpha = 0.0;\\n float cosAngle;\\n float sinAngle;\\n vec2 displaced;\\n for (float angle = 0.0; angle <= PI * 2.0; angle += %QUALITY_DIST%) {\\n cosAngle = cos(angle);\\n sinAngle = sin(angle);\\n for (float curDistance = 1.0; curDistance <= %DIST%; curDistance++) {\\n displaced.x = vTextureCoord.x + cosAngle * curDistance * px.x;\\n displaced.y = vTextureCoord.y + sinAngle * curDistance * px.y;\\n curColor = texture2D(uSampler, clamp(displaced, filterClamp.xy, filterClamp.zw));\\n totalAlpha += (distance - curDistance) * curColor.a;\\n maxTotalAlpha += (distance - curDistance);\\n }\\n }\\n maxTotalAlpha = max(maxTotalAlpha, 0.0001);\\n\\n ownColor.a = max(ownColor.a, 0.0001);\\n ownColor.rgb = ownColor.rgb / ownColor.a;\\n float outerGlowAlpha = (totalAlpha / maxTotalAlpha) * outerStrength * (1. - ownColor.a);\\n float innerGlowAlpha = ((maxTotalAlpha - totalAlpha) / maxTotalAlpha) * innerStrength * ownColor.a;\\n float resultAlpha = (ownColor.a + outerGlowAlpha);\\n gl_FragColor = vec4(mix(mix(ownColor.rgb, glowColor.rgb, innerGlowAlpha / ownColor.a), glowColor.rgb, outerGlowAlpha / resultAlpha) * resultAlpha, resultAlpha);\\n}\\n\",e=function(n){function e(o,e,l,a,i){void 0===o&&(o=10),void 0===e&&(e=4),void 0===l&&(l=0),void 0===a&&(a=16777215),void 0===i&&(i=.1),n.call(this,t,r.replace(/%QUALITY_DIST%/gi,\"\"+(1/i/o).toFixed(7)).replace(/%DIST%/gi,\"\"+o.toFixed(7))),this.uniforms.glowColor=new Float32Array([0,0,0,1]),this.distance=o,this.color=a,this.outerStrength=e,this.innerStrength=l}n&&(e.__proto__=n),e.prototype=Object.create(n&&n.prototype),e.prototype.constructor=e;var l={color:{configurable:!0},distance:{configurable:!0},outerStrength:{configurable:!0},innerStrength:{configurable:!0}};return l.color.get=function(){return o.rgb2hex(this.uniforms.glowColor)},l.color.set=function(n){o.hex2rgb(n,this.uniforms.glowColor)},l.distance.get=function(){return this.uniforms.distance},l.distance.set=function(o){this.uniforms.distance=o},l.outerStrength.get=function(){return this.uniforms.outerStrength},l.outerStrength.set=function(o){this.uniforms.outerStrength=o},l.innerStrength.get=function(){return this.uniforms.innerStrength},l.innerStrength.set=function(o){this.uniforms.innerStrength=o},Object.defineProperties(e.prototype,l),e}(n);export{e as GlowFilter};\n//# sourceMappingURL=filter-glow.esm.js.map\n","/*!\n * @pixi/filter-godray - v2.7.0\n * Compiled Sun, 13 Jan 2019 22:51:52 UTC\n *\n * @pixi/filter-godray is licensed under the MIT License.\n * http://www.opensource.org/licenses/mit-license\n */\nimport{Filter as n,Point as e,DEG_TO_RAD as t}from\"pixi.js\";var i=\"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=\"vec3 mod289(vec3 x)\\n{\\n return x - floor(x * (1.0 / 289.0)) * 289.0;\\n}\\nvec4 mod289(vec4 x)\\n{\\n return x - floor(x * (1.0 / 289.0)) * 289.0;\\n}\\nvec4 permute(vec4 x)\\n{\\n return mod289(((x * 34.0) + 1.0) * x);\\n}\\nvec4 taylorInvSqrt(vec4 r)\\n{\\n return 1.79284291400159 - 0.85373472095314 * r;\\n}\\nvec3 fade(vec3 t)\\n{\\n return t * t * t * (t * (t * 6.0 - 15.0) + 10.0);\\n}\\n// Classic Perlin noise, periodic variant\\nfloat pnoise(vec3 P, vec3 rep)\\n{\\n vec3 Pi0 = mod(floor(P), rep); // Integer part, modulo period\\n vec3 Pi1 = mod(Pi0 + vec3(1.0), rep); // Integer part + 1, mod period\\n Pi0 = mod289(Pi0);\\n Pi1 = mod289(Pi1);\\n vec3 Pf0 = fract(P); // Fractional part for interpolation\\n vec3 Pf1 = Pf0 - vec3(1.0); // Fractional part - 1.0\\n vec4 ix = vec4(Pi0.x, Pi1.x, Pi0.x, Pi1.x);\\n vec4 iy = vec4(Pi0.yy, Pi1.yy);\\n vec4 iz0 = Pi0.zzzz;\\n vec4 iz1 = Pi1.zzzz;\\n vec4 ixy = permute(permute(ix) + iy);\\n vec4 ixy0 = permute(ixy + iz0);\\n vec4 ixy1 = permute(ixy + iz1);\\n vec4 gx0 = ixy0 * (1.0 / 7.0);\\n vec4 gy0 = fract(floor(gx0) * (1.0 / 7.0)) - 0.5;\\n gx0 = fract(gx0);\\n vec4 gz0 = vec4(0.5) - abs(gx0) - abs(gy0);\\n vec4 sz0 = step(gz0, vec4(0.0));\\n gx0 -= sz0 * (step(0.0, gx0) - 0.5);\\n gy0 -= sz0 * (step(0.0, gy0) - 0.5);\\n vec4 gx1 = ixy1 * (1.0 / 7.0);\\n vec4 gy1 = fract(floor(gx1) * (1.0 / 7.0)) - 0.5;\\n gx1 = fract(gx1);\\n vec4 gz1 = vec4(0.5) - abs(gx1) - abs(gy1);\\n vec4 sz1 = step(gz1, vec4(0.0));\\n gx1 -= sz1 * (step(0.0, gx1) - 0.5);\\n gy1 -= sz1 * (step(0.0, gy1) - 0.5);\\n vec3 g000 = vec3(gx0.x, gy0.x, gz0.x);\\n vec3 g100 = vec3(gx0.y, gy0.y, gz0.y);\\n vec3 g010 = vec3(gx0.z, gy0.z, gz0.z);\\n vec3 g110 = vec3(gx0.w, gy0.w, gz0.w);\\n vec3 g001 = vec3(gx1.x, gy1.x, gz1.x);\\n vec3 g101 = vec3(gx1.y, gy1.y, gz1.y);\\n vec3 g011 = vec3(gx1.z, gy1.z, gz1.z);\\n vec3 g111 = vec3(gx1.w, gy1.w, gz1.w);\\n vec4 norm0 = taylorInvSqrt(vec4(dot(g000, g000), dot(g010, g010), dot(g100, g100), dot(g110, g110)));\\n g000 *= norm0.x;\\n g010 *= norm0.y;\\n g100 *= norm0.z;\\n g110 *= norm0.w;\\n vec4 norm1 = taylorInvSqrt(vec4(dot(g001, g001), dot(g011, g011), dot(g101, g101), dot(g111, g111)));\\n g001 *= norm1.x;\\n g011 *= norm1.y;\\n g101 *= norm1.z;\\n g111 *= norm1.w;\\n float n000 = dot(g000, Pf0);\\n float n100 = dot(g100, vec3(Pf1.x, Pf0.yz));\\n float n010 = dot(g010, vec3(Pf0.x, Pf1.y, Pf0.z));\\n float n110 = dot(g110, vec3(Pf1.xy, Pf0.z));\\n float n001 = dot(g001, vec3(Pf0.xy, Pf1.z));\\n float n101 = dot(g101, vec3(Pf1.x, Pf0.y, Pf1.z));\\n float n011 = dot(g011, vec3(Pf0.x, Pf1.yz));\\n float n111 = dot(g111, Pf1);\\n vec3 fade_xyz = fade(Pf0);\\n vec4 n_z = mix(vec4(n000, n100, n010, n110), vec4(n001, n101, n011, n111), fade_xyz.z);\\n vec2 n_yz = mix(n_z.xy, n_z.zw, fade_xyz.y);\\n float n_xyz = mix(n_yz.x, n_yz.y, fade_xyz.x);\\n return 2.2 * n_xyz;\\n}\\nfloat turb(vec3 P, vec3 rep, float lacunarity, float gain)\\n{\\n float sum = 0.0;\\n float sc = 1.0;\\n float totalgain = 1.0;\\n for (float i = 0.0; i < 6.0; i++)\\n {\\n sum += totalgain * pnoise(P * sc, rep);\\n sc *= lacunarity;\\n totalgain *= gain;\\n }\\n return abs(sum);\\n}\\n\",r=\"varying vec2 vTextureCoord;\\nuniform sampler2D uSampler;\\nuniform vec4 filterArea;\\nuniform vec2 dimensions;\\n\\nuniform vec2 light;\\nuniform bool parallel;\\nuniform float aspect;\\n\\nuniform float gain;\\nuniform float lacunarity;\\nuniform float time;\\n\\n${perlin}\\n\\nvoid main(void) {\\n vec2 coord = vTextureCoord * filterArea.xy / dimensions.xy;\\n\\n float d;\\n\\n if (parallel) {\\n float _cos = light.x;\\n float _sin = light.y;\\n d = (_cos * coord.x) + (_sin * coord.y * aspect);\\n } else {\\n float dx = coord.x - light.x / dimensions.x;\\n float dy = (coord.y - light.y / dimensions.y) * aspect;\\n float dis = sqrt(dx * dx + dy * dy) + 0.00001;\\n d = dy / dis;\\n }\\n\\n vec3 dir = vec3(d, d, 0.0);\\n\\n float noise = turb(dir + vec3(time, 0.0, 62.1 + time) * 0.05, vec3(480.0, 320.0, 480.0), lacunarity, gain);\\n noise = mix(noise, 0.0, 0.3);\\n //fade vertically.\\n vec4 mist = vec4(noise, noise, noise, 1.0) * (1.0 - coord.y);\\n mist.a = 1.0;\\n\\n gl_FragColor = texture2D(uSampler, vTextureCoord) + mist;\\n}\\n\",a=function(n){function a(t){n.call(this,i,r.replace(\"${perlin}\",o)),this.uniforms.dimensions=new Float32Array(2),\"number\"==typeof t&&(console.warn(\"GodrayFilter now uses options instead of (angle, gain, lacunarity, time)\"),t={angle:t},void 0!==arguments[1]&&(t.gain=arguments[1]),void 0!==arguments[2]&&(t.lacunarity=arguments[2]),void 0!==arguments[3]&&(t.time=arguments[3])),t=Object.assign({angle:30,gain:.5,lacunarity:2.5,time:0,parallel:!0,center:[0,0]},t),this._angleLight=new e,this.angle=t.angle,this.gain=t.gain,this.lacunarity=t.lacunarity,this.parallel=t.parallel,this.center=t.center,this.time=t.time}n&&(a.__proto__=n),a.prototype=Object.create(n&&n.prototype),a.prototype.constructor=a;var c={angle:{configurable:!0},gain:{configurable:!0},lacunarity:{configurable:!0}};return a.prototype.apply=function(n,e,t,i){var o=e.sourceFrame,r=o.width,a=o.height;this.uniforms.light=this.parallel?this._angleLight:this.center,this.uniforms.parallel=this.parallel,this.uniforms.dimensions[0]=r,this.uniforms.dimensions[1]=a,this.uniforms.aspect=a/r,this.uniforms.time=this.time,n.applyFilter(this,e,t,i)},c.angle.get=function(){return this._angle},c.angle.set=function(n){this._angle=n;var e=n*t;this._angleLight.x=Math.cos(e),this._angleLight.y=Math.sin(e)},c.gain.get=function(){return this.uniforms.gain},c.gain.set=function(n){this.uniforms.gain=n},c.lacunarity.get=function(){return this.uniforms.lacunarity},c.lacunarity.set=function(n){this.uniforms.lacunarity=n},Object.defineProperties(a.prototype,c),a}(n);export{a as GodrayFilter};\n//# sourceMappingURL=filter-godray.esm.js.map\n","/*!\n * @pixi/filter-motion-blur - v2.7.0\n * Compiled Sun, 13 Jan 2019 22:51:52 UTC\n *\n * @pixi/filter-motion-blur is licensed under the MIT License.\n * http://www.opensource.org/licenses/mit-license\n */\nimport{Point as e,ObservablePoint as t,Filter as i}from\"pixi.js\";var o=\"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}\",n=\"varying vec2 vTextureCoord;\\nuniform sampler2D uSampler;\\nuniform vec4 filterArea;\\n\\nuniform vec2 uVelocity;\\nuniform int uKernelSize;\\nuniform float uOffset;\\n\\nconst int MAX_KERNEL_SIZE = 2048;\\n\\n// Notice:\\n// the perfect way:\\n// int kernelSize = min(uKernelSize, MAX_KERNELSIZE);\\n// BUT in real use-case , uKernelSize < MAX_KERNELSIZE almost always.\\n// So use uKernelSize directly.\\n\\nvoid main(void)\\n{\\n vec4 color = texture2D(uSampler, vTextureCoord);\\n\\n if (uKernelSize == 0)\\n {\\n gl_FragColor = color;\\n return;\\n }\\n\\n vec2 velocity = uVelocity / filterArea.xy;\\n float offset = -uOffset / length(uVelocity) - 0.5;\\n int k = uKernelSize - 1;\\n\\n for(int i = 0; i < MAX_KERNEL_SIZE - 1; i++) {\\n if (i == k) {\\n break;\\n }\\n vec2 bias = velocity * (float(i) / float(k) + offset);\\n color += texture2D(uSampler, vTextureCoord + bias);\\n }\\n gl_FragColor = color / float(uKernelSize);\\n}\\n\",r=function(i){function r(e,r,l){void 0===e&&(e=[0,0]),void 0===r&&(r=5),void 0===l&&(l=0),i.call(this,o,n),this.uniforms.uVelocity=new Float32Array(2),this._velocity=new t(this.velocityChanged,this),this.velocity=e,this.kernelSize=r,this.offset=l}i&&(r.__proto__=i),r.prototype=Object.create(i&&i.prototype),r.prototype.constructor=r;var l={velocity:{configurable:!0},offset:{configurable:!0}};return r.prototype.apply=function(e,t,i,o){var n=this.velocity,r=n.x,l=n.y;this.uniforms.uKernelSize=0!==r||0!==l?this.kernelSize:0,e.applyFilter(this,t,i,o)},l.velocity.set=function(i){Array.isArray(i)?this._velocity.set(i[0],i[1]):(i instanceof e||i instanceof t)&&this._velocity.copy(i)},l.velocity.get=function(){return this._velocity},r.prototype.velocityChanged=function(){this.uniforms.uVelocity[0]=this._velocity.x,this.uniforms.uVelocity[1]=this._velocity.y},l.offset.set=function(e){this.uniforms.uOffset=e},l.offset.get=function(){return this.uniforms.uOffset},Object.defineProperties(r.prototype,l),r}(i);export{r as MotionBlurFilter};\n//# sourceMappingURL=filter-motion-blur.esm.js.map\n","/*!\n * @pixi/filter-multi-color-replace - v2.7.0\n * Compiled Sun, 13 Jan 2019 22:51:52 UTC\n *\n * @pixi/filter-multi-color-replace is licensed under the MIT License.\n * http://www.opensource.org/licenses/mit-license\n */\nimport{utils as o,Filter as r}from\"pixi.js\";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}\",n=\"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\",t=function(r){function t(o,t,i){void 0===t&&(t=.05),void 0===i&&(i=null),i=i||o.length,r.call(this,e,n.replace(/%maxColors%/g,i)),this.epsilon=t,this._maxColors=i,this._replacements=null,this.uniforms.originalColors=new Float32Array(3*i),this.uniforms.targetColors=new Float32Array(3*i),this.replacements=o}r&&(t.__proto__=r),t.prototype=Object.create(r&&r.prototype),t.prototype.constructor=t;var i={replacements:{configurable:!0},maxColors:{configurable:!0},epsilon:{configurable:!0}};return i.replacements.set=function(r){var e=this.uniforms.originalColors,n=this.uniforms.targetColors,t=r.length;if(t>this._maxColors)throw\"Length of replacements (\"+t+\") exceeds the maximum colors length (\"+this._maxColors+\")\";e[3*t]=-1;for(var i=0;i<t;i++){var l=r[i],a=l[0];\"number\"==typeof a?a=o.hex2rgb(a):l[0]=o.rgb2hex(a),e[3*i]=a[0],e[3*i+1]=a[1],e[3*i+2]=a[2];var s=l[1];\"number\"==typeof s?s=o.hex2rgb(s):l[1]=o.rgb2hex(s),n[3*i]=s[0],n[3*i+1]=s[1],n[3*i+2]=s[2]}this._replacements=r},i.replacements.get=function(){return this._replacements},t.prototype.refresh=function(){this.replacements=this._replacements},i.maxColors.get=function(){return this._maxColors},i.epsilon.set=function(o){this.uniforms.epsilon=o},i.epsilon.get=function(){return this.uniforms.epsilon},Object.defineProperties(t.prototype,i),t}(r);export{t as MultiColorReplaceFilter};\n//# sourceMappingURL=filter-multi-color-replace.esm.js.map\n","/*!\n * @pixi/filter-old-film - v2.7.0\n * Compiled Sun, 13 Jan 2019 22:51:52 UTC\n *\n * @pixi/filter-old-film is licensed under the MIT License.\n * http://www.opensource.org/licenses/mit-license\n */\nimport{Filter as n}from\"pixi.js\";var t=\"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}\",i=\"varying vec2 vTextureCoord;\\nuniform sampler2D uSampler;\\nuniform vec4 filterArea;\\nuniform vec2 dimensions;\\n\\nuniform float sepia;\\nuniform float noise;\\nuniform float noiseSize;\\nuniform float scratch;\\nuniform float scratchDensity;\\nuniform float scratchWidth;\\nuniform float vignetting;\\nuniform float vignettingAlpha;\\nuniform float vignettingBlur;\\nuniform float seed;\\n\\nconst float SQRT_2 = 1.414213;\\nconst vec3 SEPIA_RGB = vec3(112.0 / 255.0, 66.0 / 255.0, 20.0 / 255.0);\\n\\nfloat rand(vec2 co) {\\n return fract(sin(dot(co.xy, vec2(12.9898, 78.233))) * 43758.5453);\\n}\\n\\nvec3 Overlay(vec3 src, vec3 dst)\\n{\\n // if (dst <= 0.5) then: 2 * src * dst\\n // if (dst > 0.5) then: 1 - 2 * (1 - dst) * (1 - src)\\n return vec3((dst.x <= 0.5) ? (2.0 * src.x * dst.x) : (1.0 - 2.0 * (1.0 - dst.x) * (1.0 - src.x)),\\n (dst.y <= 0.5) ? (2.0 * src.y * dst.y) : (1.0 - 2.0 * (1.0 - dst.y) * (1.0 - src.y)),\\n (dst.z <= 0.5) ? (2.0 * src.z * dst.z) : (1.0 - 2.0 * (1.0 - dst.z) * (1.0 - src.z)));\\n}\\n\\n\\nvoid main()\\n{\\n gl_FragColor = texture2D(uSampler, vTextureCoord);\\n vec3 color = gl_FragColor.rgb;\\n\\n if (sepia > 0.0)\\n {\\n float gray = (color.x + color.y + color.z) / 3.0;\\n vec3 grayscale = vec3(gray);\\n\\n color = Overlay(SEPIA_RGB, grayscale);\\n\\n color = grayscale + sepia * (color - grayscale);\\n }\\n\\n vec2 coord = vTextureCoord * filterArea.xy / dimensions.xy;\\n\\n if (vignetting > 0.0)\\n {\\n float outter = SQRT_2 - vignetting * SQRT_2;\\n vec2 dir = vec2(vec2(0.5, 0.5) - coord);\\n dir.y *= dimensions.y / dimensions.x;\\n float darker = clamp((outter - length(dir) * SQRT_2) / ( 0.00001 + vignettingBlur * SQRT_2), 0.0, 1.0);\\n color.rgb *= darker + (1.0 - darker) * (1.0 - vignettingAlpha);\\n }\\n\\n if (scratchDensity > seed && scratch != 0.0)\\n {\\n float phase = seed * 256.0;\\n float s = mod(floor(phase), 2.0);\\n float dist = 1.0 / scratchDensity;\\n float d = distance(coord, vec2(seed * dist, abs(s - seed * dist)));\\n if (d < seed * 0.6 + 0.4)\\n {\\n highp float period = scratchDensity * 10.0;\\n\\n float xx = coord.x * period + phase;\\n float aa = abs(mod(xx, 0.5) * 4.0);\\n float bb = mod(floor(xx / 0.5), 2.0);\\n float yy = (1.0 - bb) * aa + bb * (2.0 - aa);\\n\\n float kk = 2.0 * period;\\n float dw = scratchWidth / dimensions.x * (0.75 + seed);\\n float dh = dw * kk;\\n\\n float tine = (yy - (2.0 - dh));\\n\\n if (tine > 0.0) {\\n float _sign = sign(scratch);\\n\\n tine = s * tine / period + scratch + 0.1;\\n tine = clamp(tine + 1.0, 0.5 + _sign * 0.5, 1.5 + _sign * 0.5);\\n\\n color.rgb *= tine;\\n }\\n }\\n }\\n\\n if (noise > 0.0 && noiseSize > 0.0)\\n {\\n vec2 pixelCoord = vTextureCoord.xy * filterArea.xy;\\n pixelCoord.x = floor(pixelCoord.x / noiseSize);\\n pixelCoord.y = floor(pixelCoord.y / noiseSize);\\n // vec2 d = pixelCoord * noiseSize * vec2(1024.0 + seed * 512.0, 1024.0 - seed * 512.0);\\n // float _noise = snoise(d) * 0.5;\\n float _noise = rand(pixelCoord * noiseSize * seed) - 0.5;\\n color += _noise * noise;\\n }\\n\\n gl_FragColor.rgb = color;\\n}\\n\",e=function(n){function e(e,o){void 0===o&&(o=0),n.call(this,t,i),this.uniforms.dimensions=new Float32Array(2),\"number\"==typeof e?(this.seed=e,e=null):this.seed=o,Object.assign(this,{sepia:.3,noise:.3,noiseSize:1,scratch:.5,scratchDensity:.3,scratchWidth:1,vignetting:.3,vignettingAlpha:1,vignettingBlur:.3},e)}n&&(e.__proto__=n),e.prototype=Object.create(n&&n.prototype),e.prototype.constructor=e;var o={sepia:{configurable:!0},noise:{configurable:!0},noiseSize:{configurable:!0},scratch:{configurable:!0},scratchDensity:{configurable:!0},scratchWidth:{configurable:!0},vignetting:{configurable:!0},vignettingAlpha:{configurable:!0},vignettingBlur:{configurable:!0}};return e.prototype.apply=function(n,t,i,e){this.uniforms.dimensions[0]=t.sourceFrame.width,this.uniforms.dimensions[1]=t.sourceFrame.height,this.uniforms.seed=this.seed,n.applyFilter(this,t,i,e)},o.sepia.set=function(n){this.uniforms.sepia=n},o.sepia.get=function(){return this.uniforms.sepia},o.noise.set=function(n){this.uniforms.noise=n},o.noise.get=function(){return this.uniforms.noise},o.noiseSize.set=function(n){this.uniforms.noiseSize=n},o.noiseSize.get=function(){return this.uniforms.noiseSize},o.scratch.set=function(n){this.uniforms.scratch=n},o.scratch.get=function(){return this.uniforms.scratch},o.scratchDensity.set=function(n){this.uniforms.scratchDensity=n},o.scratchDensity.get=function(){return this.uniforms.scratchDensity},o.scratchWidth.set=function(n){this.uniforms.scratchWidth=n},o.scratchWidth.get=function(){return this.uniforms.scratchWidth},o.vignetting.set=function(n){this.uniforms.vignetting=n},o.vignetting.get=function(){return this.uniforms.vignetting},o.vignettingAlpha.set=function(n){this.uniforms.vignettingAlpha=n},o.vignettingAlpha.get=function(){return this.uniforms.vignettingAlpha},o.vignettingBlur.set=function(n){this.uniforms.vignettingBlur=n},o.vignettingBlur.get=function(){return this.uniforms.vignettingBlur},Object.defineProperties(e.prototype,o),e}(n);export{e as OldFilmFilter};\n//# sourceMappingURL=filter-old-film.esm.js.map\n","/*!\n * @pixi/filter-outline - v2.7.0\n * Compiled Sun, 13 Jan 2019 22:51:52 UTC\n *\n * @pixi/filter-outline is licensed under the MIT License.\n * http://www.opensource.org/licenses/mit-license\n */\nimport{utils as o,Filter as e}from\"pixi.js\";var t=\"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}\",r=\"varying vec2 vTextureCoord;\\nuniform sampler2D uSampler;\\n\\nuniform vec2 thickness;\\nuniform vec4 outlineColor;\\nuniform vec4 filterClamp;\\n\\nconst float DOUBLE_PI = 3.14159265358979323846264 * 2.;\\n\\nvoid main(void) {\\n vec4 ownColor = texture2D(uSampler, vTextureCoord);\\n vec4 curColor;\\n float maxAlpha = 0.;\\n vec2 displaced;\\n for (float angle = 0.; angle <= DOUBLE_PI; angle += ${angleStep}) {\\n displaced.x = vTextureCoord.x + thickness.x * cos(angle);\\n displaced.y = vTextureCoord.y + thickness.y * sin(angle);\\n curColor = texture2D(uSampler, clamp(displaced, filterClamp.xy, filterClamp.zw));\\n maxAlpha = max(maxAlpha, curColor.a);\\n }\\n float resultAlpha = max(maxAlpha, ownColor.a);\\n gl_FragColor = vec4((ownColor.rgb + outlineColor.rgb * (1. - ownColor.a)) * resultAlpha, resultAlpha);\\n}\\n\",n=function(e){function n(o,i,a){void 0===o&&(o=1),void 0===i&&(i=0),void 0===a&&(a=.1);var l=Math.max(a*n.MAX_SAMPLES,n.MIN_SAMPLES),s=(2*Math.PI/l).toFixed(7);e.call(this,t,r.replace(/\\$\\{angleStep\\}/,s)),this.uniforms.thickness=new Float32Array([0,0]),this.thickness=o,this.uniforms.outlineColor=new Float32Array([0,0,0,1]),this.color=i,this.quality=a}e&&(n.__proto__=e),n.prototype=Object.create(e&&e.prototype),n.prototype.constructor=n;var i={color:{configurable:!0}};return n.prototype.apply=function(o,e,t,r){this.uniforms.thickness[0]=this.thickness/e.size.width,this.uniforms.thickness[1]=this.thickness/e.size.height,o.applyFilter(this,e,t,r)},i.color.get=function(){return o.rgb2hex(this.uniforms.outlineColor)},i.color.set=function(e){o.hex2rgb(e,this.uniforms.outlineColor)},Object.defineProperties(n.prototype,i),n}(e);n.MIN_SAMPLES=1,n.MAX_SAMPLES=100;export{n as OutlineFilter};\n//# sourceMappingURL=filter-outline.esm.js.map\n","/*!\n * @pixi/filter-pixelate - v2.7.0\n * Compiled Sun, 13 Jan 2019 22:51:52 UTC\n *\n * @pixi/filter-pixelate is licensed under the MIT License.\n * http://www.opensource.org/licenses/mit-license\n */\nimport{Filter as o}from\"pixi.js\";var r=\"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}\",e=\"precision mediump float;\\n\\nvarying vec2 vTextureCoord;\\n\\nuniform vec2 size;\\nuniform sampler2D uSampler;\\n\\nuniform vec4 filterArea;\\n\\nvec2 mapCoord( vec2 coord )\\n{\\n coord *= filterArea.xy;\\n coord += filterArea.zw;\\n\\n return coord;\\n}\\n\\nvec2 unmapCoord( vec2 coord )\\n{\\n coord -= filterArea.zw;\\n coord /= filterArea.xy;\\n\\n return coord;\\n}\\n\\nvec2 pixelate(vec2 coord, vec2 size)\\n{\\n\\treturn floor( coord / size ) * size;\\n}\\n\\nvoid main(void)\\n{\\n vec2 coord = mapCoord(vTextureCoord);\\n\\n coord = pixelate(coord, size);\\n\\n coord = unmapCoord(coord);\\n\\n gl_FragColor = texture2D(uSampler, coord);\\n}\\n\",n=function(o){function n(n){void 0===n&&(n=10),o.call(this,r,e),this.size=n}o&&(n.__proto__=o),n.prototype=Object.create(o&&o.prototype),n.prototype.constructor=n;var t={size:{configurable:!0}};return t.size.get=function(){return this.uniforms.size},t.size.set=function(o){\"number\"==typeof o&&(o=[o,o]),this.uniforms.size=o},Object.defineProperties(n.prototype,t),n}(o);export{n as PixelateFilter};\n//# sourceMappingURL=filter-pixelate.esm.js.map\n","/*!\n * @pixi/filter-radial-blur - v2.7.0\n * Compiled Sun, 13 Jan 2019 22:51:52 UTC\n *\n * @pixi/filter-radial-blur is licensed under the MIT License.\n * http://www.opensource.org/licenses/mit-license\n */\nimport{Filter as n}from\"pixi.js\";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}\",r=\"varying vec2 vTextureCoord;\\nuniform sampler2D uSampler;\\nuniform vec4 filterArea;\\n\\nuniform float uRadian;\\nuniform vec2 uCenter;\\nuniform float uRadius;\\nuniform int uKernelSize;\\n\\nconst int MAX_KERNEL_SIZE = 2048;\\n\\nvoid main(void)\\n{\\n vec4 color = texture2D(uSampler, vTextureCoord);\\n\\n if (uKernelSize == 0)\\n {\\n gl_FragColor = color;\\n return;\\n }\\n\\n float aspect = filterArea.y / filterArea.x;\\n vec2 center = uCenter.xy / filterArea.xy;\\n float gradient = uRadius / filterArea.x * 0.3;\\n float radius = uRadius / filterArea.x - gradient * 0.5;\\n int k = uKernelSize - 1;\\n\\n vec2 coord = vTextureCoord;\\n vec2 dir = vec2(center - coord);\\n float dist = length(vec2(dir.x, dir.y * aspect));\\n\\n float radianStep = uRadian;\\n if (radius >= 0.0 && dist > radius) {\\n float delta = dist - radius;\\n float gap = gradient;\\n float scale = 1.0 - abs(delta / gap);\\n if (scale <= 0.0) {\\n gl_FragColor = color;\\n return;\\n }\\n radianStep *= scale;\\n }\\n radianStep /= float(k);\\n\\n float s = sin(radianStep);\\n float c = cos(radianStep);\\n mat2 rotationMatrix = mat2(vec2(c, -s), vec2(s, c));\\n\\n for(int i = 0; i < MAX_KERNEL_SIZE - 1; i++) {\\n if (i == k) {\\n break;\\n }\\n\\n coord -= center;\\n coord.y *= aspect;\\n coord = rotationMatrix * coord;\\n coord.y /= aspect;\\n coord += center;\\n\\n vec4 sample = texture2D(uSampler, coord);\\n\\n // switch to pre-multiplied alpha to correctly blur transparent images\\n // sample.rgb *= sample.a;\\n\\n color += sample;\\n }\\n\\n gl_FragColor = color / float(uKernelSize);\\n}\\n\",t=function(n){function t(t,i,o,a){void 0===t&&(t=0),void 0===i&&(i=[0,0]),void 0===o&&(o=5),void 0===a&&(a=-1),n.call(this,e,r),this._angle=0,this.angle=t,this.center=i,this.kernelSize=o,this.radius=a}n&&(t.__proto__=n),t.prototype=Object.create(n&&n.prototype),t.prototype.constructor=t;var i={angle:{configurable:!0},center:{configurable:!0},radius:{configurable:!0}};return t.prototype.apply=function(n,e,r,t){this.uniforms.uKernelSize=0!==this._angle?this.kernelSize:0,n.applyFilter(this,e,r,t)},i.angle.set=function(n){this._angle=n,this.uniforms.uRadian=n*Math.PI/180},i.angle.get=function(){return this._angle},i.center.get=function(){return this.uniforms.uCenter},i.center.set=function(n){this.uniforms.uCenter=n},i.radius.get=function(){return this.uniforms.uRadius},i.radius.set=function(n){(n<0||n===1/0)&&(n=-1),this.uniforms.uRadius=n},Object.defineProperties(t.prototype,i),t}(n);export{t as RadialBlurFilter};\n//# sourceMappingURL=filter-radial-blur.esm.js.map\n","/*!\n * @pixi/filter-reflection - v2.7.0\n * Compiled Sun, 13 Jan 2019 22:51:52 UTC\n *\n * @pixi/filter-reflection is licensed under the MIT License.\n * http://www.opensource.org/licenses/mit-license\n */\nimport{Filter as r}from\"pixi.js\";var n=\"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}\",e=\"varying vec2 vTextureCoord;\\nuniform sampler2D uSampler;\\n\\nuniform vec4 filterArea;\\nuniform vec4 filterClamp;\\nuniform vec2 dimensions;\\n\\nuniform bool mirror;\\nuniform float boundary;\\nuniform vec2 amplitude;\\nuniform vec2 waveLength;\\nuniform vec2 alpha;\\nuniform float time;\\n\\nfloat rand(vec2 co) {\\n return fract(sin(dot(co.xy, vec2(12.9898, 78.233))) * 43758.5453);\\n}\\n\\nvoid main(void)\\n{\\n vec2 pixelCoord = vTextureCoord.xy * filterArea.xy;\\n vec2 coord = pixelCoord / dimensions;\\n\\n if (coord.y < boundary) {\\n gl_FragColor = texture2D(uSampler, vTextureCoord);\\n return;\\n }\\n\\n float k = (coord.y - boundary) / (1. - boundary + 0.0001);\\n float areaY = boundary * dimensions.y / filterArea.y;\\n float v = areaY + areaY - vTextureCoord.y;\\n float y = mirror ? v : vTextureCoord.y;\\n\\n float _amplitude = ((amplitude.y - amplitude.x) * k + amplitude.x ) / filterArea.x;\\n float _waveLength = ((waveLength.y - waveLength.x) * k + waveLength.x) / filterArea.y;\\n float _alpha = (alpha.y - alpha.x) * k + alpha.x;\\n\\n float x = vTextureCoord.x + cos(v * 6.28 / _waveLength - time) * _amplitude;\\n x = clamp(x, filterClamp.x, filterClamp.z);\\n\\n vec4 color = texture2D(uSampler, vec2(x, y));\\n\\n gl_FragColor = color * _alpha;\\n}\\n\",o=function(r){function o(o){r.call(this,n,e),this.uniforms.amplitude=new Float32Array(2),this.uniforms.waveLength=new Float32Array(2),this.uniforms.alpha=new Float32Array(2),this.uniforms.dimensions=new Float32Array(2),Object.assign(this,{mirror:!0,boundary:.5,amplitude:[0,20],waveLength:[30,100],alpha:[1,1],time:0},o)}r&&(o.__proto__=r),o.prototype=Object.create(r&&r.prototype),o.prototype.constructor=o;var t={mirror:{configurable:!0},boundary:{configurable:!0},amplitude:{configurable:!0},waveLength:{configurable:!0},alpha:{configurable:!0}};return o.prototype.apply=function(r,n,e,o){this.uniforms.dimensions[0]=n.sourceFrame.width,this.uniforms.dimensions[1]=n.sourceFrame.height,this.uniforms.time=this.time,r.applyFilter(this,n,e,o)},t.mirror.set=function(r){this.uniforms.mirror=r},t.mirror.get=function(){return this.uniforms.mirror},t.boundary.set=function(r){this.uniforms.boundary=r},t.boundary.get=function(){return this.uniforms.boundary},t.amplitude.set=function(r){this.uniforms.amplitude[0]=r[0],this.uniforms.amplitude[1]=r[1]},t.amplitude.get=function(){return this.uniforms.amplitude},t.waveLength.set=function(r){this.uniforms.waveLength[0]=r[0],this.uniforms.waveLength[1]=r[1]},t.waveLength.get=function(){return this.uniforms.waveLength},t.alpha.set=function(r){this.uniforms.alpha[0]=r[0],this.uniforms.alpha[1]=r[1]},t.alpha.get=function(){return this.uniforms.alpha},Object.defineProperties(o.prototype,t),o}(r);export{o as ReflectionFilter};\n//# sourceMappingURL=filter-reflection.esm.js.map\n","/*!\n * @pixi/filter-rgb-split - v2.7.0\n * Compiled Sun, 13 Jan 2019 22:51:52 UTC\n *\n * @pixi/filter-rgb-split is licensed under the MIT License.\n * http://www.opensource.org/licenses/mit-license\n */\nimport{Filter as e}from\"pixi.js\";var r=\"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=\"precision mediump float;\\n\\nvarying vec2 vTextureCoord;\\n\\nuniform sampler2D uSampler;\\nuniform vec4 filterArea;\\nuniform vec2 red;\\nuniform vec2 green;\\nuniform vec2 blue;\\n\\nvoid main(void)\\n{\\n gl_FragColor.r = texture2D(uSampler, vTextureCoord + red/filterArea.xy).r;\\n gl_FragColor.g = texture2D(uSampler, vTextureCoord + green/filterArea.xy).g;\\n gl_FragColor.b = texture2D(uSampler, vTextureCoord + blue/filterArea.xy).b;\\n gl_FragColor.a = texture2D(uSampler, vTextureCoord).a;\\n}\\n\",n=function(e){function n(n,t,i){void 0===n&&(n=[-10,0]),void 0===t&&(t=[0,10]),void 0===i&&(i=[0,0]),e.call(this,r,o),this.red=n,this.green=t,this.blue=i}e&&(n.__proto__=e),n.prototype=Object.create(e&&e.prototype),n.prototype.constructor=n;var t={red:{configurable:!0},green:{configurable:!0},blue:{configurable:!0}};return t.red.get=function(){return this.uniforms.red},t.red.set=function(e){this.uniforms.red=e},t.green.get=function(){return this.uniforms.green},t.green.set=function(e){this.uniforms.green=e},t.blue.get=function(){return this.uniforms.blue},t.blue.set=function(e){this.uniforms.blue=e},Object.defineProperties(n.prototype,t),n}(e);export{n as RGBSplitFilter};\n//# sourceMappingURL=filter-rgb-split.esm.js.map\n","/*!\n * @pixi/filter-shockwave - v2.7.0\n * Compiled Sun, 13 Jan 2019 22:51:52 UTC\n *\n * @pixi/filter-shockwave is licensed under the MIT License.\n * http://www.opensource.org/licenses/mit-license\n */\nimport{Filter as e}from\"pixi.js\";var n=\"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}\",t=\"varying vec2 vTextureCoord;\\nuniform sampler2D uSampler;\\nuniform vec4 filterArea;\\nuniform vec4 filterClamp;\\n\\nuniform vec2 center;\\n\\nuniform float amplitude;\\nuniform float wavelength;\\n// uniform float power;\\nuniform float brightness;\\nuniform float speed;\\nuniform float radius;\\n\\nuniform float time;\\n\\nconst float PI = 3.14159;\\n\\nvoid main()\\n{\\n float halfWavelength = wavelength * 0.5 / filterArea.x;\\n float maxRadius = radius / filterArea.x;\\n float currentRadius = time * speed / filterArea.x;\\n\\n float fade = 1.0;\\n\\n if (maxRadius > 0.0) {\\n if (currentRadius > maxRadius) {\\n gl_FragColor = texture2D(uSampler, vTextureCoord);\\n return;\\n }\\n fade = 1.0 - pow(currentRadius / maxRadius, 2.0);\\n }\\n\\n vec2 dir = vec2(vTextureCoord - center / filterArea.xy);\\n dir.y *= filterArea.y / filterArea.x;\\n float dist = length(dir);\\n\\n if (dist <= 0.0 || dist < currentRadius - halfWavelength || dist > currentRadius + halfWavelength) {\\n gl_FragColor = texture2D(uSampler, vTextureCoord);\\n return;\\n }\\n\\n vec2 diffUV = normalize(dir);\\n\\n float diff = (dist - currentRadius) / halfWavelength;\\n\\n float p = 1.0 - pow(abs(diff), 2.0);\\n\\n // float powDiff = diff * pow(p, 2.0) * ( amplitude * fade );\\n float powDiff = 1.25 * sin(diff * PI) * p * ( amplitude * fade );\\n\\n vec2 offset = diffUV * powDiff / filterArea.xy;\\n\\n // Do clamp :\\n vec2 coord = vTextureCoord + offset;\\n vec2 clampedCoord = clamp(coord, filterClamp.xy, filterClamp.zw);\\n vec4 color = texture2D(uSampler, clampedCoord);\\n if (coord != clampedCoord) {\\n color *= max(0.0, 1.0 - length(coord - clampedCoord));\\n }\\n\\n // No clamp :\\n // gl_FragColor = texture2D(uSampler, vTextureCoord + offset);\\n\\n color.rgb *= 1.0 + (brightness - 1.0) * p * fade;\\n\\n gl_FragColor = color;\\n}\\n\",r=function(e){function r(r,i,o){void 0===r&&(r=[0,0]),void 0===i&&(i={}),void 0===o&&(o=0),e.call(this,n,t),this.center=r,Array.isArray(i)&&(console.warn(\"Deprecated Warning: ShockwaveFilter params Array has been changed to options Object.\"),i={}),i=Object.assign({amplitude:30,wavelength:160,brightness:1,speed:500,radius:-1},i),this.amplitude=i.amplitude,this.wavelength=i.wavelength,this.brightness=i.brightness,this.speed=i.speed,this.radius=i.radius,this.time=o}e&&(r.__proto__=e),r.prototype=Object.create(e&&e.prototype),r.prototype.constructor=r;var i={center:{configurable:!0},amplitude:{configurable:!0},wavelength:{configurable:!0},brightness:{configurable:!0},speed:{configurable:!0},radius:{configurable:!0}};return r.prototype.apply=function(e,n,t,r){this.uniforms.time=this.time,e.applyFilter(this,n,t,r)},i.center.get=function(){return this.uniforms.center},i.center.set=function(e){this.uniforms.center=e},i.amplitude.get=function(){return this.uniforms.amplitude},i.amplitude.set=function(e){this.uniforms.amplitude=e},i.wavelength.get=function(){return this.uniforms.wavelength},i.wavelength.set=function(e){this.uniforms.wavelength=e},i.brightness.get=function(){return this.uniforms.brightness},i.brightness.set=function(e){this.uniforms.brightness=e},i.speed.get=function(){return this.uniforms.speed},i.speed.set=function(e){this.uniforms.speed=e},i.radius.get=function(){return this.uniforms.radius},i.radius.set=function(e){this.uniforms.radius=e},Object.defineProperties(r.prototype,i),r}(e);export{r as ShockwaveFilter};\n//# sourceMappingURL=filter-shockwave.esm.js.map\n","/*!\n * @pixi/filter-simple-lightmap - v2.7.0\n * Compiled Sun, 13 Jan 2019 22:51:52 UTC\n *\n * @pixi/filter-simple-lightmap is licensed under the MIT License.\n * http://www.opensource.org/licenses/mit-license\n */\nimport{utils as o,Filter as r}from\"pixi.js\";var t=\"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}\",e=\"varying vec2 vTextureCoord;\\nuniform sampler2D uSampler;\\nuniform sampler2D uLightmap;\\nuniform vec4 filterArea;\\nuniform vec2 dimensions;\\nuniform vec4 ambientColor;\\nvoid main() {\\n vec4 diffuseColor = texture2D(uSampler, vTextureCoord);\\n vec2 lightCoord = (vTextureCoord * filterArea.xy) / dimensions;\\n vec4 light = texture2D(uLightmap, lightCoord);\\n vec3 ambient = ambientColor.rgb * ambientColor.a;\\n vec3 intensity = ambient + light.rgb;\\n vec3 finalColor = diffuseColor.rgb * intensity;\\n gl_FragColor = vec4(finalColor, diffuseColor.a);\\n}\\n\",i=function(r){function i(o,i,n){void 0===i&&(i=0),void 0===n&&(n=1),r.call(this,t,e),this.uniforms.dimensions=new Float32Array(2),this.uniforms.ambientColor=new Float32Array([0,0,0,n]),this.texture=o,this.color=i}r&&(i.__proto__=r),i.prototype=Object.create(r&&r.prototype),i.prototype.constructor=i;var n={texture:{configurable:!0},color:{configurable:!0},alpha:{configurable:!0}};return i.prototype.apply=function(o,r,t,e){this.uniforms.dimensions[0]=r.sourceFrame.width,this.uniforms.dimensions[1]=r.sourceFrame.height,o.applyFilter(this,r,t,e)},n.texture.get=function(){return this.uniforms.uLightmap},n.texture.set=function(o){this.uniforms.uLightmap=o},n.color.set=function(r){var t=this.uniforms.ambientColor;\"number\"==typeof r?(o.hex2rgb(r,t),this._color=r):(t[0]=r[0],t[1]=r[1],t[2]=r[2],t[3]=r[3],this._color=o.rgb2hex(t))},n.color.get=function(){return this._color},n.alpha.get=function(){return this.uniforms.ambientColor[3]},n.alpha.set=function(o){this.uniforms.ambientColor[3]=o},Object.defineProperties(i.prototype,n),i}(r);export{i as SimpleLightmapFilter};\n//# sourceMappingURL=filter-simple-lightmap.esm.js.map\n","/*!\n * @pixi/filter-tilt-shift - v2.7.0\n * Compiled Sun, 13 Jan 2019 22:51:52 UTC\n *\n * @pixi/filter-tilt-shift is licensed under the MIT License.\n * http://www.opensource.org/licenses/mit-license\n */\nimport{Filter as t,Point as r}from\"pixi.js\";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}\",n=\"varying vec2 vTextureCoord;\\n\\nuniform sampler2D uSampler;\\nuniform float blur;\\nuniform float gradientBlur;\\nuniform vec2 start;\\nuniform vec2 end;\\nuniform vec2 delta;\\nuniform vec2 texSize;\\n\\nfloat random(vec3 scale, float seed)\\n{\\n return fract(sin(dot(gl_FragCoord.xyz + seed, scale)) * 43758.5453 + seed);\\n}\\n\\nvoid main(void)\\n{\\n vec4 color = vec4(0.0);\\n float total = 0.0;\\n\\n float offset = random(vec3(12.9898, 78.233, 151.7182), 0.0);\\n vec2 normal = normalize(vec2(start.y - end.y, end.x - start.x));\\n float radius = smoothstep(0.0, 1.0, abs(dot(vTextureCoord * texSize - start, normal)) / gradientBlur) * blur;\\n\\n for (float t = -30.0; t <= 30.0; t++)\\n {\\n float percent = (t + offset - 0.5) / 30.0;\\n float weight = 1.0 - abs(percent);\\n vec4 sample = texture2D(uSampler, vTextureCoord + delta / texSize * percent * radius);\\n sample.rgb *= sample.a;\\n color += sample * weight;\\n total += weight;\\n }\\n\\n color /= total;\\n color.rgb /= color.a + 0.00001;\\n\\n gl_FragColor = color;\\n}\\n\",i=function(t){function i(i,o,u,s){void 0===i&&(i=100),void 0===o&&(o=600),void 0===u&&(u=null),void 0===s&&(s=null),t.call(this,e,n),this.uniforms.blur=i,this.uniforms.gradientBlur=o,this.uniforms.start=u||new r(0,window.innerHeight/2),this.uniforms.end=s||new r(600,window.innerHeight/2),this.uniforms.delta=new r(30,30),this.uniforms.texSize=new r(window.innerWidth,window.innerHeight),this.updateDelta()}t&&(i.__proto__=t),i.prototype=Object.create(t&&t.prototype),i.prototype.constructor=i;var o={blur:{configurable:!0},gradientBlur:{configurable:!0},start:{configurable:!0},end:{configurable:!0}};return i.prototype.updateDelta=function(){this.uniforms.delta.x=0,this.uniforms.delta.y=0},o.blur.get=function(){return this.uniforms.blur},o.blur.set=function(t){this.uniforms.blur=t},o.gradientBlur.get=function(){return this.uniforms.gradientBlur},o.gradientBlur.set=function(t){this.uniforms.gradientBlur=t},o.start.get=function(){return this.uniforms.start},o.start.set=function(t){this.uniforms.start=t,this.updateDelta()},o.end.get=function(){return this.uniforms.end},o.end.set=function(t){this.uniforms.end=t,this.updateDelta()},Object.defineProperties(i.prototype,o),i}(t),o=function(t){function r(){t.apply(this,arguments)}return t&&(r.__proto__=t),r.prototype=Object.create(t&&t.prototype),r.prototype.constructor=r,r.prototype.updateDelta=function(){var t=this.uniforms.end.x-this.uniforms.start.x,r=this.uniforms.end.y-this.uniforms.start.y,e=Math.sqrt(t*t+r*r);this.uniforms.delta.x=t/e,this.uniforms.delta.y=r/e},r}(i),u=function(t){function r(){t.apply(this,arguments)}return t&&(r.__proto__=t),r.prototype=Object.create(t&&t.prototype),r.prototype.constructor=r,r.prototype.updateDelta=function(){var t=this.uniforms.end.x-this.uniforms.start.x,r=this.uniforms.end.y-this.uniforms.start.y,e=Math.sqrt(t*t+r*r);this.uniforms.delta.x=-r/e,this.uniforms.delta.y=t/e},r}(i),s=function(t){function r(r,e,n,i){void 0===r&&(r=100),void 0===e&&(e=600),void 0===n&&(n=null),void 0===i&&(i=null),t.call(this),this.tiltShiftXFilter=new o(r,e,n,i),this.tiltShiftYFilter=new u(r,e,n,i)}t&&(r.__proto__=t),r.prototype=Object.create(t&&t.prototype),r.prototype.constructor=r;var e={blur:{configurable:!0},gradientBlur:{configurable:!0},start:{configurable:!0},end:{configurable:!0}};return r.prototype.apply=function(t,r,e){var n=t.getRenderTarget(!0);this.tiltShiftXFilter.apply(t,r,n),this.tiltShiftYFilter.apply(t,n,e),t.returnRenderTarget(n)},e.blur.get=function(){return this.tiltShiftXFilter.blur},e.blur.set=function(t){this.tiltShiftXFilter.blur=this.tiltShiftYFilter.blur=t},e.gradientBlur.get=function(){return this.tiltShiftXFilter.gradientBlur},e.gradientBlur.set=function(t){this.tiltShiftXFilter.gradientBlur=this.tiltShiftYFilter.gradientBlur=t},e.start.get=function(){return this.tiltShiftXFilter.start},e.start.set=function(t){this.tiltShiftXFilter.start=this.tiltShiftYFilter.start=t},e.end.get=function(){return this.tiltShiftXFilter.end},e.end.set=function(t){this.tiltShiftXFilter.end=this.tiltShiftYFilter.end=t},Object.defineProperties(r.prototype,e),r}(t);export{s as TiltShiftFilter,o as TiltShiftXFilter,u as TiltShiftYFilter,i as TiltShiftAxisFilter};\n//# sourceMappingURL=filter-tilt-shift.esm.js.map\n","/*!\n * @pixi/filter-twist - v2.7.0\n * Compiled Sun, 13 Jan 2019 22:51:52 UTC\n *\n * @pixi/filter-twist is licensed under the MIT License.\n * http://www.opensource.org/licenses/mit-license\n */\nimport{Filter as o}from\"pixi.js\";var n=\"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}\",r=\"varying vec2 vTextureCoord;\\n\\nuniform sampler2D uSampler;\\nuniform float radius;\\nuniform float angle;\\nuniform vec2 offset;\\nuniform vec4 filterArea;\\n\\nvec2 mapCoord( vec2 coord )\\n{\\n coord *= filterArea.xy;\\n coord += filterArea.zw;\\n\\n return coord;\\n}\\n\\nvec2 unmapCoord( vec2 coord )\\n{\\n coord -= filterArea.zw;\\n coord /= filterArea.xy;\\n\\n return coord;\\n}\\n\\nvec2 twist(vec2 coord)\\n{\\n coord -= offset;\\n\\n float dist = length(coord);\\n\\n if (dist < radius)\\n {\\n float ratioDist = (radius - dist) / radius;\\n float angleMod = ratioDist * ratioDist * angle;\\n float s = sin(angleMod);\\n float c = cos(angleMod);\\n coord = vec2(coord.x * c - coord.y * s, coord.x * s + coord.y * c);\\n }\\n\\n coord += offset;\\n\\n return coord;\\n}\\n\\nvoid main(void)\\n{\\n\\n vec2 coord = mapCoord(vTextureCoord);\\n\\n coord = twist(coord);\\n\\n coord = unmapCoord(coord);\\n\\n gl_FragColor = texture2D(uSampler, coord );\\n\\n}\\n\",t=function(o){function t(t,e,i){void 0===t&&(t=200),void 0===e&&(e=4),void 0===i&&(i=20),o.call(this,n,r),this.radius=t,this.angle=e,this.padding=i}o&&(t.__proto__=o),t.prototype=Object.create(o&&o.prototype),t.prototype.constructor=t;var e={offset:{configurable:!0},radius:{configurable:!0},angle:{configurable:!0}};return e.offset.get=function(){return this.uniforms.offset},e.offset.set=function(o){this.uniforms.offset=o},e.radius.get=function(){return this.uniforms.radius},e.radius.set=function(o){this.uniforms.radius=o},e.angle.get=function(){return this.uniforms.angle},e.angle.set=function(o){this.uniforms.angle=o},Object.defineProperties(t.prototype,e),t}(o);export{t as TwistFilter};\n//# sourceMappingURL=filter-twist.esm.js.map\n","/*!\n * @pixi/filter-zoom-blur - v2.7.0\n * Compiled Sun, 13 Jan 2019 22:51:52 UTC\n *\n * @pixi/filter-zoom-blur is licensed under the MIT License.\n * http://www.opensource.org/licenses/mit-license\n */\nimport{Filter as n}from\"pixi.js\";var t=\"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}\",e=\"varying vec2 vTextureCoord;\\nuniform sampler2D uSampler;\\nuniform vec4 filterArea;\\n\\nuniform vec2 uCenter;\\nuniform float uStrength;\\nuniform float uInnerRadius;\\nuniform float uRadius;\\n\\nconst float MAX_KERNEL_SIZE = 32.0;\\n\\n// author: http://byteblacksmith.com/improvements-to-the-canonical-one-liner-glsl-rand-for-opengl-es-2-0/\\nhighp float rand(vec2 co, float seed) {\\n const highp float a = 12.9898, b = 78.233, c = 43758.5453;\\n highp float dt = dot(co + seed, vec2(a, b)), sn = mod(dt, 3.14159);\\n return fract(sin(sn) * c + seed);\\n}\\n\\nvoid main() {\\n\\n float minGradient = uInnerRadius * 0.3;\\n float innerRadius = (uInnerRadius + minGradient * 0.5) / filterArea.x;\\n\\n float gradient = uRadius * 0.3;\\n float radius = (uRadius - gradient * 0.5) / filterArea.x;\\n\\n float countLimit = MAX_KERNEL_SIZE;\\n\\n vec2 dir = vec2(uCenter.xy / filterArea.xy - vTextureCoord);\\n float dist = length(vec2(dir.x, dir.y * filterArea.y / filterArea.x));\\n\\n float strength = uStrength;\\n\\n float delta = 0.0;\\n float gap;\\n if (dist < innerRadius) {\\n delta = innerRadius - dist;\\n gap = minGradient;\\n } else if (radius >= 0.0 && dist > radius) { // radius < 0 means it's infinity\\n delta = dist - radius;\\n gap = gradient;\\n }\\n\\n if (delta > 0.0) {\\n float normalCount = gap / filterArea.x;\\n delta = (normalCount - delta) / normalCount;\\n countLimit *= delta;\\n strength *= delta;\\n if (countLimit < 1.0)\\n {\\n gl_FragColor = texture2D(uSampler, vTextureCoord);\\n return;\\n }\\n }\\n\\n // randomize the lookup values to hide the fixed number of samples\\n float offset = rand(vTextureCoord, 0.0);\\n\\n float total = 0.0;\\n vec4 color = vec4(0.0);\\n\\n dir *= strength;\\n\\n for (float t = 0.0; t < MAX_KERNEL_SIZE; t++) {\\n float percent = (t + offset) / MAX_KERNEL_SIZE;\\n float weight = 4.0 * (percent - percent * percent);\\n vec2 p = vTextureCoord + dir * percent;\\n vec4 sample = texture2D(uSampler, p);\\n\\n // switch to pre-multiplied alpha to correctly blur transparent images\\n // sample.rgb *= sample.a;\\n\\n color += sample * weight;\\n total += weight;\\n\\n if (t > countLimit){\\n break;\\n }\\n }\\n\\n color /= total;\\n // switch back from pre-multiplied alpha\\n // color.rgb /= color.a + 0.00001;\\n\\n gl_FragColor = color;\\n}\\n\",r=function(n){function r(r,i,o,a){void 0===r&&(r=.1),void 0===i&&(i=[0,0]),void 0===o&&(o=0),void 0===a&&(a=-1),n.call(this,t,e),this.center=i,this.strength=r,this.innerRadius=o,this.radius=a}n&&(r.__proto__=n),r.prototype=Object.create(n&&n.prototype),r.prototype.constructor=r;var i={center:{configurable:!0},strength:{configurable:!0},innerRadius:{configurable:!0},radius:{configurable:!0}};return i.center.get=function(){return this.uniforms.uCenter},i.center.set=function(n){this.uniforms.uCenter=n},i.strength.get=function(){return this.uniforms.uStrength},i.strength.set=function(n){this.uniforms.uStrength=n},i.innerRadius.get=function(){return this.uniforms.uInnerRadius},i.innerRadius.set=function(n){this.uniforms.uInnerRadius=n},i.radius.get=function(){return this.uniforms.uRadius},i.radius.set=function(n){(n<0||n===1/0)&&(n=-1),this.uniforms.uRadius=n},Object.defineProperties(r.prototype,i),r}(n);export{r as ZoomBlurFilter};\n//# sourceMappingURL=filter-zoom-blur.esm.js.map\n"],"names":["t","n","o","r","call","this","Object","assign","gamma","saturation","contrast","brightness","red","green","blue","alpha","__proto__","prototype","create","constructor","apply","uniforms","Math","max","applyFilter","i","l","u","uOffset","Float32Array","_pixelSize","e","pixelSize","_clamp","_kernels","Array","isArray","kernels","_blur","quality","configurable","clamp","blur","x","size","width","y","height","_quality","s","getRenderTarget","a","f","p","returnRenderTarget","_generateKernels","push","get","set","length","round","defineProperties","threshold","bloomScale","resolution","RESOLUTION","c","h","_extractFilter","_blurFilter","bloomTexture","_resolution","lightColor","shadowColor","rotation","thickness","lightAlpha","shadowAlpha","_updateTransform","transformX","_thickness","cos","_angle","transformY","sin","rgb2hex","hex2rgb","BlurXFilter","BlurYFilter","b","AlphaFilter","blurXFilter","blurYFilter","blendMode","SCREEN","defaultFilter","blurX","blurY","dimensions","center","radius","strength","sourceFrame","_size","_sliceSize","_slicePixelSize","_sliceInnerSize","_scaleMode","_nearest","nearest","mix","colorMap","colorSize","_mix","_colorMap","from","baseTexture","scaleMode","mipmap","NEAREST","LINEAR","_glTextures","_updateID","emit","updateColorMap","destroy","originalColor","newColor","epsilon","_originalColor","_newColor","texelSize","matrix","forEach","time","seed","curvature","lineWidth","lineContrast","verticalLine","noise","noiseSize","vignetting","vignettingAlpha","vignettingBlur","scale","angle","console","warn","arguments","distance","color","shadowOnly","_tintFilter","targetTransform","d","g","_","_updatePadding","transform","padding","_updateTargetTransform","tx","ty","_distance","slices","offset","direction","fillMode","average","minSize","sampleSize","_canvas","document","createElement","texture","fromCanvas","_slices","sizes","offsets","aspect","_randomizeSizes","_sizes","min","random","sqrt","shuffle","_randomizeOffsets","_offsets","refresh","redraw","getContext","clearRect","floor","fillStyle","fillRect","update","displacementMap","slicesWidth","slicesOffset","_direction","sinDir","cosDir","TRANSPARENT","ORIGINAL","LOOP","CLAMP","MIRROR","replace","toFixed","glowColor","outerStrength","innerStrength","gain","lacunarity","parallel","_angleLight","light","uVelocity","_velocity","velocityChanged","velocity","kernelSize","uKernelSize","copy","_maxColors","_replacements","originalColors","targetColors","replacements","maxColors","sepia","scratch","scratchDensity","scratchWidth","MAX_SAMPLES","MIN_SAMPLES","PI","outlineColor","uRadian","uCenter","uRadius","amplitude","waveLength","mirror","boundary","wavelength","speed","ambientColor","uLightmap","_color","gradientBlur","start","window","innerHeight","end","delta","texSize","innerWidth","updateDelta","tiltShiftXFilter","tiltShiftYFilter","innerRadius","uStrength","uInnerRadius"],"mappings":"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"}
|
File without changes
|
metadata
ADDED
@@ -0,0 +1,105 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: pixi_filters
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Chris Scalf
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2019-02-01 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.17'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.17'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '10.0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '10.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '3.0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '3.0'
|
55
|
+
description:
|
56
|
+
email:
|
57
|
+
- shrewdpixeldesign@gmail.com
|
58
|
+
executables: []
|
59
|
+
extensions: []
|
60
|
+
extra_rdoc_files: []
|
61
|
+
files:
|
62
|
+
- ".DS_Store"
|
63
|
+
- ".gitignore"
|
64
|
+
- ".rspec"
|
65
|
+
- ".travis.yml"
|
66
|
+
- Gemfile
|
67
|
+
- LICENSE.txt
|
68
|
+
- README.md
|
69
|
+
- Rakefile
|
70
|
+
- bin/console
|
71
|
+
- bin/setup
|
72
|
+
- lib/pixi_filters.rb
|
73
|
+
- lib/pixi_filters/version.rb
|
74
|
+
- pixi_filters.gemspec
|
75
|
+
- vendor/.DS_Store
|
76
|
+
- vendor/assets/.DS_Store
|
77
|
+
- vendor/assets/javascripts/.DS_Store
|
78
|
+
- vendor/assets/javascripts/.keep
|
79
|
+
- vendor/assets/javascripts/pixi-filters.js
|
80
|
+
- vendor/assets/javascripts/pixi-filters.js.map
|
81
|
+
- vendor/assets/stylesheets/.keep
|
82
|
+
homepage: https://github.com/Palmweaver/pixi_filters
|
83
|
+
licenses:
|
84
|
+
- MIT
|
85
|
+
metadata: {}
|
86
|
+
post_install_message:
|
87
|
+
rdoc_options: []
|
88
|
+
require_paths:
|
89
|
+
- lib
|
90
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
91
|
+
requirements:
|
92
|
+
- - ">="
|
93
|
+
- !ruby/object:Gem::Version
|
94
|
+
version: '0'
|
95
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
96
|
+
requirements:
|
97
|
+
- - ">="
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
version: '0'
|
100
|
+
requirements: []
|
101
|
+
rubygems_version: 3.0.1
|
102
|
+
signing_key:
|
103
|
+
specification_version: 4
|
104
|
+
summary: A gem for importing the pixi_spine.js canvas library into Rails projects.
|
105
|
+
test_files: []
|