Grindstone Game Engine v0.2.0
An open source game engine and toolkit.
Loading...
Searching...
No Matches
ImguiEditor.hpp
1#pragma once
2
3#include <vector>
4#include <entt/entt.hpp>
5#include <vulkan/vulkan.h>
6
7#include <Common/Event/BaseEvent.hpp>
8#include <Common/Memory/SmartPointers/UniquePtr.hpp>
9#include <Editor/ImguiEditor/AssetPicker.hpp>
10
11namespace Grindstone {
12 class EngineCore;
13
14 namespace Editor {
15 namespace ImguiEditor {
16 class ImguiRenderer;
17
18 namespace Settings {
21 }
22
25 class InspectorPanel;
26 class ViewportPanel;
27 class ConsolePanel;
28 class SystemPanel;
29 class StatsPanel;
30 class BuildPopup;
31 class Menubar;
32 class ImguiInput;
33 class ControlBar;
34 class StatusBar;
35 class AssetPicker;
36 class TracingPanel;
37
38 class ImguiEditor {
39 public:
40 friend Menubar;
41
42 ImguiEditor(EngineCore* engineCore);
43 ~ImguiEditor();
44 void CreateWindows();
45 void Update();
46 void Render();
47 void PromptAssetPicker(AssetType assetType, AssetPicker::AssetPickerCallback callback);
48 void StartBuild();
49 void ImportFile(const char* folderPathToImportTo = "");
50 ViewportPanel* GetViewportPanel();
51 private:
52 void RenderDockspace();
53 void SetupFonts();
54 void SetupStyles();
55 void SetupColors();
56 bool OnWindowResize(Events::BaseEvent* ev);
57 void PerformResize();
58 private:
59 bool queueResize = false;
60 EngineCore* engineCore = nullptr;
61 ImguiInput* input = nullptr;
62 SceneHeirarchyPanel* sceneHeirarchyPanel = nullptr;
63 AssetBrowserPanel* assetBrowserPanel = nullptr;
64 AssetPicker* assetPicker = nullptr;
65 Settings::UserSettingsWindow* userSettingsWindow = nullptr;
66 Settings::ProjectSettingsWindow* projectSettingsWindow = nullptr;
67 InspectorPanel* inspectorPanel = nullptr;
68 ViewportPanel* viewportPanel = nullptr;
69 ConsolePanel* consolePanel = nullptr;
70 SystemPanel* systemPanel = nullptr;
71 StatsPanel* statsPanel = nullptr;
72 BuildPopup* buildPopup = nullptr;
73 ControlBar* controlBar = nullptr;
74 StatusBar* statusBar = nullptr;
75 Menubar* menubar = nullptr;
76 ImguiRenderer* imguiRenderer = nullptr;
77 TracingPanel* tracingPanel = nullptr;
78
79 std::string imguiIniFile;
80 std::string imguiLogFile;
81 };
82 }
83 }
84}
Definition AssetBrowserPanel.hpp:23
Definition ConsolePanel.hpp:19
Definition ImguiRenderer.hpp:12
Definition InspectorPanel.hpp:15
Definition SceneHeirarchyPanel.hpp:28
Definition ViewportPanel.hpp:15
Definition EngineCore.hpp:58
Definition BaseEvent.hpp:7