ncannasse пре 7 година
родитељ
комит
45a161a548
2 измењених фајлова са 19 додато и 0 уклоњено
  1. 15 0
      h2d/Layers.hx
  2. 4 0
      h2d/RenderContext.hx

+ 15 - 0
h2d/Layers.hx

@@ -96,6 +96,21 @@ class Layers extends Sprite {
 		return new hxd.impl.ArrayIterator(a);
 	}
 
+	function drawLayer( ctx : RenderContext, layer : Int ) {
+		if( layer >= layerCount )
+			return;
+		var old = ctx.globalAlpha;
+		ctx.globalAlpha *= alpha;
+		var start = layer == 0 ? 0 : layersIndexes[layer - 1];
+		var max = layersIndexes[layer];
+		if( ctx.front2back ) {
+			for( i in start...max ) children[max - 1 - i].drawRec(ctx);
+		} else {
+			for( i in start...max ) children[i].drawRec(ctx);
+		}
+		ctx.globalAlpha = old;
+	}
+
 	public function ysort( layer : Int ) {
 		if( layer >= layerCount ) return;
 		var start = layer == 0 ? 0 : layersIndexes[layer - 1];

+ 4 - 0
h2d/RenderContext.hx

@@ -231,6 +231,10 @@ class RenderContext extends h3d.impl.RenderContext {
 		engine.setRenderZone();
 	}
 
+	function drawLayer( layer : Int ) {
+		@:privateAccess scene.drawLayer(this, layer);
+	}
+
 	public function drawScene() {
 		@:privateAccess scene.drawRec(this);
 	}