allow for compact hud layout

pull/873/head
FlightlessMango 2 years ago
parent e38413b2d8
commit f8ca49f627

@ -390,10 +390,12 @@ void HudElements::ram(){
ImGui::TextColored(HUDElements.colors.ram, "RAM"); ImGui::TextColored(HUDElements.colors.ram, "RAM");
ImGui::TableNextColumn(); ImGui::TableNextColumn();
right_aligned_text(HUDElements.colors.text, HUDElements.ralign_width, "%.1f", memused); right_aligned_text(HUDElements.colors.text, HUDElements.ralign_width, "%.1f", memused);
ImGui::SameLine(0,1.0f); if (!HUDElements.params->enabled[OVERLAY_PARAM_ENABLED_hud_compact]){
ImGui::PushFont(HUDElements.sw_stats->font1); ImGui::SameLine(0,1.0f);
ImGui::Text("GiB"); ImGui::PushFont(HUDElements.sw_stats->font1);
ImGui::PopFont(); ImGui::Text("GiB");
ImGui::PopFont();
}
} }
if (HUDElements.params->enabled[OVERLAY_PARAM_ENABLED_ram] && HUDElements.params->enabled[OVERLAY_PARAM_ENABLED_swap]){ if (HUDElements.params->enabled[OVERLAY_PARAM_ENABLED_ram] && HUDElements.params->enabled[OVERLAY_PARAM_ENABLED_swap]){
@ -446,7 +448,10 @@ void HudElements::procmem()
void HudElements::fps(){ void HudElements::fps(){
if (HUDElements.params->enabled[OVERLAY_PARAM_ENABLED_fps] && !HUDElements.params->enabled[OVERLAY_PARAM_ENABLED_fps_only]){ if (HUDElements.params->enabled[OVERLAY_PARAM_ENABLED_fps] && !HUDElements.params->enabled[OVERLAY_PARAM_ENABLED_fps_only]){
ImGui::TableNextColumn(); ImGui::TableNextColumn();
ImGui::TextColored(HUDElements.colors.engine, "%s", engines[HUDElements.sw_stats->engine]); if(HUDElements.params->enabled[OVERLAY_PARAM_ENABLED_hud_compact])
ImGui::TextColored(HUDElements.colors.engine, "%s", "FPS");
else
ImGui::TextColored(HUDElements.colors.engine, "%s", engines[HUDElements.sw_stats->engine]);
ImGui::TableNextColumn(); ImGui::TableNextColumn();
if (HUDElements.params->enabled[OVERLAY_PARAM_ENABLED_fps_color_change]){ if (HUDElements.params->enabled[OVERLAY_PARAM_ENABLED_fps_color_change]){
int fps = int(HUDElements.sw_stats->fps); int fps = int(HUDElements.sw_stats->fps);
@ -464,9 +469,11 @@ void HudElements::fps(){
right_aligned_text(HUDElements.colors.text, HUDElements.ralign_width, "%.0f", HUDElements.sw_stats->fps); right_aligned_text(HUDElements.colors.text, HUDElements.ralign_width, "%.0f", HUDElements.sw_stats->fps);
} }
ImGui::SameLine(0, 1.0f); ImGui::SameLine(0, 1.0f);
ImGui::PushFont(HUDElements.sw_stats->font1); if(!HUDElements.params->enabled[OVERLAY_PARAM_ENABLED_hud_compact]){
ImGui::Text("FPS"); ImGui::PushFont(HUDElements.sw_stats->font1);
ImGui::PopFont(); ImGui::Text("FPS");
ImGui::PopFont();
}
if (HUDElements.params->enabled[OVERLAY_PARAM_ENABLED_frametime]){ if (HUDElements.params->enabled[OVERLAY_PARAM_ENABLED_frametime]){
ImguiNextColumnOrNewRow(); ImguiNextColumnOrNewRow();
right_aligned_text(HUDElements.colors.text, HUDElements.ralign_width, "%.1f", 1000 / HUDElements.sw_stats->fps); right_aligned_text(HUDElements.colors.text, HUDElements.ralign_width, "%.1f", 1000 / HUDElements.sw_stats->fps);
@ -571,7 +578,7 @@ void HudElements::frame_timing(){
if (HUDElements.params->enabled[OVERLAY_PARAM_ENABLED_frame_timing]){ if (HUDElements.params->enabled[OVERLAY_PARAM_ENABLED_frame_timing]){
ImGui::TableNextColumn(); ImGui::TableNextColumn();
ImGui::PushFont(HUDElements.sw_stats->font1); ImGui::PushFont(HUDElements.sw_stats->font1);
if (!HUDElements.params->enabled[OVERLAY_PARAM_ENABLED_horizontal]){ if (!HUDElements.params->enabled[OVERLAY_PARAM_ENABLED_horizontal] && !HUDElements.params->enabled[OVERLAY_PARAM_ENABLED_hud_compact]){
ImGui::Dummy(ImVec2(0.0f, real_font_size.y)); ImGui::Dummy(ImVec2(0.0f, real_font_size.y));
ImGui::TextColored(HUDElements.colors.engine, "%s", "Frametime"); ImGui::TextColored(HUDElements.colors.engine, "%s", "Frametime");
ImGui::TableSetColumnIndex(ImGui::TableGetColumnCount() - 1); ImGui::TableSetColumnIndex(ImGui::TableGetColumnCount() - 1);
@ -588,7 +595,7 @@ void HudElements::frame_timing(){
double max_time = 50.0f; double max_time = 50.0f;
float width, height = 0; float width, height = 0;
#ifdef MANGOAPP #ifdef MANGOAPP
if (HUDElements.params->enabled[OVERLAY_PARAM_ENABLED_horizontal]){ if (HUDElements.params->enabled[OVERLAY_PARAM_ENABLED_horizontal] || HUDElements.params->enabled[OVERLAY_PARAM_ENABLED_hud_compact]){
width = 150; width = 150;
height = 24; height = 24;
} else { } else {
@ -616,7 +623,7 @@ void HudElements::frame_timing(){
ImVec2(width, height)); ImVec2(width, height));
} }
#ifdef MANGOAPP #ifdef MANGOAPP
if (!HUDElements.params->enabled[OVERLAY_PARAM_ENABLED_horizontal]){ if (!HUDElements.params->enabled[OVERLAY_PARAM_ENABLED_horizontal] && !HUDElements.params->enabled[OVERLAY_PARAM_ENABLED_hud_compact]){
ImGui::SameLine(); ImGui::SameLine();
ImGuiTableSetColumnIndex(ImGui::TableGetColumnCount() - 1); ImGuiTableSetColumnIndex(ImGui::TableGetColumnCount() - 1);
right_aligned_text(HUDElements.colors.text, ImGui::GetContentRegionAvail().x, "%.1fms", frametime / 1000.f); right_aligned_text(HUDElements.colors.text, ImGui::GetContentRegionAvail().x, "%.1fms", frametime / 1000.f);
@ -754,32 +761,35 @@ void HudElements::battery(){
ImGui::SameLine(0,1.0f); ImGui::SameLine(0,1.0f);
ImGui::Text("%%"); ImGui::Text("%%");
} }
if (Battery_Stats.current_watt != 0) { if (!HUDElements.params->enabled[OVERLAY_PARAM_ENABLED_hud_compact]){
ImguiNextColumnOrNewRow(); if (Battery_Stats.current_watt != 0) {
right_aligned_text(HUDElements.colors.text, HUDElements.ralign_width, "%.1f", Battery_Stats.current_watt); ImguiNextColumnOrNewRow();
ImGui::SameLine(0,1.0f); right_aligned_text(HUDElements.colors.text, HUDElements.ralign_width, "%.1f", Battery_Stats.current_watt);
ImGui::PushFont(HUDElements.sw_stats->font1); ImGui::SameLine(0,1.0f);
ImGui::Text("W");
ImGui::PopFont();
if (!HUDElements.params->enabled[OVERLAY_PARAM_ENABLED_horizontal]) {
float hours;
float minutes;
minutes = std::modf(Battery_Stats.remaining_time, &hours);
minutes *= 60;
ImGui::TableNextRow();
ImGui::NextColumn();
ImGui::PushFont(HUDElements.sw_stats->font1); ImGui::PushFont(HUDElements.sw_stats->font1);
ImGuiTableSetColumnIndex(0); ImGui::Text("W");
ImGui::TextColored(HUDElements.colors.text, "%s", "Remaining Time");
ImGui::PopFont(); ImGui::PopFont();
ImGuiTableSetColumnIndex(2); if (!HUDElements.params->enabled[OVERLAY_PARAM_ENABLED_horizontal] && !HUDElements.params->enabled[OVERLAY_PARAM_ENABLED_hud_compact]) {
right_aligned_text(HUDElements.colors.text, HUDElements.ralign_width, "%02.0f:%02.0f", hours, minutes); float hours;
float minutes;
minutes = std::modf(Battery_Stats.remaining_time, &hours);
minutes *= 60;
ImGui::TableNextRow();
ImGui::NextColumn();
ImGui::PushFont(HUDElements.sw_stats->font1);
ImGuiTableSetColumnIndex(0);
ImGui::TextColored(HUDElements.colors.text, "%s", "Remaining Time");
ImGui::PopFont();
ImGuiTableSetColumnIndex(2);
right_aligned_text(HUDElements.colors.text, HUDElements.ralign_width, "%02.0f:%02.0f", hours, minutes);
}
} else {
ImguiNextColumnOrNewRow();
right_aligned_text(HUDElements.colors.text, HUDElements.ralign_width, "%s", ICON_FK_PLUG);
} }
}else {
ImguiNextColumnOrNewRow();
right_aligned_text(HUDElements.colors.text, HUDElements.ralign_width, "%s", ICON_FK_PLUG);
} }
} }
} }
#endif #endif
} }

@ -307,11 +307,12 @@ void overlay_new_frame(const struct overlay_params& params)
ImGui::PushStyleVar(ImGuiStyleVar_WindowBorderSize, 0.0f); ImGui::PushStyleVar(ImGuiStyleVar_WindowBorderSize, 0.0f);
ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2(8,-3)); ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2(8,-3));
ImGui::PushStyleVar(ImGuiStyleVar_Alpha, params.alpha); ImGui::PushStyleVar(ImGuiStyleVar_Alpha, params.alpha);
ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(0,0));
} }
void overlay_end_frame() void overlay_end_frame()
{ {
ImGui::PopStyleVar(3); ImGui::PopStyleVar(4);
} }
void position_layer(struct swapchain_stats& data, const struct overlay_params& params, const ImVec2& window_size) void position_layer(struct swapchain_stats& data, const struct overlay_params& params, const ImVec2& window_size)
@ -366,10 +367,12 @@ void right_aligned_text(ImVec4& col, float off_x, const char *fmt, ...)
vsnprintf(buffer, sizeof(buffer), fmt, args); vsnprintf(buffer, sizeof(buffer), fmt, args);
va_end(args); va_end(args);
ImVec2 sz = ImGui::CalcTextSize(buffer); if (!HUDElements.params->enabled[OVERLAY_PARAM_ENABLED_hud_compact]){
ImGui::SetCursorPosX(pos.x + off_x - sz.x); ImVec2 sz = ImGui::CalcTextSize(buffer);
//ImGui::Text("%s", buffer); ImGui::SetCursorPosX(pos.x + off_x - sz.x);
ImGui::TextColored(col,"%s",buffer); }
ImGui::TextColored(col,"%s", buffer);
} }
void center_text(const std::string& text) void center_text(const std::string& text)

@ -87,6 +87,7 @@ typedef unsigned long KeySym;
OVERLAY_PARAM_BOOL(log_versioning) \ OVERLAY_PARAM_BOOL(log_versioning) \
OVERLAY_PARAM_BOOL(horizontal) \ OVERLAY_PARAM_BOOL(horizontal) \
OVERLAY_PARAM_BOOL(hud_no_margin) \ OVERLAY_PARAM_BOOL(hud_no_margin) \
OVERLAY_PARAM_BOOL(hud_compact) \
OVERLAY_PARAM_CUSTOM(fps_sampling_period) \ OVERLAY_PARAM_CUSTOM(fps_sampling_period) \
OVERLAY_PARAM_CUSTOM(output_folder) \ OVERLAY_PARAM_CUSTOM(output_folder) \
OVERLAY_PARAM_CUSTOM(output_file) \ OVERLAY_PARAM_CUSTOM(output_file) \

Loading…
Cancel
Save