aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics/Shader/CodeGen/Glsl/NumberFormatter.cs
diff options
context:
space:
mode:
authorgdk <gab.dark.100@gmail.com>2019-10-13 03:02:07 -0300
committerThog <thog@protonmail.com>2020-01-09 02:13:00 +0100
commit1876b346fea647e8284a66bb6d62c38801035cff (patch)
tree6eeff094298cda84d1613dc5ec0691e51d7b35f1 /Ryujinx.Graphics/Shader/CodeGen/Glsl/NumberFormatter.cs
parentf617fb542a0e3d36012d77a4b5acbde7b08902f2 (diff)
Initial work
Diffstat (limited to 'Ryujinx.Graphics/Shader/CodeGen/Glsl/NumberFormatter.cs')
-rw-r--r--Ryujinx.Graphics/Shader/CodeGen/Glsl/NumberFormatter.cs104
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