1 #ifndef ODINAI_TIMER_H_
2 #define ODINAI_TIMER_H_
10 using namespace std::chrono;
33 if (!QueryPerformanceFrequency(&m_ticksPerSecond))
38 m_realFreq = 1.0 / (double)m_ticksPerSecond.QuadPart;
51 QueryPerformanceCounter(&m_gStartTime);
52 m_gElapsedTime = m_gStartTime;
54 m_gStartTime = high_resolution_clock::now();
55 m_gElapsedTime = m_gStartTime;
67 LARGE_INTEGER currentTime;
68 QueryPerformanceCounter(¤tTime);
70 T sec = (T)(currentTime.QuadPart - m_gElapsedTime.QuadPart) * m_realFreq;
71 m_gElapsedTime = currentTime;
74 TimePoint currentTime = high_resolution_clock::now();
75 duration<T> time_span = duration_cast< duration<T> >(currentTime - m_gElapsedTime);
76 m_gElapsedTime = currentTime;
77 return time_span.count();
88 LARGE_INTEGER currentTime;
89 QueryPerformanceCounter(¤tTime);
90 double milliSec = (double)(currentTime.QuadPart - m_gElapsedTime.QuadPart) / (double)m_ticksPerSecond.QuadPart;
92 m_gElapsedTime = currentTime;
94 return (T)(milliSec * 1000);
96 TimePoint currentTime = high_resolution_clock::now();
97 milliseconds time_span = duration_cast< milliseconds >(currentTime - m_gElapsedTime);
98 m_gElapsedTime = currentTime;
99 return (T)time_span.count();
110 LARGE_INTEGER currentTime;
111 QueryPerformanceCounter(¤tTime);
112 double milliSec = (double)(currentTime.QuadPart - m_gStartTime.QuadPart) / (double)m_ticksPerSecond.QuadPart;
114 return (T)(milliSec * 1000);
116 TimePoint currentTime = high_resolution_clock::now();
117 milliseconds time_span = duration_cast< milliseconds >(currentTime - m_gStartTime);
119 return (T)time_span.count();
129 QueryPerformanceCounter(&m_startTime);
130 m_elapsedTime = m_startTime;
132 m_startTime = high_resolution_clock::now();
133 m_elapsedTime = m_startTime;
145 LARGE_INTEGER currentTime;
146 QueryPerformanceCounter(¤tTime);
148 T sec = (T)(currentTime.QuadPart - m_elapsedTime.QuadPart) * m_realFreq;
149 m_elapsedTime = currentTime;
152 TimePoint currentTime = high_resolution_clock::now();
153 duration<T> time_span = duration_cast< duration<T> >(currentTime - m_elapsedTime);
154 m_elapsedTime = currentTime;
155 return time_span.count();
166 LARGE_INTEGER currentTime;
167 QueryPerformanceCounter(¤tTime);
168 double milliSec = (double)(currentTime.QuadPart - m_elapsedTime.QuadPart) / (double)m_ticksPerSecond.QuadPart;
170 m_elapsedTime = currentTime;
172 return (T)(milliSec * 1000);
174 TimePoint currentTime = high_resolution_clock::now();
175 milliseconds time_span = duration_cast<milliseconds>(currentTime - m_elapsedTime);
176 m_elapsedTime = currentTime;
177 return (T)time_span.count();
188 LARGE_INTEGER currentTime;
189 QueryPerformanceCounter(¤tTime);
190 double milliSec = (double)(currentTime.QuadPart - m_startTime.QuadPart) / (double)m_ticksPerSecond.QuadPart;
192 return (T)(milliSec * 1000);
194 TimePoint currentTime = high_resolution_clock::now();
195 milliseconds time_span = duration_cast<milliseconds>(currentTime - m_startTime);
196 return (T)time_span.count();
207 LARGE_INTEGER currentTime;
208 QueryPerformanceCounter(¤tTime);
209 T secs = (T)(currentTime.QuadPart - m_startTime.QuadPart) / (T)m_ticksPerSecond.QuadPart;
213 TimePoint currentTime = high_resolution_clock::now();
214 duration<T> time_span = duration_cast< duration<T> >(currentTime - m_startTime);
215 return time_span.count();
220 static LARGE_INTEGER m_gStartTime;
221 static LARGE_INTEGER m_ticksPerSecond;
222 static LARGE_INTEGER m_gElapsedTime;
223 static double m_realFreq;
225 LARGE_INTEGER m_startTime;
226 LARGE_INTEGER m_elapsedTime;
228 typedef high_resolution_clock::time_point TimePoint;
229 static TimePoint m_gStartTime;
230 static TimePoint m_gElapsedTime;
232 TimePoint m_startTime;
233 TimePoint m_elapsedTime;
static T GetGlobalElapsedMillisec()
Definition: Timer.h:85
T GetElapsedMillisec()
Definition: Timer.h:163
T GetTime()
Definition: Timer.h:204
static T GetGlobalElapsedTime()
Definition: Timer.h:64
void Reset()
Definition: Timer.h:126
T GetElapsedTime()
Definition: Timer.h:142
static void GlobalReset()
Definition: Timer.h:48
static T GetGlobalMillisec()
Definition: Timer.h:107
T GetMillisec()
Definition: Timer.h:185
static bool Init()
Definition: Timer.h:30