From d654fb7dd6f73bc34acf3df750435bc09a69496f Mon Sep 17 00:00:00 2001
From: Jonas Kulla <Nyocurio@gmail.com>
Date: Tue, 12 Aug 2014 21:28:18 +0200
Subject: [PATCH] Add internal 'KeepDestAlpha' BlendType (for use in WindowVX)

---
 src/etc.h       | 2 ++
 src/glstate.cpp | 6 ++++++
 2 files changed, 8 insertions(+)

diff --git a/src/etc.h b/src/etc.h
index 202dd9d..3e17acf 100644
--- a/src/etc.h
+++ b/src/etc.h
@@ -31,6 +31,8 @@ struct SDL_Color;
 
 enum BlendType
 {
+	BlendKeepDestAlpha = -1,
+
 	BlendNormal = 0,
 	BlendAddition = 1,
 	BlendSubstraction = 2
diff --git a/src/glstate.cpp b/src/glstate.cpp
index 613b55e..8c3a2a4 100644
--- a/src/glstate.cpp
+++ b/src/glstate.cpp
@@ -64,6 +64,12 @@ void GLBlendMode::apply(const BlendType &value)
 {
 	switch (value)
 	{
+	case BlendKeepDestAlpha :
+		gl.BlendEquation(GL_FUNC_ADD);
+		gl.BlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA,
+		                     GL_ZERO,      GL_ONE);
+		break;
+
 	case BlendNormal :
 		gl.BlendEquation(GL_FUNC_ADD);
 		gl.BlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA,