Add Subtractive blend mode for d2k move-flash.
This commit is contained in:
@@ -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
|
||||
{
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user