Added love.graphics.setColorMask(r, g, b, a) and love.graphics.getColorMask()

setColorMask enables or disables specific color components when rendering and clearing the screen.
For example, setColorMask(true, false, true, true) will prevent the green component of the color of all rendered objects from being written to the current frame buffer.
setColorMask is a wrapper for http://www.opengl.org/sdk/docs/man2/xhtml/glColorMask.xml

--HG--
branch : love.graphics.setColorMask
This commit is contained in:
Alex Szpakowski
2013-02-26 11:24:30 -04:00
parent 0be26b7678
commit e5670e69b3
4 changed files with 66 additions and 2 deletions
@@ -589,6 +589,28 @@ int w_getFont(lua_State *L)
return 1;
}
int w_setColorMask(lua_State *L)
{
bool mask[4];
for (int i = 0; i < 4; i++)
mask[i] = luax_toboolean(L, i + 1);
// r, g, b, a
instance->setColorMask(mask[0], mask[1], mask[2], mask[3]);
return 0;
}
int w_getColorMask(lua_State *L)
{
const bool *mask = instance->getColorMask();
for (int i = 0; i < 4; i++)
luax_pushboolean(L, mask[i]);
return 4;
}
int w_setBlendMode(lua_State *L)
{
Graphics::BlendMode mode;
@@ -1285,6 +1307,8 @@ static const luaL_Reg functions[] =
{ "setFont", w_setFont },
{ "getFont", w_getFont },
{ "setColorMask", w_setColorMask },
{ "getColorMask", w_getColorMask },
{ "setBlendMode", w_setBlendMode },
{ "setColorMode", w_setColorMode },
{ "setDefaultImageFilter", w_setDefaultImageFilter },