From dfc9a9b37d544d3a357b560829d2a9a48e5e5f5b Mon Sep 17 00:00:00 2001 From: ladevieq Date: Sat, 16 Jan 2021 23:22:30 +0100 Subject: Add windows window event loop --- src/window.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'src/window.cpp') 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 -- cgit v1.3