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 );
|
IGraphicsDevice Create( Size size, WindowMode windowMode );
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum BlendMode { None, Alpha, Additive }
|
public enum BlendMode { None, Alpha, Additive, Subtractive }
|
||||||
|
|
||||||
public interface IGraphicsDevice
|
public interface IGraphicsDevice
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -154,6 +154,9 @@ namespace OpenRA.Renderer.SdlCommon
|
|||||||
|
|
||||||
public void SetBlendMode(BlendMode mode)
|
public void SetBlendMode(BlendMode mode)
|
||||||
{
|
{
|
||||||
|
Gl.glBlendEquation(Gl.GL_FUNC_ADD);
|
||||||
|
ErrorHandler.CheckGlError();
|
||||||
|
|
||||||
switch (mode)
|
switch (mode)
|
||||||
{
|
{
|
||||||
case BlendMode.None:
|
case BlendMode.None:
|
||||||
@@ -169,6 +172,13 @@ namespace OpenRA.Renderer.SdlCommon
|
|||||||
ErrorHandler.CheckGlError();
|
ErrorHandler.CheckGlError();
|
||||||
Gl.glBlendFunc(Gl.GL_ONE, Gl.GL_ONE);
|
Gl.glBlendFunc(Gl.GL_ONE, Gl.GL_ONE);
|
||||||
break;
|
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();
|
ErrorHandler.CheckGlError();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user