OGLBlend.cs 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. using OpenTK.Graphics.OpenGL;
  2. namespace Ryujinx.Graphics.Gal.OpenGL
  3. {
  4. public class OGLBlend : IGalBlend
  5. {
  6. public void Enable()
  7. {
  8. GL.Enable(EnableCap.Blend);
  9. }
  10. public void Disable()
  11. {
  12. GL.Disable(EnableCap.Blend);
  13. }
  14. public void Set(
  15. GalBlendEquation Equation,
  16. GalBlendFactor FuncSrc,
  17. GalBlendFactor FuncDst)
  18. {
  19. GL.BlendEquation(
  20. OGLEnumConverter.GetBlendEquation(Equation));
  21. GL.BlendFunc(
  22. OGLEnumConverter.GetBlendFactor(FuncSrc),
  23. OGLEnumConverter.GetBlendFactor(FuncDst));
  24. }
  25. public void SetSeparate(
  26. GalBlendEquation EquationRgb,
  27. GalBlendEquation EquationAlpha,
  28. GalBlendFactor FuncSrcRgb,
  29. GalBlendFactor FuncDstRgb,
  30. GalBlendFactor FuncSrcAlpha,
  31. GalBlendFactor FuncDstAlpha)
  32. {
  33. GL.BlendEquationSeparate(
  34. OGLEnumConverter.GetBlendEquation(EquationRgb),
  35. OGLEnumConverter.GetBlendEquation(EquationAlpha));
  36. GL.BlendFuncSeparate(
  37. (BlendingFactorSrc)OGLEnumConverter.GetBlendFactor(FuncSrcRgb),
  38. (BlendingFactorDest)OGLEnumConverter.GetBlendFactor(FuncDstRgb),
  39. (BlendingFactorSrc)OGLEnumConverter.GetBlendFactor(FuncSrcAlpha),
  40. (BlendingFactorDest)OGLEnumConverter.GetBlendFactor(FuncDstAlpha));
  41. }
  42. }
  43. }