mirror of
https://github.com/love2d/love.git
synced 2026-08-16 00:02:12 +02:00
Only update the shader point size in OpenGL ES 2 when it's been modified, rather than before every draw.
This commit is contained in:
@@ -75,6 +75,7 @@ Shader::Shader(const ShaderSource &source)
|
||||
, builtinAttributes()
|
||||
, lastCanvas((Canvas *) -1)
|
||||
, lastViewport()
|
||||
, lastPointSize(0.0f)
|
||||
{
|
||||
if (source.vertex.empty() && source.pixel.empty())
|
||||
throw love::Exception("Cannot create shader: no source code!");
|
||||
@@ -216,6 +217,8 @@ bool Shader::loadVolatile()
|
||||
lastCanvas = (Canvas *) -1;
|
||||
lastViewport = OpenGL::Viewport();
|
||||
|
||||
lastPointSize = 0.0f;
|
||||
|
||||
// zero out active texture list
|
||||
activeTexUnits.clear();
|
||||
activeTexUnits.insert(activeTexUnits.begin(), gl.getMaxTextureUnits() - 1, 0);
|
||||
@@ -709,6 +712,16 @@ void Shader::checkSetScreenParams()
|
||||
lastViewport = view;
|
||||
}
|
||||
|
||||
void Shader::checkSetPointSize(float size)
|
||||
{
|
||||
if (size == lastPointSize)
|
||||
return;
|
||||
|
||||
sendBuiltinFloat(BUILTIN_POINT_SIZE, 1, &size, 1);
|
||||
|
||||
lastPointSize = size;
|
||||
}
|
||||
|
||||
const std::map<std::string, Object *> &Shader::getBoundRetainables() const
|
||||
{
|
||||
return boundRetainables;
|
||||
|
||||
Reference in New Issue
Block a user