private void WriteInputHeaders(List <Vertex> inputVertices) { foreach (Vertex v in inputVertices) { IModule module = v.Data.ParentModule as IModule; object[] compiledData = module.GetCompiledData(v.Data); ShaderNodeDataTypes.InputNodeType inputData = compiledData[0] as ShaderNodeDataTypes.InputNodeType; for (int i = 1; i < compiledData.Count(); i++) { if (compiledData[i] is KeyValuePair <object, string> ) { KeyValuePair <object, string> KVP = (KeyValuePair <object, string>)compiledData[i]; if (!InputDict.ContainsKey(KVP.Key)) { InputDict.Add(KVP.Key, KVP.Value); } } } if (inputData.CompiledHeaderString != null) { string HeaderString = inputData.CompiledHeaderString; if (HeaderString != null) { ParseOutputs(v, ref HeaderString); WriteLine(HeaderString); } } } }
public object[] GetCompiledData(Node node) { ShaderNodeDataTypes.InputNodeType shaderNode = new ShaderNodeDataTypes.InputNodeType(); ShaderTypes.float3 f3 = (ShaderTypes.float3)node.Items.FirstOrDefault(item => item.Tag == "out").OutputData; shaderNode.CompiledHeaderString = "uniform float3 {OUTPUT1_NAME} = {" + f3.x.ToString(CultureInfo.InvariantCulture) + "," + f3.y.ToString(CultureInfo.InvariantCulture) + "," + f3.z.ToString(CultureInfo.InvariantCulture) + "};"; return(new[] { shaderNode }); }
public object[] GetCompiledData(Node node) { ShaderNodeDataTypes.InputNodeType shaderNode = new ShaderNodeDataTypes.InputNodeType(); shaderNode.CompiledHeaderString = "uniform sampler2D {OUTPUT1_NAME} : register({REGISTER_NUM});"; return(new[] { shaderNode }); }