Improved performance slightly when love.graphics.setColor is used heavily with automatic batching.

--HG--
branch : minor
This commit is contained in:
Alex Szpakowski
2017-01-03 23:49:29 -04:00
parent 8899c03651
commit 551dc423a2
3 changed files with 5 additions and 6 deletions
+1 -3
View File
@@ -1232,9 +1232,7 @@ void Graphics::setColor(Colorf c)
c.b = std::min(std::max(c.b, 0.0f), 1.0f);
c.a = std::min(std::max(c.a, 0.0f), 1.0f);
Colorf nc = c;
gammaCorrectColor(nc);
gl.setConstantColor(nc);
gl.setConstantColor(c);
states.back().color = c;
}
+3 -2
View File
@@ -344,9 +344,10 @@ void OpenGL::prepareDraw()
if (state.constantColor != state.lastConstantColor)
{
const Colorf &c = state.constantColor;
state.lastConstantColor = state.constantColor;
Colorf c = state.constantColor;
gammaCorrectColor(c);
glVertexAttrib4f(ATTRIB_CONSTANTCOLOR, c.r, c.g, c.b, c.a);
state.lastConstantColor = c;
}
}
+1 -1
View File
@@ -236,7 +236,7 @@ public:
/**
* Sets the constant color (vertex attribute). This may be applied
* internally at draw-time.
* internally at draw-time. This gets gamma-corrected internally as well.
**/
void setConstantColor(const Colorf &color);
const Colorf &getConstantColor() const;