summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--main/draw.cpp12
-rw-r--r--shaders/tile.hpp3
2 files changed, 9 insertions, 6 deletions
diff --git a/main/draw.cpp b/main/draw.cpp
index 028f6ac6..e124389f 100644
--- a/main/draw.cpp
+++ b/main/draw.cpp
@@ -103,11 +103,13 @@ auto main_impl::get_draw_bounds() const noexcept -> draw_bounds
y1 = std::max(y1, p.y);
}
- constexpr int16_t max = 7, min = -max;
- x0 = std::clamp(x0, min, max);
- x1 = std::clamp(x1, min, max);
- y0 = std::clamp(y0, min, max);
- y1 = std::clamp(y1, min, max);
+ constexpr int16_t maxx = tile_shader::max_screen_tiles.x()/2 - 1, minx = -maxx,
+ maxy = tile_shader::max_screen_tiles.y()/2 - 1, miny = -maxy;
+
+ x0 = std::clamp(x0, minx, maxx);
+ x1 = std::clamp(x1, minx, maxx);
+ y0 = std::clamp(y0, miny, maxy);
+ y1 = std::clamp(y1, miny, maxy);
return {x0, x1, y0, y1};
}
diff --git a/shaders/tile.hpp b/shaders/tile.hpp
index f1e14c9e..8c65b6fa 100644
--- a/shaders/tile.hpp
+++ b/shaders/tile.hpp
@@ -37,7 +37,8 @@ struct tile_shader : GL::AbstractShaderProgram
template<typename T, typename... Xs>
decltype(auto) draw(T&& mesh, Xs&&... xs);
- static constexpr float depth_tile_size = 1/(double)(TILE_COUNT * 16 * 16);
+ static constexpr Vector2s max_screen_tiles{16, 16};
+ static constexpr float depth_tile_size = 1/(double)(TILE_COUNT * max_screen_tiles.product());
static constexpr float scenery_depth_offset = 0.25f, character_depth_offset = 0.25f, wall_depth_offset = 0.125f;
private: