Browse Source

Added “none” blend mode. This is equivalent to setBlendMode(“replace”, “premultiplied”) (which also effectively disables blending) but doesn’t require explicitly setting the alpha multiplication mode.

--HG--
branch : minor
Alex Szpakowski 8 years ago
parent
commit
a78fa39113

+ 2 - 2
platform/xcode/macosx/love-macosx.plist

@@ -69,12 +69,12 @@
 	<string>public.app-category.games</string>
 	<key>NSHighResolutionCapable</key>
 	<true/>
-	<key>NSSupportsAutomaticGraphicsSwitching</key>
-	<false/>
 	<key>NSHumanReadableCopyright</key>
 	<string>© 2006-2016 LÖVE Development Team</string>
 	<key>NSPrincipalClass</key>
 	<string>NSApplication</string>
+	<key>NSSupportsAutomaticGraphicsSwitching</key>
+	<false/>
 	<key>UTExportedTypeDeclarations</key>
 	<array>
 		<dict>

+ 1 - 0
src/modules/graphics/Graphics.cpp

@@ -610,6 +610,7 @@ StringMap<Graphics::BlendMode, Graphics::BLEND_MAX_ENUM>::Entry Graphics::blendM
 	{ "darken",   BLEND_DARKEN   },
 	{ "screen",   BLEND_SCREEN   },
 	{ "replace",  BLEND_REPLACE  },
+	{ "none",     BLEND_NONE     },
 };
 
 StringMap<Graphics::BlendMode, Graphics::BLEND_MAX_ENUM> Graphics::blendModes(Graphics::blendModeEntries, sizeof(Graphics::blendModeEntries));

+ 1 - 0
src/modules/graphics/Graphics.h

@@ -97,6 +97,7 @@ public:
 		BLEND_DARKEN,
 		BLEND_SCREEN,
 		BLEND_REPLACE,
+		BLEND_NONE,
 		BLEND_MAX_ENUM
 	};
 

+ 2 - 1
src/modules/graphics/opengl/Graphics.cpp

@@ -1602,6 +1602,7 @@ void Graphics::setBlendMode(BlendMode mode, BlendAlpha alphamode)
 		dstRGB = dstA = GL_ONE_MINUS_SRC_COLOR;
 		break;
 	case BLEND_REPLACE:
+	case BLEND_NONE:
 	default:
 		srcRGB = srcA = GL_ONE;
 		dstRGB = dstA = GL_ZERO;
@@ -1609,7 +1610,7 @@ void Graphics::setBlendMode(BlendMode mode, BlendAlpha alphamode)
 	}
 
 	// We can only do alpha-multiplication when srcRGB would have been unmodified.
-	if (srcRGB == GL_ONE && alphamode == BLENDALPHA_MULTIPLY)
+	if (srcRGB == GL_ONE && alphamode == BLENDALPHA_MULTIPLY && mode != BLEND_NONE)
 		srcRGB = GL_SRC_ALPHA;
 
 	glBlendEquation(func);