Index: third_party/libjpeg_turbo/rrtimer.h |
=================================================================== |
--- third_party/libjpeg_turbo/rrtimer.h (revision 0) |
+++ third_party/libjpeg_turbo/rrtimer.h (revision 0) |
@@ -0,0 +1,114 @@ |
+/* Copyright (C)2004 Landmark Graphics Corporation |
+ * Copyright (C)2005 Sun Microsystems, Inc. |
+ * |
+ * This library is free software and may be redistributed and/or modified under |
+ * the terms of the wxWindows Library License, Version 3.1 or (at your option) |
+ * any later version. The full license is in the LICENSE.txt file included |
+ * with this distribution. |
+ * |
+ * This library is distributed in the hope that it will be useful, |
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of |
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
+ * wxWindows Library License for more details. |
+ */ |
+ |
+#ifndef __RRTIMER_H__ |
+#define __RRTIMER_H__ |
+ |
+#ifdef __cplusplus |
+ |
+#ifdef _WIN32 |
+#include <windows.h> |
+#else |
+#include <sys/time.h> |
+#endif |
+ |
+class rrtimer |
+{ |
+ public: |
+ |
+ rrtimer(void) : t1(0.0) |
+ { |
+ #ifdef _WIN32 |
+ highres=false; tick=0.001; |
+ LARGE_INTEGER Frequency; |
+ if(QueryPerformanceFrequency(&Frequency)!=0) |
+ { |
+ tick=(double)1.0/(double)(Frequency.QuadPart); |
+ highres=true; |
+ } |
+ #endif |
+ } |
+ |
+ void start(void) |
+ { |
+ t1=time(); |
+ } |
+ |
+ double time(void) |
+ { |
+ #ifdef _WIN32 |
+ if(highres) |
+ { |
+ LARGE_INTEGER Time; |
+ QueryPerformanceCounter(&Time); |
+ return((double)(Time.QuadPart)*tick); |
+ } |
+ else |
+ return((double)GetTickCount()*tick); |
+ #else |
+ struct timeval __tv; |
+ gettimeofday(&__tv, (struct timezone *)NULL); |
+ return((double)(__tv.tv_sec)+(double)(__tv.tv_usec)*0.000001); |
+ #endif |
+ } |
+ |
+ double elapsed(void) |
+ { |
+ return time()-t1; |
+ } |
+ |
+ private: |
+ |
+ #ifdef _WIN32 |
+ bool highres; double tick; |
+ #endif |
+ double t1; |
+}; |
+ |
+#endif // __cplusplus |
+ |
+#ifdef _WIN32 |
+ |
+#include <windows.h> |
+ |
+__inline double rrtime(void) |
+{ |
+ LARGE_INTEGER Frequency, Time; |
+ if(QueryPerformanceFrequency(&Frequency)!=0) |
+ { |
+ QueryPerformanceCounter(&Time); |
+ return (double)Time.QuadPart/(double)Frequency.QuadPart; |
+ } |
+ else return (double)GetTickCount()*0.001; |
+} |
+ |
+#else |
+ |
+#include <sys/time.h> |
+ |
+#ifdef sun |
+#define __inline inline |
+#endif |
+ |
+static __inline double rrtime(void) |
+{ |
+ struct timeval __tv; |
+ gettimeofday(&__tv, (struct timezone *)NULL); |
+ return((double)__tv.tv_sec+(double)__tv.tv_usec*0.000001); |
+} |
+ |
+#endif |
+ |
+#endif |
+ |