Răsfoiți Sursa

added shader name

Nicolas Cannasse 12 ani în urmă
părinte
comite
e1689bc1e5
4 a modificat fișierele cu 6 adăugiri și 2 ștergeri
  1. 1 0
      hxsl/Ast.hx
  2. 2 1
      hxsl/Checker.hx
  3. 2 1
      hxsl/Macros.hx
  4. 1 0
      hxsl/Serializer.hx

+ 1 - 0
hxsl/Ast.hx

@@ -221,6 +221,7 @@ enum TExprDef {
 typedef TExpr = { e : TExprDef, t : Type, p : Position }
 
 typedef ShaderData = {
+	var name : String;
 	var vars : Array<TVar>;
 	var funs : Array<TFunction>;
 }

+ 2 - 1
hxsl/Checker.hx

@@ -68,7 +68,7 @@ class Checker {
 		return Ast.Error.t(msg,pos);
 	}
 
-	public function check( shader : Expr ) : ShaderData {
+	public function check( name : String, shader : Expr ) : ShaderData {
 		vars = new Map();
 		inLoop = false;
 		
@@ -110,6 +110,7 @@ class Checker {
 		for( i in 0...tfuns.length )
 			typeFun(tfuns[i], funs[i].f.expr);
 		return {
+			name : name,
 			vars : Lambda.array(vars),
 			funs : tfuns,
 		};

+ 2 - 1
hxsl/Macros.hx

@@ -11,7 +11,8 @@ class Macros {
 				case FVar(_, expr) if( expr != null ):
 					try {
 						var shader = new MacroParser().parseExpr(expr);
-						var shader = new Checker().check(shader);
+						var name = Std.string(Context.getLocalClass());
+						var shader = new Checker().check(name,shader);
 						var str = Serializer.run(shader);
 						f.kind = FVar(null, { expr : EConst(CString(str)), pos : expr.pos } );
 						f.meta.push({

+ 1 - 0
hxsl/Serializer.hx

@@ -18,6 +18,7 @@ class Serializer {
 		#if macro
 		var ser = new Serializer();
 		var s : ShaderData = {
+			name : s.name,
 			vars : s.vars,
 			funs : [for( f in s.funs ) {
 				ref : f.ref,