PrimitiveTopology.cs 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. using Ryujinx.Graphics.GAL;
  2. namespace Ryujinx.Graphics.Gpu.State
  3. {
  4. /// <summary>
  5. /// Draw primitive type.
  6. /// </summary>
  7. enum PrimitiveType
  8. {
  9. Points,
  10. Lines,
  11. LineLoop,
  12. LineStrip,
  13. Triangles,
  14. TriangleStrip,
  15. TriangleFan,
  16. Quads,
  17. QuadStrip,
  18. Polygon,
  19. LinesAdjacency,
  20. LineStripAdjacency,
  21. TrianglesAdjacency,
  22. TriangleStripAdjacency,
  23. Patches
  24. }
  25. static class PrimitiveTypeConverter
  26. {
  27. /// <summary>
  28. /// Converts the primitive type into something that can be used with the host API.
  29. /// </summary>
  30. /// <param name="type">The primitive type to convert</param>
  31. /// <returns>A host compatible enum value</returns>
  32. public static PrimitiveTopology Convert(this PrimitiveType type)
  33. {
  34. return type switch
  35. {
  36. PrimitiveType.Points => PrimitiveTopology.Points,
  37. PrimitiveType.Lines => PrimitiveTopology.Lines,
  38. PrimitiveType.LineLoop => PrimitiveTopology.LineLoop,
  39. PrimitiveType.LineStrip => PrimitiveTopology.LineStrip,
  40. PrimitiveType.Triangles => PrimitiveTopology.Triangles,
  41. PrimitiveType.TriangleStrip => PrimitiveTopology.TriangleStrip,
  42. PrimitiveType.TriangleFan => PrimitiveTopology.TriangleFan,
  43. PrimitiveType.Quads => PrimitiveTopology.Quads,
  44. PrimitiveType.QuadStrip => PrimitiveTopology.QuadStrip,
  45. PrimitiveType.Polygon => PrimitiveTopology.Polygon,
  46. PrimitiveType.LinesAdjacency => PrimitiveTopology.LinesAdjacency,
  47. PrimitiveType.LineStripAdjacency => PrimitiveTopology.LineStripAdjacency,
  48. PrimitiveType.TrianglesAdjacency => PrimitiveTopology.TrianglesAdjacency,
  49. PrimitiveType.TriangleStripAdjacency => PrimitiveTopology.TriangleStripAdjacency,
  50. PrimitiveType.Patches => PrimitiveTopology.Patches,
  51. _ => PrimitiveTopology.Triangles
  52. };
  53. }
  54. }
  55. }