BlendOpConverter.cs 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. using OpenTK.Graphics.OpenGL;
  2. using Ryujinx.Graphics.GAL.Blend;
  3. using System;
  4. namespace Ryujinx.Graphics.OpenGL
  5. {
  6. static class BlendOpConverter
  7. {
  8. public static BlendEquationMode Convert(this BlendOp op)
  9. {
  10. switch (op)
  11. {
  12. case BlendOp.Add:
  13. case BlendOp.AddGl:
  14. return BlendEquationMode.FuncAdd;
  15. case BlendOp.Subtract:
  16. case BlendOp.SubtractGl:
  17. return BlendEquationMode.FuncSubtract;
  18. case BlendOp.ReverseSubtract:
  19. case BlendOp.ReverseSubtractGl:
  20. return BlendEquationMode.FuncReverseSubtract;
  21. case BlendOp.Minimum:
  22. case BlendOp.MinimumGl:
  23. return BlendEquationMode.Min;
  24. case BlendOp.Maximum:
  25. case BlendOp.MaximumGl:
  26. return BlendEquationMode.Max;
  27. }
  28. return BlendEquationMode.FuncAdd;
  29. throw new ArgumentException($"Invalid blend operation \"{op}\".");
  30. }
  31. }
  32. }