diff options
author | Stanislaw Halik <sthalik@misaki.pl> | 2022-10-18 01:55:30 +0200 |
---|---|---|
committer | Stanislaw Halik <sthalik@misaki.pl> | 2022-10-18 01:55:30 +0200 |
commit | aebec6e9b095149252bf1e4642c211ae98efdf84 (patch) | |
tree | dfb9919de3fa8bb1a7ff99c9cb3fcbf17186e7c2 /shaders/tile-shader.cpp | |
parent | 2ce80cb4a85cc47dc10f0b70839b2d0f2381cca8 (diff) |
a
Diffstat (limited to 'shaders/tile-shader.cpp')
-rw-r--r-- | shaders/tile-shader.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/shaders/tile-shader.cpp b/shaders/tile-shader.cpp index 20b2230f..4c694c9e 100644 --- a/shaders/tile-shader.cpp +++ b/shaders/tile-shader.cpp @@ -1,5 +1,6 @@ #include "shaders/tile-shader.hpp" #include "loader.hpp" +#include "compat/assert.hpp" #include <algorithm> #include <Corrade/Containers/Reference.h> #include <Corrade/Utility/Resource.h> @@ -36,12 +37,17 @@ tile_shader& tile_shader::set_scale(const Vector2& scale) return *this; } -tile_shader& tile_shader::set_camera_offset(Vector2 camera_offset) +tile_shader& tile_shader::set_camera_offset(Vector2d 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)); + static constexpr auto MAX = std::numeric_limits<std::int32_t>::max(); + ASSERT(std::fabs(camera_offset[0]) <= MAX); + ASSERT(std::fabs(camera_offset[1]) <= MAX); if (camera_offset != camera_offset_) - setUniform(OffsetUniform, 2*(camera_offset_ = camera_offset)); + { + camera_offset_ = camera_offset; + setUniform(OffsetUniform, Vector2i{std::int32_t(camera_offset[0]*2), std::int32_t(camera_offset[1]*2)}); + } + return *this; } |