2
0
Эх сурвалжийг харах

added add/remove on filter Group, don't make a copy of filters, add Filter.enable + auto disable empty groups

ncannasse 6 жил өмнө
parent
commit
a1371a4653

+ 1 - 1
h2d/Object.hx

@@ -762,7 +762,7 @@ class Object {
 				c.posChanged = true;
 				c.posChanged = true;
 			posChanged = false;
 			posChanged = false;
 		}
 		}
-		if( filter != null ) {
+		if( filter != null && filter.enable ) {
 			drawFilters(ctx);
 			drawFilters(ctx);
 		} else {
 		} else {
 			var old = ctx.globalAlpha;
 			var old = ctx.globalAlpha;

+ 4 - 0
h2d/filter/Filter.hx

@@ -8,9 +8,13 @@ class Filter {
 	public var autoBounds = true;
 	public var autoBounds = true;
 	public var boundsExtend : Float = 0.;
 	public var boundsExtend : Float = 0.;
 	public var smooth = false;
 	public var smooth = false;
+	@:isVar public var enable(get,set) = true;
 
 
 	function new() {
 	function new() {
 	}
 	}
+	
+	function get_enable() return enable;
+	function set_enable(v) return enable = v;
 
 
 	public function sync( ctx : RenderContext, s : Object ) {
 	public function sync( ctx : RenderContext, s : Object ) {
 	}
 	}

+ 16 - 2
h2d/filter/Group.hx

@@ -4,9 +4,23 @@ class Group extends Filter {
 
 
 	var filters : Array<Filter>;
 	var filters : Array<Filter>;
 
 
-	public function new( filters : Array<Filter> ) {
+	public function new( ?filters : Array<Filter> ) {
 		super();
 		super();
-		this.filters = filters.copy();
+		this.filters = filters == null ? [] : filters;
+	}
+	
+	override function get_enable() {
+		if( !enable ) return false;
+		for( f in filters ) if( enable ) return true;
+		return false;
+	}
+	
+	public function add( f : Filter ) {
+		filters.push(f);
+	}
+
+	public function remove( f : Filter ) {
+		return filters.remove(f);
 	}
 	}
 
 
 	override function bind(s:Object) {
 	override function bind(s:Object) {