aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics.OpenGL/Pipeline.cs
diff options
context:
space:
mode:
authormageven <62494521+mageven@users.noreply.github.com>2020-04-25 18:30:43 +0530
committerGitHub <noreply@github.com>2020-04-25 23:00:43 +1000
commita728610b4016e153fed670eddaa45909ab51f18b (patch)
treee29a3a2e35b64b255fa5829af30437a9e15bc16d /Ryujinx.Graphics.OpenGL/Pipeline.cs
parent75ec30c962bcfa4251f29a29c659b959170018ce (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.cs18
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);
}