WinRT: got timers working
This commit is contained in:
parent
afa31553cd
commit
a83b10fba8
3 changed files with 24 additions and 6 deletions
|
@ -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,7 +48,7 @@ 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);
|
||||
|
@ -56,8 +56,12 @@ SDL_StartTicks(void)
|
|||
#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)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue