diff --git a/include/rendering/vk_utils.hpp b/include/rendering/vk_utils.hpp index 40847ad1..22631cc0 100644 --- a/include/rendering/vk_utils.hpp +++ b/include/rendering/vk_utils.hpp @@ -3,6 +3,8 @@ #include #include #include +#include +#include namespace wowee { namespace rendering { @@ -56,5 +58,25 @@ inline bool vkCheck(VkResult result, [[maybe_unused]] const char* msg) { return true; } +// Environment variable utility functions +inline size_t envSizeMBOrDefault(const char* name, size_t defMb) { + const char* v = std::getenv(name); + if (!v || !*v) return defMb; + char* end = nullptr; + unsigned long long mb = std::strtoull(v, &end, 10); + if (end == v || mb == 0) return defMb; + if (mb > (std::numeric_limits::max() / (1024ull * 1024ull))) return defMb; + return static_cast(mb); +} + +inline size_t envSizeOrDefault(const char* name, size_t defValue) { + const char* v = std::getenv(name); + if (!v || !*v) return defValue; + char* end = nullptr; + unsigned long long n = std::strtoull(v, &end, 10); + if (end == v || n == 0) return defValue; + return static_cast(n); +} + } // namespace rendering } // namespace wowee diff --git a/src/rendering/character_renderer.cpp b/src/rendering/character_renderer.cpp index c4d930b4..1c25ddb6 100644 --- a/src/rendering/character_renderer.cpp +++ b/src/rendering/character_renderer.cpp @@ -46,25 +46,6 @@ namespace wowee { namespace rendering { namespace { -size_t envSizeMBOrDefault(const char* name, size_t defMb) { - const char* v = std::getenv(name); - if (!v || !*v) return defMb; - char* end = nullptr; - unsigned long long mb = std::strtoull(v, &end, 10); - if (end == v || mb == 0) return defMb; - if (mb > (std::numeric_limits::max() / (1024ull * 1024ull))) return defMb; - return static_cast(mb); -} - -size_t envSizeOrDefault(const char* name, size_t defValue) { - const char* v = std::getenv(name); - if (!v || !*v) return defValue; - char* end = nullptr; - unsigned long long n = std::strtoull(v, &end, 10); - if (end == v || n == 0) return defValue; - return static_cast(n); -} - size_t approxTextureBytesWithMips(int w, int h) { if (w <= 0 || h <= 0) return 0; size_t base = static_cast(w) * static_cast(h) * 4ull; diff --git a/src/rendering/m2_renderer.cpp b/src/rendering/m2_renderer.cpp index b39b8f8c..99bef457 100644 --- a/src/rendering/m2_renderer.cpp +++ b/src/rendering/m2_renderer.cpp @@ -40,24 +40,6 @@ bool envFlagEnabled(const char* key, bool defaultValue) { return !(v == "0" || v == "false" || v == "off" || v == "no"); } -size_t envSizeMBOrDefault(const char* name, size_t defMb) { - const char* raw = std::getenv(name); - if (!raw || !*raw) return defMb; - char* end = nullptr; - unsigned long long mb = std::strtoull(raw, &end, 10); - if (end == raw || mb == 0) return defMb; - return static_cast(mb); -} - -size_t envSizeOrDefault(const char* name, size_t defValue) { - const char* raw = std::getenv(name); - if (!raw || !*raw) return defValue; - char* end = nullptr; - unsigned long long v = std::strtoull(raw, &end, 10); - if (end == raw || v == 0) return defValue; - return static_cast(v); -} - static constexpr uint32_t kParticleFlagRandomized = 0x40; static constexpr uint32_t kParticleFlagTiled = 0x80; diff --git a/src/rendering/terrain_renderer.cpp b/src/rendering/terrain_renderer.cpp index 8ed7ba65..62a5c3f8 100644 --- a/src/rendering/terrain_renderer.cpp +++ b/src/rendering/terrain_renderer.cpp @@ -20,17 +20,6 @@ namespace wowee { namespace rendering { -namespace { -size_t envSizeMBOrDefault(const char* name, size_t defMb) { - const char* raw = std::getenv(name); - if (!raw || !*raw) return defMb; - char* end = nullptr; - unsigned long long mb = std::strtoull(raw, &end, 10); - if (end == raw || mb == 0) return defMb; - return static_cast(mb); -} -} // namespace - // Matches set 1 binding 7 in terrain.frag.glsl struct TerrainParamsUBO { int32_t layerCount; diff --git a/src/rendering/wmo_renderer.cpp b/src/rendering/wmo_renderer.cpp index ab08f2a3..8767965f 100644 --- a/src/rendering/wmo_renderer.cpp +++ b/src/rendering/wmo_renderer.cpp @@ -29,23 +29,6 @@ namespace wowee { namespace rendering { namespace { -size_t envSizeMBOrDefault(const char* name, size_t defMb) { - const char* raw = std::getenv(name); - if (!raw || !*raw) return defMb; - char* end = nullptr; - unsigned long long mb = std::strtoull(raw, &end, 10); - if (end == raw || mb == 0) return defMb; - return static_cast(mb); -} - -size_t envSizeOrDefault(const char* name, size_t defValue) { - const char* raw = std::getenv(name); - if (!raw || !*raw) return defValue; - char* end = nullptr; - unsigned long long v = std::strtoull(raw, &end, 10); - if (end == raw || v == 0) return defValue; - return static_cast(v); -} } // namespace // Thread-local scratch buffers for collision queries (allows concurrent getFloorHeight/checkWallCollision calls)