Example #1
0
 private static ShaderPatcherLayer.Node.Type AsNodeType(ShaderFragmentArchive.Parameter.SourceType input)
 {
     switch (input)
     {
         case ShaderFragmentArchive.Parameter.SourceType.Material:                   return ShaderPatcherLayer.Node.Type.MaterialCBuffer;
         case ShaderFragmentArchive.Parameter.SourceType.InterpolatorIntoVertex:     return ShaderPatcherLayer.Node.Type.InterpolatorIntoVertex;
         case ShaderFragmentArchive.Parameter.SourceType.InterpolatorIntoPixel:      return ShaderPatcherLayer.Node.Type.InterpolatorIntoPixel;
         case ShaderFragmentArchive.Parameter.SourceType.System:                     return ShaderPatcherLayer.Node.Type.SystemCBuffer;
         case ShaderFragmentArchive.Parameter.SourceType.Output:                     return ShaderPatcherLayer.Node.Type.Output;
         case ShaderFragmentArchive.Parameter.SourceType.Constant:                   return ShaderPatcherLayer.Node.Type.Constants;
         default:                                                                    return ShaderPatcherLayer.Node.Type.Procedure;
     }
 }
Example #2
0
 public void PushTo(ShaderFragmentArchive.Parameter destination)
 {
     destination.DeepCopyFrom(_activeParameter);
 }
Example #3
0
 public void PullFrom(ShaderFragmentArchive.Parameter parameter)
 {
     _activeParameter.DeepCopyFrom(parameter);
 }
Example #4
0
 public static Node CreateParameterNode(ShaderFragmentArchive.ParameterStruct parameter, String archiveName, ShaderFragmentArchive.Parameter.SourceType type)
 {
     var node = CreateEmptyParameterNode(type, archiveName, parameter.Name);
     foreach (var param in parameter.Parameters)
     {
         bool isOutput = type == ShaderFragmentArchive.Parameter.SourceType.Output;
         node.AddItem(new ShaderFragmentNodeItem(
             param.Name, param.Type, archiveName + ":" + param.Name,
             isOutput ? true : false, isOutput ? false : true));
     }
     return node;
 }
Example #5
0
 public static Node CreateNode(ShaderFragmentArchive.Function fn, String archiveName, HyperGraph.GraphControl graphControl, ShaderDiagram.Document doc)
 {
     var node = new Node(fn.Name);
     node.Tag = new ShaderProcedureNodeTag(archiveName);
     node.AddItem(new ShaderFragmentPreviewItem(graphControl, doc));
     foreach (var param in fn.InputParameters)
     {
         node.AddItem(new ShaderFragmentNodeItem(param.Name, param.Type, archiveName + ":" + param.Name, true, false));
     }
     foreach (var output in fn.Outputs)
     {
         node.AddItem(new ShaderFragmentNodeItem(output.Name, output.Type, archiveName + ":" + output.Name, false, true));
     }
     return node;
 }
Example #6
0
 public static Node CreateEmptyParameterNode(ShaderFragmentArchive.Parameter.SourceType sourceType, String archiveName, String title)
 {
     var node = new Node(title);
     node.Tag = new ShaderParameterNodeTag(archiveName);
     int selectedIndex = 0;
     List<String> typeNames = new List<String>();
     foreach (var e in Enum.GetValues(typeof(ShaderFragmentArchive.Parameter.SourceType)).Cast<ShaderFragmentArchive.Parameter.SourceType>())
     {
         if (e == sourceType)
         {
             selectedIndex = typeNames.Count;
         }
         typeNames.Add(AsString(e));
     }
     var typeSelection = new HyperGraph.Items.NodeDropDownItem(typeNames.ToArray(), selectedIndex, false, false);
     node.AddItem(typeSelection);
     typeSelection.SelectionChanged += ParameterNodeTypeChanged;
     return node;
 }
Example #7
0
 public static String AsString(ShaderFragmentArchive.Parameter.SourceType input)
 {
     switch (input)
     {
     case ShaderFragmentArchive.Parameter.SourceType.Material:               return "Material Parameter";
     case ShaderFragmentArchive.Parameter.SourceType.InterpolatorIntoVertex: return "Interpolator Into Vertex Shader";
     case ShaderFragmentArchive.Parameter.SourceType.InterpolatorIntoPixel:  return "Interpolator Into Pixel Shader";
     case ShaderFragmentArchive.Parameter.SourceType.System:                 return "System Parameter";
     case ShaderFragmentArchive.Parameter.SourceType.Output:                 return "Output";
     case ShaderFragmentArchive.Parameter.SourceType.Constant:               return "Constant";
     }
     return "Unknown Parameter";
 }