summaryrefslogtreecommitdiffstats
path: root/common/jpeg/rrtimer.h
diff options
context:
space:
mode:
authorDRC <dcommander@users.sourceforge.net>2009-04-03 12:04:24 +0000
committerDRC <dcommander@users.sourceforge.net>2009-04-03 12:04:24 +0000
commite34390b8f76c5b5ab6d16df2e3283f89c9a77b96 (patch)
tree4d88f93ae6cdf5b31022d1e70bafd0b88e4814eb /common/jpeg/rrtimer.h
parent8ca81ec4d351c6c5701f6b6435434d7a968dc4b6 (diff)
downloadtigervnc-e34390b8f76c5b5ab6d16df2e3283f89c9a77b96.tar.gz
tigervnc-e34390b8f76c5b5ab6d16df2e3283f89c9a77b96.zip
Include low-level unit tests borrowed from VirtualGL
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@3745 3789f03b-4d11-0410-bbf8-ca57d06f2519
Diffstat (limited to 'common/jpeg/rrtimer.h')
-rw-r--r--common/jpeg/rrtimer.h114
1 files changed, 114 insertions, 0 deletions
diff --git a/common/jpeg/rrtimer.h b/common/jpeg/rrtimer.h
new file mode 100644
index 00000000..4db5e371
--- /dev/null
+++ b/common/jpeg/rrtimer.h
@@ -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
+