diff options
author | mageven <62494521+mageven@users.noreply.github.com> | 2020-04-25 18:30:43 +0530 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-25 23:00:43 +1000 |
commit | a728610b4016e153fed670eddaa45909ab51f18b (patch) | |
tree | e29a3a2e35b64b255fa5829af30437a9e15bc16d /Ryujinx.Graphics.OpenGL/Pipeline.cs | |
parent | 75ec30c962bcfa4251f29a29c659b959170018ce (diff) |
Implement Constant Color blends (#1119)
* Implement Constant Color blends and init blend states
* Address gdkchan's comments
Also adds Set methods to GpuState
* Fix descriptions of QueryModified
Diffstat (limited to 'Ryujinx.Graphics.OpenGL/Pipeline.cs')
-rw-r--r-- | Ryujinx.Graphics.OpenGL/Pipeline.cs | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/Ryujinx.Graphics.OpenGL/Pipeline.cs b/Ryujinx.Graphics.OpenGL/Pipeline.cs index e32b5b85..eec2b643 100644 --- a/Ryujinx.Graphics.OpenGL/Pipeline.cs +++ b/Ryujinx.Graphics.OpenGL/Pipeline.cs @@ -35,6 +35,8 @@ namespace Ryujinx.Graphics.OpenGL private bool _scissor0Enable = false; + ColorF _blendConstant = new ColorF(0, 0, 0, 0); + internal Pipeline() { _rasterizerDiscard = false; @@ -478,11 +480,6 @@ namespace Ryujinx.Graphics.OpenGL } } - public void SetBlendColor(ColorF color) - { - GL.BlendColor(color.Red, color.Green, color.Blue, color.Alpha); - } - public void SetBlendState(int index, BlendDescriptor blend) { if (!blend.Enable) @@ -504,6 +501,17 @@ namespace Ryujinx.Graphics.OpenGL (BlendingFactorSrc)blend.AlphaSrcFactor.Convert(), (BlendingFactorDest)blend.AlphaDstFactor.Convert()); + if (_blendConstant != blend.BlendConstant) + { + _blendConstant = blend.BlendConstant; + + GL.BlendColor( + blend.BlendConstant.Red, + blend.BlendConstant.Green, + blend.BlendConstant.Blue, + blend.BlendConstant.Alpha); + } + GL.Enable(IndexedEnableCap.Blend, index); } |