nuclear@0: #include "timing.h" nuclear@0: nuclear@0: Timer::Timer() { nuclear@0: QueryPerformanceFrequency(&freq); nuclear@0: PauseTime.QuadPart = 0; nuclear@0: paused = false; nuclear@0: } nuclear@0: nuclear@0: void Timer::Start() { nuclear@0: PauseTime.QuadPart = 0; nuclear@0: QueryPerformanceCounter(&start); nuclear@0: } nuclear@0: nuclear@0: void Timer::Stop() { nuclear@0: QueryPerformanceCounter(&LastStop); nuclear@0: } nuclear@0: nuclear@0: void Timer::Resume() { nuclear@0: LARGE_INTEGER resume; nuclear@0: nuclear@0: QueryPerformanceCounter(&resume); nuclear@0: nuclear@0: PauseTime.QuadPart += resume.QuadPart - LastStop.QuadPart; nuclear@0: } nuclear@0: nuclear@0: nuclear@0: unsigned long Timer::GetTicks() const { nuclear@0: LARGE_INTEGER ticks; nuclear@0: nuclear@0: QueryPerformanceCounter(&ticks); nuclear@0: return (unsigned long)(ticks.QuadPart - start.QuadPart - PauseTime.QuadPart); nuclear@0: } nuclear@0: nuclear@0: unsigned long Timer::GetSec() const { nuclear@0: LARGE_INTEGER ticks; nuclear@0: nuclear@0: QueryPerformanceCounter(&ticks); nuclear@0: return (unsigned long)((ticks.QuadPart - start.QuadPart - PauseTime.QuadPart)/freq.QuadPart); nuclear@0: } nuclear@0: nuclear@0: unsigned long Timer::GetMilliSec() const { nuclear@0: LARGE_INTEGER ticks; nuclear@0: nuclear@0: QueryPerformanceCounter(&ticks); nuclear@0: return (unsigned long)((ticks.QuadPart - start.QuadPart - PauseTime.QuadPart)/(freq.QuadPart/1000)); nuclear@0: }