From 15fc641fc35579450cf6516d3ab1a53763c2c7d8 Mon Sep 17 00:00:00 2001 From: Alessandro Toia Date: Sun, 2 Jan 2022 19:30:52 -0800 Subject: [PATCH] Add fps_only param to disable showing the engine name --- README.md | 2 +- src/hud_elements.cpp | 35 ++++++++++++++++++++++++++++++++++- src/hud_elements.h | 1 + src/overlay_params.cpp | 1 + src/overlay_params.h | 1 + 5 files changed, 38 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index acb14dc6..aa5bb395 100644 --- a/README.md +++ b/README.md @@ -354,7 +354,7 @@ Parameters that are enabled by default have to be explicitly disabled. These (cu | `battery_icon` | Display battery icon instead of percent | | `battery_color` | Change the BATT text color | | `force_amdgpu_hwmon` | Use hwmon sysfs instead of libdrm for amdgpu stats | - +| `fps_only` | Show FPS without the engine name e.g. DXVK/VULAKAN etc. | Example: `MANGOHUD_CONFIG=cpu_temp,gpu_temp,position=top-right,height=500,font_size=32` Because comma is also used as option delimiter and needs to be escaped for values with a backslash, you can use `+` like `MANGOHUD_CONFIG=fps_limit=60+30+0` instead. diff --git a/src/hud_elements.cpp b/src/hud_elements.cpp index 6ba6f973..368343fe 100644 --- a/src/hud_elements.cpp +++ b/src/hud_elements.cpp @@ -413,7 +413,7 @@ void HudElements::procmem() } void HudElements::fps(){ - if (HUDElements.params->enabled[OVERLAY_PARAM_ENABLED_fps]){ + if (HUDElements.params->enabled[OVERLAY_PARAM_ENABLED_fps] && !HUDElements.params->enabled[OVERLAY_PARAM_ENABLED_fps_only]){ ImGui::TableNextRow(); ImGui::TableNextColumn(); ImGui::TextColored(HUDElements.colors.engine, "%s", engines[HUDElements.sw_stats->engine]); ImGui::TableNextColumn(); @@ -450,6 +450,38 @@ void HudElements::fps(){ } } +void HudElements::fps_only(){ + if (HUDElements.params->enabled[OVERLAY_PARAM_ENABLED_fps_only]){ + ImGui::TableNextRow(); ImGui::TableNextColumn(); + ImGui::TextColored(HUDElements.colors.engine, "%s", "FPS"); + ImGui::TableNextColumn(); + if (HUDElements.params->enabled[OVERLAY_PARAM_ENABLED_fps_color_change]){ + int fps = int(HUDElements.sw_stats->fps); + struct LOAD_DATA fps_data = { + HUDElements.colors.fps_value_low, + HUDElements.colors.fps_value_med, + HUDElements.colors.fps_value_high, + HUDElements.params->fps_value[0], + HUDElements.params->fps_value[1] + }; + auto load_color = change_on_load_temp(fps_data, fps); + right_aligned_text(load_color, HUDElements.ralign_width, "%.0f", HUDElements.sw_stats->fps); + } + else { + right_aligned_text(HUDElements.colors.text, HUDElements.ralign_width, "%.0f", HUDElements.sw_stats->fps); + } + if (HUDElements.params->enabled[OVERLAY_PARAM_ENABLED_frametime]){ + ImGui::TableNextColumn(); + right_aligned_text(HUDElements.colors.text, HUDElements.ralign_width, "%.1f", 1000 / HUDElements.sw_stats->fps); + ImGui::SameLine(0, 1.0f); + ImGui::PushFont(HUDElements.sw_stats->font1); + ImGui::Text("ms"); + ImGui::PopFont(); + } + + } +} + void HudElements::gpu_name(){ if (HUDElements.params->enabled[OVERLAY_PARAM_ENABLED_gpu_name] && !HUDElements.sw_stats->gpuName.empty()){ ImGui::TableNextRow(); ImGui::TableNextColumn(); @@ -847,6 +879,7 @@ void HudElements::sort_elements(const std::pair& optio if (param == "exec") { ordered_functions.push_back({_exec, value}); exec_list.push_back({int(ordered_functions.size() - 1), value}); } if (param == "battery") { ordered_functions.push_back({battery, value}); } + if (param == "fps_only") { ordered_functions.push_back({fps_only, value}); } if (param == "graphs"){ if (!HUDElements.params->enabled[OVERLAY_PARAM_ENABLED_graphs]) HUDElements.params->enabled[OVERLAY_PARAM_ENABLED_graphs] = true; diff --git a/src/hud_elements.h b/src/hud_elements.h index 6b001a60..ac156a5d 100644 --- a/src/hud_elements.h +++ b/src/hud_elements.h @@ -58,6 +58,7 @@ class HudElements{ static void graphs(); static void _exec(); static void battery(); + static void fps_only(); void convert_colors(struct overlay_params& params); void convert_colors(bool do_conv, struct overlay_params& params); diff --git a/src/overlay_params.cpp b/src/overlay_params.cpp index bac94035..c4297d85 100644 --- a/src/overlay_params.cpp +++ b/src/overlay_params.cpp @@ -571,6 +571,7 @@ parse_overlay_config(struct overlay_params *params, params->enabled[OVERLAY_PARAM_ENABLED_core_load_change] = false; params->enabled[OVERLAY_PARAM_ENABLED_legacy_layout] = true; params->enabled[OVERLAY_PARAM_ENABLED_frametime] = true; + params->enabled[OVERLAY_PARAM_ENABLED_fps_only] = false; params->fps_sampling_period = 500000000; /* 500ms */ params->width = 0; params->height = 140; diff --git a/src/overlay_params.h b/src/overlay_params.h index 36aef580..a495ca8d 100644 --- a/src/overlay_params.h +++ b/src/overlay_params.h @@ -74,6 +74,7 @@ typedef unsigned long KeySym; OVERLAY_PARAM_BOOL(battery) \ OVERLAY_PARAM_BOOL(battery_icon) \ OVERLAY_PARAM_BOOL(force_amdgpu_hwmon) \ + OVERLAY_PARAM_BOOL(fps_only) \ OVERLAY_PARAM_CUSTOM(fps_sampling_period) \ OVERLAY_PARAM_CUSTOM(output_folder) \ OVERLAY_PARAM_CUSTOM(output_file) \