summaryrefslogtreecommitdiff
path: root/src/utils
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2017-09-08 19:38:59 +0300
committerAndrei Karas <akaras@inbox.ru>2017-09-08 19:38:59 +0300
commitf1e48fffe3c224ee81cdc1f85dbd0179b202d457 (patch)
treea180b55377204e85c52a4accf35ecc964f2d2cca /src/utils
parent29557a45208b1576e293427090360f6d794ea6b3 (diff)
downloadmanaverse-f1e48fffe3c224ee81cdc1f85dbd0179b202d457.tar.gz
manaverse-f1e48fffe3c224ee81cdc1f85dbd0179b202d457.tar.bz2
manaverse-f1e48fffe3c224ee81cdc1f85dbd0179b202d457.tar.xz
manaverse-f1e48fffe3c224ee81cdc1f85dbd0179b202d457.zip
Split SDL_WaitEventTimeout/SDL_PollEvent into lower level SDL function calls.
Diffstat (limited to 'src/utils')
-rw-r--r--src/utils/sdl2helper.cpp11
-rw-r--r--src/utils/sdl2helper.h4
-rw-r--r--src/utils/sdlhelper.cpp10
-rw-r--r--src/utils/sdlhelper.h4
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