Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
WinRT: got timers working
- Loading branch information
|
@@ -94,8 +94,8 @@ |
|
|
<ClCompile Include="..\..\src\thread\stdcpp\SDL_syscond.cpp" /> |
|
|
<ClCompile Include="..\..\src\thread\stdcpp\SDL_sysmutex.cpp" /> |
|
|
<ClCompile Include="..\..\src\thread\stdcpp\SDL_systhread.cpp" /> |
|
|
<ClCompile Include="..\..\src\timer\dummy\SDL_systimer.c" /> |
|
|
<ClCompile Include="..\..\src\timer\SDL_timer.c" /> |
|
|
<ClCompile Include="..\..\src\timer\windows\SDL_systimer.c" /> |
|
|
<ClCompile Include="..\..\src\video\dummy\SDL_nullevents.c" /> |
|
|
<ClCompile Include="..\..\src\video\dummy\SDL_nullframebuffer.c" /> |
|
|
<ClCompile Include="..\..\src\video\dummy\SDL_nullvideo.c" /> |
|
|
|
@@ -154,10 +154,7 @@ typedef unsigned int uintptr_t; |
|
|
#define SDL_THREAD_STDCPP 1 |
|
|
|
|
|
/* Enable various timer systems */ |
|
|
// TODO, WinRT: look into getting SDL's pre-WinRT timers working. |
|
|
// Some functions there are supported in WinRT, others are not. |
|
|
//#define SDL_TIMER_WINDOWS 1 |
|
|
#define SDL_TIMERS_DISABLED 1 |
|
|
#define SDL_TIMER_WINDOWS 1 |
|
|
|
|
|
/* Enable various video drivers */ |
|
|
#define SDL_VIDEO_DRIVER_WINRT 1 |
|
|
|
@@ -48,16 +48,20 @@ SDL_StartTicks(void) |
|
|
#ifdef USE_GETTICKCOUNT |
|
|
start = GetTickCount(); |
|
|
#else |
|
|
#if 0 /* Apparently there are problems with QPC on Win2K */ |
|
|
#ifdef __WINRT__ /* Apparently there are problems with QPC on Win2K */ |
|
|
if (QueryPerformanceFrequency(&hires_ticks_per_second) == TRUE) { |
|
|
hires_timer_available = TRUE; |
|
|
QueryPerformanceCounter(&hires_start_ticks); |
|
|
} else |
|
|
#endif |
|
|
{ |
|
|
hires_timer_available = FALSE; |
|
|
#ifdef __WINRT__ |
|
|
start = 0; /* the timer failed to start! */ |
|
|
#else |
|
|
timeBeginPeriod(1); /* use 1 ms timer precision */ |
|
|
start = timeGetTime(); |
|
|
#endif |
|
|
} |
|
|
#endif |
|
|
} |
|
@@ -82,7 +86,11 @@ SDL_GetTicks(void) |
|
|
|
|
|
return (DWORD) hires_now.QuadPart; |
|
|
} else { |
|
|
#ifdef __WINRT__ |
|
|
now = 0; |
|
|
#else |
|
|
now = timeGetTime(); |
|
|
#endif |
|
|
} |
|
|
#endif |
|
|
|
|
@@ -116,6 +124,19 @@ SDL_GetPerformanceFrequency(void) |
|
|
return frequency.QuadPart; |
|
|
} |
|
|
|
|
|
#ifdef __WINRT__ |
|
|
static void |
|
|
Sleep(DWORD timeout) |
|
|
{ |
|
|
static HANDLE mutex = 0; |
|
|
if ( ! mutex ) |
|
|
{ |
|
|
mutex = CreateEventEx(0, 0, 0, EVENT_ALL_ACCESS); |
|
|
} |
|
|
WaitForSingleObjectEx(mutex, timeout, FALSE); |
|
|
} |
|
|
#endif |
|
|
|
|
|
void |
|
|
SDL_Delay(Uint32 ms) |
|
|
{ |
|
|