Nicolas Cannasse před 11 roky
rodič
revize
ddd4ce4387
3 změnil soubory, kde provedl 31 přidání a 31 odebrání
  1. 8 8
      h3d/shader/BaseMesh.hx
  2. 12 12
      hxsl/Cache.hx
  3. 11 11
      hxsl/Splitter.hx

+ 8 - 8
h3d/shader/BaseMesh.hx

@@ -3,7 +3,7 @@ package h3d.shader;
 class BaseMesh extends hxsl.Shader {
 
 	static var SRC = {
-		
+
 		@global var camera : {
 			var view : Mat4;
 			var proj : Mat4;
@@ -20,26 +20,26 @@ class BaseMesh extends hxsl.Shader {
 			@perObject var modelView : Mat4;
 			@perObject var modelViewInverse : Mat4;
 		};
-		
+
 		@input var input : {
 			var position : Vec3;
 			var normal : Vec3;
 		};
-		
+
 		var output : {
 			var position : Vec4;
 			var color : Vec4;
 			var distance : Vec4;
 		};
-		
+
 		var transformedPosition : Vec3;
 		var transformedNormal : Vec3;
 		var projectedPosition : Vec4;
 		var pixelColor : Vec4;
 		var depth : Float;
-		
+
 		@param var color : Vec4;
-		
+
 		// each __init__ expr is out of order dependency-based
 		function __init__() {
 			transformedPosition = input.position * global.modelView.mat3x4();
@@ -54,14 +54,14 @@ class BaseMesh extends hxsl.Shader {
 			output.position = projectedPosition;
 			output.position.y *= global.flipY;
 		}
-		
+
 		function fragment() {
 			output.color = pixelColor;
 			output.distance = pack(depth);
 		}
 
 	};
-	
+
 	public function new() {
 		super();
 		color.set(1, 1, 1);

+ 12 - 12
hxsl/Cache.hx

@@ -15,14 +15,14 @@ class Cache {
 	var outVarsMap : Map<String, Int>;
 	var outVars : Array<Array<String>>;
 	public var constsToGlobal : Bool;
-	
+
 	function new() {
 		constsToGlobal = false;
 		linkCache = new Map();
 		outVarsMap = new Map();
 		outVars = [];
 	}
-	
+
 	public function allocOutputVars( vars : Array<String> ) {
 		var key = vars.join(",");
 		var id = outVarsMap.get(key);
@@ -40,7 +40,7 @@ class Cache {
 		outVarsMap.set(key, id);
 		return id;
 	}
-	
+
 	public function link( instances : Array<SharedShader.ShaderInstance>, outVars : Int ) {
 		var c = linkCache.get(outVars);
 		if( c == null ) {
@@ -59,7 +59,7 @@ class Cache {
 		}
 		if( c.linked != null )
 			return c.linked;
-		
+
 		var linker = new hxsl.Linker();
 		var shaders = [];
 		for( i in instances ) {
@@ -79,10 +79,10 @@ class Cache {
 				var i = instances[v.instanceIndex];
 				paramVars.set(v.id, { instance : v.instanceIndex, index : i.params.get(v.merged[0].id) } );
 			}
-		
+
 		var s = new hxsl.Splitter().split(s);
 		var s = new hxsl.Dce().dce(s.vertex, s.fragment);
-		
+
 		var r = new RuntimeShader();
 		r.vertex = flattenShader(s.vertex, Vertex, paramVars);
 		r.vertex.vertex = true;
@@ -90,14 +90,14 @@ class Cache {
 		c.linked = r;
 		return r;
 	}
-	
+
 	function getPath( v : TVar ) {
 		if( v.parent == null )
 			return v.name;
 		return getPath(v.parent) + "." + v.name;
 	}
-	
-	function flattenShader( s : ShaderData, kind : FunctionKind, params : Map < Int, { instance:Int, index:Int } > ) {
+
+	function flattenShader( s : ShaderData, kind : FunctionKind, params : Map<Int,{ instance:Int, index:Int }> ) {
 		var flat = new Flatten();
 		var c = new RuntimeShaderData();
 		var data = flat.flatten(s, kind, constsToGlobal);
@@ -151,7 +151,7 @@ class Cache {
 		c.data = data;
 		return c;
 	}
-	
+
 	static var INST : Cache;
 	public static function get() : Cache {
 		var c = INST;
@@ -159,9 +159,9 @@ class Cache {
 			INST = c = new Cache();
 		return c;
 	}
-	
+
 	public static function clear() {
 		INST = null;
 	}
-	
+
 }

+ 11 - 11
hxsl/Splitter.hx

@@ -19,10 +19,10 @@ class Splitter {
 	var vars : Map<Int,VarProps>;
 	var varNames : Map<String,TVar>;
 	var varMap : Map<TVar,TVar>;
-	
+
 	public function new() {
 	}
-	
+
 	public function split( s : ShaderData ) : { vertex : ShaderData, fragment : ShaderData } {
 		var vfun = null, vvars = new Map();
 		var ffun = null, fvars = new Map();
@@ -125,7 +125,7 @@ class Splitter {
 			checkVar(v, true, vvars);
 		for( v in fvars )
 			checkVar(v, false, vvars);
-		
+
 		// support for double mapping v -> v1 -> v2
 		for( v in varMap.keys() ) {
 			var v2 = varMap.get(varMap.get(v));
@@ -151,7 +151,7 @@ class Splitter {
 		var vvars = [for( v in vvars ) if( !v.local ) v.v];
 		// make sure we sort the inputs the same way they were sent in
 		vvars.sort(function(v1, v2) return v1.id - v2.id);
-		
+
 		return {
 			vertex : {
 				name : "vertex",
@@ -165,7 +165,7 @@ class Splitter {
 			},
 		};
 	}
-	
+
 	function addExpr( f : TFunction, e : TExpr ) {
 		switch( f.expr.e ) {
 		case TBlock(el):
@@ -174,7 +174,7 @@ class Splitter {
 			f.expr = { e : TBlock([f.expr, e]), t : TVoid, p : f.expr.p };
 		}
 	}
-	
+
 	function checkVar( v : VarProps, vertex : Bool, vvars : Map<Int,VarProps> ) {
 		switch( v.v.kind ) {
 		case Local if( v.requireInit ):
@@ -187,7 +187,7 @@ class Splitter {
 		default:
 		}
 	}
-	
+
 	function mapVars( e : TExpr ) {
 		return switch( e.e ) {
 		case TVar(v):
@@ -197,7 +197,7 @@ class Splitter {
 			e.map(mapVars);
 		}
 	}
-	
+
 	function get( v : TVar ) {
 		var i = vars.get(v.id);
 		if( i == null ) {
@@ -207,7 +207,7 @@ class Splitter {
 		}
 		return i;
 	}
-	
+
 	function uniqueName( v : TVar ) {
 		if( v.kind == Global || v.kind == Output || v.kind == Input )
 			return;
@@ -222,7 +222,7 @@ class Splitter {
 		}
 		varNames.set(v.name, v);
 	}
-	
+
 	function checkExpr( e : TExpr ) {
 		switch( e.e ) {
 		case TVar(v):
@@ -250,5 +250,5 @@ class Splitter {
 			e.iter(checkExpr);
 		}
 	}
-	
+
 }