// =========================================================================== // (C) 1999 Vienna University of Technology // =========================================================================== // NAME: BenchTimer // TYPE: c++ code // 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/cvsyamp/src/yareutils/BenchTimer.cpp,v 1.1 2002/11/14 15:22:58 wimmer Exp $ // =========================================================================== #ifdef WIN32 #include "BenchTimer.h" #include "merror.h" // --------------------------------------------------------------------------- // class BenchTimer implementation // --------------------------------------------------------------------------- LARGE_INTEGER BenchTimer::frequency; bool BenchTimer::isinitialized = false; bool BenchTimer::available = false; // this retrieves the timer frequency - will be called by constructor void BenchTimer::InitClass(bool verbose) { if (QueryPerformanceFrequency(&frequency)) { available = true; if (verbose) //OUT1(SV(double(frequency.QuadPart))); OUT1("QueryPerformanceCounter Frequency: " << double(frequency.QuadPart)); } else { EOUT("No high resolution perfomance counter installed!"); available = false; frequency.QuadPart = 1; } isinitialized = true; } /// returns the frequency double BenchTimer::GetFrequency(bool verbose) { if (!isinitialized) InitClass(verbose); return double(frequency.QuadPart); } #endif // WIN32