2
0
Эх сурвалжийг харах

Reviewed function GetCurrentTime() on WIN32

raysan5 9 жил өмнө
parent
commit
b894a78385
1 өөрчлөгдсөн 8 нэмэгдсэн , 33 устгасан
  1. 8 33
      src/gestures.c

+ 8 - 33
src/gestures.c

@@ -35,10 +35,9 @@
 #include <stdint.h>             // Defines int32_t, int64_t
 
 #if defined(_WIN32)
-    //#define WIN32_LEAN_AND_MEAN
-    //#include <Windows.h>        // 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 <time.h>           // 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
-    
-	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.
     
-    //int64_t or uint64_t is type defined as long long or unsigned long long in C99's stdint.h.
+#if defined(_WIN32)
+    unsigned long long int clockFrequency, currentTime;
     
-    //LARGE_INTEGER li; // Represents a 64-bit signed integer value
-    //li.QuadPart       // A signed 64-bit integer
+    QueryPerformanceFrequency(&clockFrequency);
+    QueryPerformanceCounter(&currentTime);
     
-    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)