From 1876b346fea647e8284a66bb6d62c38801035cff Mon Sep 17 00:00:00 2001 From: gdk Date: Sun, 13 Oct 2019 03:02:07 -0300 Subject: Initial work --- .../Converters/StencilOpConverter.cs | 27 ++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 Ryujinx.Graphics.OpenGL/Converters/StencilOpConverter.cs (limited to 'Ryujinx.Graphics.OpenGL/Converters/StencilOpConverter.cs') 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}\"."); + } + } +} -- cgit v1.2.3