47 GR_CORE_INFO(
"Creating window {0} ({1}, {2})", props.Title, props.Width, props.Height);
52 int success = glfwInit();
59 m_Window = glfwCreateWindow((
int)props.Width, (
int)props.Height,
m_Data.
Title.c_str(),
nullptr,
nullptr);
70 glfwSetWindowSizeCallback(
m_Window, [](GLFWwindow* window,
int width,
int height)
72 WindowData& data = *(WindowData*)glfwGetWindowUserPointer(window);
76 WindowResizeEvent event(width, height);
77 data.EventCallback(event);
80 glfwSetWindowCloseCallback(
m_Window, [](GLFWwindow* window) {
81 WindowData& data = *(WindowData*)glfwGetWindowUserPointer(window);
82 WindowCloseEvent event;
83 data.EventCallback(event);
86 glfwSetKeyCallback(
m_Window, [](GLFWwindow* window,
int key,
int scancode,
int action,
int mods) {
87 WindowData& data = *(WindowData*)glfwGetWindowUserPointer(window);
91 KeyPressedEvent event(key, 0);
92 data.EventCallback(event);
96 KeyReleasedEvent event(key);
97 data.EventCallback(event);
101 KeyPressedEvent event(key, 1);
102 data.EventCallback(event);
108 glfwSetCharCallback(
m_Window, [](GLFWwindow* window,
unsigned int keycode) {
109 WindowData& data = *(WindowData*)glfwGetWindowUserPointer(window);
111 KeyTypedEvent event(keycode);
112 data.EventCallback(event);
115 glfwSetMouseButtonCallback(
m_Window, [](GLFWwindow* window,
int button,
int action,
int mods) {
116 WindowData& data = *(WindowData*)glfwGetWindowUserPointer(window);
121 MouseButtonPressedEvent event(button);
122 data.EventCallback(event);
126 MouseButtonReleasedEvent event(button);
127 data.EventCallback(event);
133 glfwSetScrollCallback(
m_Window, [](GLFWwindow* window,
double xOffset,
double yOffset) {
134 WindowData& data = *(WindowData*)glfwGetWindowUserPointer(window);
136 MouseScrolledEvent event((
float)xOffset, (
float)yOffset);
137 data.EventCallback(event);
140 glfwSetCursorPosCallback(
m_Window, [](GLFWwindow* window,
double xPos,
double yPos) {
141 WindowData& data = *(WindowData*)glfwGetWindowUserPointer(window);
143 MouseMovedEvent event((
float)xPos, (
float)yPos);
144 data.EventCallback(event);