// =========================================================================== // (C) 1999 Vienna University of Technology // =========================================================================== // NAME: BenchTimer // TYPE: c++ header // PROJECT: Urban Viz/yare (yet another rendering engine) // CONTENT: Very accurate timer for Win32 systems // (uses QueryPerformanceCounter, usually microseconds) // VERSION: 0.1 // =========================================================================== // AUTHORS: mw Michael Wimmer // =========================================================================== // HISTORY: // // 15-jul-99 14:00:00 mw created // =========================================================================== // $Header: /usr/local/cvsyare/cvsyare/src/yareutils/BenchTimer.h,v 1.1 2002/09/24 16:53:56 wimmer Exp $ // =========================================================================== #ifndef NO_PRAGMA_ONCE #pragma once #endif #ifndef _BENCHTIMER_H #define _BENCHTIMER_H #ifdef WIN32 #if !(_MSC_VER >= 1200) #define __forceinline inline #endif // we definitely want timers to be inlined! #define PERFTIMER_INLINE __forceinline #define WIN32_LEAN_AND_MEAN #define NOMINMAX #include // for LARGE_INTEGER #define PERFTIMER BenchTimer #define TIMEVAL_T LARGE_INTEGER #define TIMEVAL_ZERO(__timval) (__timval).QuadPart = 0; #define TIMEVAL_GET(__timval) QueryPerformanceCounter(&__timval); #define TIMEVAL_TODOUBLE(__timval) ((double)__timval.QuadPart / (double)frequency.QuadPart) #define TIMEVAL_ASSIGN(__timval1, __timval2) __timval1.QuadPart = __timval2.QuadPart; #define TIMEVAL_ADD(total, end, start) \ if (end.QuadPart > start.QuadPart) \ total.QuadPart += end.QuadPart - start.QuadPart; \ else \ total.QuadPart += MAXLONGLONG - end.QuadPart + start.QuadPart; #include "PerfTimerSkeleton.h" #else #define DUMMY_TIMER #include "PerfTimerSkeleton.h" #undef DUMMY_TIMER #endif #undef PERFTIMER #undef TIMEVAL_ZERO //#undef TIMEVAL_GET #undef TIMEVAL_TODOUBLE #undef TIMEVAL_ASSIGN //#undef TIMEVAL_ADD #endif // _BENCHTIMER_H