diff --git a/libs/gfx/include/psemek/gfx/texture.hpp b/libs/gfx/include/psemek/gfx/texture.hpp index 5032766d..ea2785d0 100644 --- a/libs/gfx/include/psemek/gfx/texture.hpp +++ b/libs/gfx/include/psemek/gfx/texture.hpp @@ -399,4 +399,20 @@ namespace psemek::gfx : id_{0} {} + template + std::size_t mipmap_count(geom::vector const & size) + { + std::size_t s = 0; + for (std::size_t i = 0; i < D; ++i) + s = std::max(s, size[i]); + + std::size_t result = 1; + while (s > 1) + { + s /= 2; + ++result; + } + return result; + } + }