From b894a78385249c68344cd74d9bc456e962467381 Mon Sep 17 00:00:00 2001 From: raysan5 Date: Wed, 30 Dec 2015 13:34:45 +0100 Subject: [PATCH] Reviewed function GetCurrentTime() on WIN32 --- src/gestures.c | 41 ++++++++--------------------------------- 1 file changed, 8 insertions(+), 33 deletions(-) diff --git a/src/gestures.c b/src/gestures.c index f5e8c62f..77ea4262 100644 --- a/src/gestures.c +++ b/src/gestures.c @@ -35,10 +35,9 @@ #include // Defines int32_t, int64_t #if defined(_WIN32) - //#define WIN32_LEAN_AND_MEAN - //#include // ISSUE: Rectangle redeclared, CloseWindow/ShowCursor conflicting types -int __stdcall QueryPerformanceCounter(unsigned long long int *lpPerformanceCount); -int __stdcall QueryPerformanceFrequency(unsigned long long int *lpFrequency); + // Functions required to query time on Windows + int __stdcall QueryPerformanceCounter(unsigned long long int *lpPerformanceCount); + int __stdcall QueryPerformanceFrequency(unsigned long long int *lpFrequency); #elif defined(__linux) #include // Used for clock functions #endif @@ -500,38 +499,14 @@ static float VectorDotProduct(Vector2 v1, Vector2 v2) static double GetCurrentTime() { double time = 0; + #if defined(_WIN32) -/* - // NOTE: Requires Windows.h - FILETIME tm; - GetSystemTimePreciseAsFileTime(&tm); - ULONGLONG nowTime = ((ULONGLONG)tm.dwHighDateTime << 32) | (ULONGLONG)tm.dwLowDateTime; // Time provided in 100-nanosecond intervals + unsigned long long int clockFrequency, currentTime; - time = ((double)nowTime/10000000.0); // time in seconds -*/ -/* - double pcFreq = 0.0; - __int64 counterStart = 0; // In C99 defined a standard 64-bit integer type named int64_t and unsigned version uint64_t in stdint.h. + QueryPerformanceFrequency(&clockFrequency); + QueryPerformanceCounter(¤tTime); - //int64_t or uint64_t is type defined as long long or unsigned long long in C99's stdint.h. - - //LARGE_INTEGER li; // Represents a 64-bit signed integer value - //li.QuadPart // A signed 64-bit integer - - unsigned long long int li; // __int64, same as long long - if(!QueryPerformanceFrequency(&li)) return 0; - - pcFreq = (double)(li)/1000.0; - - QueryPerformanceCounter(&li); - counterStart = li; - - unsigned long long int tm; - QueryPerformanceCounter(&tm); - time = (double)(tm - counterStart)/pcFreq; -*/ - unsigned long long int tm, tf; - time = (double)(QueryPerformanceCounter(&tm)/QueryPerformanceFrequency(&tf)); // time in seconds + time = (double)currentTime/clockFrequency*1000.0f; // time in miliseconds #endif #if defined(__linux)