Blamite Game Engine - blam!  00272.10.26.20.0001.blamite
The core library for the Blamite Game Engine.
devtools_bar.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include "../debug_ui.h"
4 
5 #include <Strings/components/utils/io/io.h>
6 #include "../imgui_windows\builtin\dx11_window.hpp"
7 #include "../imgui_windows\legacy\stats.hpp"
8 
10 {
18  {
19  private:
20  bool devtools_bar = true;
21  bool main_menu = true;
22 
23  public:
32 
37  {
38  main_menu = false;
39  }
40 
44  void Draw()
45  {
46  // Main Menu (titlebar)
47  if (devtools_bar)
48  {
49  if (main_menu)
50  {
51  ImGui::BeginMainMenuBar();
52  }
53  else
54  {
55  ImGui::BeginMenuBar();
56  }
57 
58 
59  using namespace Blam::DebugUI::Windows;
60 
61  if (ImGui::BeginMenu("File"))
62  {
63  ImGui::MenuItem("Open .map file", NULL);
64  ImGui::MenuItem("Return to mainmenu", NULL);
65  if (ImGui::MenuItem("Open game dir", NULL)) BlamStrings::Utils::IO::OpenGameDirectory();
66  ImGui::Separator();
67  ImGui::MenuItem("Exit", NULL, duigvs(exit_via_menu));
68  ImGui::EndMenu();
69  }
70  if (ImGui::BeginMenu("Tools"))
71  {
72  ImGui::MenuItem("Memory Editor", NULL);
73  ImGui::MenuItem("Object Info", NULL);
74  ImGui::MenuItem("Cheats", NULL);
75  ImGui::MenuItem("Logger", NULL, duigvs(logger));
76  ImGui::Separator();
77  ImGui::MenuItem("Render Stack Editor", NULL, duigvs(render_stack_editor));
78  ImGui::Separator();
79  if (ImGui::MenuItem("Take Screenshot", "F2")) Blam::TakeScreenshot();
80  ImGui::EndMenu();
81  }
82  if (ImGui::BeginMenu("Network Tools"))
83  {
84  ImGui::MenuItem("Chat", NULL, duigvs(chat_window));
85  ImGui::MenuItem("Network Poker", NULL);
86  ImGui::MenuItem("Test Master Server Connection", NULL, duigvs(ip_test));
87  ImGui::MenuItem("Advanced", NULL);
88  ImGui::EndMenu();
89  }
90  if (ImGui::BeginMenu("Config"))
91  {
92  ImGui::MenuItem("Engine Configuration (Raw)", NULL, duigvs(config_editor));
93  ImGui::MenuItem("Engine Configuration", NULL, duigvs(config_editor_new));
94  ImGui::MenuItem("Theme Selector", NULL, duigvs(theme_selector));
95  ImGui::EndMenu();
96  }
97  if (ImGui::BeginMenu("Test"))
98  {
99  ImGui::MenuItem("Crash Test", NULL, duigvs(crash_test_ui));
100  ImGui::MenuItem("Access Key Dialog", NULL, duigvs(license_startup_prompt));
101  ImGui::MenuItem("Win32 Dialog", NULL);
102  ImGui::MenuItem("Forceload .map", NULL);
103  ImGui::Separator();
104  ImGui::MenuItem("ImGui Test Window", NULL, ((Windows::DirectX11Window*)GetDrawListItem(dx11_window))->ShowTestWindow());
105  ImGui::MenuItem("DX11 Example Window", NULL, duigvs(dx11_window));
106  ImGui::Separator();
107  ImGui::MenuItem("Discord Rich Presence", NULL, duigvs(discord_rpc_ui));
108  ImGui::Separator();
109  ImGui::MenuItem("Direct2D Test Window", NULL, duigvs(d2d_test));
110  ImGui::EndMenu();
111  }
112  if (ImGui::BeginMenu("Debug"))
113  {
114  ImGui::MenuItem("Show Coordinates", NULL);
115  ImGui::MenuItem("Show Runtime Counter", NULL);
116  ImGui::MenuItem("Show FPS", NULL, ((Windows::Stats*)GetDrawListItem(stats))->ShowFPS());
117  ImGui::MenuItem("Show Network Info", NULL, duigvs(network_stats));
118  ImGui::MenuItem("Show Usage Info", NULL);
119  ImGui::MenuItem("Show Stats", NULL, duigvs(stats));
120  ImGui::MenuItem("Toggle Render Target Clearing", "F3 + R", BlamRendering::DirectX::RenderTargetClearing());
121  //ImGui::MenuItem("Console (v2 demo)", NULL, &show_testing_newconsole);
122  ImGui::EndMenu();
123  }
124  if (ImGui::BeginMenu("Help"))
125  {
126  ImGui::MenuItem("ImGui User Guide", NULL, duigvs(imgui_user_guide));
127  ImGui::Separator();
128  ImGui::MenuItem("About ImGui", NULL, duigvs(imgui_info));
129  ImGui::MenuItem("About Blamite", NULL, duigvs(engine_info));
130  ImGui::EndMenu();
131  }
132 
133 
134  if (main_menu)
135  {
136  ImGui::EndMainMenuBar();
137  }
138  else
139  {
140  ImGui::EndMenuBar();
141  }
142  }
143  }
144  };
145 }
Blam::DebugUI::d2d_test
@ d2d_test
Definition: debug_ui.h:382
Blam::DebugUI::discord_rpc_ui
@ discord_rpc_ui
Definition: debug_ui.h:383
main_menu
Blam::DebugMenu::Menu main_menu
The debug menu data.
Definition: debug_menu.cpp:19
Blam::DebugUI::dx11_window
@ dx11_window
Definition: debug_ui.h:367
Blam::DebugUI::Widgets::DevToolsBar::~DevToolsBar
~DevToolsBar()
Unused destructor.
Definition: devtools_bar.hpp:31
Blam::DebugUI::render_stack_editor
@ render_stack_editor
Definition: debug_ui.h:386
Blam::DebugUI::Windows::DirectX11Window
Class for the default ImGUI DX11 sample window.
Definition: dx11_window.hpp:13
Blam::DebugUI::Widgets::DevToolsBar::DevToolsBar
DevToolsBar()
Unused constructor.
Definition: devtools_bar.hpp:27
Blam::DebugUI::imgui_info
@ imgui_info
Definition: debug_ui.h:393
Blam::DebugUI::imgui_user_guide
@ imgui_user_guide
Definition: debug_ui.h:397
Blam::DebugUI::ip_test
@ ip_test
Definition: debug_ui.h:373
Blam::DebugUI::config_editor
@ config_editor
Definition: debug_ui.h:371
Blam::DebugUI::Widgets::DevToolsBar
Class for the original menu bar shown with ImGUI.
Definition: devtools_bar.hpp:17
Blam::DebugUI::devtools_bar
@ devtools_bar
Definition: debug_ui.h:363
Blam::TakeScreenshot
BLAM void TakeScreenshot()
Captures the current frame and saves it to a file.
Definition: screenshot.cpp:100
Blam::DebugUI::config_editor_new
@ config_editor_new
Definition: debug_ui.h:372
Blam::DebugUI::theme_selector
@ theme_selector
Definition: debug_ui.h:398
Blam::DebugUI::license_startup_prompt
@ license_startup_prompt
Definition: debug_ui.h:375
Blam::DebugUI::engine_info
@ engine_info
Definition: debug_ui.h:370
Blam::DebugUI::ImGUIDrawingGroup
Class representing an ImGUI drawing group/draw list item.
Definition: debug_ui.h:409
Blam::DebugUI::stats
@ stats
Definition: debug_ui.h:376
Blam::DebugUI::GetDrawListItem
BLAM ImGUIDrawingGroup * GetDrawListItem(DrawListItem key)
Retrieves a drawing group with the specified ID.
Definition: drawing_list.cpp:21
Blam::DebugUI::crash_test_ui
@ crash_test_ui
Definition: debug_ui.h:381
Blam::DebugUI::logger
@ logger
Definition: debug_ui.h:378
Blam::DebugUI::Windows::Stats
This is the ImGUI-based implementation of the stats widget.
Definition: stats.hpp:23
Blam::DebugUI::chat_window
@ chat_window
Definition: debug_ui.h:374
Blam::DebugUI::Widgets::DevToolsBar::Draw
void Draw()
Draws the menu bar contents.
Definition: devtools_bar.hpp:44
Blam::DebugUI::exit_via_menu
@ exit_via_menu
Definition: debug_ui.h:396
Blam::DebugUI::Windows
Legacy namespace to contain data for the legacy ImGUI console.
Definition: debug_ui.h:494
Blam::DebugUI::Widgets
Namespace containing general-purpose widgets used in multiple ImGUI drawing groups/windows.
Definition: devtools_bar.hpp:9
BlamRendering::DirectX::RenderTargetClearing
BLAM bool * RenderTargetClearing()
Retrieves whether or not to enable render target clearing.
Definition: render_manage.cpp:608
duigvs
#define duigvs(x)
Macro for Blam::DebugUI::GetVisibility().
Definition: debug_ui.h:20
Blam::DebugUI::Widgets::DevToolsBar::SetDrawModeNotMainMenu
void SetDrawModeNotMainMenu()
Instructs the menu to draw as a menu bar within a window, rather than as part of the main menu bar.
Definition: devtools_bar.hpp:36
Blam::DebugUI::network_stats
@ network_stats
Definition: debug_ui.h:385