Set width by `table_columns` if not specified. Set "text" values to next column with `no_small_text`

pull/771/head
jackun 2 years ago
parent 753dd96325
commit b404fb948e
No known key found for this signature in database
GPG Key ID: 119DB3F1D05A9ED3

@ -135,6 +135,11 @@ void ImguiNextColumnOrNewRow(int column = -1)
}
}
void ImGuiTableSetColumnIndex(int column)
{
ImGui::TableSetColumnIndex(std::min(column, ImGui::TableGetColumnCount() - 1));
}
void HudElements::time(){
if (HUDElements.params->enabled[OVERLAY_PARAM_ENABLED_time]){
ImGui::TableNextRow(); ImGui::TableNextColumn();
@ -571,7 +576,7 @@ void HudElements::frame_timing(){
ImGui::TextColored(HUDElements.colors.engine, "%s", "Frametime");
ImGui::TableSetColumnIndex(ImGui::TableGetColumnCount() - 1);
ImGui::Dummy(ImVec2(0.0f, real_font_size.y));
right_aligned_text(HUDElements.colors.text, HUDElements.ralign_width * 1.3, "min: %.1fms, max: %.1fms", min_frametime, max_frametime);
right_aligned_text(HUDElements.colors.text, ImGui::GetContentRegionAvail().x, "min: %.1fms, max: %.1fms", min_frametime, max_frametime);
ImGui::PopFont();
ImGui::TableNextRow(); ImGui::TableNextColumn();
char hash[40];
@ -632,12 +637,11 @@ void HudElements::media_player(){
void HudElements::resolution(){
if (HUDElements.params->enabled[OVERLAY_PARAM_ENABLED_resolution]){
ImGui::TableNextRow(); ImGui::TableNextColumn();
unsigned res_width = ImGui::GetIO().DisplaySize.x;
unsigned res_height = ImGui::GetIO().DisplaySize.y;
const auto res = ImGui::GetIO().DisplaySize;
ImGui::PushFont(HUDElements.sw_stats->font1);
ImGui::TextColored(HUDElements.colors.engine, "Resolution");
ImGui::TableNextColumn();
right_aligned_text(HUDElements.colors.text, HUDElements.ralign_width * 1.3, "%ix%i", res_width, res_height);
ImGuiTableSetColumnIndex(HUDElements.text_column);
right_aligned_text(HUDElements.colors.text, HUDElements.ralign_width * 1.3, "%.0fx%.0f", res.x, res.y);
ImGui::PopFont();
}
}
@ -650,7 +654,7 @@ void HudElements::show_fps_limit(){
ImGui::TableNextRow(); ImGui::TableNextColumn();
ImGui::PushFont(HUDElements.sw_stats->font1);
ImGui::TextColored(HUDElements.colors.engine, "%s","FPS limit");
ImGui::TableNextColumn();
ImGuiTableSetColumnIndex(HUDElements.text_column);
right_aligned_text(HUDElements.colors.text, HUDElements.ralign_width, "%i", fps);
ImGui::PopFont();
}
@ -690,7 +694,7 @@ void HudElements::gamemode(){
ImGui::TableNextRow(); ImGui::TableNextColumn();
ImGui::PushFont(HUDElements.sw_stats->font1);
ImGui::TextColored(HUDElements.colors.engine, "%s", "GAMEMODE");
ImGui::TableNextColumn();
ImGuiTableSetColumnIndex(HUDElements.text_column);
right_aligned_text(HUDElements.colors.text, HUDElements.ralign_width, "%s", HUDElements.gamemode_bol ? "ON" : "OFF");
ImGui::PopFont();
}
@ -701,7 +705,7 @@ void HudElements::vkbasalt(){
ImGui::TableNextRow(); ImGui::TableNextColumn();
ImGui::PushFont(HUDElements.sw_stats->font1);
ImGui::TextColored(HUDElements.colors.engine, "%s", "VKBASALT");
ImGui::TableNextColumn();
ImGuiTableSetColumnIndex(HUDElements.text_column);
right_aligned_text(HUDElements.colors.text, HUDElements.ralign_width, "%s", HUDElements.vkbasalt_bol ? "ON" : "OFF");
ImGui::PopFont();
}
@ -753,7 +757,7 @@ void HudElements::battery(){
ImGui::PushFont(HUDElements.sw_stats->font1);
ImGui::TextColored(HUDElements.colors.text, "%s", "Remaining Time");
ImGui::PopFont();
ImguiNextColumnOrNewRow(std::min(2, ImGui::TableGetColumnCount() - 1));
ImGuiTableSetColumnIndex(2);
// ImGui::TextColored(HUDElements.colors.text, "%02.0f:%02.0f:%02.0f", hours, minutes, seconds);
right_aligned_text(HUDElements.colors.text, HUDElements.ralign_width, "%02.0f:%02.0f", hours, minutes);
}
@ -922,8 +926,8 @@ void HudElements::frame_count(){
ImGui::TableNextColumn();
ImGui::PushFont(HUDElements.sw_stats->font1);
ImGui::TextColored(HUDElements.colors.engine, "Frame Count");
ImGui::TableNextColumn();
right_aligned_text(HUDElements.colors.text, HUDElements.ralign_width, "%llu", HUDElements.sw_stats->n_frames);
ImGuiTableSetColumnIndex(HUDElements.text_column);
right_aligned_text(HUDElements.colors.text, HUDElements.ralign_width, "%" PRIu64, HUDElements.sw_stats->n_frames);
ImGui::PopFont();
}
}

@ -20,6 +20,7 @@ class HudElements{
float res_width, res_height;
bool is_vulkan, gamemode_bol = false, vkbasalt_bol = false;
int place;
int text_column = 1;
Clock::time_point last_exec;
std::vector<std::pair<std::string, std::string>> options;
std::vector<std::pair<void(*)(), std::string >> ordered_functions;

@ -741,17 +741,20 @@ parse_overlay_config(struct overlay_params *params,
if (!params->table_columns)
params->table_columns = 3;
params->table_columns = std::max(1u, std::min(64u, params->table_columns));
if (!params->font_size) {
params->font_size = 24;
}
//increase hud width if io read and write
if (!params->width) {
params->width = params->font_size * params->font_scale * params->table_columns * 4;
if ((params->enabled[OVERLAY_PARAM_ENABLED_io_read] || params->enabled[OVERLAY_PARAM_ENABLED_io_write])) {
params->width = 13 * params->font_size * params->font_scale;
} else {
params->width = params->font_size * params->font_scale * 11.7;
params->width += 2 * params->font_size * params->font_scale;
}
// Treat it like hud would need to be ~7 characters wider with default font.
if (params->no_small_font)
params->width += 7 * params->font_size * params->font_scale;
@ -810,6 +813,10 @@ parse_overlay_config(struct overlay_params *params,
// Needs ImGui context but it is null here for OpenGL so just note it and update somewhere else
HUDElements.colors.update = true;
if (params->no_small_font)
HUDElements.text_column = 2;
else
HUDElements.text_column = 1;
if(logger && logger->m_params == nullptr) logger.reset();
if(!logger) logger = std::make_unique<Logger>(HUDElements.params);

Loading…
Cancel
Save