37 lines
928 B
C++
37 lines
928 B
C++
#ifndef WINDOWMANAGER_H
|
|
#define WINDOWMANAGER_H
|
|
|
|
#include <string>
|
|
#include <GLFW/glfw3.h>
|
|
namespace OX
|
|
{
|
|
class WindowManager {
|
|
public:
|
|
WindowManager() = default;
|
|
~WindowManager();
|
|
|
|
bool Init(const std::string& title, int width, int height);
|
|
void Shutdown();
|
|
|
|
void PollEvents() const;
|
|
[[nodiscard]] bool ShouldClose() const;
|
|
|
|
void BeginFrame() const;
|
|
void EndFrame() const;
|
|
|
|
[[nodiscard]] GLFWwindow* GetHandle() const { return m_window; }
|
|
[[nodiscard]] int GetWidth() const { return m_width; }
|
|
[[nodiscard]] int GetHeight() const { return m_height; }
|
|
|
|
static void FramebufferSizeCallback(GLFWwindow* window, int width, int height);
|
|
|
|
private:
|
|
void SetSize(int width, int height);
|
|
|
|
GLFWwindow* m_window = nullptr;
|
|
int m_width = 1280;
|
|
int m_height = 720;
|
|
};
|
|
}
|
|
#endif // WINDOWMANAGER_H
|