PrimitiveTopology.cs 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. using Ryujinx.Graphics.GAL;
  2. namespace Ryujinx.Graphics.Gpu.State
  3. {
  4. enum PrimitiveType
  5. {
  6. Points,
  7. Lines,
  8. LineLoop,
  9. LineStrip,
  10. Triangles,
  11. TriangleStrip,
  12. TriangleFan,
  13. Quads,
  14. QuadStrip,
  15. Polygon,
  16. LinesAdjacency,
  17. LineStripAdjacency,
  18. TrianglesAdjacency,
  19. TriangleStripAdjacency,
  20. Patches
  21. }
  22. static class PrimitiveTypeConverter
  23. {
  24. public static PrimitiveTopology Convert(this PrimitiveType topology)
  25. {
  26. switch (topology)
  27. {
  28. case PrimitiveType.Points: return PrimitiveTopology.Points;
  29. case PrimitiveType.Lines: return PrimitiveTopology.Lines;
  30. case PrimitiveType.LineLoop: return PrimitiveTopology.LineLoop;
  31. case PrimitiveType.LineStrip: return PrimitiveTopology.LineStrip;
  32. case PrimitiveType.Triangles: return PrimitiveTopology.Triangles;
  33. case PrimitiveType.TriangleStrip: return PrimitiveTopology.TriangleStrip;
  34. case PrimitiveType.TriangleFan: return PrimitiveTopology.TriangleFan;
  35. case PrimitiveType.Quads: return PrimitiveTopology.Quads;
  36. case PrimitiveType.QuadStrip: return PrimitiveTopology.QuadStrip;
  37. case PrimitiveType.Polygon: return PrimitiveTopology.Polygon;
  38. case PrimitiveType.LinesAdjacency: return PrimitiveTopology.LinesAdjacency;
  39. case PrimitiveType.LineStripAdjacency: return PrimitiveTopology.LineStripAdjacency;
  40. case PrimitiveType.TrianglesAdjacency: return PrimitiveTopology.TrianglesAdjacency;
  41. case PrimitiveType.TriangleStripAdjacency: return PrimitiveTopology.TriangleStripAdjacency;
  42. case PrimitiveType.Patches: return PrimitiveTopology.Patches;
  43. }
  44. return PrimitiveTopology.Triangles;
  45. }
  46. }
  47. }