No Description
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

IMayRequireScreenPosition.cs 1.5KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. using UnityEditor.Graphing;
  2. namespace UnityEditor.ShaderGraph
  3. {
  4. interface IMayRequireScreenPosition
  5. {
  6. bool RequiresScreenPosition(ShaderStageCapability stageCapability = ShaderStageCapability.All);
  7. }
  8. interface IMayRequireNDCPosition
  9. {
  10. bool RequiresNDCPosition(ShaderStageCapability stageCapability = ShaderStageCapability.All);
  11. }
  12. interface IMayRequirePixelPosition
  13. {
  14. bool RequiresPixelPosition(ShaderStageCapability stageCapability = ShaderStageCapability.All);
  15. }
  16. static class MayRequireScreenPositionExtensions
  17. {
  18. public static bool RequiresScreenPosition(this MaterialSlot slot, ShaderStageCapability stageCapability = ShaderStageCapability.All)
  19. {
  20. var mayRequireScreenPosition = slot as IMayRequireScreenPosition;
  21. return mayRequireScreenPosition?.RequiresScreenPosition(stageCapability) ?? false;
  22. }
  23. public static bool RequiresNDCPosition(this MaterialSlot slot, ShaderStageCapability stageCapability = ShaderStageCapability.All)
  24. {
  25. var mayRequireNDCPosition = slot as IMayRequireNDCPosition;
  26. return mayRequireNDCPosition?.RequiresNDCPosition(stageCapability) ?? false;
  27. }
  28. public static bool RequiresPixelPosition(this MaterialSlot slot, ShaderStageCapability stageCapability = ShaderStageCapability.All)
  29. {
  30. var mayRequirePixelPosition = slot as IMayRequirePixelPosition;
  31. return mayRequirePixelPosition?.RequiresPixelPosition(stageCapability) ?? false;
  32. }
  33. }
  34. }