ProtoTank/Engine/Graphics/DebugUI.cpp

36 lines
1.3 KiB
C++

#include "DebugUI.hpp"
#include <sstream>
#include <iomanip>
#include "../Misc/Fonts.hpp"
DebugUI::DebugUI() {
gDbgFont.loadFromMemory(&_afont_monofonto_rg, FONTSIZE_MONOFONTO_RG);
gDbgText.setFont(gDbgFont);
gDbgText.setCharacterSize(14);
gDbgText.setPosition(0, 0);
gDbgText.setFillColor(sf::Color::White);
}
void DebugUI::UpdateDebugData(const double cpu_usage, const double cpu_time, const double cycle_time, const int fps, const std::size_t ram_virt_usage, const std::size_t ram_phys_usage) {
gDbgStats.cpu_usage = cpu_usage;
gDbgStats.cpu_time = cpu_time;
gDbgStats.cycle_time = cycle_time;
gDbgStats.fps = fps;
gDbgStats.ram_virt_usage = ram_virt_usage;
gDbgStats.ram_phys_usage = ram_phys_usage;
}
void DebugUI::DrawDebugData(std::shared_ptr<sf::RenderWindow> context) {
std::ostringstream outStrStream;
outStrStream << std::fixed;
outStrStream << std::setprecision(0) << "CPU: " << gDbgStats.cpu_usage << "% (cycle: " << std::setprecision(3) << gDbgStats.cpu_time << "/" << gDbgStats.cycle_time << "ms)" << std::endl;
outStrStream << std::setprecision(1) << "RAM: " << gDbgStats.ram_virt_usage << "MB(V)/" << gDbgStats.ram_phys_usage << "MB(P)" << std::endl;
outStrStream << std::setprecision(0) << "FPS: " << gDbgStats.fps;
gDbgText.setString(outStrStream.str());
context->draw(gDbgText);
}