浏览代码

Fixed serialization of default values

Clement Espeute 1 年之前
父节点
当前提交
c5118bd8c5

+ 2 - 1
hide/view/Graph.hx

@@ -283,7 +283,8 @@ class Graph extends FileView {
 					if (Math.isNaN(tmpValue) ) {
 						fieldEditInput.addClass("error");
 					} else {
-						Reflect.setField(box.getInstance().defaults, '${inputName}', tmpValue);
+						// Store the value as a string anyway
+						Reflect.setField(box.getInstance().defaults, '${inputName}', '$tmpValue');
 						fieldEditInput.val(tmpValue);
 						fieldEditInput.removeClass("error");
 					}

+ 1 - 0
hrt/shgraph/Macros.hx

@@ -51,6 +51,7 @@ class Macros {
 																	throw "sginput default param must be an identifier or a integer";
 															}
 														default:
+															trace(meta.params[0].expr);
 															throw "sginput default param must be a constant value";
 													}
 												}

+ 3 - 0
hrt/shgraph/ShaderGraph.hx

@@ -106,6 +106,7 @@ class ShaderGraph {
 		}
 	}
 
+	#if editor
 	public function saveToDynamic() : Dynamic {
 		var json : Dynamic = {};
 
@@ -124,6 +125,7 @@ class ShaderGraph {
 	public function saveToText() : String {
 		return haxe.Json.stringify(saveToDynamic(), "\t");
 	}
+	#end
 
 	public function compile2(?specificOutput: ShaderNode) : hrt.prefab.ContextShared.ShaderDef {
 		var start = haxe.Timer.stamp();
@@ -803,4 +805,5 @@ class Graph {
 		return json;
 	}
 	#end
+
 }

+ 1 - 1
hrt/shgraph/nodes/Abs.hx

@@ -9,7 +9,7 @@ using hxsl.Ast;
 class Abs extends ShaderNodeHxsl {
 
 	static var SRC = {
-		@sginput var a : Vec4;
+		@sginput(0.0) var a : Vec4;
 		@sgoutput var output : Vec4;
 		function fragment() {
 			output = abs(a);

+ 1 - 1
hrt/shgraph/nodes/Acos.hx

@@ -9,7 +9,7 @@ using hxsl.Ast;
 class Acos extends ShaderNodeHxsl {
 
 	static var SRC = {
-		@sginput var a : Vec4;
+		@sginput(0.0) var a : Vec4;
 		@sgoutput var output : Vec4;
 		function fragment() {
 			output = acos(a);

+ 1 - 1
hrt/shgraph/nodes/Asin.hx

@@ -9,7 +9,7 @@ using hxsl.Ast;
 class Asin extends ShaderNodeHxsl {
 
 	static var SRC = {
-		@sginput var a : Vec4;
+		@sginput(0.0) var a : Vec4;
 		@sgoutput var output : Vec4;
 		function fragment() {
 			output = asin(a);

+ 1 - 1
hrt/shgraph/nodes/Atan.hx

@@ -9,7 +9,7 @@ using hxsl.Ast;
 class Atan extends ShaderNodeHxsl {
 
 	static var SRC = {
-		@sginput var a : Vec4;
+		@sginput(0.0) var a : Vec4;
 		@sgoutput var output : Vec4;
 		function fragment() {
 			output = atan(a);

+ 1 - 1
hrt/shgraph/nodes/Ceil.hx

@@ -9,7 +9,7 @@ using hxsl.Ast;
 class Ceil extends ShaderNodeHxsl {
 
 	static var SRC = {
-		@sginput var a : Vec4;
+		@sginput(0.0) var a : Vec4;
 		@sgoutput var output : Vec4;
 		function fragment() {
 			output = ceil(a);

+ 1 - 1
hrt/shgraph/nodes/Clamp.hx

@@ -9,7 +9,7 @@ using hxsl.Ast;
 class Clamp extends ShaderNodeHxsl {
 
 	static var SRC = {
-		@sginput var a : Vec4;
+		@sginput(0.0) var a : Vec4;
 		@sginput var min : Vec4;
 		@sginput var max : Vec4;
 

+ 4 - 4
hrt/shgraph/nodes/Combine.hx

@@ -11,10 +11,10 @@ using hxsl.Ast;
 class Combine extends ShaderNodeHxsl {
 
 	static var SRC = {
-		@sginput var r : Float;
-		@sginput var g : Float;
-		@sginput var b : Float;
-		@sginput var a : Float;
+		@sginput(0.0) var r : Float;
+		@sginput(0.0) var g : Float;
+		@sginput(0.0) var b : Float;
+		@sginput(0.0) var a : Float;
 		@sgoutput var output : Vec4;
 
 		function fragment() {

+ 1 - 1
hrt/shgraph/nodes/Cos.hx

@@ -9,7 +9,7 @@ using hxsl.Ast;
 class Cos extends ShaderNodeHxsl {
 
 	static var SRC = {
-		@sginput var a : Vec4;
+		@sginput(0.0) var a : Vec4;
 		@sgoutput var output : Vec4;
 		function fragment() {
 			output = cos(a);

+ 2 - 2
hrt/shgraph/nodes/Divide.hx

@@ -9,8 +9,8 @@ using hxsl.Ast;
 class Divide extends ShaderNodeHxsl {
 
 	static var SRC = {
-		@sginput var a : Vec4;
-		@sginput var b : Vec4;
+		@sginput(1.0) var a : Vec4;
+		@sginput(1.0) var b : Vec4;
 		@sgoutput var output : Vec4;
 		function fragment() {
 			output = a / b;

+ 2 - 2
hrt/shgraph/nodes/Dot.hx

@@ -9,8 +9,8 @@ using hxsl.Ast;
 class Dot extends ShaderNodeHxsl {
 
 	static var SRC = {
-		@sginput var a : Vec4;
-		@sginput var b : Vec4;
+		@sginput(0.0) var a : Vec4;
+		@sginput(0.0) var b : Vec4;
 		@sgoutput var output : Float;
 		function fragment() {
 			output = dot(a,b);

+ 1 - 1
hrt/shgraph/nodes/Exp.hx

@@ -9,7 +9,7 @@ using hxsl.Ast;
 class Exp extends ShaderNodeHxsl {
 
 	static var SRC = {
-		@sginput var a : Vec4;
+		@sginput(0.0) var a : Vec4;
 		@sgoutput var output : Vec4;
 		function fragment() {
 			output = exp(a);

+ 1 - 1
hrt/shgraph/nodes/Floor.hx

@@ -9,7 +9,7 @@ using hxsl.Ast;
 class Floor extends ShaderNodeHxsl {
 
 	static var SRC = {
-		@sginput var a : Vec4;
+		@sginput(0.0) var a : Vec4;
 		@sgoutput var output : Vec4;
 		function fragment() {
 			output = floor(a);

+ 1 - 1
hrt/shgraph/nodes/Fract.hx

@@ -9,7 +9,7 @@ using hxsl.Ast;
 class Fract extends ShaderNodeHxsl {
 
 	static var SRC = {
-		@sginput var a : Vec4;
+		@sginput(0.0) var a : Vec4;
 		@sgoutput var output : Vec4;
 		function fragment() {
 			output = fract(a);

+ 1 - 1
hrt/shgraph/nodes/Length.hx

@@ -9,7 +9,7 @@ using hxsl.Ast;
 class Length extends ShaderNodeHxsl {
 
 	static var SRC = {
-		@sginput var a : Vec4;
+		@sginput(0.0) var a : Vec4;
 		@sgoutput var output : Float;
 		function fragment() {
 			output = length(a);

+ 1 - 1
hrt/shgraph/nodes/Log.hx

@@ -9,7 +9,7 @@ using hxsl.Ast;
 class Log extends ShaderNodeHxsl {
 
 	static var SRC = {
-		@sginput var a : Vec4;
+		@sginput(0.0) var a : Vec4;
 		@sgoutput var output : Vec4;
 		function fragment() {
 			output = log(a);

+ 2 - 2
hrt/shgraph/nodes/Max.hx

@@ -9,8 +9,8 @@ using hxsl.Ast;
 class Max extends ShaderNodeHxsl {
 
 	static var SRC = {
-		@sginput var a : Vec4;
-		@sginput var b : Vec4;
+		@sginput(0.0) var a : Vec4;
+		@sginput(0.0) var b : Vec4;
 		@sgoutput var output : Vec4;
 		function fragment() {
 			output = max(a,b);

+ 2 - 2
hrt/shgraph/nodes/Min.hx

@@ -9,8 +9,8 @@ using hxsl.Ast;
 class Min extends ShaderNodeHxsl {
 
 	static var SRC = {
-		@sginput var a : Vec4;
-		@sginput var b : Vec4;
+		@sginput(0.0) var a : Vec4;
+		@sginput(0.0) var b : Vec4;
 		@sgoutput var output : Vec4;
 		function fragment() {
 			output = min(a,b);

+ 2 - 2
hrt/shgraph/nodes/Mix.hx

@@ -9,8 +9,8 @@ using hxsl.Ast;
 class Mix extends ShaderNodeHxsl {
 
 	static var SRC = {
-		@sginput var a : Vec4;
-		@sginput var b : Vec4;
+		@sginput(0.0) var a : Vec4;
+		@sginput(0.0) var b : Vec4;
 		@sginput var fact : Vec4;
 		@sgoutput var output : Vec4;
 		function fragment() {

+ 2 - 2
hrt/shgraph/nodes/Mod.hx

@@ -9,8 +9,8 @@ using hxsl.Ast;
 class Mod extends ShaderNodeHxsl {
 
 	static var SRC = {
-		@sginput var a : Vec4;
-		@sginput var b : Vec4;
+		@sginput(0.0) var a : Vec4;
+		@sginput(0.0) var b : Vec4;
 		@sgoutput var output : Vec4;
 		function fragment() {
 			output = mod(a,b);

+ 2 - 2
hrt/shgraph/nodes/Multiply.hx

@@ -9,8 +9,8 @@ using hxsl.Ast;
 class Multiply extends ShaderNodeHxsl {
 
 	static var SRC = {
-		@sginput var a : Vec4;
-		@sginput var b : Vec4;
+		@sginput(1.0) var a : Vec4;
+		@sginput(1.0) var b : Vec4;
 		@sgoutput var output : Vec4;
 		function fragment() {
 			output = a * b;

+ 1 - 1
hrt/shgraph/nodes/Normalize.hx

@@ -9,7 +9,7 @@ using hxsl.Ast;
 class Normalize extends ShaderNodeHxsl {
 
 	static var SRC = {
-		@sginput var a : Vec4;
+		@sginput(0.0) var a : Vec4;
 		@sgoutput var output : Vec4;
 		function fragment() {
 			output = normalize(a);

+ 2 - 2
hrt/shgraph/nodes/Pow.hx

@@ -9,8 +9,8 @@ using hxsl.Ast;
 class Pow extends ShaderNodeHxsl {
 
 	static var SRC = {
-		@sginput var a : Vec4;
-		@sginput var b : Vec4;
+		@sginput(0.0) var a : Vec4;
+		@sginput(0.0) var b : Vec4;
 		@sgoutput var output : Vec4;
 		function fragment() {
 			output = pow(a,b);

+ 2 - 2
hrt/shgraph/nodes/Sampler.hx

@@ -9,14 +9,14 @@ class Sampler extends ShaderNodeHxsl {
 
 	static var SRC = {
 		@sginput var texture : Sampler2D;
-		@sginput(uv) var _uv : Vec2;
+		@sginput(uv) var uv : Vec2;
 		@sgoutput var RGBA : Vec4;
 		@sgoutput var RGB : Vec3;
 		@sgoutput var A : Float;
 
 
 		function fragment() {
-			RGBA = texture.get(_uv);
+			RGBA = texture.get(uv);
 			RGB = RGBA.rgb;
 			A = RGBA.a;
 		}

+ 1 - 1
hrt/shgraph/nodes/Saturate.hx

@@ -9,7 +9,7 @@ using hxsl.Ast;
 class Saturate extends ShaderNodeHxsl {
 
 	static var SRC = {
-		@sginput var a : Vec4;
+		@sginput(0.0) var a : Vec4;
 		@sgoutput var output : Vec4;
 		function fragment() {
 			output = saturate(a);

+ 1 - 1
hrt/shgraph/nodes/Sin.hx

@@ -9,7 +9,7 @@ using hxsl.Ast;
 class Sin extends ShaderNodeHxsl {
 
 	static var SRC = {
-		@sginput var a : Vec4;
+		@sginput(0.0) var a : Vec4;
 		@sgoutput var output : Vec4;
 		function fragment() {
 			output = sin(a);

+ 2 - 2
hrt/shgraph/nodes/SmoothStep.hx

@@ -9,8 +9,8 @@ using hxsl.Ast;
 class SmoothStep extends ShaderNodeHxsl {
 
 	static var SRC = {
-		@sginput var a : Vec4;
-		@sginput var b : Vec4;
+		@sginput(0.0) var a : Vec4;
+		@sginput(0.0) var b : Vec4;
 		@sginput var fact : Vec4;
 		@sgoutput var output : Vec4;
 		function fragment() {

+ 1 - 1
hrt/shgraph/nodes/Sqrt.hx

@@ -10,7 +10,7 @@ using hxsl.Ast;
 class Sqrt extends ShaderNodeHxsl {
 
 	static var SRC = {
-		@sginput var a : Vec4;
+		@sginput(0.0) var a : Vec4;
 		@sgoutput var output : Vec4;
 		function fragment() {
 			output = sqrt(a);

+ 2 - 2
hrt/shgraph/nodes/Subtract.hx

@@ -9,8 +9,8 @@ using hxsl.Ast;
 class Subtract extends ShaderNodeHxsl {
 
 	static var SRC = {
-		@sginput var a : Vec4;
-		@sginput var b : Vec4;
+		@sginput(0.0) var a : Vec4;
+		@sginput(0.0) var b : Vec4;
 		@sgoutput var output : Vec4;
 		function fragment() {
 			output = a - b;

+ 1 - 1
hrt/shgraph/nodes/Tan.hx

@@ -9,7 +9,7 @@ using hxsl.Ast;
 class Tan extends  ShaderNodeHxsl {
 
 	static var SRC = {
-		@sginput var a : Vec4;
+		@sginput(0.0) var a : Vec4;
 		@sgoutput var output : Vec4;
 		function fragment() {
 			output = tan(a);

+ 4 - 4
hrt/shgraph/nodes/UVScroll.hx

@@ -8,10 +8,10 @@ using hxsl.Ast;
 class UVScroll extends  ShaderNodeHxsl {
 
 	static var SRC = {
-		@sginput var uv : Vec2;
-		@sginput var uSpeed : Float;
-		@sginput var vSpeed : Float;
-		@sginput var time : Float;
+		@sginput(uv) var uv : Vec2;
+		@sginput(0.0) var uSpeed : Float;
+		@sginput(0.0) var vSpeed : Float;
+		@sginput(0.0) var time : Float;
 
 		@sgoutput var output : Vec2;
 

+ 1 - 1
hrt/shgraph/nodes/UnpackNormal.hx

@@ -9,7 +9,7 @@ using hxsl.Ast;
 class UnpackNormal extends  ShaderNodeHxsl {
 
 	static var SRC = {
-		@sginput var a : Vec4;
+		@sginput(0.0) var a : Vec4;
 		@sgoutput var output : Vec3;
 		function fragment() {
 			output = unpackNormal(a);