#pragma once #include #include #include #include #include struct WindowSize { int Width, Height; WindowSize(): Width(0), Height(0){} WindowSize(int width, int height): Width(width), Height(height){} }; struct WindowData { std::string Title; WindowSize Size; WindowData(): Title("Ferx Engine"), Size(900, 600){} WindowData(const std::string& title, int width, int height): Title(title), Size(width, height){}; }; class Window { public: Window(); Window(const std::string& title, int width, int height); ~Window(); static Window Create(); static Window Create(const std::string& title, int width, int height); void Init(); GLFWwindow* GetWindow() const; const std::string& GetTitle() const; WindowSize GetSize(); void Shutdown() const; private: GLFWwindow* m_Window{}; WindowData m_Data; };