25 {
27
28 ImGui::PushStyleColor(ImGuiCol_Button, ImVec4(0.149f, 0.16f, 0.164f, 1.0f));
29 ImGui::PushStyleColor(ImGuiCol_ButtonHovered, ImVec4(0.156f, 0.302f, 0.353f, 1.0f));
30 ImGui::PushStyleColor(ImGuiCol_ButtonActive, ImVec4(0.156f, 0.302f, 0.353f, 1.0f));
31 ImGui::PushStyleColor(ImGuiCol_WindowBg, ImVec4(0.149f, 0.16f, 0.168f, 1.0f));
32 ImGui::PushStyleColor(ImGuiCol_HeaderHovered, ImGui::GetStyle().Colors[ImGuiCol_ButtonHovered]);
33 ImGui::PushStyleColor(ImGuiCol_HeaderActive, ImGui::GetStyle().Colors[ImGuiCol_ButtonActive]);
34 ImGui::PushStyleColor(ImGuiCol_PopupBg, ImGui::GetStyle().Colors[ImGuiCol_WindowBg]);
35
36 const ImGuiWindowFlags window_flags =
37 ImGuiWindowFlags_NoDecoration |
38 ImGuiWindowFlags_NoDocking |
39 ImGuiWindowFlags_AlwaysAutoResize |
40 ImGuiWindowFlags_NoSavedSettings |
41 ImGuiWindowFlags_NoFocusOnAppearing |
42 ImGuiWindowFlags_NoNav |
43 ImGuiWindowFlags_NoMove;
44
46 ImGui::SetNextWindowPos(StartPos);
47
48 bool open = true;
49 std::stringstream lss;
51 Begin(lss.str().c_str(), 0.0f, window_flags);
52
54 ItemSize.x *= 4.0f;
55 const float offset = ImGui::GetStyle().WindowPadding.y;
56
58 {
65 }
66 ImGui::SameLine();
67
68
69 static std::string renderingMode[5] = {
70 "Rasterization",
71 "RTX-Real-Time",
72 "RTX-Interactive(Path Tracing)",
73 "RTX-Accurate(lray)",
74 "Pixar-Storm"
75 };
76
77 static int rendererSelected = 0;
78
79 {
81
82 std::string buttonName;
84 {
87 break;
89 buttonName =
ICON_TEXT(ICON_MD_LIGHTBULB, RTX - Interactive);
90 break;
91 }
92
93 if (ImGui::Button(buttonName.c_str(), ItemSize))
94 {
101 }
102
103 ImGui::SameLine();
104 }
105
107 {
114
115 }
116 ImGui::SameLine();
118 {
125 }
126 ImGui::SameLine();
127 ImGui::PushStyleVar(ImGuiStyleVar_ButtonTextAlign, ImVec2(0.0f, 0.5f));
128 if (ImGui::Button(ICON_MD_ARROW_RIGHT, ImVec2(ItemSize.y * 0.5f, ItemSize.y)))
129 {
130 }
131 ImGui::PopStyleVar();
133
134 ImVec2 NextPos = StartPos;
136 ImGui::SetNextWindowPos(NextPos);
137
138 std::stringstream rss;
140 Begin(rss.str().c_str(), 0.0f, window_flags);
141 if (ImGui::Button(
ICON_TEXT(ICON_MD_SUNNY, Stage Lights), ItemSize))
142 {
149
150 }
151 ImGui::SameLine();
153 {
160
161 }
163
164 ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(4.0f, 4.0f));
165 ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2(6.0f, 6.0f));
166
167
169 {
170 ImGui::SetNextWindowPos(StartPos + ImVec2(offset, ItemSize.y + 2.0f + offset));
171
172 bool open;
173
174 ImGui::Begin("##", &open, window_flags);
176
177 if (ImGui::BeginMenu("Navigation"))
178 {
180
181 ImGui::BeginGroup();
182 ImGui::MenuItem("Navigation Speed");
183 ImGui::SameLine(200.0f);
184 ImGui::PushItemWidth(100.0f);
185 static float test = 0.0f;
186 ImGui::DragFloat("##", &test);
187 ImGui::PopItemWidth();
188 ImGui::SameLine(300.0f);
190 ImGui::EndGroup();
191
192 if (ImGui::MenuItem("Navigation Speed Scalar")) {}
193 if (ImGui::MenuItem("Lock Navigation Height")) {}
194 if (ImGui::MenuItem("Gamepad Camera Control")) {}
195 ImGui::Separator();
196 if (ImGui::MenuItem("Object Centric Navigation")) {}
197 if (ImGui::MenuItem("Double Click Sets Interest")) {}
198 ImGui::Separator();
199 if (ImGui::MenuItem("Inertia Mode")) {}
200 if (ImGui::MenuItem("Camera Inertia")) {}
201 ImGui::Separator();
202 if (ImGui::MenuItem("Look Speed Horizontal")) {}
203 if (ImGui::MenuItem("Look Speed Vertical")) {}
204 if (ImGui::MenuItem("Look Speed Tumble Speed")) {}
205 if (ImGui::MenuItem("Zoom Speed")) {}
206 ImGui::Separator();
207 if (ImGui::MenuItem("Animation clamp")) {}
208
209 ImGui::EndMenu();
210 }
211
212 if (ImGui::BeginMenu("Selection"))
213 {
214 if (ImGui::MenuItem("Selection Color")) {}
215 if (ImGui::MenuItem("Selection Line Width")) {}
216 if (ImGui::MenuItem("Bounding Box Color")) {}
217
218 ImGui::EndMenu();
219 }
220
221 if (ImGui::BeginMenu("Grid"))
222 {
223 if (ImGui::MenuItem("Grid Color")) {}
224 if (ImGui::MenuItem("Grid Line Width")) {}
225 if (ImGui::MenuItem("Grid Size")) {}
226 if (ImGui::MenuItem("Grid Fade")) {}
227
228 ImGui::EndMenu();
229 }
230
231 if (ImGui::BeginMenu("Gizmos"))
232 {
233 if (ImGui::MenuItem("Gizmos Line Width")) {}
234 if (ImGui::MenuItem("Gizmos Constant Scale Enabled")) {}
235 if (ImGui::MenuItem("Gizmos Constant Scale")) {}
236 if (ImGui::MenuItem("Gizmos Camera Scale")) {}
237 if (ImGui::MenuItem("Gizmos Min FadeOut")) {}
238 if (ImGui::MenuItem("Gizmos Max FadeOut")) {}
239
240 ImGui::EndMenu();
241 }
242
243 if (ImGui::BeginMenu("Viewport"))
244 {
245 if (ImGui::MenuItem("Render Resolution Custom")) {}
246
247 if (ImGui::MenuItem("Custom Resolution")) {}
248 if (ImGui::MenuItem("Render Scale")) {}
249 if (ImGui::MenuItem("Fill Viewport")) {}
250
251 ImGui::EndMenu();
252 }
253
254 if (ImGui::BeginMenu("Viewport UI"))
255 {
256 if (ImGui::MenuItem("UI Background Opacity")) {}
257 if (ImGui::MenuItem("UI Control Brightness")) {}
258
259 ImGui::EndMenu();
260 }
261
262 if (ImGui::BeginMenu("Manipulator Transform"))
263 {
264 if (ImGui::MenuItem("Transform Manipulator Scale")) {}
265 if (ImGui::MenuItem("Enable Free Rotation")) {}
266 if (ImGui::MenuItem("Free Rotation Type")) {}
267 if (ImGui::MenuItem("Manipulator Intersection Thickness")) {}
268
269 ImGui::EndMenu();
270 }
271
272 ImGui::Separator();
273 ImGui::MenuItem("Reset To Defaults");
274 ImGui::Separator();
275 ImGui::MenuItem("Preferences");
276
277 ImGui::End();
278 }
279
281 {
282 ImGui::SetNextWindowPos(StartPos + ImVec2(ItemSize.y + offset, ItemSize.y + 2.0f + offset));
283
284 bool open;
285 ImGui::Begin("##", &open, window_flags);
287
289 {
291 }
294 {
297 }
300 ImGui::PushStyleColor(ImGuiCol_Text, ImVec4(0.5f, 0.5f, 0.5f, 1.0f));
301 ImGui::SeparatorText("Rendering Settings");
302 ImGui::PopStyleColor();
304 {
308 ImGui::Separator();
310
311 ImGui::EndMenu();
312 }
315 ImGui::PushStyleColor(ImGuiCol_Text, ImVec4(0.5f, 0.5f, 0.5f, 1.0f));
316 ImGui::SeparatorText("Rendering Mode");
317 ImGui::PopStyleColor();
321 {
323 if (ImGui::MenuItem(
ICON_TEXT(
ICON_EMPTY, 3D Motion Vectors[WARNING: Flashing Colors]))) {}
343 if (ImGui::MenuItem(
ICON_TEXT(
ICON_EMPTY, PT Adaptive Sampling Error[WARNING: Flashing Colors]))) {}
367
368 ImGui::EndMenu();
369 }
370 ImGui::Separator();
373 ImGui::Separator();
375
376 ImGui::End();
377 }
378
380 {
381 ImGui::SetNextWindowPos(StartPos + ImVec2(ItemSize.y + ItemSize.x + 2.0f * offset, ItemSize.y + 2.0f + offset));
382
383 bool open;
384 ImGui::Begin("##", &open, window_flags);
386
388 {
394 ImGui::Separator();
396
397 ImGui::EndMenu();
398 }
400 {
408 ImGui::Separator();
412 {
416 {
421 ImGui::Separator();
423
424 ImGui::EndMenu();
425 }
427 {
431
432 ImGui::EndMenu();
433 }
435 {
439
440 ImGui::EndMenu();
441 }
443 {
447 ImGui::Separator();
450
451 ImGui::EndMenu();
452 }
454 {
458 ImGui::Separator();
461
462 ImGui::EndMenu();
463 }
465 {
469 ImGui::Separator();
474 ImGui::Separator();
476
477 ImGui::EndMenu();
478 }
479 ImGui::EndMenu();
480 }
481
482 ImGui::EndMenu();
483 }
485 {
489
490 ImGui::EndMenu();
491 }
492 ImGui::Separator();
496
497 ImGui::End();
498 }
499
501 {
502 ImGui::SetNextWindowPos(StartPos + ImVec2(2.0f * ItemSize.y + ItemSize.x + 3.0f * offset, ItemSize.y + 2.0f + offset));
503
504 bool open;
505 ImGui::Begin("##", &open, window_flags);
507
509 {
511
512 ImGui::EndMenu();
513 }
518 ImGui::Separator();
520 ImGui::Separator();
522
523 ImGui::End();
524 }
525
527 {
528 ImGui::SetNextWindowPos(NextPos + ImVec2(offset, ItemSize.y + 2.0f + offset));
529
530 bool open;
531 ImGui::Begin("##", &open, window_flags);
533
537 ImGui::PushStyleColor(ImGuiCol_Text, ImVec4(0.5f, 0.5f, 0.5f, 1.0f));
538 ImGui::SeparatorText("Light Rigs");
539 ImGui::PopStyleColor();
544 ImGui::Separator();
546 ImGui::Separator();
548 ImGui::End();
549 }
550
551
552 ImGui::PopStyleVar(2);
553 ImGui::PopStyleColor(7);
554 }
#define ICON_TEXT(icon, text)
#define SPICES_PROFILE_ZONEN(...)
#define SPICES_PROFILE_ZONE
static FrameInfo & Get()
Get FrameInfo.
std::shared_ptr< World > m_World
The shared pointer of specific world.
RendererType m_RendererType
The renderer type of current world.
static ImVec2 GetLineItemSize()
Get Line Width's Square Size.
static void MainMenuTitleSeparator()
Draw main menu titile separator.
static bool DrawResetIcon(const bool &isMove)
Draw Reset Icon.
ImVec2 & GetPanelSize()
Get Panel Size.
void Begin(float alpha=1.0f, ImGuiWindowFlags flags=0)
Begin a common slate.
ImVec2 & GetPanelPos()
Get Panel Pos.
const std::string & GetName() const
Get this panel Name.