mirror of
https://github.com/Ryujinx/Ryujinx.git
synced 2024-08-17 14:18:44 +02:00
45 lines
1.2 KiB
C#
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;
|
||
|
}
|
||
|
}
|
||
|
}
|