SamplerType.cs 895 B

12345678910111213141516171819202122232425262728293031323334353637
  1. using System;
  2. namespace Ryujinx.Graphics.Shader
  3. {
  4. [Flags]
  5. public enum SamplerType
  6. {
  7. Texture1D,
  8. TextureBuffer,
  9. Texture2D,
  10. Texture3D,
  11. TextureCube,
  12. Mask = 0xff,
  13. Array = 1 << 8,
  14. Multisample = 1 << 9,
  15. Shadow = 1 << 10
  16. }
  17. static class SamplerTypeExtensions
  18. {
  19. public static int GetDimensions(this SamplerType type)
  20. {
  21. switch (type & SamplerType.Mask)
  22. {
  23. case SamplerType.Texture1D: return 1;
  24. case SamplerType.TextureBuffer: return 1;
  25. case SamplerType.Texture2D: return 2;
  26. case SamplerType.Texture3D: return 3;
  27. case SamplerType.TextureCube: return 3;
  28. }
  29. throw new ArgumentException($"Invalid texture type \"{type}\".");
  30. }
  31. }
  32. }