diff options
Diffstat (limited to 'src/utils')
-rw-r--r-- | src/utils/sdl2helper.cpp | 11 | ||||
-rw-r--r-- | src/utils/sdl2helper.h | 4 | ||||
-rw-r--r-- | src/utils/sdlhelper.cpp | 10 | ||||
-rw-r--r-- | src/utils/sdlhelper.h | 4 |
4 files changed, 29 insertions, 0 deletions
diff --git a/src/utils/sdl2helper.cpp b/src/utils/sdl2helper.cpp index 7648ccc2b..da5b15e41 100644 --- a/src/utils/sdl2helper.cpp +++ b/src/utils/sdl2helper.cpp @@ -30,6 +30,7 @@ PRAGMA48(GCC diagnostic push) PRAGMA48(GCC diagnostic ignored "-Wshadow") +#include <SDL_events.h> #include <SDL_syswm.h> PRAGMA48(GCC diagnostic pop) @@ -194,4 +195,14 @@ void SDL::WaitThread(SDL_Thread *const thread) SDL_WaitThread(thread, nullptr); } +bool SDL::PollEvent(SDL_Event *event) +{ + SDL_PumpEvents(); + return SDL_PeepEvents(event, + 1, + SDL_GETEVENT, + SDL_FIRSTEVENT, + SDL_LASTEVENT) > 0; +} + #endif // USE_SDL2 diff --git a/src/utils/sdl2helper.h b/src/utils/sdl2helper.h index 089bbbfab..d1b474d50 100644 --- a/src/utils/sdl2helper.h +++ b/src/utils/sdl2helper.h @@ -31,6 +31,8 @@ PRAGMA48(GCC diagnostic ignored "-Wshadow") #include <SDL_thread.h> PRAGMA48(GCC diagnostic pop) +union SDL_Event; + struct SDL_Surface; struct SDL_SysWMinfo; struct SDL_Window; @@ -65,6 +67,8 @@ namespace SDL void initLogger(); void WaitThread(SDL_Thread *const thread); + + bool PollEvent(SDL_Event *event); } // namespace SDL #endif // USE_SDL2 diff --git a/src/utils/sdlhelper.cpp b/src/utils/sdlhelper.cpp index 324779898..2e3576578 100644 --- a/src/utils/sdlhelper.cpp +++ b/src/utils/sdlhelper.cpp @@ -33,6 +33,7 @@ PRAGMA48(GCC diagnostic push) PRAGMA48(GCC diagnostic ignored "-Wshadow") +#include <SDL_events.h> #include <SDL_syswm.h> #include <SDL_video.h> PRAGMA48(GCC diagnostic pop) @@ -192,4 +193,13 @@ void SDL::WaitThread(SDL_Thread *const thread) SDL_WaitThread(thread, nullptr); } +bool SDL::PollEvent(SDL_Event *event) +{ + SDL_PumpEvents(); + return SDL_PeepEvents(event, + 1, + SDL_GETEVENT, + SDL_ALLEVENTS) > 0; +} + #endif // USE_SDL2 diff --git a/src/utils/sdlhelper.h b/src/utils/sdlhelper.h index abb3934cb..67a979da3 100644 --- a/src/utils/sdlhelper.h +++ b/src/utils/sdlhelper.h @@ -35,6 +35,8 @@ PRAGMA48(GCC diagnostic ignored "-Wshadow") #include <SDL_thread.h> PRAGMA48(GCC diagnostic pop) +union SDL_Event; + struct SDL_Surface; struct SDL_SysWMinfo; @@ -71,6 +73,8 @@ namespace SDL void initLogger(); void WaitThread(SDL_Thread *const thread); + + bool PollEvent(SDL_Event *event); } // namespace SDL #endif // USE_SDL2 |