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

Kinda fixed samplers inputs

Clement Espeute 2 жил өмнө
parent
commit
c19b0046b8

+ 14 - 3
hrt/shgraph/ShaderGraph.hx

@@ -389,13 +389,18 @@ class ShaderGraph {
 							else {
 								var shParam = Std.downcast(currentNode.instance, ShaderParam);
 								if (shParam != null) {
+									var outVar = outputs["output"];
 									var id = getNewVarId();
-									var outVar = {id: id, name: nodeVar.name, type: nodeVar.type, kind : Param, qualifiers: nodeVar.qualifiers.copy()};
-									replacement = {e: TVar(outVar), p:pos, t: nodeVar.type};
+									outVar.id = id;
+									outVar.name = nodeVar.name;
+									outVar.type = nodeVar.type;
+									outVar.kind = Param;
+									outVar.qualifiers = [SgInput];
 									graphInputVars.push(outVar);
 									externs.push(outVar);
 									var param = getParameter(shParam.parameterId);
 									inits.push({variable: outVar, value: param.defaultValue});
+									continue;
 								}
 								else {
 									// default parameter if no connection
@@ -409,6 +414,11 @@ class ShaderGraph {
 						}
 						else if (nodeVar.qualifiers.has(SgOutput)) {
 							var outputVar : TVar = outputs.get(nodeVar.name);
+							// Kinda of a hack : skip decl writing for shaderParams
+							var shParam = Std.downcast(currentNode.instance, ShaderParam);
+							if (shParam != null) {
+								continue;
+							}
 							if (outputVar == null) {
 								externs.push(nodeVar);
 							} else {
@@ -425,7 +435,8 @@ class ShaderGraph {
 					}
 				}
 
-				exprsReverse.push(expr);
+				if (expr != null)
+					exprsReverse.push(expr);
 
 				for (output in outputDecls) {
 					var finalExpr : TExpr = {e: TVarDecl(output), p: pos, t: output.type};

+ 2 - 2
hrt/shgraph/ShaderParam.hx

@@ -21,10 +21,10 @@ class ShaderParam extends ShaderNode {
 		}
 		var inVar : TVar = {name: this.variable.name, id:0, type: this.variable.type, kind: Param, qualifiers: qual};
 		var output : TVar = {name: "output", id:1, type: this.variable.type, kind: Local, qualifiers: [SgOutput]};
-		var finalExpr : TExpr = {e: TBinop(OpAssign, {e:TVar(output), p:pos, t:output.type}, {e: TVar(inVar), p: pos, t: output.type}), p: pos, t: output.type};
+		//var finalExpr : TExpr = {e: TBinop(OpAssign, {e:TVar(output), p:pos, t:output.type}, {e: TVar(inVar), p: pos, t: output.type}), p: pos, t: output.type};
 
 
-		return {expr: finalExpr, inVars: [], outVars:[output], externVars: [inVar, output], inits: []};
+		return {expr: null, inVars: [], outVars:[output], externVars: [inVar, output], inits: []};
 	}
 
 	public var variable : TVar;