A game about forced loneliness, made by TACStudios
at master 72 lines 2.5 kB view raw
1using System.Linq; 2using UnityEngine; 3using UnityEditor.Graphing; 4using UnityEditor.ShaderGraph.Drawing.Controls; 5using UnityEditor.ShaderGraph.Internal; 6 7namespace UnityEditor.ShaderGraph 8{ 9 internal struct RGBANodeOutput 10 { 11 const string kRGBAName = "RGBA"; 12 const string kRName = "R"; 13 const string kGName = "G"; 14 const string kBName = "B"; 15 const string kAName = "A"; 16 17 public int rgbaOutput; 18 public int rOutput; 19 public int gOutput; 20 public int bOutput; 21 public int aOutput; 22 23 public MaterialSlot rgba; 24 public MaterialSlot r; 25 public MaterialSlot g; 26 public MaterialSlot b; 27 public MaterialSlot a; 28 29 public ShaderStageCapability capabilities; 30 31 public static RGBANodeOutput NewDefault() 32 { 33 return new RGBANodeOutput() 34 { 35 rgba = null, 36 r = null, 37 g = null, 38 b = null, 39 a = null, 40 capabilities = ShaderStageCapability.None 41 }; 42 } 43 44 public void CreateNodes(AbstractMaterialNode node, ShaderStageCapability newCapabilities, int rgbaSlot, int rSlot, int gSlot, int bSlot, int aSlot) 45 { 46 capabilities = newCapabilities; 47 rgbaOutput = rgbaSlot; 48 rOutput = rSlot; 49 gOutput = gSlot; 50 bOutput = bSlot; 51 aOutput = aSlot; 52 rgba = node.AddSlot(new Vector4MaterialSlot(rgbaOutput, kRGBAName, kRGBAName, SlotType.Output, Vector4.zero, capabilities)); 53 r = node.AddSlot(new Vector1MaterialSlot(rOutput, kRName, kRName, SlotType.Output, 0.0f, capabilities)); 54 g = node.AddSlot(new Vector1MaterialSlot(gOutput, kGName, kGName, SlotType.Output, 0.0f, capabilities)); 55 b = node.AddSlot(new Vector1MaterialSlot(bOutput, kBName, kBName, SlotType.Output, 0.0f, capabilities)); 56 a = node.AddSlot(new Vector1MaterialSlot(aOutput, kAName, kAName, SlotType.Output, 0.0f, capabilities)); 57 } 58 59 public void SetCapabilities(ShaderStageCapability newCapabilities) 60 { 61 if (newCapabilities == capabilities) 62 return; 63 64 capabilities = newCapabilities; 65 rgba.stageCapability = capabilities; 66 r.stageCapability = capabilities; 67 g.stageCapability = capabilities; 68 b.stageCapability = capabilities; 69 a.stageCapability = capabilities; 70 } 71 } 72}