Add Subtractive blend mode for d2k move-flash.

This commit is contained in:
Paul Chote
2013-10-26 17:39:44 +13:00
parent 5cd29f999d
commit 84ffb0de05
2 changed files with 11 additions and 1 deletions

View File

@@ -32,7 +32,7 @@ namespace OpenRA.FileFormats.Graphics
IGraphicsDevice Create( Size size, WindowMode windowMode );
}
public enum BlendMode { None, Alpha, Additive }
public enum BlendMode { None, Alpha, Additive, Subtractive }
public interface IGraphicsDevice
{

View File

@@ -154,6 +154,9 @@ namespace OpenRA.Renderer.SdlCommon
public void SetBlendMode(BlendMode mode)
{
Gl.glBlendEquation(Gl.GL_FUNC_ADD);
ErrorHandler.CheckGlError();
switch (mode)
{
case BlendMode.None:
@@ -169,6 +172,13 @@ namespace OpenRA.Renderer.SdlCommon
ErrorHandler.CheckGlError();
Gl.glBlendFunc(Gl.GL_ONE, Gl.GL_ONE);
break;
case BlendMode.Subtractive:
Gl.glEnable(Gl.GL_BLEND);
ErrorHandler.CheckGlError();
Gl.glBlendFunc(Gl.GL_ONE, Gl.GL_ONE);
ErrorHandler.CheckGlError();
Gl.glBlendEquation(Gl.GL_FUNC_REVERSE_SUBTRACT);
break;
}
ErrorHandler.CheckGlError();
}