diff options
| author | Stanislaw Halik <sthalik@misaki.pl> | 2024-01-11 14:29:53 +0100 |
|---|---|---|
| committer | Stanislaw Halik <sthalik@misaki.pl> | 2024-01-11 14:45:29 +0100 |
| commit | d74df1b763979d281f76f3f30543aee8d8a638b7 (patch) | |
| tree | 08939a34160b261c37644595aa8702dd0689d74f /draw/floor.cpp | |
| parent | 7867213a01fcabb1f05b1836c2ca59dc3bb2132f (diff) | |
rename floor -> ground
Diffstat (limited to 'draw/floor.cpp')
| -rw-r--r-- | draw/floor.cpp | 49 |
1 files changed, 0 insertions, 49 deletions
diff --git a/draw/floor.cpp b/draw/floor.cpp deleted file mode 100644 index a073f39f..00000000 --- a/draw/floor.cpp +++ /dev/null @@ -1,49 +0,0 @@ -#include "floor.hpp" -#include "shaders/shader.hpp" -#include "src/chunk.hpp" -#include "src/ground-atlas.hpp" -#include "compat/assert.hpp" -#include <Magnum/GL/MeshView.h> - -namespace floormat { - -floor_mesh::floor_mesh() = default; - -void floor_mesh::draw(tile_shader& shader, chunk& c) -{ - constexpr int quad_index_count = 6; - const auto [mesh_, ids, size] = c.ensure_ground_mesh(); - struct { - ground_atlas* atlas = nullptr; size_t pos = 0; } last; - GL::MeshView mesh{mesh_}; - - [[maybe_unused]] size_t draw_count = 0; - fm_debug_assert(size_t(mesh_.count()) == size*quad_index_count); - - const auto do_draw = [&](size_t i, ground_atlas* atlas, uint32_t max_index) { - if (atlas == last.atlas) - return; - if (auto len = i - last.pos; last.atlas && len > 0) - { - mesh.setCount((int)(quad_index_count * len)); - mesh.setIndexOffset((int)(last.pos*quad_index_count), 0, max_index); - shader.draw(last.atlas->texture(), mesh); - draw_count++; - } - last = { atlas, i }; - }; - - const auto max_index = uint32_t(size*quad_index_count - 1); - size_t k; - for (k = 0; k < size; k++) - do_draw(k, c.ground_atlas_at(ids[k]), max_index); - do_draw(size, nullptr, max_index); - -//#define FM_DEBUG_DRAW_COUNT -#ifdef FM_DEBUG_DRAW_COUNT - if (draw_count) - fm_debug("floor draws: %zu", draw_count); -#endif -} - -} // namespace floormat |
