hud_system.cpp 1.17 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include "hud_system.hpp"

#include <imgui_internal.h>
#include <glm/vec2.hpp>
#include <glm/vec4.hpp>

#include <string>
#include <unordered_map>

namespace phase_shifter::ui {

	using namespace mirrage::gui::literals;

	namespace {
		constexpr auto hud_height = 100;
	}

	Hud_system::Hud_system(mirrage::gui::Gui& gui, mirrage::ecs::Entity_manager& ecs)
	  : _gui(gui)
	  , _ecs(ecs)
	{
	}

	void Hud_system::update(mirrage::util::Time dt)
	{
	}

	void Hud_system::draw()
	{
		auto viewport = _gui.viewport();
		auto font     = _gui.find_font("default"_strid);

		if(font.is_some())
			ImGui::PushFont(font.get_or_throw());

		ImGui::PushStyleColor(ImGuiCol_WindowBg, "#333333FF"_imcolor.Value);
		ImGui::PositionNextWindow(glm::vec2(viewport.z, hud_height),
		                          ImGui::WindowPosition_X::center,
		                          ImGui::WindowPosition_Y::bottom);
		if(ImGui::Begin("hud",
		             nullptr,
		             ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoResize)) {
			
			ImGui::Text("TODO");

			ImGui::End();
		}
		
		ImGui::PopStyleColor();

		if(font.is_some())
			ImGui::PopFont();
	}

} // namespace phase_shifter::ui