Ryujinx/Ryujinx.Graphics.Shader/InterpolationQualifier.cs
2020-01-09 02:13:00 +01:00

45 lines
1.2 KiB
C#

using System;
namespace Ryujinx.Graphics.Shader
{
[Flags]
public enum InterpolationQualifier
{
None = 0,
Flat = 1,
NoPerspective = 2,
Smooth = 3,
Centroid = 1 << 16,
Sample = 1 << 17,
FlagsMask = Centroid | Sample
}
public static class InterpolationQualifierExtensions
{
public static string ToGlslQualifier(this InterpolationQualifier iq)
{
string output = string.Empty;
switch (iq & ~InterpolationQualifier.FlagsMask)
{
case InterpolationQualifier.Flat: output = "flat"; break;
case InterpolationQualifier.NoPerspective: output = "noperspective"; break;
case InterpolationQualifier.Smooth: output = "smooth"; break;
}
if ((iq & InterpolationQualifier.Centroid) != 0)
{
output = "centroid " + output;
}
else if ((iq & InterpolationQualifier.Sample) != 0)
{
output = "sample " + output;
}
return output;
}
}
}