InputTopology.cs 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. namespace Ryujinx.Graphics.Shader
  2. {
  3. public enum InputTopology : byte
  4. {
  5. Points,
  6. Lines,
  7. LinesAdjacency,
  8. Triangles,
  9. TrianglesAdjacency
  10. }
  11. static class InputTopologyExtensions
  12. {
  13. public static string ToGlslString(this InputTopology topology)
  14. {
  15. return topology switch
  16. {
  17. InputTopology.Points => "points",
  18. InputTopology.Lines => "lines",
  19. InputTopology.LinesAdjacency => "lines_adjacency",
  20. InputTopology.Triangles => "triangles",
  21. InputTopology.TrianglesAdjacency => "triangles_adjacency",
  22. _ => "points"
  23. };
  24. }
  25. public static int ToInputVertices(this InputTopology topology)
  26. {
  27. return topology switch
  28. {
  29. InputTopology.Points => 1,
  30. InputTopology.Lines or
  31. InputTopology.LinesAdjacency => 2,
  32. InputTopology.Triangles or
  33. InputTopology.TrianglesAdjacency => 3,
  34. _ => 1
  35. };
  36. }
  37. }
  38. }