Correctly fix BlendMode.Subtractive alpha handling.
This commit is contained in:
@@ -275,6 +275,9 @@ namespace OpenRA.Platforms.Default
|
|||||||
public delegate void BlendEquation(int mode);
|
public delegate void BlendEquation(int mode);
|
||||||
public static BlendEquation glBlendEquation { get; private set; }
|
public static BlendEquation glBlendEquation { get; private set; }
|
||||||
|
|
||||||
|
public delegate void BlendEquationSeparate(int modeRGB, int modeAlpha);
|
||||||
|
public static BlendEquationSeparate glBlendEquationSeparate { get; private set; }
|
||||||
|
|
||||||
public delegate void BlendFunc(int sfactor, int dfactor);
|
public delegate void BlendFunc(int sfactor, int dfactor);
|
||||||
public static BlendFunc glBlendFunc { get; private set; }
|
public static BlendFunc glBlendFunc { get; private set; }
|
||||||
|
|
||||||
@@ -422,6 +425,7 @@ namespace OpenRA.Platforms.Default
|
|||||||
glEnable = Bind<Enable>("glEnable");
|
glEnable = Bind<Enable>("glEnable");
|
||||||
glDisable = Bind<Disable>("glDisable");
|
glDisable = Bind<Disable>("glDisable");
|
||||||
glBlendEquation = Bind<BlendEquation>("glBlendEquation");
|
glBlendEquation = Bind<BlendEquation>("glBlendEquation");
|
||||||
|
glBlendEquationSeparate = Bind<BlendEquationSeparate>("glBlendEquationSeparate");
|
||||||
glBlendFunc = Bind<BlendFunc>("glBlendFunc");
|
glBlendFunc = Bind<BlendFunc>("glBlendFunc");
|
||||||
glDepthFunc = Bind<DepthFunc>("glDepthFunc");
|
glDepthFunc = Bind<DepthFunc>("glDepthFunc");
|
||||||
glScissor = Bind<Scissor>("glScissor");
|
glScissor = Bind<Scissor>("glScissor");
|
||||||
|
|||||||
@@ -241,7 +241,7 @@ namespace OpenRA.Platforms.Default
|
|||||||
if (mode == BlendMode.Subtractive)
|
if (mode == BlendMode.Subtractive)
|
||||||
{
|
{
|
||||||
OpenGL.CheckGLError();
|
OpenGL.CheckGLError();
|
||||||
OpenGL.glBlendEquation(OpenGL.GL_FUNC_REVERSE_SUBTRACT);
|
OpenGL.glBlendEquationSeparate(OpenGL.GL_FUNC_REVERSE_SUBTRACT, OpenGL.GL_FUNC_ADD);
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|||||||
Reference in New Issue
Block a user