From c90fd88efea927201c5c50435ecddb1dcae61eec Mon Sep 17 00:00:00 2001 From: Robert Date: Sat, 16 May 2020 19:50:40 +0200 Subject: [PATCH] Added event polling --- SDLU/graphics/RenderWindow.cpp | 17 +++++++++++++++++ SDLU/graphics/RenderWindow.hpp | 2 ++ 2 files changed, 19 insertions(+) diff --git a/SDLU/graphics/RenderWindow.cpp b/SDLU/graphics/RenderWindow.cpp index 59317c8..1e40e7b 100644 --- a/SDLU/graphics/RenderWindow.cpp +++ b/SDLU/graphics/RenderWindow.cpp @@ -46,4 +46,21 @@ namespace sdlu { return !IS_NULLPTR(m_pWindow); } + + bool RenderWindow::PollEvent(SDL_Event& event) + { + // Handle events before the user in case a derived + // class decides to block the event. + while (SDL_PollEvent(&event)) + { + switch(event.type) + { + case SDL_WINDOWEVENT_RESIZED: OnResize() ? break : return true; + default: return true; + } + } + + event = NULL; + return false; + } } \ No newline at end of file diff --git a/SDLU/graphics/RenderWindow.hpp b/SDLU/graphics/RenderWindow.hpp index 6decc28..fcdbe25 100644 --- a/SDLU/graphics/RenderWindow.hpp +++ b/SDLU/graphics/RenderWindow.hpp @@ -64,6 +64,8 @@ namespace sdlu */ bool IsOpen(); + bool PollEvent(SDL_Event& event); + protected: SDL_Window* m_pWindow; ///< A pointer to the window object SDL_Renderer* m_pRenderer; ///< A pointer to the renderer object