diff --git a/src/filters/blur/BlurFilter.js b/src/filters/blur/BlurFilter.js index 80c7615..0b72620 100644 --- a/src/filters/blur/BlurFilter.js +++ b/src/filters/blur/BlurFilter.js @@ -10,18 +10,18 @@ * @extends PIXI.Filter * @memberof PIXI.filters */ -function BlurFilter() +function BlurFilter(strength, quality, resolution) { core.Filter.call(this); this.blurXFilter = new BlurXFilter(); this.blurYFilter = new BlurYFilter(); - this.resolution = 0.5;//0.25;//0.25//1//01.26; - this.blurYFilter.passes = this.blurXFilter.passes = 1; - this.blurYFilter.strength = this.blurXFilter.strength = 4;//4// 4 + this.resolution = 1; - this.padding = 40; - this.passes = 2; + this.padding = 0; + this.resolution = resolution || 1; + this.quality = quality || 4; + this.blur = strength || 8; } BlurFilter.prototype = Object.create(core.Filter.prototype); @@ -54,8 +54,8 @@ }, set: function (value) { - this.padding = Math.max( Math.abs(this.blurYFilter.strength), Math.abs(this.blurYFilter.strength)) * 2; this.blurXFilter.blur = this.blurYFilter.blur = value; + this.padding = Math.max( Math.abs(this.blurYFilter.strength), Math.abs(this.blurYFilter.strength)) * 2; } }, @@ -66,15 +66,15 @@ * @memberof PIXI.filters.BlurYFilter# * @default 1 */ - passes: { + quality: { get: function () { - return this.blurXFilter.passes; + return this.blurXFilter.quality; }, set: function (value) { - this.blurXFilter.passes = this.blurYFilter.passes = value; + this.blurXFilter.quality = this.blurYFilter.quality = value; } }, diff --git a/src/filters/blur/BlurFilter.js b/src/filters/blur/BlurFilter.js index 80c7615..0b72620 100644 --- a/src/filters/blur/BlurFilter.js +++ b/src/filters/blur/BlurFilter.js @@ -10,18 +10,18 @@ * @extends PIXI.Filter * @memberof PIXI.filters */ -function BlurFilter() +function BlurFilter(strength, quality, resolution) { core.Filter.call(this); this.blurXFilter = new BlurXFilter(); this.blurYFilter = new BlurYFilter(); - this.resolution = 0.5;//0.25;//0.25//1//01.26; - this.blurYFilter.passes = this.blurXFilter.passes = 1; - this.blurYFilter.strength = this.blurXFilter.strength = 4;//4// 4 + this.resolution = 1; - this.padding = 40; - this.passes = 2; + this.padding = 0; + this.resolution = resolution || 1; + this.quality = quality || 4; + this.blur = strength || 8; } BlurFilter.prototype = Object.create(core.Filter.prototype); @@ -54,8 +54,8 @@ }, set: function (value) { - this.padding = Math.max( Math.abs(this.blurYFilter.strength), Math.abs(this.blurYFilter.strength)) * 2; this.blurXFilter.blur = this.blurYFilter.blur = value; + this.padding = Math.max( Math.abs(this.blurYFilter.strength), Math.abs(this.blurYFilter.strength)) * 2; } }, @@ -66,15 +66,15 @@ * @memberof PIXI.filters.BlurYFilter# * @default 1 */ - passes: { + quality: { get: function () { - return this.blurXFilter.passes; + return this.blurXFilter.quality; }, set: function (value) { - this.blurXFilter.passes = this.blurYFilter.passes = value; + this.blurXFilter.quality = this.blurYFilter.quality = value; } }, diff --git a/src/filters/blur/BlurXFilter.js b/src/filters/blur/BlurXFilter.js index b8af225..ae1cd3c 100644 --- a/src/filters/blur/BlurXFilter.js +++ b/src/filters/blur/BlurXFilter.js @@ -10,7 +10,7 @@ * @extends PIXI.Filter * @memberof PIXI.filters */ -function BlurXFilter() +function BlurXFilter(strength, quality, resolution) { var vertSrc = generateBlurVertSource(5, true); var fragSrc = generateBlurFragSource(5); @@ -22,16 +22,13 @@ fragSrc ); - /** - * Sets the number of passes for blur. More passes means higher quaility bluring. - * - * @member {number} - * @default 1 - */ - this.passes = 1; - this.resolution = 1;//0.25;//0.5;//0.1//5; - this.strength = 4; + this._quality = 0; + + this.quality = quality || 4; + this.strength = strength || 8; + this.firstRun = true; + } BlurXFilter.prototype = Object.create(core.Filter.prototype); @@ -54,7 +51,8 @@ this.uniforms.strength = (1/output.size.width) * (output.size.width/input.size.width); /// // * 2 //4//this.strength / 4 / this.passes * (input.frame.width / input.size.width); // screen space! - this.uniforms.strength *= this.strength; + this.uniforms.strength *= this.strength + this.uniforms.strength /= this.passes;// / this.passes//Math.pow(1, this.passes); if(this.passes === 1) { @@ -88,7 +86,7 @@ * * @member {number} * @memberof PIXI.filters.BlurXFilter# - * @default 2 + * @default 16 */ blur: { get: function () @@ -100,5 +98,24 @@ this.padding = Math.abs(value) * 2; this.strength = value; } + }, + + /** + * Sets the quality of the blur by modifying the number of passes. More passes means higher quaility bluring but the lower the performance. + * + * @member {number} + * @memberof PIXI.filters.BlurXFilter# + * @default 4 + */ + quality: { + get: function () + { + return this._quality; + }, + set: function (value) + { + this._quality = value; + this.passes = value; + } } }); diff --git a/src/filters/blur/BlurFilter.js b/src/filters/blur/BlurFilter.js index 80c7615..0b72620 100644 --- a/src/filters/blur/BlurFilter.js +++ b/src/filters/blur/BlurFilter.js @@ -10,18 +10,18 @@ * @extends PIXI.Filter * @memberof PIXI.filters */ -function BlurFilter() +function BlurFilter(strength, quality, resolution) { core.Filter.call(this); this.blurXFilter = new BlurXFilter(); this.blurYFilter = new BlurYFilter(); - this.resolution = 0.5;//0.25;//0.25//1//01.26; - this.blurYFilter.passes = this.blurXFilter.passes = 1; - this.blurYFilter.strength = this.blurXFilter.strength = 4;//4// 4 + this.resolution = 1; - this.padding = 40; - this.passes = 2; + this.padding = 0; + this.resolution = resolution || 1; + this.quality = quality || 4; + this.blur = strength || 8; } BlurFilter.prototype = Object.create(core.Filter.prototype); @@ -54,8 +54,8 @@ }, set: function (value) { - this.padding = Math.max( Math.abs(this.blurYFilter.strength), Math.abs(this.blurYFilter.strength)) * 2; this.blurXFilter.blur = this.blurYFilter.blur = value; + this.padding = Math.max( Math.abs(this.blurYFilter.strength), Math.abs(this.blurYFilter.strength)) * 2; } }, @@ -66,15 +66,15 @@ * @memberof PIXI.filters.BlurYFilter# * @default 1 */ - passes: { + quality: { get: function () { - return this.blurXFilter.passes; + return this.blurXFilter.quality; }, set: function (value) { - this.blurXFilter.passes = this.blurYFilter.passes = value; + this.blurXFilter.quality = this.blurYFilter.quality = value; } }, diff --git a/src/filters/blur/BlurXFilter.js b/src/filters/blur/BlurXFilter.js index b8af225..ae1cd3c 100644 --- a/src/filters/blur/BlurXFilter.js +++ b/src/filters/blur/BlurXFilter.js @@ -10,7 +10,7 @@ * @extends PIXI.Filter * @memberof PIXI.filters */ -function BlurXFilter() +function BlurXFilter(strength, quality, resolution) { var vertSrc = generateBlurVertSource(5, true); var fragSrc = generateBlurFragSource(5); @@ -22,16 +22,13 @@ fragSrc ); - /** - * Sets the number of passes for blur. More passes means higher quaility bluring. - * - * @member {number} - * @default 1 - */ - this.passes = 1; - this.resolution = 1;//0.25;//0.5;//0.1//5; - this.strength = 4; + this._quality = 0; + + this.quality = quality || 4; + this.strength = strength || 8; + this.firstRun = true; + } BlurXFilter.prototype = Object.create(core.Filter.prototype); @@ -54,7 +51,8 @@ this.uniforms.strength = (1/output.size.width) * (output.size.width/input.size.width); /// // * 2 //4//this.strength / 4 / this.passes * (input.frame.width / input.size.width); // screen space! - this.uniforms.strength *= this.strength; + this.uniforms.strength *= this.strength + this.uniforms.strength /= this.passes;// / this.passes//Math.pow(1, this.passes); if(this.passes === 1) { @@ -88,7 +86,7 @@ * * @member {number} * @memberof PIXI.filters.BlurXFilter# - * @default 2 + * @default 16 */ blur: { get: function () @@ -100,5 +98,24 @@ this.padding = Math.abs(value) * 2; this.strength = value; } + }, + + /** + * Sets the quality of the blur by modifying the number of passes. More passes means higher quaility bluring but the lower the performance. + * + * @member {number} + * @memberof PIXI.filters.BlurXFilter# + * @default 4 + */ + quality: { + get: function () + { + return this._quality; + }, + set: function (value) + { + this._quality = value; + this.passes = value; + } } }); diff --git a/src/filters/blur/BlurYFilter.js b/src/filters/blur/BlurYFilter.js index 116c2b7..f8bbf1a 100644 --- a/src/filters/blur/BlurYFilter.js +++ b/src/filters/blur/BlurYFilter.js @@ -10,7 +10,7 @@ * @extends PIXI.Filter * @memberof PIXI.filters */ -function BlurYFilter() +function BlurYFilter(strength, quality, resolution) { var vertSrc = generateBlurVertSource(5, false); var fragSrc = generateBlurFragSource(5); @@ -22,9 +22,13 @@ fragSrc ); - this.passes = 1; - this.resolution = 1;//0.25;//0.5;//0.1//5; - this.strength = 4; + this.resolution = resolution || 1; + + this._quality = 0; + + this.quality = quality || 4; + this.strength = strength || 8; + this.firstRun = true; } @@ -48,6 +52,7 @@ this.uniforms.strength = (1/output.size.height) * (output.size.height/input.size.height); /// // * 2 //4//this.strength / 4 / this.passes * (input.frame.width / input.size.width); this.uniforms.strength *= this.strength; + this.uniforms.strength /= this.passes; if(this.passes === 1) { @@ -93,5 +98,24 @@ this.padding = Math.abs(value) * 2; this.strength = value; } + }, + + /** + * Sets the quality of the blur by modifying the number of passes. More passes means higher quaility bluring but the lower the performance. + * + * @member {number} + * @memberof PIXI.filters.BlurXFilter# + * @default 4 + */ + quality: { + get: function () + { + return this._quality; + }, + set: function (value) + { + this._quality = value; + this.passes = value; + } } });