summaryrefslogtreecommitdiffhomepage
path: root/draw
diff options
context:
space:
mode:
Diffstat (limited to 'draw')
-rw-r--r--draw/floor.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/draw/floor.cpp b/draw/floor.cpp
index ee7b4014..9f8ed2ab 100644
--- a/draw/floor.cpp
+++ b/draw/floor.cpp
@@ -13,6 +13,8 @@ floor_mesh::floor_mesh()
{
}
+//#define FM_DEBUG_DRAW_COUNT
+
void floor_mesh::draw(tile_shader& shader, chunk& c)
{
auto [mesh_, ids] = c.ensure_ground_mesh();
@@ -21,6 +23,8 @@ void floor_mesh::draw(tile_shader& shader, chunk& c)
std::size_t last_pos = 0;
GL::MeshView mesh{mesh_};
+ [[maybe_unused]] std::size_t draw_count = 0;
+
const auto do_draw = [&](std::size_t i, tile_atlas* atlas) {
if (atlas == last_atlas)
return;
@@ -30,6 +34,7 @@ void floor_mesh::draw(tile_shader& shader, chunk& c)
mesh.setCount((int)(quad_index_count * len));
mesh.setIndexRange((int)(last_pos*quad_index_count), 0, quad_index_count*TILE_COUNT - 1);
shader.draw(mesh);
+ draw_count++;
}
last_atlas = atlas;
last_pos = i;
@@ -39,6 +44,11 @@ void floor_mesh::draw(tile_shader& shader, chunk& c)
if (auto* atlas = c.ground_atlas_at(ids[k]))
do_draw(k, atlas);
do_draw(TILE_COUNT, nullptr);
+
+#ifdef FM_DEBUG_DRAW_COUNT
+ if (draw_count)
+ fm_debug("floor draws: %zu", draw_count);
+#endif
}
} // namespace floormat