#pragma once // Include Windows.h before GLFW to avoid macro redefinition warnings. #define WIN32_LEAN_AND_MEAN #include #define GLFW_INCLUDE_NONE // Do not include OpenGL headers. #include namespace dx { class Window { public: ~Window(); /// Creates the window. bool Initialise(int width, int height, const char* title); /// Returns the native window handle. /// If the window has not been initialized, returns an invalid handle. HWND GetWindowHandle(); /// Updates the window by polling for user input. void Update(); /// Returns true if the user tried to close the window, false otherwise. bool ShouldClose() const; private: GLFWwindow* m_window = nullptr; }; /// Initialise the window subsystem. /// /// This function must be called at the start of your application before any /// Windows are created. bool WindowInitialise(); /// Terminate the window subsystem. /// /// This function should be called at the end of your application. Any existing /// Windows are destroyed and are invalid beyond this call. void WindowTerminate(); /// Returns the last Window error. const char* GetWindowError(); } // namespace dx