#pragma once #include #include #include #include namespace td { class Display { public: utils::Signal OnAspectRatioChange; utils::Signal OnKeyDown; Display(int a_Width, int a_Height, const std::string& a_Title); ~Display(); void PollEvents(); void Update(); bool IsCloseRequested() { return m_ShouldClose; } float GetAspectRatio() { return m_AspectRatio; } int GetWindowWidth() { return m_LastWidth; } int GetWindowHeight() { return m_LastHeight; } private: SDL_Window* m_Window; SDL_GLContext m_GLContext; int m_LastWidth, m_LastHeight; float m_AspectRatio; bool m_ShouldClose; }; } // namespace td