aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics.Gpu/State/PrimitiveType.cs
diff options
context:
space:
mode:
authorgdkchan <gab.dark.100@gmail.com>2021-07-11 17:20:40 -0300
committerGitHub <noreply@github.com>2021-07-11 17:20:40 -0300
commit40b21cc3c4d2622bbd4f88d43073341854d9a671 (patch)
tree6e9dc6a42e7c0bae5b03db468481771d5a6937ef /Ryujinx.Graphics.Gpu/State/PrimitiveType.cs
parentb5190f16810eb77388c861d1d1773e19644808db (diff)
Separate GPU engines (part 2/2) (#2440)
* 3D engine now uses DeviceState too, plus new state modification tracking * Remove old methods code * Remove GpuState and friends * Optimize DeviceState, force inline some functions * This change was not supposed to go in * Proper channel initialization * Optimize state read/write methods even more * Fix debug build * Do not dirty state if the write is redundant * The YControl register should dirty either the viewport or front face state too, to update the host origin * Avoid redundant vertex buffer updates * Move state and get rid of the Ryujinx.Graphics.Gpu.State namespace * Comments and nits * Fix rebase * PR feedback * Move changed = false to improve codegen * PR feedback * Carry RyuJIT a bit more
Diffstat (limited to 'Ryujinx.Graphics.Gpu/State/PrimitiveType.cs')
-rw-r--r--Ryujinx.Graphics.Gpu/State/PrimitiveType.cs100
1 files changed, 0 insertions, 100 deletions
diff --git a/Ryujinx.Graphics.Gpu/State/PrimitiveType.cs b/Ryujinx.Graphics.Gpu/State/PrimitiveType.cs
deleted file mode 100644
index b49088aa..00000000
--- a/Ryujinx.Graphics.Gpu/State/PrimitiveType.cs
+++ /dev/null
@@ -1,100 +0,0 @@
-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
- }
-
- /// <summary>
- /// Alternative primitive type that might override <see cref="PrimitiveType"/>.
- /// </summary>
- enum PrimitiveTypeOverride
- {
- Invalid = 0,
- Points = 1,
- Lines = 2,
- LineStrip = 3,
- Triangles = 4,
- TriangleStrip = 5,
- TriangleFan = 0x1015,
- LinesAdjacency = 10,
- LineStripAdjacency = 11,
- TrianglesAdjacency = 12,
- TriangleStripAdjacency = 13,
- Patches = 14
- }
-
- 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
- };
- }
-
- /// <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 PrimitiveTypeOverride type)
- {
- return type switch
- {
- PrimitiveTypeOverride.Points => PrimitiveTopology.Points,
- PrimitiveTypeOverride.Lines => PrimitiveTopology.Lines,
- PrimitiveTypeOverride.LineStrip => PrimitiveTopology.LineStrip,
- PrimitiveTypeOverride.Triangles => PrimitiveTopology.Triangles,
- PrimitiveTypeOverride.TriangleStrip => PrimitiveTopology.TriangleStrip,
- PrimitiveTypeOverride.TriangleFan => PrimitiveTopology.TriangleFan,
- PrimitiveTypeOverride.LinesAdjacency => PrimitiveTopology.LinesAdjacency,
- PrimitiveTypeOverride.LineStripAdjacency => PrimitiveTopology.LineStripAdjacency,
- PrimitiveTypeOverride.TrianglesAdjacency => PrimitiveTopology.TrianglesAdjacency,
- PrimitiveTypeOverride.TriangleStripAdjacency => PrimitiveTopology.TriangleStripAdjacency,
- PrimitiveTypeOverride.Patches => PrimitiveTopology.Patches,
- _ => PrimitiveTopology.Triangles
- };
- }
- }
-} \ No newline at end of file