summaryrefslogtreecommitdiffhomepage
path: root/main
diff options
context:
space:
mode:
authorStanislaw Halik <sthalik@misaki.pl>2022-10-17 14:36:09 +0200
committerStanislaw Halik <sthalik@misaki.pl>2022-10-17 14:36:09 +0200
commit7d8f3f9c404756081aa493c92eb04b0374922070 (patch)
tree5a41133c8e2d461ff0e1f8a588a6a19eaa4c1492 /main
parent60e2b6f05c1f2d7efdc920ada5f9043edb69ebd0 (diff)
a
Diffstat (limited to 'main')
-rw-r--r--main/app.hpp1
-rw-r--r--main/gui.cpp40
2 files changed, 34 insertions, 7 deletions
diff --git a/main/app.hpp b/main/app.hpp
index 82d5dd73..b1aef955 100644
--- a/main/app.hpp
+++ b/main/app.hpp
@@ -57,6 +57,7 @@ struct app final : Platform::Application
void do_menu();
void draw_menu_(tile_type& type, float main_menu_height);
+ void draw_fps(float main_menu_height);
void setup_menu();
void display_menu();
diff --git a/main/gui.cpp b/main/gui.cpp
index 65c63643..85641f0f 100644
--- a/main/gui.cpp
+++ b/main/gui.cpp
@@ -26,6 +26,9 @@ void app::display_menu()
void app::do_menu()
{
_imgui.newFrame();
+
+ ImGui::StyleColorsDark(&ImGui::GetStyle());
+
float main_menu_height = 0;
if (auto b = begin_main_menu())
{
@@ -49,6 +52,7 @@ void app::do_menu()
main_menu_height = ImGui::GetContentRegionMax().y;
}
draw_menu_(_editor.floor(), main_menu_height);
+ draw_fps(main_menu_height);
}
void app::draw_menu_(tile_type& type, float main_menu_height)
@@ -58,13 +62,13 @@ void app::draw_menu_(tile_type& type, float main_menu_height)
else if (!ImGui::GetIO().WantTextInput && isTextInputActive())
stopTextInput();
- auto& style = ImGui::GetStyle();
- ImGui::StyleColorsDark(&style);
- style.WindowPadding = {8, 8};
- style.WindowBorderSize = {};
- style.FramePadding = {4, 4};
- style.Colors[ImGuiCol_WindowBg] = {0, 0, 0, .5};
- style.Colors[ImGuiCol_FrameBg] = {0, 0, 0, 0};
+ auto c1 = push_style_var(ImGuiStyleVar_WindowPadding, {8, 8});
+ auto c2 = push_style_var(ImGuiStyleVar_WindowBorderSize, 0);
+ auto c3 = push_style_var(ImGuiStyleVar_FramePadding, {4, 4});
+ auto c4 = push_style_color(ImGuiCol_WindowBg, {0, 0, 0, .5});
+ auto c5 = push_style_color(ImGuiCol_FrameBg, {0, 0, 0, 0});
+
+ const auto& style = ImGui::GetStyle();
if (main_menu_height > 0)
{
@@ -131,4 +135,26 @@ void app::draw_menu_(tile_type& type, float main_menu_height)
}
}
+void app::draw_fps([[maybe_unused]] float main_menu_height)
+{
+ const ImVec2 max_size = ImGui::CalcTextSize("999.1 FPS");
+ auto c1 = push_style_var(ImGuiStyleVar_FramePadding, {0, 0});
+ auto c2 = push_style_var(ImGuiStyleVar_WindowPadding, {0, 0});
+ auto c3 = push_style_var(ImGuiStyleVar_WindowBorderSize, 0);
+ auto c4 = push_style_var(ImGuiStyleVar_WindowMinSize, {1, 1});
+ auto c5 = push_style_var(ImGuiStyleVar_ScrollbarSize, 0);
+ auto c6 = push_style_color(ImGuiCol_Text, {0, 1, 0, 1});
+ ImGui::SetNextWindowPos({windowSize()[0] - 5 - max_size.x, 3});
+ ImGui::SetNextWindowSize(max_size);
+ if (auto flags = ImGuiWindowFlags_NoDecoration | ImGuiWindowFlags_NoNav | ImGuiWindowFlags_NoInputs |
+ ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoBackground;
+ auto b = begin_window("framerate", ImGuiWindowFlags_(flags)))
+ {
+ char buf[16];
+ snprintf(buf, sizeof(buf), "%.1f FPS", 0.f);
+ ImGui::SameLine(max_size.x - ImGui::CalcTextSize(buf).x);
+ ImGui::Text("%s", buf);
+ }
+}
+
} // namespace floormat