VenomEngine
Cross-Platform Modern Graphics Engine
All Classes Namespaces Files Functions Variables Typedefs Enumerations Pages Concepts
GUI.h
Go to the documentation of this file.
1
8#pragma once
10
11#include <imgui.h>
12#include <imgui_impl_glfw.h>
13#include <imgui_impl_vulkan.h>
14
15namespace venom
16{
17namespace vulkan
18{
19class VulkanGUI : public vc::GUI
20{
21public:
22 VulkanGUI();
23 ~VulkanGUI() override;
24
25 vc::Error _Initialize() override;
26
27protected:
28 void _EntityGuizmo(vc::Transform3D* transform3D, const vcm::Vec2 & renderingSize) override;
29
30 vc::Error _Reset() override;
31 void _AddFont(const char* fontPath, float fontSize, const uint16_t* glyphRanges) override;
32 void _AddFont(const char* fontPath, float fontSize) override;
33
34 void _SetNextWindowPos(const vcm::Vec2 & pos, vc::GUICond cond, const vcm::Vec2 & pivot) override;
35 void _SetNextWindowSize(const vcm::Vec2& size, vc::GUICond cond) override;
36 void _SetNextWindowViewport(vc::GUIViewport viewport) override;
37
38 vcm::Vec2 _GetContentRegionAvail() override;
39
40 vcm::Vec2 _GetWindowSize() override;
41 vcm::Vec2 _GetWindowPos() override;
42 vc::GUIViewport _GetMainViewport() override;
43
44 void _NewFrame() override;
45 void _Begin(const char * name, bool * p_open, vc::GUIWindowFlags flags) override;
46 void _End() override;
47 void _Text(const char* fmt, va_list args) override;
48 void _TextColored(const vcm::Vec4 & col, const char* fmt, va_list args) override;
49 void _LabelText(const char* label, const char* fmt, va_list args) override;
50
51 void _Image(const vc::Texture* texture, const vcm::Vec2 & size, bool centering) override;
52
53 bool _InputText(const char* label, char* buf, size_t buf_size, vc::GUIInputTextFlags flags) override;
54
55 bool _TreeNode(const char* label) override;
56 void _TreePop() override;
57 void _TreePush(const char* str_id) override;
58
59 void _SeparatorText(const char* text) override;
60 void _Separator() override;
61 void _Spacing() override;
62 void _Dummy(const vcm::Vec2& size) override;
63
64 bool _SliderFloat(const char* label, float* v, float v_min, float v_max, const char* format) override;
65 bool _SliderFloat3(const char* label, float v[3], float v_min, float v_max, const char* format) override;
66
67 bool _InputFloat(const char* label, float* v, float step, float step_fast, const char* format, vc::GUIColorEditFlags flags) override;
68 bool _InputFloat3(const char* label, float v[3], const char* format, vc::GUIColorEditFlags flags) override;
69
70 void _ColorEdit3(const char* label, float col[3], vc::GUIColorEditFlags flags) override;
71
72 bool _CollapsingHeader(const char* label, vc::GUITreeNodeFlags flags) override;
73
74 bool _Button(const char* label, const vcm::Vec2 & size) override;
75 bool _Checkbox(const char* label, bool* v) override;
76 void _ProgressBar(float fraction, const vcm::Vec2 & size_arg, const char* overlay) override;
77
78 bool _Selectable(const char* label, bool selected, vc::GUISelectableFlags flags, const vcm::Vec2 & size) override;
79
80 bool _BeginCombo(const char* label, const char* preview_value, vc::GUIComboFlags flags) override;
81 void _EndCombo() override;
82
83 bool _BeginMenu(const char* label, bool enabled) override;
84 void _EndMenu() override;
85
86 bool _BeginMainMenuBar() override;
87 void _EndMainMenuBar() override;
88
89 bool _BeginMenuBar() override;
90 void _EndMenuBar() override;
91
92 bool _BeginChild(const char* str_id, const vcm::Vec2 & size, vc::GUIChildFlags childFlags, vc::GUIWindowFlags extra_flags) override;
93 void _EndChild() override;
94
95 bool _MenuItem(const char* str, const char* text) override;
96
97 void _SetNextItemWidth(float item_width) override;
98 void _SetItemDefaultFocus() override;
99
100 void _SameLine(float offset_from_start_x, float spacing) override;
101
102 void _PushItemWidth(float item_width) override;
103 void _PopItemWidth() override;
104
105 void _PushButtonTextAlign(const vcm::Vec2& padding) override;
106 void _PushWindowPadding(const vcm::Vec2& padding) override;
107 void _PopStyleVar() override;
108
109 vc::GUIId _DockSpace(vc::GUIId id, const vcm::Vec2& size, vc::GUIDockNodeFlags flags) override;
110 vc::GUIId _DockSpace(const char* id, const vcm::Vec2& size, vc::GUIDockNodeFlags flags) override;
111 vc::GUIId _DockSpaceOverViewport() override;
112
113 vc::GUIId _DockSpaceAddNode(vc::GUIId id, vc::GUIDockNodeFlags flags) override;
114 void _DockSpaceRemoveNode(vc::GUIId id) override;
115 void _DockSpaceSetNodeSize(vc::GUIId id, const vcm::Vec2& size) override;
116
117 vc::GUIId _DockSpaceSplitNode(vc::GUIId id, vc::GUIDir split_dir, float size_ratio, vc::GUIId* out_id_at_dir, vc::GUIId* out_id_at_opposite_dir) override;
118
119 void _DockWindow(const char* str_id, vc::GUIId id) override;
120 void _DockFinish(vc::GUIId id) override;
121
122 void _OpenPopup(const char* str_id, vc::GUIPopupFlags flags) override;
123 bool _BeginPopup(const char* str_id, vc::GUIWindowFlags flags) override;
124 bool _BeginPopupModal(const char* name, bool* p_open, vc::GUIWindowFlags flags) override;
125 bool _BeginPopupContextItem(const char* str_id, common::GUIPopupFlags flags) override;
126 void _EndPopup() override;
127 void _CloseCurrentPopup() override;
128
129 vc::GUIId _GetID(const char* str_id) override;
130
131 vc::Error _PreUpdate() override;
132 void _Render() override;
133
134 void _Test() override;
135
136private:
137 void __SetStyle();
138
139 float __imageVerticalOffset;
140
141private:
142 ImGui_ImplVulkan_InitInfo initInfo;
143};
144}
145}
Definition GUI.h:33
Definition Texture.h:179
Definition Transform3D.h:18
Encapsulation of Vulkan for the front end of VenomEngine.
Definition Allocator.h:18
Contains the entirety of the code of the VenomEngine project.
Definition Callback.h:13