SpiecsEngine
 
Loading...
Searching...
No Matches

◆ OnRender()

void Spices::ImguiMainMenu::OnRender ( )
overridevirtual

This interface is called On SlateRenderer Render.

MainMenu do not need call Begin(), End(). ImGui::BeginMainMenuBar() does it automatically.

Render Menu File.

Render Menu Edit.

Render Menu Create.

Render Menu Window.

Render Menu Tools.

Render Menu Layout.

Render Menu Help.

Render Menu Live.

End MainMenu;

MainMenu do not need call Begin(), End(). ImGui::BeginMainMenuBar() does it automatically.

Render Menu File.

Render Menu Edit.

Render Menu Create.

Render Menu Window.

Render Menu Tools.

Render Menu Layout.

Render Menu Help.

Render Menu Live.

End MainMenu;

Implements Spices::ImguiSlate.

Definition at line 43 of file ImguiMainMenu.cpp.

44 {
46
47 ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2(6.0f, 6.0f));
48 ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(4.0f, 4.0f));
49 //ImGui::PushItemFlag(ImGuiItemFlags_SelectableDontClosePopup, true);
50
55 if (ImGui::BeginMainMenuBar())
56 {
57 m_PanelSize = ImGui::GetContentRegionAvail();
58
62 m_File->OnRender();
63
64
68 m_Edit->OnRender();
69
70
74 m_Create->OnRender();
75
76
80 m_Window->OnRender();
81
82
86 {
87 SPICES_PROFILE_ZONEN("Render Menu Tools");
88
89 if (ImGui::BeginMenu("Tools"))
90 {
92
93 if (ImGui::BeginMenu(ICON_TEXT(ICON_MD_CHECK, Variants)))
94 {
95 if (ImGui::MenuItem(ICON_TEXT(ICON_MD_CHECK, Variant Editor))) {}
96 if (ImGui::MenuItem(ICON_TEXT(ICON_MD_CHECK, Variant Presenter))) {}
97
98 ImGui::EndMenu();
99 }
100 if (ImGui::MenuItem(ICON_TEXT(ICON_MD_CHECK, Section))) {}
101 if (ImGui::MenuItem(ICON_TEXT(ICON_MD_CHECK, Paint))) {}
102 if (ImGui::MenuItem(ICON_TEXT(ICON_MD_CHECK, Pivot))) {}
103 if (ImGui::MenuItem(ICON_TEXT(ICON_MD_CHECK, Randomizer))) {}
104 if (ImGui::BeginMenu(ICON_TEXT(ICON_MD_CHECK, Animation)))
105 {
106 if (ImGui::BeginMenu(ICON_TEXT(ICON_MD_CHECK, Curve Processing)))
107 {
108 if (ImGui::MenuItem(ICON_TEXT(ICON_MD_CHECK, Simplify Curve))) {}
109
110 ImGui::EndMenu();
111 }
112 if (ImGui::BeginMenu(ICON_TEXT(ICON_MD_CHECK, Convert)))
113 {
114 if (ImGui::MenuItem(ICON_TEXT(ICON_MD_CHECK, USD TimeSample to Curves))) {}
115
116 ImGui::EndMenu();
117 }
118
119 ImGui::EndMenu();
120 }
121 if (ImGui::MenuItem(ICON_TEXT(ICON_MD_CHECK, Measure))) {}
122 if (ImGui::MenuItem(ICON_TEXT(ICON_MD_CHECK, Array))) {}
123 if (ImGui::MenuItem(ICON_TEXT(ICON_MD_CHECK, Distribute))) {}
124
125 ImGui::EndMenu();
126 }
127 }
128
132 if (ImGui::BeginMenu("Layout"))
133 {
135
136 SPICES_PROFILE_ZONEN("Render Menu Layout");
137
138 if (ImGui::MenuItem("Default", "Ctrl+1"))
139 {
142 });
143 }
144 if (ImGui::MenuItem("Animation", "Ctrl+2"))
145 {
148 });
149 }
150 if (ImGui::MenuItem("Animation Graph", "Ctrl+3"))
151 {
154 });
155 }
156 if (ImGui::MenuItem("Paint", "Ctrl+4"))
157 {
160 });
161 }
162 if (ImGui::MenuItem("Rendering", "Ctrl+5"))
163 {
166 });
167 }
168 if (ImGui::MenuItem("Visual Scripting", "Ctrl+6"))
169 {
172 });
173 }
174 if (ImGui::MenuItem("Physics Authoring", "Ctrl+9"))
175 {
178 });
179 }
180 ImGui::Separator();
181 if (ImGui::MenuItem("UI Toggle Visibility", "F11"))
182 {
184 SlateSystem::GetRegister()->GetViewPort()->Toggle();
185 });
186 }
187 if (ImGui::MenuItem("Fullscreen Mode"))
188 {
189 static bool isFullScreen = false;
190 isFullScreen = !isFullScreen;
191
192 const GLFWvidmode* mode = glfwGetVideoMode(glfwGetPrimaryMonitor());
193
194 if (isFullScreen)
195 {
196 glfwSetWindowMonitor(VulkanRenderBackend::GetState().m_Windows, glfwGetPrimaryMonitor(), 0, 0, mode->width, mode->height, mode->refreshRate);
197 }
198 else
199 {
200 glfwSetWindowMonitor(VulkanRenderBackend::GetState().m_Windows, nullptr, 0.05 * mode->width, 0.05 * mode->height, 0.9 * mode->width, 0.9 * mode->height, mode->refreshRate);
201 }
202 }
203 ImGui::Separator();
204 if (ImGui::MenuItem("Save Layout"))
205 {
206 SlateStyleLayout::Get()->StoreLayout();
207 }
208 if (ImGui::MenuItem("Load Layout"))
209 {
210 SlateStyleLayout::Get()->LoadLayout();
211 }
212 ImGui::Separator();
213 if (ImGui::MenuItem("Quick Save", "Ctrl+7"))
214 {
216 SlateStyleLayout::Get()->QuickStoreLayout();
217 });
218 }
219 if (ImGui::MenuItem("Quick Load", "Ctrl+8"))
220 {
222 SlateStyleLayout::Get()->QuickLoadLayout();
223 });
224 }
225
226 ImGui::EndMenu();
227 }
228
232 m_Help->OnRender();
233
234
238 {
239 SPICES_PROFILE_ZONEN("Render Menu Live");
240
241 ImGui::SameLine(m_PanelSize.x - 6.0f * ImGuiH::GetLineItemSize().x);
242 ImGui::Text(ICON_TEXT(ICON_MD_FLASH_ON,LIVE));
243 ImGui::Button(ICON_MD_KEYBOARD_ARROW_DOWN, ImGuiH::GetLineItemSize());
244 ImGui::Text("CACHE:ON");
245 }
246
250 ImGui::EndMainMenuBar();
251 }
252
253 //ImGui::PopItemFlag();
254 ImGui::PopStyleVar(2);
255 }
#define ICON_TEXT(icon, text)
Definition ImguiHelper.h:24
#define SPICES_PROFILE_ZONEN(...)
#define SPICES_PROFILE_ZONE
static ImVec2 GetLineItemSize()
Get Line Width's Square Size.
static void MainMenuTitleSeparator()
Draw main menu titile separator.
std::shared_ptr< ImguiCreateEntity > m_Create
std::shared_ptr< ImguiWindow > m_Window
std::shared_ptr< ImguiEdit > m_Edit
The shared pointer of ImguiEdit.
std::shared_ptr< ImguiHelp > m_Help
std::shared_ptr< ImguiFile > m_File
The shared pointer of ImguiFile.
ImVec2 m_PanelSize
This slate's size.
Definition ImguiUtils.h:151
static std::shared_ptr< SlateStyleLayout > Get()
Get this single instance.
static std::shared_ptr< SlateRegister > GetRegister()
Get slate register.
Definition SlateSystem.h:67
static VulkanState & GetState()
Get VulkanState in use.
static auto AsyncTask(ThreadPoolEnum pool, F &&func, Args &&... args) -> std::future< decltype(func(std::forward< Args >(args)...))>

References Spices::SlateStyleLayout::Get(), and Spices::ImGuiH::MainMenuTitleSeparator().