aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.Graphics.Shader/InputTopology.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Ryujinx.Graphics.Shader/InputTopology.cs')
-rw-r--r--src/Ryujinx.Graphics.Shader/InputTopology.cs40
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