namespace Ryujinx.Graphics.Gpu.Image { /// /// Multisampled texture samples count. /// enum TextureMsaaMode { Ms1x1 = 0, Ms2x2 = 2, Ms4x2 = 4, Ms2x1 = 5, Ms4x4 = 6 } static class TextureMsaaModeConverter { /// /// Returns the total number of samples from the MSAA mode. /// /// The MSAA mode /// The total number of samples public static int SamplesCount(this TextureMsaaMode msaaMode) { return msaaMode switch { TextureMsaaMode.Ms2x1 => 2, TextureMsaaMode.Ms2x2 => 4, TextureMsaaMode.Ms4x2 => 8, TextureMsaaMode.Ms4x4 => 16, _ => 1 }; } /// /// Returns the number of samples in the X direction from the MSAA mode. /// /// The MSAA mode /// The number of samples in the X direction public static int SamplesInX(this TextureMsaaMode msaaMode) { return msaaMode switch { TextureMsaaMode.Ms2x1 => 2, TextureMsaaMode.Ms2x2 => 2, TextureMsaaMode.Ms4x2 => 4, TextureMsaaMode.Ms4x4 => 4, _ => 1 }; } /// /// Returns the number of samples in the Y direction from the MSAA mode. /// /// The MSAA mode /// The number of samples in the Y direction public static int SamplesInY(this TextureMsaaMode msaaMode) { return msaaMode switch { TextureMsaaMode.Ms2x1 => 1, TextureMsaaMode.Ms2x2 => 2, TextureMsaaMode.Ms4x2 => 2, TextureMsaaMode.Ms4x4 => 4, _ => 1 }; } } }