diff --git a/src/filters/blur/BlurFilter.js b/src/filters/blur/BlurFilter.js index 20366ce..f6e46e2 100644 --- a/src/filters/blur/BlurFilter.js +++ b/src/filters/blur/BlurFilter.js @@ -1,5 +1,6 @@ var core = require('../../core'), - BlurDirFilter = require('./BlurDirFilter'); + BlurXFilter = require('./BlurXFilter'), + BlurYFilter = require('./BlurYFilter'); /** * The BlurFilter applies a Gaussian blur to an object. @@ -12,19 +13,9 @@ function BlurFilter() { core.AbstractFilter.call(this); - this.defaultFilter = new core.AbstractFilter(); - this.blurFilters = [ - new BlurDirFilter( 1, 0), - new BlurDirFilter(-1, 0), - new BlurDirFilter( 0, 1), - new BlurDirFilter( 0,-1), - new BlurDirFilter( 0.7, 0.7), - new BlurDirFilter(-0.7, 0.7), - new BlurDirFilter( 0.7,-0.7), - new BlurDirFilter(-0.7,-0.7) - ]; - + this.blurXFilter = new BlurXFilter(); + this.blurYFilter = new BlurYFilter(); } BlurFilter.prototype = Object.create(core.AbstractFilter.prototype); @@ -35,14 +26,12 @@ { var renderTarget = renderer.filterManager.getRenderTarget(true); - for (var e = 0; e < this.blurFilters.length; e++) { - this.blurFilters[e].applyFilter(renderer, input, renderTarget); - } - - this.defaultFilter.applyFilter(renderer, renderTarget, output); + this.blurXFilter.applyFilter(renderer, input, renderTarget); + this.blurYFilter.applyFilter(renderer, renderTarget, output); renderer.filterManager.returnRenderTarget(renderTarget); + }; Object.defineProperties(BlurFilter.prototype, { @@ -56,14 +45,12 @@ blur: { get: function () { - return this.blurFilters[0].blur; + return this.blurXFilter.blur; }, set: function (value) { this.padding = value * 0.5; - for (var i = 0; i < this.blurFilters.length; i++) { - this.blurFilters[i].blur = value; - } + this.blurXFilter.blur = this.blurYFilter.blur = value; } }, @@ -77,13 +64,11 @@ passes: { get: function () { - return this.blurFilters[0].passes; + return this.blurXFilter.passes; }, set: function (value) { - for (var i = 0; i < this.blurFilters.length; i++) { - this.blurFilters[i].passes = value; - } + this.blurXFilter.passes = this.blurYFilter.passes = value; } }, @@ -97,18 +82,11 @@ blurX: { get: function () { - return this.blurFilters[0].blur; + return this.blurXFilter.blur; }, set: function (value) { - this.blurFilters[0].blur = value; - this.blurFilters[1].blur = value; - - this.blurFilters[4].blur = value * this.blurFilters[2].blur; - this.blurFilters[5].blur = value * this.blurFilters[2].blur; - - this.blurFilters[6].blur = value * this.blurFilters[3].blur; - this.blurFilters[7].blur = value * this.blurFilters[3].blur; + this.blurXFilter.blur = value; } }, @@ -126,14 +104,7 @@ }, set: function (value) { - this.blurFilters[2].blur = value; - this.blurFilters[3].blur = value; - - this.blurFilters[4].blur = value * this.blurFilters[0].blur; - this.blurFilters[5].blur = value * this.blurFilters[0].blur; - - this.blurFilters[6].blur = value * this.blurFilters[1].blur; - this.blurFilters[7].blur = value * this.blurFilters[1].blur; + this.blurYFilter.blur = value; } } });