add alpha channel to every possible blend mode
This commit is contained in:
@@ -208,7 +208,7 @@ namespace OpenRA.Renderer.Sdl2
|
||||
ErrorHandler.CheckGlError();
|
||||
}
|
||||
|
||||
public void SetBlendMode(BlendMode mode)
|
||||
public void SetBlendMode(BlendMode mode, float alpha = 1f)
|
||||
{
|
||||
GL.BlendEquation(BlendEquationMode.FuncAdd);
|
||||
ErrorHandler.CheckGlError();
|
||||
@@ -246,26 +246,11 @@ namespace OpenRA.Renderer.Sdl2
|
||||
ErrorHandler.CheckGlError();
|
||||
GL.BlendFunc(BlendingFactorSrc.OneMinusDstColor, BlendingFactorDest.One);
|
||||
break;
|
||||
case BlendMode.Translucency25:
|
||||
case BlendMode.Translucency:
|
||||
GL.Enable(EnableCap.Blend);
|
||||
ErrorHandler.CheckGlError();
|
||||
GL.BlendFunc(BlendingFactorSrc.OneMinusConstantAlpha, BlendingFactorDest.One);
|
||||
ErrorHandler.CheckGlError();
|
||||
GL.BlendColor(1f, 1f, 1f, 0.25f);
|
||||
break;
|
||||
case BlendMode.Translucency50:
|
||||
GL.Enable(EnableCap.Blend);
|
||||
ErrorHandler.CheckGlError();
|
||||
GL.BlendFunc(BlendingFactorSrc.OneMinusConstantAlpha, BlendingFactorDest.One);
|
||||
ErrorHandler.CheckGlError();
|
||||
GL.BlendColor(1f, 1f, 1f, 0.5f);
|
||||
break;
|
||||
case BlendMode.Translucency75:
|
||||
GL.Enable(EnableCap.Blend);
|
||||
ErrorHandler.CheckGlError();
|
||||
GL.BlendFunc(BlendingFactorSrc.OneMinusConstantAlpha, BlendingFactorDest.One);
|
||||
ErrorHandler.CheckGlError();
|
||||
GL.BlendColor(1f, 1f, 1f, 0.75f);
|
||||
break;
|
||||
case BlendMode.Multiplicative:
|
||||
GL.Enable(EnableCap.Blend);
|
||||
@@ -279,6 +264,9 @@ namespace OpenRA.Renderer.Sdl2
|
||||
break;
|
||||
}
|
||||
|
||||
if (alpha != 1f)
|
||||
GL.BlendColor(1f, 1f, 1f, alpha);
|
||||
|
||||
ErrorHandler.CheckGlError();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user