StencilOpConverter.cs 1.1 KB

123456789101112131415161718192021222324252627
  1. using OpenTK.Graphics.OpenGL;
  2. using System;
  3. namespace Ryujinx.Graphics.OpenGL
  4. {
  5. static class StencilOpConverter
  6. {
  7. public static StencilOp Convert(this GAL.DepthStencil.StencilOp op)
  8. {
  9. switch (op)
  10. {
  11. case GAL.DepthStencil.StencilOp.Keep: return StencilOp.Keep;
  12. case GAL.DepthStencil.StencilOp.Zero: return StencilOp.Zero;
  13. case GAL.DepthStencil.StencilOp.Replace: return StencilOp.Replace;
  14. case GAL.DepthStencil.StencilOp.IncrementAndClamp: return StencilOp.Incr;
  15. case GAL.DepthStencil.StencilOp.DecrementAndClamp: return StencilOp.Decr;
  16. case GAL.DepthStencil.StencilOp.Invert: return StencilOp.Invert;
  17. case GAL.DepthStencil.StencilOp.IncrementAndWrap: return StencilOp.IncrWrap;
  18. case GAL.DepthStencil.StencilOp.DecrementAndWrap: return StencilOp.DecrWrap;
  19. }
  20. return StencilOp.Keep;
  21. throw new ArgumentException($"Invalid stencil operation \"{op}\".");
  22. }
  23. }
  24. }