A game about forced loneliness, made by TACStudios
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}