package starling.filters {
import starling.textures.Texture;
import starling.rendering.Painter;
/**
 *  The GlowFilter class lets you apply a glow effect to display objects.
 *  *  It is similar to the drop shadow filter with the distance and angle properties set to 0.
 *  *
 *  *  <p>This filter can also be used to create outlines around objects. The trick is to
 *  *  assign an alpha value that's (much) greater than <code>1.0</code>, and full resolution.
 *  *  For example, the following code will yield a nice black outline:</p>
 *  *
 *  *  <listing>object.filter = new GlowFilter(0x0, 30, 1, 1.0);</listing>
 *  
 * @externs
 */
public class GlowFilter extends starling.filters.FragmentFilter {
	/**
	 *  Initializes a new GlowFilter instance with the specified parameters.
	 *      *
	 *      * @param color      the color of the glow
	 *      * @param alpha      the alpha value of the glow. Values between 0 and 1 modify the
	 *      *                   opacity; values > 1 will make it stronger, i.e. produce a harder edge.
	 *      * @param blur       the amount of blur used to create the glow. Note that high
	 *      *                   values will cause the number of render passes to grow.
	 *      * @param quality 	 the quality of the glow's blur, '1' being the best (range 0.1 - 1.0)
	 * 	 * @param inner      if enabled, the glow will be drawn inside the object.
	 * 	 * @param knockout   if enabled, only the glow will be drawn.
	 *      
	 */
	public function GlowFilter(color:int = undefined, alpha:Number = undefined, blur:Number = undefined, quality:Number = undefined, inner:Boolean = undefined, knockout:Boolean = undefined) {
		super();
	}
	/**
	 *  @inheritDoc 
	 */
	override public function dispose():void {}
	/**
	 *  @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 color of the glow. @default 0xffff00 
	 */
	public function get color():int { return 0; }
	public function set color(value:int):void {}
	/**
	 *  The alpha value of the glow. Values between 0 and 1 modify the opacity;
	 *      *  values > 1 will make it stronger, i.e. produce a harder edge. @default 1.0 
	 */
	public function get alpha():Number { return 0; }
	public function set alpha(value:Number):void {}
	/**
	 *  The amount of blur with which the glow is created.
	 *      *  The number of required passes will be <code>Math.ceil(value) × 2</code>.
	 *      *  @default 1.0 
	 */
	public function get blur():Number { return 0; }
	public function set blur(value:Number):void {}
	/**
	 *  The quality used for blurring the glow.
	 * 	 *  Forwarded to the internally used <em>BlurFilter</em>. 
	 */
	public function get quality():Number { return 0; }
	public function set quality(value:Number):void {}
	/**
	 *  Indicates whether or not the glow is an inner glow. The default is
	 * 	 *  <code>false</code>, an outer glow (a glow around the outer edges of the object). 
	 */
	public function get inner():Boolean { return false; }
	public function set inner(value:Boolean):void {}
	public function get_inner():Boolean { return false; }
	public function set_inner(value:Boolean):Boolean { return false; }
	/**
	 *  If enabled, applies a knockout effect, which effectively makes the object's fill
	 * 	 *  transparent. @default false 
	 */
	public function get knockout():Boolean { return false; }
	public function set knockout(value:Boolean):void {}
	public function get_knockout():Boolean { return false; }
	public function set_knockout(value:Boolean):Boolean { return false; }
}
}
