Renamed file from PerformanceOverlayUiElement to PerformanceInfo

This commit is contained in:
Vladyslav Baranovskyi
2024-06-11 18:45:47 +03:00
parent 938495ab81
commit f6299b054f
2 changed files with 14 additions and 36 deletions

View File

@@ -4,11 +4,12 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
#include "Scene/Ui/PerformanceOverlayUiElement.hpp"
#include "PerformanceInfo.hpp"
#include "Base/FrameMetadata.hpp"
#include "Base/Utils.hpp"
#include "Host/SystemInfo.hpp"
#include "Math/ByteSize.hpp"
#include "ImGuiExtensions/ImGuiTextFmt.hpp"
#include <imgui.h>
@@ -22,16 +23,6 @@ namespace OpenVulkano::Scene::UI
return (*queue)[index];
}
float FPSValuesGetter(void *data, int index)
{
auto queue = reinterpret_cast<std::deque<float> *>(data);
float value = (*queue)[index];
if(value != 0)
return 1 / value;
else
return 0;
}
float RamValuesGetter(void *data, int index)
{
auto queue = reinterpret_cast<std::deque<float> *>(data);
@@ -42,7 +33,7 @@ namespace OpenVulkano::Scene::UI
}
}
void PerformanceOverlayUiElement::UpdateQueues()
void PerformanceInfo::UpdateQueues()
{
m_frameTimes.push_back(static_cast<float>(CURRENT_FRAME.frameTime));
while(m_frameTimes.size() > m_frameCount)
@@ -53,48 +44,36 @@ namespace OpenVulkano::Scene::UI
m_ramUsed.pop_front();
}
void PerformanceOverlayUiElement::Init()
{
}
void PerformanceOverlayUiElement::BeginDraw()
void PerformanceInfo::BeginDraw()
{
bool alwaysShow = true;
ImGui::Begin("Debug Info", &alwaysShow);
}
void PerformanceOverlayUiElement::Draw()
void PerformanceInfo::Draw()
{
UpdateQueues();
ImVec2 availableSize = ImGui::GetContentRegionAvail();
availableSize.y *= 1/3.;
if(ImGui::CollapsingHeader("Frame Times/FPS"))
{
ImGui::Text("Last Frame Time: %f s", m_frameTimes.back());
ImGui::Text("Last FPS: %f", 1 / m_frameTimes.back());
ImGui::SliderInt("Window Size", &m_frameCount, 10, 1000);
ImGui::PlotLines("", &FloatValuesGetter, &m_frameTimes, (int)m_frameTimes.size(), 0, nullptr, FLT_MAX, FLT_MAX, availableSize);
ImGui::Text("Last FPS: %f", 1 / m_frameTimes.back());
ImGui::PlotLines("", &FPSValuesGetter, &m_frameTimes, (int)m_frameTimes.size(), 0, nullptr, FLT_MAX, FLT_MAX, availableSize);
}
if(ImGui::CollapsingHeader("RAM Usage"))
{
// NOTE(vb) used and max return unexpected values - used is bigger than max... Is it intended to do so?
std::string used = Utils::PrettyBytes(SystemInfo::GetAppRamUsed());
std::string max = Utils::PrettyBytes(SystemInfo::GetAppRamMax());
std::string avail = Utils::PrettyBytes(SystemInfo::GetAppRamAvailable());
ImGui::Text("RAM: %s / %s, Free: %s", used.c_str(), max.c_str(), avail.c_str());
ImGui::TextFmt("RAM: {} / {}, Free: {}", ByteSize(m_ramUsed.back()), ByteSize(SystemInfo::GetAppRamMax()), ByteSize(SystemInfo::GetAppRamAvailable()));
ImGui::SliderInt("Window Size", &m_ramUsageCount, 10, 1000);
ImGui::SliderInt("Window Size ", &m_ramUsageCount, 10, 1000);
float scaleMin = 0.01;
float scaleMax = 100;
ImGui::PlotLines("", &RamValuesGetter, &m_ramUsed, (int)m_ramUsed.size(), 0, nullptr, scaleMin, scaleMax, availableSize);
}
}
void PerformanceOverlayUiElement::EndDraw()
void PerformanceInfo::EndDraw()
{
ImGui::End();
}

View File

@@ -6,13 +6,13 @@
#pragma once
#include "Scene/Ui/Ui.hpp"
#include "Ui.hpp"
#include <deque>
namespace OpenVulkano::Scene::UI
{
class PerformanceOverlayUiElement : public Ui
class PerformanceInfo : public UiElement
{
int m_frameCount = 200;
std::deque<float> m_frameTimes;
@@ -23,7 +23,6 @@ namespace OpenVulkano::Scene::UI
void UpdateQueues();
protected:
void Init() override;
void BeginDraw() override;
void Draw() override;
void EndDraw() override;