AddressModeConverter.cs 1.2 KB

1234567891011121314151617181920212223242526
  1. using OpenTK.Graphics.OpenGL;
  2. using Ryujinx.Graphics.GAL.Sampler;
  3. using System;
  4. namespace Ryujinx.Graphics.OpenGL
  5. {
  6. static class AddressModeConverter
  7. {
  8. public static TextureWrapMode Convert(this AddressMode mode)
  9. {
  10. switch (mode)
  11. {
  12. case AddressMode.Clamp : return TextureWrapMode.Clamp;
  13. case AddressMode.Repeat : return TextureWrapMode.Repeat;
  14. case AddressMode.MirrorClamp : return (TextureWrapMode)ExtTextureMirrorClamp.MirrorClampExt;
  15. case AddressMode.MirrorClampToEdge : return (TextureWrapMode)ExtTextureMirrorClamp.MirrorClampToEdgeExt;
  16. case AddressMode.MirrorClampToBorder : return (TextureWrapMode)ExtTextureMirrorClamp.MirrorClampToBorderExt;
  17. case AddressMode.ClampToBorder : return TextureWrapMode.ClampToBorder;
  18. case AddressMode.MirroredRepeat : return TextureWrapMode.MirroredRepeat;
  19. case AddressMode.ClampToEdge : return TextureWrapMode.ClampToEdge;
  20. }
  21. throw new ArgumentException($"Invalid address mode \"{mode}\".");
  22. }
  23. }
  24. }