SamplerType.cs 926 B

1234567891011121314151617181920212223242526272829303132333435363738
  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. Indexed = 1 << 9,
  15. Multisample = 1 << 10,
  16. Shadow = 1 << 11
  17. }
  18. static class SamplerTypeExtensions
  19. {
  20. public static int GetDimensions(this SamplerType type)
  21. {
  22. switch (type & SamplerType.Mask)
  23. {
  24. case SamplerType.Texture1D: return 1;
  25. case SamplerType.TextureBuffer: return 1;
  26. case SamplerType.Texture2D: return 2;
  27. case SamplerType.Texture3D: return 3;
  28. case SamplerType.TextureCube: return 3;
  29. }
  30. throw new ArgumentException($"Invalid texture type \"{type}\".");
  31. }
  32. }
  33. }