summary refs log tree commit diff
path: root/src/GFX/Window.hpp
blob: 86920b5819fb41d20bedb824dd728be2df658671 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#pragma once

#include <string>
#include <GLFW/glfw3.h>
#include "../Common/Pure.hpp"
#include "../Common/Sizes.hpp"

namespace MC::GFX {

class Window {
public:
    Window(std::string const& title, U32 width, U32 height);
    ~Window();

    PURE GLFWwindow* get() const;

    void on_size_change(void (* callback)(GLFWwindow*, I32, I32)) const;

    void attach() const;
    void detach() const;

    void close() const;
    void start_render() const;
    void poll_events() const;

    PURE Bool should_close() const;
private:
    GLFWwindow* m_window;
};

}