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_syscond.cpp" />
|
||||||
<ClCompile Include="..\..\src\thread\stdcpp\SDL_sysmutex.cpp" />
|
<ClCompile Include="..\..\src\thread\stdcpp\SDL_sysmutex.cpp" />
|
||||||
<ClCompile Include="..\..\src\thread\stdcpp\SDL_systhread.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\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_nullevents.c" />
|
||||||
<ClCompile Include="..\..\src\video\dummy\SDL_nullframebuffer.c" />
|
<ClCompile Include="..\..\src\video\dummy\SDL_nullframebuffer.c" />
|
||||||
<ClCompile Include="..\..\src\video\dummy\SDL_nullvideo.c" />
|
<ClCompile Include="..\..\src\video\dummy\SDL_nullvideo.c" />
|
||||||
|
|
|
@ -154,10 +154,7 @@ typedef unsigned int uintptr_t;
|
||||||
#define SDL_THREAD_STDCPP 1
|
#define SDL_THREAD_STDCPP 1
|
||||||
|
|
||||||
/* Enable various timer systems */
|
/* Enable various timer systems */
|
||||||
// TODO, WinRT: look into getting SDL's pre-WinRT timers working.
|
#define SDL_TIMER_WINDOWS 1
|
||||||
// Some functions there are supported in WinRT, others are not.
|
|
||||||
//#define SDL_TIMER_WINDOWS 1
|
|
||||||
#define SDL_TIMERS_DISABLED 1
|
|
||||||
|
|
||||||
/* Enable various video drivers */
|
/* Enable various video drivers */
|
||||||
#define SDL_VIDEO_DRIVER_WINRT 1
|
#define SDL_VIDEO_DRIVER_WINRT 1
|
||||||
|
|
|
@ -48,7 +48,7 @@ SDL_StartTicks(void)
|
||||||
#ifdef USE_GETTICKCOUNT
|
#ifdef USE_GETTICKCOUNT
|
||||||
start = GetTickCount();
|
start = GetTickCount();
|
||||||
#else
|
#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) {
|
if (QueryPerformanceFrequency(&hires_ticks_per_second) == TRUE) {
|
||||||
hires_timer_available = TRUE;
|
hires_timer_available = TRUE;
|
||||||
QueryPerformanceCounter(&hires_start_ticks);
|
QueryPerformanceCounter(&hires_start_ticks);
|
||||||
|
@ -56,8 +56,12 @@ SDL_StartTicks(void)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
hires_timer_available = FALSE;
|
hires_timer_available = FALSE;
|
||||||
|
#ifdef __WINRT__
|
||||||
|
start = 0; /* the timer failed to start! */
|
||||||
|
#else
|
||||||
timeBeginPeriod(1); /* use 1 ms timer precision */
|
timeBeginPeriod(1); /* use 1 ms timer precision */
|
||||||
start = timeGetTime();
|
start = timeGetTime();
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -82,7 +86,11 @@ SDL_GetTicks(void)
|
||||||
|
|
||||||
return (DWORD) hires_now.QuadPart;
|
return (DWORD) hires_now.QuadPart;
|
||||||
} else {
|
} else {
|
||||||
|
#ifdef __WINRT__
|
||||||
|
now = 0;
|
||||||
|
#else
|
||||||
now = timeGetTime();
|
now = timeGetTime();
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -116,6 +124,19 @@ SDL_GetPerformanceFrequency(void)
|
||||||
return frequency.QuadPart;
|
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
|
void
|
||||||
SDL_Delay(Uint32 ms)
|
SDL_Delay(Uint32 ms)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue