diff options
-rw-r--r-- | draw/anim.cpp | 4 | ||||
-rw-r--r-- | loader/error-tex.cpp | 9 | ||||
-rw-r--r-- | loader/impl.hpp | 1 | ||||
-rw-r--r-- | loader/loader.hpp | 1 |
4 files changed, 11 insertions, 4 deletions
diff --git a/draw/anim.cpp b/draw/anim.cpp index 0cacff62..19a71ac3 100644 --- a/draw/anim.cpp +++ b/draw/anim.cpp @@ -135,9 +135,9 @@ void anim_mesh::draw(tile_shader& shader, const Vector2i& win_size, chunk& c, Ar if (!e.is_dynamic()) { #if 1 // todo! recalc it when chunk's object list changes! - auto r = get_contig_draw_len(es, k); + const auto r = get_contig_draw_len(es, k); #else - auto r = minmax_s{1, x.mesh_idx}; + constexpr auto r = minmax_s{1, x.mesh_idx}; #endif uint32_t count = r.len; GL::MeshView mesh{mesh_}; diff --git a/loader/error-tex.cpp b/loader/error-tex.cpp index dac5992c..bcb53898 100644 --- a/loader/error-tex.cpp +++ b/loader/error-tex.cpp @@ -9,13 +9,18 @@ namespace floormat::loader_detail { Trade::ImageData2D loader_impl::make_error_texture(Vector2ui size) { - fm_assert(size.product() != 0); constexpr auto magenta = Vector4ub{255, 0, 255, 255}; + return make_error_texture(size, magenta); +} + +Trade::ImageData2D loader_impl::make_error_texture(Vector2ui size, Vector4ub color) +{ + fm_assert(size.product() != 0); auto array = Array<char>{NoInit, 4uz * size.product()}; auto data = array.data(), end = data + array.size(); while (data != end) { - *(Vector4ub*)data = magenta; + *(Vector4ub*)data = color; data += 4; } auto img = Trade::ImageData2D{PixelFormat::RGBA8Unorm, Vector2i(size), move(array)}; diff --git a/loader/impl.hpp b/loader/impl.hpp index 007392fe..b873ba82 100644 --- a/loader/impl.hpp +++ b/loader/impl.hpp @@ -39,6 +39,7 @@ struct loader_impl final : loader_ StringView shader(StringView filename) noexcept override; Trade::ImageData2D make_error_texture(Vector2ui size) override; + Trade::ImageData2D make_error_texture(Vector2ui size, Vector4ub color) override; Trade::ImageData2D texture(StringView prefix, StringView filename) noexcept(false) override; // >-----> ground >-----> diff --git a/loader/loader.hpp b/loader/loader.hpp index 3f945614..cf2bbc8a 100644 --- a/loader/loader.hpp +++ b/loader/loader.hpp @@ -32,6 +32,7 @@ struct loader_ static loader_& default_loader() noexcept; virtual StringView shader(StringView filename) noexcept = 0; virtual Trade::ImageData2D make_error_texture(Vector2ui size) = 0; + virtual Trade::ImageData2D make_error_texture(Vector2ui size, Vector4ub color) = 0; virtual Trade::ImageData2D texture(StringView prefix, StringView filename) noexcept(false) = 0; virtual const std::shared_ptr<class ground_atlas>& ground_atlas(StringView filename, loader_policy policy = loader_policy::DEFAULT) noexcept(false) = 0; |