From 351ab9aa02b6f2c5d9338ae43f842cdb790c5984 Mon Sep 17 00:00:00 2001 From: David Ludwig Date: Sun, 14 Apr 2013 11:45:01 -0400 Subject: [PATCH] WinRT: hack-fixed C++/CX compile errors regarding the 'generic' field in SDL_Event, which conflicts with a C++/CX keyword --- include/begin_code.h | 5 +++++ include/close_code.h | 5 +++++ src/events/SDL_events.c | 9 +++++++++ 3 files changed, 19 insertions(+) diff --git a/include/begin_code.h b/include/begin_code.h index 0a4b4a65c..11820bb41 100644 --- a/include/begin_code.h +++ b/include/begin_code.h @@ -148,3 +148,8 @@ #endif #endif /* NULL */ #endif /* ! Mac OS X - breaks precompiled headers */ + +/* HACK: Make sure C++/CX works when compiling WinRT code */ +#if defined(__WINRT__) +#define generic generic_ +#endif diff --git a/include/close_code.h b/include/close_code.h index 410060370..3867d36b3 100644 --- a/include/close_code.h +++ b/include/close_code.h @@ -35,3 +35,8 @@ #endif #pragma pack(pop) #endif /* Compiler needs structure packing set */ + +/* Revert hack used to get C++/CX (WinRT) code compiling. */ +#if defined(__WINRT__) +#undef generic +#endif diff --git a/src/events/SDL_events.c b/src/events/SDL_events.c index ade28a697..888cc86fa 100644 --- a/src/events/SDL_events.c +++ b/src/events/SDL_events.c @@ -33,6 +33,15 @@ #endif #include "../video/SDL_sysvideo.h" +/* HACK: Make sure the 'generic' field in SDL_Event works on + WinRT, whereby 'generic' is redefined as 'generic_', in order to + allow SDL.h to be included in code compiled with Microsoft's + C++/CX extension. +*/ +#if defined(__WINRT__) +#define generic generic_ +#endif + /* Public data -- the event filter */ SDL_EventFilter SDL_EventOK = NULL; void *SDL_EventOKParam;