BlendFactor.cs 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. namespace Ryujinx.Graphics.GAL
  2. {
  3. public enum BlendFactor
  4. {
  5. Zero = 1,
  6. One,
  7. SrcColor,
  8. OneMinusSrcColor,
  9. SrcAlpha,
  10. OneMinusSrcAlpha,
  11. DstAlpha,
  12. OneMinusDstAlpha,
  13. DstColor,
  14. OneMinusDstColor,
  15. SrcAlphaSaturate,
  16. Src1Color = 0x10,
  17. OneMinusSrc1Color,
  18. Src1Alpha,
  19. OneMinusSrc1Alpha,
  20. ConstantColor = 0xc001,
  21. OneMinusConstantColor,
  22. ConstantAlpha,
  23. OneMinusConstantAlpha,
  24. ZeroGl = 0x4000,
  25. OneGl = 0x4001,
  26. SrcColorGl = 0x4300,
  27. OneMinusSrcColorGl = 0x4301,
  28. SrcAlphaGl = 0x4302,
  29. OneMinusSrcAlphaGl = 0x4303,
  30. DstAlphaGl = 0x4304,
  31. OneMinusDstAlphaGl = 0x4305,
  32. DstColorGl = 0x4306,
  33. OneMinusDstColorGl = 0x4307,
  34. SrcAlphaSaturateGl = 0x4308,
  35. Src1ColorGl = 0xc900,
  36. OneMinusSrc1ColorGl = 0xc901,
  37. Src1AlphaGl = 0xc902,
  38. OneMinusSrc1AlphaGl = 0xc903
  39. }
  40. public static class BlendFactorExtensions
  41. {
  42. public static bool IsDualSource(this BlendFactor factor)
  43. {
  44. switch (factor)
  45. {
  46. case BlendFactor.Src1Color:
  47. case BlendFactor.Src1ColorGl:
  48. case BlendFactor.Src1Alpha:
  49. case BlendFactor.Src1AlphaGl:
  50. case BlendFactor.OneMinusSrc1Color:
  51. case BlendFactor.OneMinusSrc1ColorGl:
  52. case BlendFactor.OneMinusSrc1Alpha:
  53. case BlendFactor.OneMinusSrc1AlphaGl:
  54. return true;
  55. }
  56. return false;
  57. }
  58. }
  59. }