A game about forced loneliness, made by TACStudios
at master 1.6 kB view raw
1using UnityEditor.Graphing; 2 3namespace UnityEditor.ShaderGraph 4{ 5 interface IMayRequireScreenPosition 6 { 7 bool RequiresScreenPosition(ShaderStageCapability stageCapability = ShaderStageCapability.All); 8 } 9 10 interface IMayRequireNDCPosition 11 { 12 bool RequiresNDCPosition(ShaderStageCapability stageCapability = ShaderStageCapability.All); 13 } 14 15 interface IMayRequirePixelPosition 16 { 17 bool RequiresPixelPosition(ShaderStageCapability stageCapability = ShaderStageCapability.All); 18 } 19 20 static class MayRequireScreenPositionExtensions 21 { 22 public static bool RequiresScreenPosition(this MaterialSlot slot, ShaderStageCapability stageCapability = ShaderStageCapability.All) 23 { 24 var mayRequireScreenPosition = slot as IMayRequireScreenPosition; 25 return mayRequireScreenPosition?.RequiresScreenPosition(stageCapability) ?? false; 26 } 27 28 public static bool RequiresNDCPosition(this MaterialSlot slot, ShaderStageCapability stageCapability = ShaderStageCapability.All) 29 { 30 var mayRequireNDCPosition = slot as IMayRequireNDCPosition; 31 return mayRequireNDCPosition?.RequiresNDCPosition(stageCapability) ?? false; 32 } 33 34 public static bool RequiresPixelPosition(this MaterialSlot slot, ShaderStageCapability stageCapability = ShaderStageCapability.All) 35 { 36 var mayRequirePixelPosition = slot as IMayRequirePixelPosition; 37 return mayRequirePixelPosition?.RequiresPixelPosition(stageCapability) ?? false; 38 } 39 } 40}