From 6720dba0f95fc6929201e80fdcb64c825eefe148 Mon Sep 17 00:00:00 2001 From: David Ludwig Date: Sun, 28 Oct 2012 20:04:26 -0400 Subject: [PATCH] WinRT: made SDL_PumpEvents() work, in theory --- VisualC/SDL/SDL_VS2012_WinRT.vcxproj | 9 ++++++++- src/video/windowsrt/SDL_WinRTApp.cpp | 5 ++++- src/video/windowsrt/SDL_WinRTApp.h | 1 + src/video/windowsrt/SDL_winrtevents.cpp | 8 ++++---- 4 files changed, 17 insertions(+), 6 deletions(-) diff --git a/VisualC/SDL/SDL_VS2012_WinRT.vcxproj b/VisualC/SDL/SDL_VS2012_WinRT.vcxproj index 18123fa86..fd95bea51 100644 --- a/VisualC/SDL/SDL_VS2012_WinRT.vcxproj +++ b/VisualC/SDL/SDL_VS2012_WinRT.vcxproj @@ -125,7 +125,14 @@ true true - + + true + true + true + true + true + true + true diff --git a/src/video/windowsrt/SDL_WinRTApp.cpp b/src/video/windowsrt/SDL_WinRTApp.cpp index 12593b425..662d72281 100644 --- a/src/video/windowsrt/SDL_WinRTApp.cpp +++ b/src/video/windowsrt/SDL_WinRTApp.cpp @@ -88,8 +88,11 @@ void SDL_WinRTApp::Run() char **argv = NULL; SDL_WinRT_main(argc, argv); } +} - while (!m_windowClosed) +void SDL_WinRTApp::PumpEvents() +{ + if (!m_windowClosed) { if (m_windowVisible) { diff --git a/src/video/windowsrt/SDL_WinRTApp.h b/src/video/windowsrt/SDL_WinRTApp.h index 866da4be6..a6358822e 100644 --- a/src/video/windowsrt/SDL_WinRTApp.h +++ b/src/video/windowsrt/SDL_WinRTApp.h @@ -21,6 +21,7 @@ ref class SDL_WinRTApp sealed : public Windows::ApplicationModel::Core::IFramewo internal: // SDL-specific methods SDL_DisplayMode GetMainDisplayMode(); + void PumpEvents(); protected: // Event Handlers. diff --git a/src/video/windowsrt/SDL_winrtevents.cpp b/src/video/windowsrt/SDL_winrtevents.cpp index d774f05b1..f445b8b65 100644 --- a/src/video/windowsrt/SDL_winrtevents.cpp +++ b/src/video/windowsrt/SDL_winrtevents.cpp @@ -22,18 +22,18 @@ #if SDL_VIDEO_DRIVER_WINRT -/* Being a null driver, there's no event stream. We just define stubs for - most of the API. */ - #include "../../events/SDL_events_c.h" #include "SDL_winrtvideo.h" #include "SDL_winrtevents_c.h" +#include "SDL_WinRTApp.h" + +extern SDL_WinRTApp ^ SDL_WinRTGlobalApp; void WINRT_PumpEvents(_THIS) { - /* do nothing. */ + SDL_WinRTGlobalApp->PumpEvents(); } #endif /* SDL_VIDEO_DRIVER_WINRT */