diff --git a/include/Cubed/tools/memory_used.hpp b/include/Cubed/tools/memory_used.hpp deleted file mode 100644 index dc2eba1..0000000 --- a/include/Cubed/tools/memory_used.hpp +++ /dev/null @@ -1,29 +0,0 @@ -#pragma once -#ifdef _WIN32 -#define WIN32_LEAN_AND_MEAN -#include -#include -#else -#include -#include -#include -#endif - -inline size_t get_current_rss() { -#ifdef _WIN32 - PROCESS_MEMORY_COUNTERS_EX pmc; - if (GetProcessMemoryInfo(GetCurrentProcess(), (PROCESS_MEMORY_COUNTERS*)&pmc, sizeof(pmc))) { - return pmc.WorkingSetSize; - } - return 0; -#elif defined(__linux__) - std::ifstream statm("/proc/self/statm"); - long vsz = 0, rss_pages = 0; - statm >> vsz >> rss_pages; - statm.close(); - long page_size = sysconf(_SC_PAGESIZE); - return rss_pages * page_size; -#else - return 0; // Unsupported platform -#endif -} \ No newline at end of file diff --git a/include/Cubed/tools/system_version.hpp b/include/Cubed/tools/system_info.hpp similarity index 73% rename from include/Cubed/tools/system_version.hpp rename to include/Cubed/tools/system_info.hpp index de229e7..d761d7c 100644 --- a/include/Cubed/tools/system_version.hpp +++ b/include/Cubed/tools/system_info.hpp @@ -6,8 +6,18 @@ #ifdef _WIN32 #define WIN32_LEAN_AND_MEAN #include +#include typedef LONG (WINAPI* RtlGetVersionPtr)(PRTL_OSVERSIONINFOW); +#elif defined(__linux__) +#include +#include +#include +#endif + +namespace Tools { + inline bool get_os_version(std::string& str) { +#ifdef _WIN32 HMODULE hntdll = GetModuleHandleW(L"ntdll.dll"); if (!hntdll) return false; @@ -28,12 +38,7 @@ inline bool get_os_version(std::string& str) { str = "Windows Build " + std::to_string(osvi.dwBuildNumber); } return true; -} - #elif defined(__linux__) -#include - -inline bool get_os_version(std::string& str) { std::ifstream file("/etc/os-release"); if (!file.is_open()) { Logger::error("Can't Open /etc/os-release"); @@ -57,12 +62,29 @@ inline bool get_os_version(std::string& str) { } } return false; -} #else -inline bool get_os_version(std::string& str) { str = "Unknown OS"; return false; -} #endif +} +inline size_t get_current_rss() { +#ifdef _WIN32 + PROCESS_MEMORY_COUNTERS_EX pmc; + if (GetProcessMemoryInfo(GetCurrentProcess(), (PROCESS_MEMORY_COUNTERS*)&pmc, sizeof(pmc))) { + return pmc.WorkingSetSize; + } + return 0; +#elif defined(__linux__) + std::ifstream statm("/proc/self/statm"); + long vsz = 0, rss_pages = 0; + statm >> vsz >> rss_pages; + statm.close(); + long page_size = sysconf(_SC_PAGESIZE); + return rss_pages * page_size; +#else + return 0; // Unsupported platform +#endif +} +} diff --git a/src/app.cpp b/src/app.cpp index bcf6682..4cf5cd0 100644 --- a/src/app.cpp +++ b/src/app.cpp @@ -4,7 +4,7 @@ #include #include #include -#include +#include #include #include @@ -166,7 +166,7 @@ void App::update() { frame_count = 0; fps_time_count = 0.0f; DebugCollector::get().report("fps", std::string{"FPS: " + std::to_string(fps)}); - DebugCollector::get().report("rss", std::format("RSS: {}mb", get_current_rss() / (1024 * 1024))); + DebugCollector::get().report("rss", std::format("RSS: {}mb", Tools::get_current_rss() / (1024 * 1024))); } m_texture_manager.update(); m_world.update(delta_time); diff --git a/src/debug_collector.cpp b/src/debug_collector.cpp index 40a1b8a..a955f76 100644 --- a/src/debug_collector.cpp +++ b/src/debug_collector.cpp @@ -1,6 +1,6 @@ #include -#include +#include #include DebugCollector::DebugCollector() { @@ -44,7 +44,7 @@ void DebugCollector::init_text() { os_text .scale(0.8f) .position(0.0f, 250.0f); - if (get_os_version(os)) { + if (Tools::get_os_version(os)) { os_text .text("OS: " + os); Logger::info("System: {}", os);