private void WriteFunctionHeader(Vertex main) { IModule module = main.Data.ParentModule as IModule; ShaderNodeDataTypes.MainInputNodeType inputData = module.GetCompiledData(main.Data)[0] as ShaderNodeDataTypes.MainInputNodeType; string postFix = ""; if (inputData.postFix != null) { postFix = " : " + inputData.postFix; } WriteLine(inputData.returnType + " main(ConnData IN)" + postFix); WriteLine("{", IndentType.Increase); }
public object[] GetCompiledData(Node node) { ShaderNodeDataTypes.MainInputNodeType shaderNode = new ShaderNodeDataTypes.MainInputNodeType(); shaderNode.returnType = "float4"; shaderNode.postFix = "COLOR0"; shaderNode.CompiledHeaderString = @"struct ConnData { float4 hpos : POSITION; float2 uv0 : TEXCOORD0; float2 uv1 : TEXCOORD1; float2 uv2 : TEXCOORD2; float2 uv3 : TEXCOORD3; float3 wsEyeRay : TEXCOORD4; };"; KeyValuePair <object, string> posPair = new KeyValuePair <object, string>(node.Items.ElementAt(0), "IN.hpos"); KeyValuePair <object, string> uv0Pair = new KeyValuePair <object, string>(node.Items.ElementAt(1), "IN.uv0"); KeyValuePair <object, string> uv1Pair = new KeyValuePair <object, string>(node.Items.ElementAt(2), "IN.uv1"); KeyValuePair <object, string> uv2Pair = new KeyValuePair <object, string>(node.Items.ElementAt(3), "IN.uv2"); KeyValuePair <object, string> uv3Pair = new KeyValuePair <object, string>(node.Items.ElementAt(4), "IN.uv3"); KeyValuePair <object, string> wsEyeRayPair = new KeyValuePair <object, string>(node.Items.ElementAt(5), "IN.wsEyeRay"); return(new object[] { shaderNode, posPair, uv0Pair, uv1Pair, uv2Pair, uv3Pair, wsEyeRayPair }); }