Renamed blend modes "additive", "subtractive", and "multiplicative" to "add", "subtract", and "multiply" (resolves issue #864)

--HG--
branch : minor
This commit is contained in:
Alex Szpakowski
2014-04-01 20:49:24 -03:00
parent 6dc10cfd15
commit b18c35a1f2
5 changed files with 16 additions and 17 deletions
+3 -3
View File
@@ -130,9 +130,9 @@ StringMap<Graphics::AlignMode, Graphics::ALIGN_MAX_ENUM> Graphics::alignModes(Gr
StringMap<Graphics::BlendMode, Graphics::BLEND_MAX_ENUM>::Entry Graphics::blendModeEntries[] = StringMap<Graphics::BlendMode, Graphics::BLEND_MAX_ENUM>::Entry Graphics::blendModeEntries[] =
{ {
{ "alpha", Graphics::BLEND_ALPHA }, { "alpha", Graphics::BLEND_ALPHA },
{ "additive", Graphics::BLEND_ADDITIVE }, { "add", Graphics::BLEND_ADD },
{ "subtractive", Graphics::BLEND_SUBTRACTIVE }, { "subtract", Graphics::BLEND_SUBTRACT },
{ "multiplicative", Graphics::BLEND_MULTIPLICATIVE }, { "multiply", Graphics::BLEND_MULTIPLY },
{ "premultiplied", Graphics::BLEND_PREMULTIPLIED }, { "premultiplied", Graphics::BLEND_PREMULTIPLIED },
{ "screen", Graphics::BLEND_SCREEN }, { "screen", Graphics::BLEND_SCREEN },
{ "replace", Graphics::BLEND_REPLACE }, { "replace", Graphics::BLEND_REPLACE },
+3 -3
View File
@@ -53,9 +53,9 @@ public:
enum BlendMode enum BlendMode
{ {
BLEND_ALPHA = 1, BLEND_ALPHA = 1,
BLEND_ADDITIVE, BLEND_ADD,
BLEND_SUBTRACTIVE, BLEND_SUBTRACT,
BLEND_MULTIPLICATIVE, BLEND_MULTIPLY,
BLEND_PREMULTIPLIED, BLEND_PREMULTIPLIED,
BLEND_SCREEN, BLEND_SCREEN,
BLEND_REPLACE, BLEND_REPLACE,
+6 -6
View File
@@ -639,7 +639,7 @@ void Graphics::setBlendMode(Graphics::BlendMode mode)
state.srcA = GL_ONE; state.srcA = GL_ONE;
state.dstRGB = state.dstA = GL_ONE_MINUS_SRC_ALPHA; state.dstRGB = state.dstA = GL_ONE_MINUS_SRC_ALPHA;
break; break;
case BLEND_MULTIPLICATIVE: case BLEND_MULTIPLY:
state.srcRGB = state.srcA = GL_DST_COLOR; state.srcRGB = state.srcA = GL_DST_COLOR;
state.dstRGB = state.dstA = GL_ZERO; state.dstRGB = state.dstA = GL_ZERO;
break; break;
@@ -647,9 +647,9 @@ void Graphics::setBlendMode(Graphics::BlendMode mode)
state.srcRGB = state.srcA = GL_ONE; state.srcRGB = state.srcA = GL_ONE;
state.dstRGB = state.dstA = GL_ONE_MINUS_SRC_ALPHA; state.dstRGB = state.dstA = GL_ONE_MINUS_SRC_ALPHA;
break; break;
case BLEND_SUBTRACTIVE: case BLEND_SUBTRACT:
state.func = GL_FUNC_REVERSE_SUBTRACT; state.func = GL_FUNC_REVERSE_SUBTRACT;
case BLEND_ADDITIVE: case BLEND_ADD:
state.srcRGB = state.srcA = GL_SRC_ALPHA; state.srcRGB = state.srcA = GL_SRC_ALPHA;
state.dstRGB = state.dstA = GL_ONE; state.dstRGB = state.dstA = GL_ONE;
break; break;
@@ -672,16 +672,16 @@ Graphics::BlendMode Graphics::getBlendMode() const
OpenGL::BlendState state = gl.getBlendState(); OpenGL::BlendState state = gl.getBlendState();
if (state.func == GL_FUNC_REVERSE_SUBTRACT) // && src == GL_SRC_ALPHA && dst == GL_ONE if (state.func == GL_FUNC_REVERSE_SUBTRACT) // && src == GL_SRC_ALPHA && dst == GL_ONE
return BLEND_SUBTRACTIVE; return BLEND_SUBTRACT;
// Everything else has equation == GL_FUNC_ADD. // Everything else has equation == GL_FUNC_ADD.
else if (state.srcRGB == state.srcA && state.dstRGB == state.dstA) else if (state.srcRGB == state.srcA && state.dstRGB == state.dstA)
{ {
if (state.srcRGB == GL_SRC_ALPHA && state.dstRGB == GL_ONE) if (state.srcRGB == GL_SRC_ALPHA && state.dstRGB == GL_ONE)
return BLEND_ADDITIVE; return BLEND_ADD;
else if (state.srcRGB == GL_SRC_ALPHA && state.dstRGB == GL_ONE_MINUS_SRC_ALPHA) else if (state.srcRGB == GL_SRC_ALPHA && state.dstRGB == GL_ONE_MINUS_SRC_ALPHA)
return BLEND_ALPHA; // alpha blend mode fallback for very old OpenGL versions. return BLEND_ALPHA; // alpha blend mode fallback for very old OpenGL versions.
else if (state.srcRGB == GL_DST_COLOR && state.dstRGB == GL_ZERO) else if (state.srcRGB == GL_DST_COLOR && state.dstRGB == GL_ZERO)
return BLEND_MULTIPLICATIVE; return BLEND_MULTIPLY;
else if (state.srcRGB == GL_ONE && state.dstRGB == GL_ONE_MINUS_SRC_ALPHA) else if (state.srcRGB == GL_ONE && state.dstRGB == GL_ONE_MINUS_SRC_ALPHA)
return BLEND_PREMULTIPLIED; return BLEND_PREMULTIPLIED;
else if (state.srcRGB == GL_ONE && state.dstRGB == GL_ONE_MINUS_SRC_COLOR) else if (state.srcRGB == GL_ONE && state.dstRGB == GL_ONE_MINUS_SRC_COLOR)
+2 -2
View File
@@ -1429,7 +1429,7 @@ function love.nogame()
local small_y = -rain.spacing_y + y / 2 local small_y = -rain.spacing_y + y / 2
local big_y = -rain.spacing_y + y local big_y = -rain.spacing_y + y
love.graphics.setBlendMode("subtractive") love.graphics.setBlendMode("subtract")
love.graphics.setColor(255, 255, 255, 128) love.graphics.setColor(255, 255, 255, 128)
love.graphics.draw(rain.batch, -rain.spacing_x, small_y, 0, 0.5, 0.5) love.graphics.draw(rain.batch, -rain.spacing_x, small_y, 0, 0.5, 0.5)
@@ -1458,7 +1458,7 @@ function love.nogame()
love.graphics.draw(background.image, bx, by, 0, 0.7, 0.7, 256, 256) love.graphics.draw(background.image, bx, by, 0, 0.7, 0.7, 256, 256)
love.graphics.setColor(255, 255, 255, 32 + 16*intensity) love.graphics.setColor(255, 255, 255, 32 + 16*intensity)
love.graphics.draw(background.image, bx, by, 0, 0.65, 0.65, 256, 256) love.graphics.draw(background.image, bx, by, 0, 0.65, 0.65, 256, 256)
love.graphics.setBlendMode("additive") love.graphics.setBlendMode("add")
love.graphics.setColor(255, 255, 255, 16 + 16*intensity) love.graphics.setColor(255, 255, 255, 16 + 16*intensity)
love.graphics.draw(background.image, bx, by, 0, 0.6, 0.6, 256, 256) love.graphics.draw(background.image, bx, by, 0, 0.6, 0.6, 256, 256)
end end
+2 -3
View File
@@ -5020,7 +5020,7 @@ const unsigned char boot_lua[] =
0x61, 0x69, 0x6e, 0x2e, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x5f, 0x79, 0x20, 0x2b, 0x20, 0x79, 0x0a, 0x61, 0x69, 0x6e, 0x2e, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x5f, 0x79, 0x20, 0x2b, 0x20, 0x79, 0x0a,
0x09, 0x09, 0x6c, 0x6f, 0x76, 0x65, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x73, 0x2e, 0x73, 0x65, 0x09, 0x09, 0x6c, 0x6f, 0x76, 0x65, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x73, 0x2e, 0x73, 0x65,
0x74, 0x42, 0x6c, 0x65, 0x6e, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x28, 0x22, 0x73, 0x75, 0x62, 0x74, 0x72, 0x61, 0x74, 0x42, 0x6c, 0x65, 0x6e, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x28, 0x22, 0x73, 0x75, 0x62, 0x74, 0x72, 0x61,
0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0x29, 0x0a, 0x63, 0x74, 0x22, 0x29, 0x0a,
0x09, 0x09, 0x6c, 0x6f, 0x76, 0x65, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x73, 0x2e, 0x73, 0x65, 0x09, 0x09, 0x6c, 0x6f, 0x76, 0x65, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x73, 0x2e, 0x73, 0x65,
0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x28, 0x32, 0x35, 0x35, 0x2c, 0x20, 0x32, 0x35, 0x35, 0x2c, 0x20, 0x32, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x28, 0x32, 0x35, 0x35, 0x2c, 0x20, 0x32, 0x35, 0x35, 0x2c, 0x20, 0x32,
0x35, 0x35, 0x2c, 0x20, 0x31, 0x32, 0x38, 0x29, 0x0a, 0x35, 0x35, 0x2c, 0x20, 0x31, 0x32, 0x38, 0x29, 0x0a,
@@ -5083,8 +5083,7 @@ const unsigned char boot_lua[] =
0x65, 0x2c, 0x20, 0x62, 0x78, 0x2c, 0x20, 0x62, 0x79, 0x2c, 0x20, 0x30, 0x2c, 0x20, 0x30, 0x2e, 0x36, 0x35, 0x65, 0x2c, 0x20, 0x62, 0x78, 0x2c, 0x20, 0x62, 0x79, 0x2c, 0x20, 0x30, 0x2c, 0x20, 0x30, 0x2e, 0x36, 0x35,
0x2c, 0x20, 0x30, 0x2e, 0x36, 0x35, 0x2c, 0x20, 0x32, 0x35, 0x36, 0x2c, 0x20, 0x32, 0x35, 0x36, 0x29, 0x0a, 0x2c, 0x20, 0x30, 0x2e, 0x36, 0x35, 0x2c, 0x20, 0x32, 0x35, 0x36, 0x2c, 0x20, 0x32, 0x35, 0x36, 0x29, 0x0a,
0x09, 0x09, 0x6c, 0x6f, 0x76, 0x65, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x73, 0x2e, 0x73, 0x65, 0x09, 0x09, 0x6c, 0x6f, 0x76, 0x65, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x73, 0x2e, 0x73, 0x65,
0x74, 0x42, 0x6c, 0x65, 0x6e, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x28, 0x22, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x74, 0x42, 0x6c, 0x65, 0x6e, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x28, 0x22, 0x61, 0x64, 0x64, 0x22, 0x29, 0x0a,
0x76, 0x65, 0x22, 0x29, 0x0a,
0x09, 0x09, 0x6c, 0x6f, 0x76, 0x65, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x73, 0x2e, 0x73, 0x65, 0x09, 0x09, 0x6c, 0x6f, 0x76, 0x65, 0x2e, 0x67, 0x72, 0x61, 0x70, 0x68, 0x69, 0x63, 0x73, 0x2e, 0x73, 0x65,
0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x28, 0x32, 0x35, 0x35, 0x2c, 0x20, 0x32, 0x35, 0x35, 0x2c, 0x20, 0x32, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x28, 0x32, 0x35, 0x35, 0x2c, 0x20, 0x32, 0x35, 0x35, 0x2c, 0x20, 0x32,
0x35, 0x35, 0x2c, 0x20, 0x31, 0x36, 0x20, 0x2b, 0x20, 0x31, 0x36, 0x2a, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x73, 0x35, 0x35, 0x2c, 0x20, 0x31, 0x36, 0x20, 0x2b, 0x20, 0x31, 0x36, 0x2a, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x73,