aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics.OpenGL/Converters/TargetConverter.cs
blob: 6b52498003cf52a07a04568fc29b8ce6627cd0d9 (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
27
28
29
30
31
32
33
using OpenTK.Graphics.OpenGL;
using Ryujinx.Graphics.GAL.Texture;
using System;

namespace Ryujinx.Graphics.OpenGL
{
    static class TargetConverter
    {
        public static ImageTarget ConvertToImageTarget(this Target target)
        {
            return (ImageTarget)target.Convert();
        }

        public static TextureTarget Convert(this Target target)
        {
            switch (target)
            {
                case Target.Texture1D:            return TextureTarget.Texture1D;
                case Target.Texture2D:            return TextureTarget.Texture2D;
                case Target.Texture3D:            return TextureTarget.Texture3D;
                case Target.Texture1DArray:       return TextureTarget.Texture1DArray;
                case Target.Texture2DArray:       return TextureTarget.Texture2DArray;
                case Target.Texture2DMultisample: return TextureTarget.Texture2DMultisample;
                case Target.Rectangle:            return TextureTarget.TextureRectangle;
                case Target.Cubemap:              return TextureTarget.TextureCubeMap;
                case Target.CubemapArray:         return TextureTarget.TextureCubeMapArray;
                case Target.TextureBuffer:        return TextureTarget.TextureBuffer;
            }

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