forked from Mirror/Ryujinx
3249f8ff41
* Use source generated json serializers in order to improve code trimming * Use strongly typed github releases model to fetch updates instead of raw Newtonsoft.Json parsing * Use separate model for LogEventArgs serialization * Make dynamic object formatter static. Fix string builder pooling. * Do not inherit json version of LogEventArgs from EventArgs * Fix extra space in object formatting * Write log json directly to stream instead of using buffer writer * Rebase fixes * Rebase fixes * Rebase fixes * Enforce block-scoped namespaces in the solution. Convert style for existing code * Apply suggestions from code review Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com> * Rebase indent fix * Fix indent * Delete unnecessary json properties * Rebase fix * Remove overridden json property names as they are handled in the options * Apply suggestions from code review Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com> * Use default json options in github api calls * Indentation and spacing fixes * Fix json serialization * Fix missing JsonConverter for config enums * Add double \n\n after the whole string, not inside join --------- Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com>
63 lines
No EOL
1.9 KiB
C#
63 lines
No EOL
1.9 KiB
C#
using Ryujinx.Common.Utilities;
|
|
using System.Text.Json.Serialization;
|
|
|
|
namespace Ryujinx.Common.Configuration
|
|
{
|
|
[JsonConverter(typeof(TypedStringEnumConverter<AspectRatio>))]
|
|
public enum AspectRatio
|
|
{
|
|
Fixed4x3,
|
|
Fixed16x9,
|
|
Fixed16x10,
|
|
Fixed21x9,
|
|
Fixed32x9,
|
|
Stretched
|
|
}
|
|
|
|
public static class AspectRatioExtensions
|
|
{
|
|
public static float ToFloat(this AspectRatio aspectRatio)
|
|
{
|
|
return aspectRatio.ToFloatX() / aspectRatio.ToFloatY();
|
|
}
|
|
|
|
public static float ToFloatX(this AspectRatio aspectRatio)
|
|
{
|
|
return aspectRatio switch
|
|
{
|
|
AspectRatio.Fixed4x3 => 4.0f,
|
|
AspectRatio.Fixed16x9 => 16.0f,
|
|
AspectRatio.Fixed16x10 => 16.0f,
|
|
AspectRatio.Fixed21x9 => 21.0f,
|
|
AspectRatio.Fixed32x9 => 32.0f,
|
|
_ => 16.0f
|
|
};
|
|
}
|
|
|
|
public static float ToFloatY(this AspectRatio aspectRatio)
|
|
{
|
|
return aspectRatio switch
|
|
{
|
|
AspectRatio.Fixed4x3 => 3.0f,
|
|
AspectRatio.Fixed16x9 => 9.0f,
|
|
AspectRatio.Fixed16x10 => 10.0f,
|
|
AspectRatio.Fixed21x9 => 9.0f,
|
|
AspectRatio.Fixed32x9 => 9.0f,
|
|
_ => 9.0f
|
|
};
|
|
}
|
|
|
|
public static string ToText(this AspectRatio aspectRatio)
|
|
{
|
|
return aspectRatio switch
|
|
{
|
|
AspectRatio.Fixed4x3 => "4:3",
|
|
AspectRatio.Fixed16x9 => "16:9",
|
|
AspectRatio.Fixed16x10 => "16:10",
|
|
AspectRatio.Fixed21x9 => "21:9",
|
|
AspectRatio.Fixed32x9 => "32:9",
|
|
_ => "Stretched"
|
|
};
|
|
}
|
|
}
|
|
} |