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