diff options
Diffstat (limited to 'draw')
-rw-r--r-- | draw/floor.cpp | 10 |
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 |