Skip to content

Commit

Permalink
WinRT: build fix for Visual C++ 2013 Update 4
Browse files Browse the repository at this point in the history
Visual C++ 2013 Update 4 re-introduced the Sleep() function to WinRT apps (for
code that targets Windows 8.1 and Windows Phone 8.1).  This led to a build
error, as SDL was defining it's own Sleep() function (to make up for the lack
of a public Sleep() function).  The fix makes sure that SDL's custom Sleep()
function is only used when Windows' Sleep() is not available.

Many thanks go out to Sergiu Marian Gaina for the fix!
  • Loading branch information
DavidLudwig committed Nov 15, 2014
1 parent 8366bbd commit e6cca5e
Showing 1 changed file with 13 additions and 1 deletion.
14 changes: 13 additions & 1 deletion src/timer/windows/SDL_systimer.c
Expand Up @@ -186,7 +186,19 @@ SDL_GetPerformanceFrequency(void)
return frequency.QuadPart;
}

#ifdef __WINRT__
/* Sleep() is not publicly available to apps in early versions of WinRT.
*
* Visual C++ 2013 Update 4 re-introduced Sleep() for Windows 8.1 and
* Windows Phone 8.1.
*
* Use the compiler version to determine availability.
*
* NOTE #1: _MSC_FULL_VER == 180030723 for Visual C++ 2013 Update 3.
* NOTE #2: Visual C++ 2013, when compiling for Windows 8.0 and
* Windows Phone 8.0, uses the Visual C++ 2012 compiler to build
* apps and libraries.
*/
#if defined(__WINRT__) && defined(_MSC_FULL_VER) && (_MSC_FULL_VER <= 180030723)
static void
Sleep(DWORD timeout)
{
Expand Down

0 comments on commit e6cca5e

Please sign in to comment.