diff options
author | gdkchan <gab.dark.100@gmail.com> | 2020-07-15 00:01:10 -0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-07-15 13:01:10 +1000 |
commit | 788ca6a411762035a6a7a88100c4b582b47ee82d (patch) | |
tree | d48bfb91aecaead2906ec2d390357546f8c0611f /Ryujinx.Graphics.OpenGL/EnumConversion.cs | |
parent | 16dafe63166d065f40b57a9b7cf8017a6ba0b1ef (diff) |
Initial transform feedback support (#1370)
* Initial transform feedback support
* Some nits and fixes
* Update ReportCounterType and Write method
* Can't change shader or TFB bindings while TFB is active
* Fix geometry shader input names with new naming
Diffstat (limited to 'Ryujinx.Graphics.OpenGL/EnumConversion.cs')
-rw-r--r-- | Ryujinx.Graphics.OpenGL/EnumConversion.cs | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/Ryujinx.Graphics.OpenGL/EnumConversion.cs b/Ryujinx.Graphics.OpenGL/EnumConversion.cs index a4bd39cc..09860be3 100644 --- a/Ryujinx.Graphics.OpenGL/EnumConversion.cs +++ b/Ryujinx.Graphics.OpenGL/EnumConversion.cs @@ -331,6 +331,31 @@ namespace Ryujinx.Graphics.OpenGL return PrimitiveType.Points; } + public static TransformFeedbackPrimitiveType ConvertToTfType(this PrimitiveTopology topology) + { + switch (topology) + { + case PrimitiveTopology.Points: + return TransformFeedbackPrimitiveType.Points; + case PrimitiveTopology.Lines: + case PrimitiveTopology.LineLoop: + case PrimitiveTopology.LineStrip: + case PrimitiveTopology.LinesAdjacency: + case PrimitiveTopology.LineStripAdjacency: + return TransformFeedbackPrimitiveType.Lines; + case PrimitiveTopology.Triangles: + case PrimitiveTopology.TriangleStrip: + case PrimitiveTopology.TriangleFan: + case PrimitiveTopology.TrianglesAdjacency: + case PrimitiveTopology.TriangleStripAdjacency: + return TransformFeedbackPrimitiveType.Triangles; + } + + Logger.PrintDebug(LogClass.Gpu, $"Invalid {nameof(PrimitiveTopology)} enum value: {topology}."); + + return TransformFeedbackPrimitiveType.Points; + } + public static OpenTK.Graphics.OpenGL.StencilOp Convert(this GAL.StencilOp op) { switch (op) |