aboutsummaryrefslogtreecommitdiffstats
path: root/src/window.cpp
diff options
context:
space:
mode:
authorladevieq <ladevie.quentin@gmail.com>2021-01-16 23:22:30 +0100
committerladevieq <ladevie.quentin@gmail.com>2021-01-16 23:25:16 +0100
commitdfc9a9b37d544d3a357b560829d2a9a48e5e5f5b (patch)
treeed7233644518f134081ca2878b526ae90812e130 /src/window.cpp
parentc4ed9a51d9630ceb87d5e4a256aee6cbdb82b0b9 (diff)
Add windows window event loop
Diffstat (limited to 'src/window.cpp')
-rw-r--r--src/window.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/window.cpp b/src/window.cpp
index a55a439..489473b 100644
--- a/src/window.cpp
+++ b/src/window.cpp
@@ -41,6 +41,7 @@ LRESULT CALLBACK window::window_procedure(HWND hwnd, UINT umsg, WPARAM wparam, L
SetWindowLongPtr(hwnd, GWLP_USERDATA, (LONG_PTR)win);
} else {
win = (window*)GetWindowLongPtr(hwnd, GWLP_USERDATA);
+ return win->message_handler(hwnd, umsg, wparam, lparam);
}
return DefWindowProc(hwnd, umsg, wparam, lparam);
@@ -82,4 +83,22 @@ window::window(uint32_t width, uint32_t height)
isOpen = true;
}
+
+void window::poll_events() {
+ MSG msg = {};
+
+ while (PeekMessage(&msg, nullptr, 0, 0, PM_REMOVE)) {
+ TranslateMessage(&msg);
+ DispatchMessage(&msg);
+ }
+}
+
+LRESULT window::message_handler(HWND hwnd, UINT umsg, WPARAM wparam, LPARAM lparam) {
+ switch(umsg) {
+ default:
+ return DefWindowProc(hwnd, umsg, wparam, lparam);
+ }
+
+ return 0;
+}
#endif