ncannasse пре 9 година
родитељ
комит
38491d299c
3 измењених фајлова са 10 додато и 4 уклоњено
  1. 1 1
      h2d/Drawable.hx
  2. 5 3
      h2d/RenderContext.hx
  3. 4 0
      h2d/Scene.hx

+ 1 - 1
h2d/Drawable.hx

@@ -4,7 +4,7 @@ class Drawable extends Sprite {
 
 	public var color(default,null) : h3d.Vector;
 	public var blendMode : BlendMode;
-	public var filter : Bool;
+	public var filter : Null<Bool>;
 	public var tileWrap(default, set) : Bool;
 	public var colorKey(default, set) : Null<Int>;
 	public var colorMatrix(get, set) : Null<h3d.Matrix>;

+ 5 - 3
h2d/RenderContext.hx

@@ -9,6 +9,7 @@ class RenderContext extends h3d.impl.RenderContext {
 	public var bufPos : Int;
 	public var textures : h3d.impl.TextureCache;
 	public var scene : h2d.Scene;
+	public var defaultFilter : Bool = false;
 
 	public var tmpBounds = new h2d.col.Bounds();
 	var texture : h3d.mat.Texture;
@@ -48,9 +49,9 @@ class RenderContext extends h3d.impl.RenderContext {
 		targetsStack = [];
 		textures = new h3d.impl.TextureCache();
 	}
-	
+
 	public function dispose() {
-		textures.dispose();	
+		textures.dispose();
 		if( fixedBuffer != null ) fixedBuffer.dispose();
 	}
 
@@ -158,7 +159,8 @@ class RenderContext extends h3d.impl.RenderContext {
 	public function beforeDraw() {
 		if( texture == null ) texture = h3d.mat.Texture.fromColor(0xFF00FF);
 		baseShader.texture = texture;
-		texture.filter = currentObj.filter ? Linear : Nearest;
+		var f = currentObj.filter;
+		texture.filter = (currentObj.filter == null ? defaultFilter : currentObj.filter) ? Linear : Nearest;
 		texture.wrap = currentObj.tileWrap ? Repeat : Clamp;
 		var blend = currentObj.blendMode;
 		if( inFilter == currentObj  && blend == Erase ) blend = Add; // add THEN erase

+ 4 - 0
h2d/Scene.hx

@@ -10,6 +10,7 @@ class Scene extends Layers implements h3d.IDrawable implements hxd.SceneEvents.I
 	public var mouseY(get, null) : Float;
 
 	public var zoom(get, set) : Int;
+	public var defaultFilter(get, set) : Bool;
 
 	var fixedSize : Bool;
 	var interactive : Array<Interactive>;
@@ -31,6 +32,9 @@ class Scene extends Layers implements h3d.IDrawable implements hxd.SceneEvents.I
 		posChanged = true;
 	}
 
+	inline function get_defaultFilter() return ctx.defaultFilter;
+	inline function set_defaultFilter(v) return ctx.defaultFilter = v;
+
 	public function setEvents(events) {
 		this.events = events;
 	}