using Ryujinx.Graphics.GAL; namespace Ryujinx.Graphics.Gpu.Image { /// /// Texture target. /// enum TextureTarget { Texture1D, Texture2D, Texture3D, Cubemap, Texture1DArray, Texture2DArray, TextureBuffer, Texture2DRect, CubemapArray } static class TextureTargetConverter { /// /// Converts the texture target enum to a host compatible, Graphics Abstraction Layer enum. /// /// The target enum to convert /// True if the texture is a multisampled texture /// The host compatible texture target public static Target Convert(this TextureTarget target, bool isMultisample) { if (isMultisample) { switch (target) { case TextureTarget.Texture2D: return Target.Texture2DMultisample; case TextureTarget.Texture2DArray: return Target.Texture2DMultisampleArray; } } else { switch (target) { case TextureTarget.Texture1D: return Target.Texture1D; case TextureTarget.Texture2D: return Target.Texture2D; case TextureTarget.Texture2DRect: return Target.Texture2D; case TextureTarget.Texture3D: return Target.Texture3D; case TextureTarget.Texture1DArray: return Target.Texture1DArray; case TextureTarget.Texture2DArray: return Target.Texture2DArray; case TextureTarget.Cubemap: return Target.Cubemap; case TextureTarget.CubemapArray: return Target.CubemapArray; case TextureTarget.TextureBuffer: return Target.TextureBuffer; } } return Target.Texture1D; } } }