diff options
| author | gdk <gab.dark.100@gmail.com> | 2019-10-13 03:02:07 -0300 |
|---|---|---|
| committer | Thog <thog@protonmail.com> | 2020-01-09 02:13:00 +0100 |
| commit | 1876b346fea647e8284a66bb6d62c38801035cff (patch) | |
| tree | 6eeff094298cda84d1613dc5ec0691e51d7b35f1 /Ryujinx.Graphics/Shader/CodeGen/Glsl/NumberFormatter.cs | |
| parent | f617fb542a0e3d36012d77a4b5acbde7b08902f2 (diff) | |
Initial work
Diffstat (limited to 'Ryujinx.Graphics/Shader/CodeGen/Glsl/NumberFormatter.cs')
| -rw-r--r-- | Ryujinx.Graphics/Shader/CodeGen/Glsl/NumberFormatter.cs | 104 |
1 files changed, 0 insertions, 104 deletions
diff --git a/Ryujinx.Graphics/Shader/CodeGen/Glsl/NumberFormatter.cs b/Ryujinx.Graphics/Shader/CodeGen/Glsl/NumberFormatter.cs deleted file mode 100644 index 2ec44277..00000000 --- a/Ryujinx.Graphics/Shader/CodeGen/Glsl/NumberFormatter.cs +++ /dev/null @@ -1,104 +0,0 @@ -using Ryujinx.Graphics.Shader.StructuredIr; -using System; -using System.Globalization; - -namespace Ryujinx.Graphics.Shader.CodeGen.Glsl -{ - static class NumberFormatter - { - private const int MaxDecimal = 256; - - public static bool TryFormat(int value, VariableType dstType, out string formatted) - { - if (dstType == VariableType.F32) - { - return TryFormatFloat(BitConverter.Int32BitsToSingle(value), out formatted); - } - else if (dstType == VariableType.S32) - { - formatted = FormatInt(value); - } - else if (dstType == VariableType.U32) - { - formatted = FormatUint((uint)value); - } - else if (dstType == VariableType.Bool) - { - formatted = value != 0 ? "true" : "false"; - } - else - { - throw new ArgumentException($"Invalid variable type \"{dstType}\"."); - } - - return true; - } - - public static string FormatFloat(float value) - { - if (!TryFormatFloat(value, out string formatted)) - { - throw new ArgumentException("Failed to convert float value to string."); - } - - return formatted; - } - - public static bool TryFormatFloat(float value, out string formatted) - { - if (float.IsNaN(value) || float.IsInfinity(value)) - { - formatted = null; - - return false; - } - - formatted = value.ToString("G9", CultureInfo.InvariantCulture); - - if (!(formatted.Contains('.') || - formatted.Contains('e') || - formatted.Contains('E'))) - { - formatted += ".0"; - } - - return true; - } - - public static string FormatInt(int value, VariableType dstType) - { - if (dstType == VariableType.S32) - { - return FormatInt(value); - } - else if (dstType == VariableType.U32) - { - return FormatUint((uint)value); - } - else - { - throw new ArgumentException($"Invalid variable type \"{dstType}\"."); - } - } - - public static string FormatInt(int value) - { - if (value <= MaxDecimal && value >= -MaxDecimal) - { - return value.ToString(CultureInfo.InvariantCulture); - } - - return "0x" + value.ToString("X", CultureInfo.InvariantCulture); - } - - public static string FormatUint(uint value) - { - if (value <= MaxDecimal && value >= 0) - { - return value.ToString(CultureInfo.InvariantCulture) + "u"; - } - - return "0x" + value.ToString("X", CultureInfo.InvariantCulture) + "u"; - } - } -}
\ No newline at end of file |
