PrimitiveTopologyConverter.cs 1.8 KB

123456789101112131415161718192021222324252627282930313233
  1. using OpenTK.Graphics.OpenGL;
  2. using Ryujinx.Graphics.GAL;
  3. using System;
  4. namespace Ryujinx.Graphics.OpenGL
  5. {
  6. static class PrimitiveTopologyConverter
  7. {
  8. public static PrimitiveType Convert(this PrimitiveTopology topology)
  9. {
  10. switch (topology)
  11. {
  12. case PrimitiveTopology.Points: return PrimitiveType.Points;
  13. case PrimitiveTopology.Lines: return PrimitiveType.Lines;
  14. case PrimitiveTopology.LineLoop: return PrimitiveType.LineLoop;
  15. case PrimitiveTopology.LineStrip: return PrimitiveType.LineStrip;
  16. case PrimitiveTopology.Triangles: return PrimitiveType.Triangles;
  17. case PrimitiveTopology.TriangleStrip: return PrimitiveType.TriangleStrip;
  18. case PrimitiveTopology.TriangleFan: return PrimitiveType.TriangleFan;
  19. case PrimitiveTopology.Quads: return PrimitiveType.Quads;
  20. case PrimitiveTopology.QuadStrip: return PrimitiveType.QuadStrip;
  21. case PrimitiveTopology.Polygon: return PrimitiveType.Polygon;
  22. case PrimitiveTopology.LinesAdjacency: return PrimitiveType.LinesAdjacency;
  23. case PrimitiveTopology.LineStripAdjacency: return PrimitiveType.LineStripAdjacency;
  24. case PrimitiveTopology.TrianglesAdjacency: return PrimitiveType.TrianglesAdjacency;
  25. case PrimitiveTopology.TriangleStripAdjacency: return PrimitiveType.TriangleStripAdjacency;
  26. case PrimitiveTopology.Patches: return PrimitiveType.Patches;
  27. }
  28. throw new ArgumentException($"Invalid primitive topology \"{topology}\".");
  29. }
  30. }
  31. }