mirror of
https://github.com/hedge-dev/UnleashedRecomp.git
synced 2025-10-30 07:11:05 +00:00
Implemented FPS overlay (#361)
This commit is contained in:
parent
db4974a9ca
commit
a07610fb7a
2 changed files with 35 additions and 0 deletions
|
|
@ -2327,6 +2327,9 @@ static void DrawProfiler()
|
||||||
ImGui::Text("SDL Video Driver: %s", sdlVideoDriver);
|
ImGui::Text("SDL Video Driver: %s", sdlVideoDriver);
|
||||||
|
|
||||||
ImGui::NewLine();
|
ImGui::NewLine();
|
||||||
|
ImGui::Checkbox("Show FPS", &Config::ShowFPS.Value);
|
||||||
|
ImGui::NewLine();
|
||||||
|
|
||||||
if (ImGui::TreeNode("Device Names"))
|
if (ImGui::TreeNode("Device Names"))
|
||||||
{
|
{
|
||||||
ImGui::Indent();
|
ImGui::Indent();
|
||||||
|
|
@ -2347,6 +2350,36 @@ static void DrawProfiler()
|
||||||
font->Scale = defaultScale;
|
font->Scale = defaultScale;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void DrawFPS()
|
||||||
|
{
|
||||||
|
if (!Config::ShowFPS)
|
||||||
|
return;
|
||||||
|
|
||||||
|
double time = ImGui::GetTime();
|
||||||
|
static double updateTime = time;
|
||||||
|
static double fps = 0;
|
||||||
|
|
||||||
|
if (time - updateTime >= 1.0f)
|
||||||
|
{
|
||||||
|
fps = 1000.0 / g_presentProfiler.value.load();
|
||||||
|
updateTime = time;
|
||||||
|
}
|
||||||
|
|
||||||
|
auto drawList = ImGui::GetBackgroundDrawList();
|
||||||
|
|
||||||
|
auto fmt = fmt::format("FPS: {:.2f}", fps);
|
||||||
|
auto font = ImFontAtlasSnapshot::GetFont("FOT-SeuratPro-M.otf");
|
||||||
|
auto fontSize = Scale(10);
|
||||||
|
auto textSize = font->CalcTextSizeA(fontSize, FLT_MAX, 0, fmt.c_str());
|
||||||
|
|
||||||
|
ImVec2 min = { Scale(40), Scale(30) };
|
||||||
|
ImVec2 max = { min.x + std::max(Scale(75), textSize.x + Scale(10)), min.y + Scale(15) };
|
||||||
|
ImVec2 textPos = { min.x + Scale(2), CENTRE_TEXT_VERT(min, max, textSize) + Scale(0.2f) };
|
||||||
|
|
||||||
|
drawList->AddRectFilled(min, max, IM_COL32(0, 0, 0, 200));
|
||||||
|
drawList->AddText(font, fontSize, textPos, IM_COL32_WHITE, fmt.c_str());
|
||||||
|
}
|
||||||
|
|
||||||
static void DrawImGui()
|
static void DrawImGui()
|
||||||
{
|
{
|
||||||
ImGui_ImplSDL2_NewFrame();
|
ImGui_ImplSDL2_NewFrame();
|
||||||
|
|
@ -2407,6 +2440,7 @@ static void DrawImGui()
|
||||||
|
|
||||||
assert(ImGui::GetBackgroundDrawList()->_ClipRectStack.Size == 1 && "Some clip rects were not removed from the stack!");
|
assert(ImGui::GetBackgroundDrawList()->_ClipRectStack.Size == 1 && "Some clip rects were not removed from the stack!");
|
||||||
|
|
||||||
|
DrawFPS();
|
||||||
DrawProfiler();
|
DrawProfiler();
|
||||||
ImGui::Render();
|
ImGui::Render();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -81,6 +81,7 @@ CONFIG_DEFINE_CALLBACK("Video", bool, Fullscreen, true,
|
||||||
CONFIG_DEFINE_LOCALISED("Video", bool, VSync, true);
|
CONFIG_DEFINE_LOCALISED("Video", bool, VSync, true);
|
||||||
CONFIG_DEFINE_ENUM("Video", ETripleBuffering, TripleBuffering, ETripleBuffering::Auto);
|
CONFIG_DEFINE_ENUM("Video", ETripleBuffering, TripleBuffering, ETripleBuffering::Auto);
|
||||||
CONFIG_DEFINE_LOCALISED("Video", int32_t, FPS, 60);
|
CONFIG_DEFINE_LOCALISED("Video", int32_t, FPS, 60);
|
||||||
|
CONFIG_DEFINE("Video", bool, ShowFPS, false);
|
||||||
CONFIG_DEFINE("Video", uint32_t, MaxFrameLatency, 2);
|
CONFIG_DEFINE("Video", uint32_t, MaxFrameLatency, 2);
|
||||||
CONFIG_DEFINE_LOCALISED("Video", float, Brightness, 0.5f);
|
CONFIG_DEFINE_LOCALISED("Video", float, Brightness, 0.5f);
|
||||||
CONFIG_DEFINE_ENUM_LOCALISED("Video", EAntiAliasing, AntiAliasing, EAntiAliasing::MSAA4x);
|
CONFIG_DEFINE_ENUM_LOCALISED("Video", EAntiAliasing, AntiAliasing, EAntiAliasing::MSAA4x);
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue