/* * TowerGUI.h * * Created on: 5 nov. 2020 * Author: Persson-dev */ #pragma once #include struct SDL_Window; typedef void* SDL_GLContext; namespace td { namespace client { class Client; } // namespace client namespace gui { class MainMenu; class GameMenu; class FrameMenu; class UpdateMenu; } // namespace gui namespace render { class Renderer; class TowerGui { private: SDL_Window* m_Window; SDL_GLContext m_GlContext; td::render::Renderer* m_Renderer; std::unique_ptr m_Client; std::unique_ptr m_MainMenu; std::unique_ptr m_GameMenu; std::unique_ptr m_FrameMenu; std::unique_ptr m_UpdateMenu; public: TowerGui(SDL_Window* wndow, SDL_GLContext glContext, td::render::Renderer* renderer); ~TowerGui(); void render(); private: void initWidgets(); void tick(); void beginFrame(); void endFrame(); }; } // namespace render } // namespace td