Adds two new BlendModes.

This commit is contained in:
reaperrr
2015-03-31 20:44:31 +02:00
parent dc3f82f537
commit c0448fce3e
2 changed files with 38 additions and 1 deletions

View File

@@ -34,7 +34,18 @@ namespace OpenRA
public interface IHardwareCursor : IDisposable { }
public enum BlendMode : byte { None, Alpha, Additive, Subtractive, Multiply }
public enum BlendMode : byte
{
None,
Alpha,
Additive,
Subtractive,
Multiply,
SoftAdditive,
Translucency25,
Translucency50,
Translucency75
}
public interface IGraphicsDevice : IDisposable
{

View File

@@ -241,6 +241,32 @@ namespace OpenRA.Renderer.Sdl2
GL.BlendFuncSeparate(BlendingFactorSrc.DstColor, BlendingFactorDest.Zero, BlendingFactorSrc.One, BlendingFactorDest.OneMinusSrcAlpha);
ErrorHandler.CheckGlError();
break;
case BlendMode.SoftAdditive:
GL.Enable(EnableCap.Blend);
ErrorHandler.CheckGlError();
GL.BlendFunc(BlendingFactorSrc.OneMinusDstColor, BlendingFactorDest.One);
break;
case BlendMode.Translucency25:
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;
}
ErrorHandler.CheckGlError();