using Ryujinx.Graphics.GAL; namespace Ryujinx.Graphics.Gpu.State { /// <summary> /// Draw primitive type. /// </summary> enum PrimitiveType { Points, Lines, LineLoop, LineStrip, Triangles, TriangleStrip, TriangleFan, Quads, QuadStrip, Polygon, LinesAdjacency, LineStripAdjacency, TrianglesAdjacency, TriangleStripAdjacency, Patches } static class PrimitiveTypeConverter { /// <summary> /// Converts the primitive type into something that can be used with the host API. /// </summary> /// <param name="type">The primitive type to convert</param> /// <returns>A host compatible enum value</returns> public static PrimitiveTopology Convert(this PrimitiveType type) { return type switch { PrimitiveType.Points => PrimitiveTopology.Points, PrimitiveType.Lines => PrimitiveTopology.Lines, PrimitiveType.LineLoop => PrimitiveTopology.LineLoop, PrimitiveType.LineStrip => PrimitiveTopology.LineStrip, PrimitiveType.Triangles => PrimitiveTopology.Triangles, PrimitiveType.TriangleStrip => PrimitiveTopology.TriangleStrip, PrimitiveType.TriangleFan => PrimitiveTopology.TriangleFan, PrimitiveType.Quads => PrimitiveTopology.Quads, PrimitiveType.QuadStrip => PrimitiveTopology.QuadStrip, PrimitiveType.Polygon => PrimitiveTopology.Polygon, PrimitiveType.LinesAdjacency => PrimitiveTopology.LinesAdjacency, PrimitiveType.LineStripAdjacency => PrimitiveTopology.LineStripAdjacency, PrimitiveType.TrianglesAdjacency => PrimitiveTopology.TrianglesAdjacency, PrimitiveType.TriangleStripAdjacency => PrimitiveTopology.TriangleStripAdjacency, PrimitiveType.Patches => PrimitiveTopology.Patches, _ => PrimitiveTopology.Triangles }; } } }