BlendFactorConverter.cs 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. using OpenTK.Graphics.OpenGL;
  2. using Ryujinx.Graphics.GAL.Blend;
  3. using System;
  4. namespace Ryujinx.Graphics.OpenGL
  5. {
  6. static class BlendFactorConverter
  7. {
  8. public static All Convert(this BlendFactor factor)
  9. {
  10. switch (factor)
  11. {
  12. case BlendFactor.Zero:
  13. case BlendFactor.ZeroGl:
  14. return All.Zero;
  15. case BlendFactor.One:
  16. case BlendFactor.OneGl:
  17. return All.One;
  18. case BlendFactor.SrcColor:
  19. case BlendFactor.SrcColorGl:
  20. return All.SrcColor;
  21. case BlendFactor.OneMinusSrcColor:
  22. case BlendFactor.OneMinusSrcColorGl:
  23. return All.OneMinusSrcColor;
  24. case BlendFactor.SrcAlpha:
  25. case BlendFactor.SrcAlphaGl:
  26. return All.SrcAlpha;
  27. case BlendFactor.OneMinusSrcAlpha:
  28. case BlendFactor.OneMinusSrcAlphaGl:
  29. return All.OneMinusSrcAlpha;
  30. case BlendFactor.DstAlpha:
  31. case BlendFactor.DstAlphaGl:
  32. return All.DstAlpha;
  33. case BlendFactor.OneMinusDstAlpha:
  34. case BlendFactor.OneMinusDstAlphaGl:
  35. return All.OneMinusDstAlpha;
  36. case BlendFactor.DstColor:
  37. case BlendFactor.DstColorGl:
  38. return All.DstColor;
  39. case BlendFactor.OneMinusDstColor:
  40. case BlendFactor.OneMinusDstColorGl:
  41. return All.OneMinusDstColor;
  42. case BlendFactor.SrcAlphaSaturate:
  43. case BlendFactor.SrcAlphaSaturateGl:
  44. return All.SrcAlphaSaturate;
  45. case BlendFactor.Src1Color:
  46. case BlendFactor.Src1ColorGl:
  47. return All.Src1Color;
  48. case BlendFactor.OneMinusSrc1Color:
  49. case BlendFactor.OneMinusSrc1ColorGl:
  50. return All.OneMinusSrc1Color;
  51. case BlendFactor.Src1Alpha:
  52. case BlendFactor.Src1AlphaGl:
  53. return All.Src1Alpha;
  54. case BlendFactor.OneMinusSrc1Alpha:
  55. case BlendFactor.OneMinusSrc1AlphaGl:
  56. return All.OneMinusSrc1Alpha;
  57. case BlendFactor.ConstantColor:
  58. return All.ConstantColor;
  59. case BlendFactor.OneMinusConstantColor:
  60. return All.OneMinusConstantColor;
  61. case BlendFactor.ConstantAlpha:
  62. return All.ConstantAlpha;
  63. case BlendFactor.OneMinusConstantAlpha:
  64. return All.OneMinusConstantAlpha;
  65. }
  66. return All.Zero;
  67. throw new ArgumentException($"Invalid blend factor \"{factor}\".");
  68. }
  69. }
  70. }