diff options
Diffstat (limited to 'src/Ryujinx.Graphics.Shader/InputTopology.cs')
-rw-r--r-- | src/Ryujinx.Graphics.Shader/InputTopology.cs | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/Ryujinx.Graphics.Shader/InputTopology.cs b/src/Ryujinx.Graphics.Shader/InputTopology.cs new file mode 100644 index 00000000..da332909 --- /dev/null +++ b/src/Ryujinx.Graphics.Shader/InputTopology.cs @@ -0,0 +1,40 @@ +namespace Ryujinx.Graphics.Shader +{ + public enum InputTopology : byte + { + Points, + Lines, + LinesAdjacency, + Triangles, + TrianglesAdjacency + } + + static class InputTopologyExtensions + { + public static string ToGlslString(this InputTopology topology) + { + return topology switch + { + InputTopology.Points => "points", + InputTopology.Lines => "lines", + InputTopology.LinesAdjacency => "lines_adjacency", + InputTopology.Triangles => "triangles", + InputTopology.TrianglesAdjacency => "triangles_adjacency", + _ => "points" + }; + } + + public static int ToInputVertices(this InputTopology topology) + { + return topology switch + { + InputTopology.Points => 1, + InputTopology.Lines or + InputTopology.LinesAdjacency => 2, + InputTopology.Triangles or + InputTopology.TrianglesAdjacency => 3, + _ => 1 + }; + } + } +}
\ No newline at end of file |