mirror of https://github.com/bjornbytes/lovr.git
s/setColorMask/setColorWrite; Pass:setColor;
This commit is contained in:
parent
070e4f304d
commit
4f568ed84d
|
@ -77,13 +77,26 @@ static int l_lovrPassSetBlendMode(lua_State* L) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int l_lovrPassSetColorMask(lua_State* L) {
|
||||
static int l_lovrPassSetColor(lua_State* L) {
|
||||
Pass* pass = luax_checktype(L, 1, Pass);
|
||||
bool r = lua_toboolean(L, 2);
|
||||
bool g = lua_toboolean(L, 3);
|
||||
bool b = lua_toboolean(L, 4);
|
||||
bool a = lua_toboolean(L, 5);
|
||||
lovrPassSetColorMask(pass, r, g, b, a);
|
||||
float color[4];
|
||||
luax_readcolor(L, 2, color);
|
||||
lovrPassSetColor(pass, color);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int l_lovrPassSetColorWrite(lua_State* L) {
|
||||
Pass* pass = luax_checktype(L, 1, Pass);
|
||||
bool r, g, b, a;
|
||||
if (lua_gettop(L) <= 1) {
|
||||
r = g = b = a = lua_toboolean(L, 2);
|
||||
} else {
|
||||
r = lua_toboolean(L, 2);
|
||||
g = lua_toboolean(L, 3);
|
||||
b = lua_toboolean(L, 4);
|
||||
a = lua_toboolean(L, 5);
|
||||
}
|
||||
lovrPassSetColorWrite(pass, r, g, b, a);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -194,7 +207,8 @@ const luaL_Reg lovrPass[] = {
|
|||
{ "transform", l_lovrPassTransform },
|
||||
{ "setAlphaToCoverage", l_lovrPassSetAlphaToCoverage },
|
||||
{ "setBlendMode", l_lovrPassSetBlendMode },
|
||||
{ "setColorMask", l_lovrPassSetColorMask },
|
||||
{ "setColor", l_lovrPassSetColor },
|
||||
{ "setColorWrite", l_lovrPassSetColorWrite },
|
||||
{ "setCullMode", l_lovrPassSetCullMode },
|
||||
{ "setDepthTest", l_lovrPassSetDepthTest },
|
||||
{ "setDepthWrite", l_lovrPassSetDepthWrite },
|
||||
|
|
|
@ -913,7 +913,14 @@ void lovrPassSetBlendMode(Pass* pass, BlendMode mode, BlendAlphaMode alphaMode)
|
|||
pass->pipeline->dirty = true;
|
||||
}
|
||||
|
||||
void lovrPassSetColorMask(Pass* pass, bool r, bool g, bool b, bool a) {
|
||||
void lovrPassSetColor(Pass* pass, float color[4]) {
|
||||
pass->pipeline->color[0] = lovrMathGammaToLinear(color[0]);
|
||||
pass->pipeline->color[1] = lovrMathGammaToLinear(color[1]);
|
||||
pass->pipeline->color[2] = lovrMathGammaToLinear(color[2]);
|
||||
pass->pipeline->color[3] = color[3];
|
||||
}
|
||||
|
||||
void lovrPassSetColorWrite(Pass* pass, bool r, bool g, bool b, bool a) {
|
||||
uint8_t mask = (r << 0) | (g << 1) | (b << 2) | (a << 3);
|
||||
pass->pipeline->dirty |= pass->pipeline->info.color[0].mask != mask;
|
||||
pass->pipeline->info.color[0].mask = mask;
|
||||
|
|
|
@ -358,7 +358,8 @@ void lovrPassScale(Pass* pass, float* scale);
|
|||
void lovrPassTransform(Pass* pass, float* transform);
|
||||
void lovrPassSetAlphaToCoverage(Pass* pass, bool enabled);
|
||||
void lovrPassSetBlendMode(Pass* pass, BlendMode mode, BlendAlphaMode alphaMode);
|
||||
void lovrPassSetColorMask(Pass* pass, bool r, bool g, bool b, bool a);
|
||||
void lovrPassSetColor(Pass* pass, float color[4]);
|
||||
void lovrPassSetColorWrite(Pass* pass, bool r, bool g, bool b, bool a);
|
||||
void lovrPassSetCullMode(Pass* pass, CullMode mode);
|
||||
void lovrPassSetDepthTest(Pass* pass, CompareMode test);
|
||||
void lovrPassSetDepthWrite(Pass* pass, bool write);
|
||||
|
|
Loading…
Reference in New Issue