summaryrefslogtreecommitdiffhomepage
path: root/shaders/tile-shader.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'shaders/tile-shader.cpp')
-rw-r--r--shaders/tile-shader.cpp15
1 files changed, 11 insertions, 4 deletions
diff --git a/shaders/tile-shader.cpp b/shaders/tile-shader.cpp
index 733cdd8b..aeba4929 100644
--- a/shaders/tile-shader.cpp
+++ b/shaders/tile-shader.cpp
@@ -29,8 +29,8 @@ tile_shader::tile_shader()
tile_shader& tile_shader::set_scale(const Vector2& scale)
{
- scale_ = scale;
- setUniform(ScaleUniform, scale);
+ if (scale != scale_)
+ setUniform(ScaleUniform, scale_ = scale);
return *this;
}
@@ -38,8 +38,15 @@ tile_shader& tile_shader::set_camera_offset(Vector2 camera_offset)
{
CORRADE_INTERNAL_ASSERT(std::fabs(camera_offset[0]) <= std::scalbn(1.f, std::numeric_limits<float>::digits));
CORRADE_INTERNAL_ASSERT(std::fabs(camera_offset[1]) <= std::scalbn(1.f, std::numeric_limits<float>::digits));
- camera_offset_ = camera_offset;
- setUniform(OffsetUniform, camera_offset);
+ if (camera_offset != camera_offset_)
+ setUniform(OffsetUniform, camera_offset_ = camera_offset);
+ return *this;
+}
+
+tile_shader& tile_shader::set_tint(const Color4& tint)
+{
+ if (tint != tint_)
+ setUniform(TintUniform, tint_ = tint);
return *this;
}