ryujinx_ryubing/src/Ryujinx.Graphics.Shader/InputTopology.cs
2025-11-11 12:55:36 -06:00

47 lines
1.4 KiB
C#

namespace Ryujinx.Graphics.Shader
{
public enum InputTopology : byte
{
Points,
Lines,
LinesAdjacency,
Triangles,
TrianglesAdjacency,
}
static class InputTopologyExtensions
{
extension(InputTopology topology)
{
public string GlslString => topology switch
{
InputTopology.Points => "points",
InputTopology.Lines => "lines",
InputTopology.LinesAdjacency => "lines_adjacency",
InputTopology.Triangles => "triangles",
InputTopology.TrianglesAdjacency => "triangles_adjacency",
_ => "points",
};
public int InputVertexCount => topology switch
{
InputTopology.Points => 1,
InputTopology.Lines => 2,
InputTopology.LinesAdjacency => 4,
InputTopology.Triangles => 3,
InputTopology.TrianglesAdjacency => 6,
_ => 1,
};
public int InputVertexCountNoAdjacency => topology switch
{
InputTopology.Points => 1,
InputTopology.Lines or
InputTopology.LinesAdjacency => 2,
InputTopology.Triangles or
InputTopology.TrianglesAdjacency => 3,
_ => 1,
};
}
}
}