diff options
| author | gdk <gab.dark.100@gmail.com> | 2019-10-13 03:02:07 -0300 |
|---|---|---|
| committer | Thog <thog@protonmail.com> | 2020-01-09 02:13:00 +0100 |
| commit | 1876b346fea647e8284a66bb6d62c38801035cff (patch) | |
| tree | 6eeff094298cda84d1613dc5ec0691e51d7b35f1 /Ryujinx.Graphics.OpenGL/Converters/StencilOpConverter.cs | |
| parent | f617fb542a0e3d36012d77a4b5acbde7b08902f2 (diff) | |
Initial work
Diffstat (limited to 'Ryujinx.Graphics.OpenGL/Converters/StencilOpConverter.cs')
| -rw-r--r-- | Ryujinx.Graphics.OpenGL/Converters/StencilOpConverter.cs | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/Ryujinx.Graphics.OpenGL/Converters/StencilOpConverter.cs b/Ryujinx.Graphics.OpenGL/Converters/StencilOpConverter.cs new file mode 100644 index 00000000..44fbe0a5 --- /dev/null +++ b/Ryujinx.Graphics.OpenGL/Converters/StencilOpConverter.cs @@ -0,0 +1,27 @@ +using OpenTK.Graphics.OpenGL; +using System; + +namespace Ryujinx.Graphics.OpenGL +{ + static class StencilOpConverter + { + public static StencilOp Convert(this GAL.DepthStencil.StencilOp op) + { + switch (op) + { + case GAL.DepthStencil.StencilOp.Keep: return StencilOp.Keep; + case GAL.DepthStencil.StencilOp.Zero: return StencilOp.Zero; + case GAL.DepthStencil.StencilOp.Replace: return StencilOp.Replace; + case GAL.DepthStencil.StencilOp.IncrementAndClamp: return StencilOp.Incr; + case GAL.DepthStencil.StencilOp.DecrementAndClamp: return StencilOp.Decr; + case GAL.DepthStencil.StencilOp.Invert: return StencilOp.Invert; + case GAL.DepthStencil.StencilOp.IncrementAndWrap: return StencilOp.IncrWrap; + case GAL.DepthStencil.StencilOp.DecrementAndWrap: return StencilOp.DecrWrap; + } + + return StencilOp.Keep; + + throw new ArgumentException($"Invalid stencil operation \"{op}\"."); + } + } +} |
