#pragma once #ifndef _IMGUI_MANAGER_H_ #define _IMGUI_MANAGER_H_ #include "Logger.h" #include #include #include #include class ApplicationClass; class imguiManager { public: imguiManager(); ~imguiManager(); bool Initialize(HWND hwnd, ID3D11Device* device, ID3D11DeviceContext* deviceContext); void Shutdown(); void Render(); void NewFrame(); void SetupDockspace(); // Widgets void WidgetSpeedSlider(float* speed); void WidgetButton(); void WidgetFPS(); void WidgetAddObject(ApplicationClass* app); void WidgetObjectWindow(ApplicationClass* app); void WidgetTerrainWindow(ApplicationClass* app); void WidgetLightWindow(ApplicationClass* app); void WidgetShaderWindow(ApplicationClass* app); void WidgetEngineSettingsWindow(ApplicationClass* app); void WidgetRenderWindow(ApplicationClass* app, ImVec2 availableSize); void WidgetLogWindow(ApplicationClass* app); bool ImGuiWidgetRenderer(ApplicationClass* app); void SetWindowSize(ImVec2 size) { windowSize = size; } ImVec2 GetWindowSize() const { return windowSize; } // Shader toggles bool m_EnableCelShading; private : bool showObjectWindow = false; bool showTerrainWindow = false; bool showLightWindow = false; bool showShaderWindow = false; bool showEngineSettingsWindow = false; bool showLogWindow = false; bool m_isPhyiscsEnabled = false; ImGuiIO* io; ID3D11Device* m_device; ID3D11DeviceContext* m_deviceContext; ImVec2 windowSize; }; #endif