aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics.OpenGL/Converters/AddressModeConverter.cs
blob: 8f9b5074f6ea0a37cb3ea2ac698eb30f9d551ed3 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
using OpenTK.Graphics.OpenGL;
using Ryujinx.Graphics.GAL.Sampler;
using System;

namespace Ryujinx.Graphics.OpenGL
{
    static class AddressModeConverter
    {
        public static TextureWrapMode Convert(this AddressMode mode)
        {
            switch (mode)
            {
                case AddressMode.Clamp               : return TextureWrapMode.Clamp;
                case AddressMode.Repeat              : return TextureWrapMode.Repeat;
                case AddressMode.MirrorClamp         : return (TextureWrapMode)ExtTextureMirrorClamp.MirrorClampExt;
                case AddressMode.MirrorClampToEdge   : return (TextureWrapMode)ExtTextureMirrorClamp.MirrorClampToEdgeExt;
                case AddressMode.MirrorClampToBorder : return (TextureWrapMode)ExtTextureMirrorClamp.MirrorClampToBorderExt;
                case AddressMode.ClampToBorder       : return TextureWrapMode.ClampToBorder;
                case AddressMode.MirroredRepeat      : return TextureWrapMode.MirroredRepeat;
                case AddressMode.ClampToEdge         : return TextureWrapMode.ClampToEdge;
            }

            throw new ArgumentException($"Invalid address mode \"{mode}\".");
        }
    }
}