16 std::function<void(GLFWwindow *,
int,
int)> resizeCallback;
17 std::function<void(GLFWwindow *,
int,
int,
int,
int)> keyCallback =
nullptr;
18 std::function<void(GLFWwindow *,
int,
int,
int)> mouseButtonCallback =
nullptr;
19 std::function<void(GLFWwindow *,
double,
double)> cursorPosCallback =
nullptr;
36 class Window :
public Layer {
42 inline GLFWwindow *getContext()
const {
return this->m_context; }
44 inline Pair<float> getSize()
const {
return this->m_settings.size; }
46 inline float getWidth()
const {
return this->m_settings.size.x; }
47 void setWidth(
const float &val) { this->m_settings.size.x = val; }
49 inline float getHeight()
const {
return this->m_settings.size.y; }
50 void setHeight(
const float &val) { this->m_settings.size.y = val; }
53 bool isVsyncEnabled()
const;
55 void addClearMask(
const unsigned int &val) { this->m_clearMask |= val; }
57 void setResizeCallback(std::function<
void(GLFWwindow *,
int,
int)> &&func);
58 void execResizeCallback(GLFWwindow *context,
const int &width,
const int &height);
60 void setKeysCallback(std::function<
void(GLFWwindow *,
int,
int,
int,
int)> &&func);
61 void execKeysCallback(GLFWwindow *context,
const int &key,
const int &code,
const int &action,
const int &mods);
63 void setMouseButtonCallback(std::function<
void(GLFWwindow *,
int,
int,
int)> &&func);
64 void execMouseButtonCallback(GLFWwindow *context,
const int &button,
const int &action,
const int &mods);
66 void setCursorPosCallback(std::function<
void(GLFWwindow *,
double,
double)> &&func);
67 void execCursorPosCallback(GLFWwindow *context,
const double &xpos,
const double &ypos);
69 virtual void onAttach()
override;
70 virtual void onDetach()
override;
72 virtual void onUpdate()
override;
73 virtual void onRender()
override;
75 virtual void begin()
override;
76 virtual void end()
override;
79 GLFWwindow *m_context =
nullptr;
81 unsigned int m_clearMask = 0;
85 void updateUserPointer();