mirror of
https://github.com/love2d/love.git
synced 2026-08-19 20:19:42 +02:00
Improved performance slightly when love.graphics.setColor is used heavily with automatic batching.
--HG-- branch : minor
This commit is contained in:
@@ -1232,9 +1232,7 @@ void Graphics::setColor(Colorf c)
|
|||||||
c.b = std::min(std::max(c.b, 0.0f), 1.0f);
|
c.b = std::min(std::max(c.b, 0.0f), 1.0f);
|
||||||
c.a = std::min(std::max(c.a, 0.0f), 1.0f);
|
c.a = std::min(std::max(c.a, 0.0f), 1.0f);
|
||||||
|
|
||||||
Colorf nc = c;
|
gl.setConstantColor(c);
|
||||||
gammaCorrectColor(nc);
|
|
||||||
gl.setConstantColor(nc);
|
|
||||||
|
|
||||||
states.back().color = c;
|
states.back().color = c;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -344,9 +344,10 @@ void OpenGL::prepareDraw()
|
|||||||
|
|
||||||
if (state.constantColor != state.lastConstantColor)
|
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);
|
glVertexAttrib4f(ATTRIB_CONSTANTCOLOR, c.r, c.g, c.b, c.a);
|
||||||
state.lastConstantColor = c;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -236,7 +236,7 @@ public:
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the constant color (vertex attribute). This may be applied
|
* 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);
|
void setConstantColor(const Colorf &color);
|
||||||
const Colorf &getConstantColor() const;
|
const Colorf &getConstantColor() const;
|
||||||
|
|||||||
Reference in New Issue
Block a user