diff options
author | DRC <dcommander@users.sourceforge.net> | 2009-04-03 12:04:24 +0000 |
---|---|---|
committer | DRC <dcommander@users.sourceforge.net> | 2009-04-03 12:04:24 +0000 |
commit | e34390b8f76c5b5ab6d16df2e3283f89c9a77b96 (patch) | |
tree | 4d88f93ae6cdf5b31022d1e70bafd0b88e4814eb /common/jpeg/rrtimer.h | |
parent | 8ca81ec4d351c6c5701f6b6435434d7a968dc4b6 (diff) | |
download | tigervnc-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.h | 114 |
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 + |