package starling.filters {
import starling.textures.Texture;
import starling.rendering.Painter;
/**
 *  The BlurFilter applies a Gaussian blur to an object. The strength of the blur can be
 *  *  set for x- and y-axis separately. 
 * @externs
 */
public class BlurFilter extends starling.filters.FragmentFilter {
	/**
	 *  Create a new BlurFilter. For each blur direction, the number of required passes is
	 *      *
	 *      *  <p>The blur is rendered for each direction (x and y) separately; the number of
	 *      *  draw calls add up. The blur value itself is internally multiplied with the current
	 *      *  <code>contentScaleFactor</code> in order to guarantee a consistent look on HiDPI
	 *      *  displays (dubbed 'totalBlur' below).</p>
	 *      *
	 *      *  <p>The number of draw calls per blur value is the following:</p>
	 *      *  <ul><li>totalBlur &lt;= 1: 1 draw call</li>
	 *      *      <li>totalBlur &lt;= 2: 2 draw calls</li>
	 *      *      <li>totalBlur &lt;= 4: 3 draw calls</li>
	 *      *      <li>totalBlur &lt;= 8: 4 draw calls</li>
	 *      *      <li>... etc.</li>
	 *      *  </ul>
	 *      
	 */
	public function BlurFilter(blurX:Number = undefined, blurY:Number = undefined, resolution:Number = undefined) {
		super();
	}
	/**
	 *  @private 
	 */
	override public function process(painter:starling.rendering.Painter, helper:starling.filters.IFilterHelper, input0:starling.textures.Texture = undefined, input1:starling.textures.Texture = undefined, input2:starling.textures.Texture = undefined, input3:starling.textures.Texture = undefined):starling.textures.Texture { return null; }
	/**
	 *  The blur factor in x-direction.
	 *      *  The number of required passes will be <code>Math.ceil(value)</code>. 
	 */
	public function get blurX():Number { return 0; }
	public function set blurX(value:Number):void {}
	/**
	 *  The blur factor in y-direction.
	 *      *  The number of required passes will be <code>Math.ceil(value)</code>. 
	 */
	public function get blurY():Number { return 0; }
	public function set blurY(value:Number):void {}
	/**
	 *  The quality of the blur effect. Low values will look as if the target was drawn
	 *      *  multiple times in close proximity (range: 0.1 - 1).
	 *      *
	 *      *  <p>Typically, it's better to reduce the filter resolution instead; however, if that
	 *      *  is not an option (e.g. when using the BlurFilter as part of a composite filter),
	 *      *  this property may provide an alternative.</p>
	 *      *
	 *      *  @default 1.0
	 *      
	 */
	public function get quality():Number { return 0; }
	public function set quality(value:Number):void {}
	public function get_quality():Number { return 0; }
	public function set_quality(value:Number):Number { return 0; }
}
}
