Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/timer.cc')
-rw-r--r--src/core/timer.cc14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/core/timer.cc b/src/core/timer.cc
index e5a808e..b614af1 100644
--- a/src/core/timer.cc
+++ b/src/core/timer.cc
@@ -8,6 +8,7 @@
#include <unistd.h>
#include <iostream>
+#include <cmath>
namespace core {
@@ -26,7 +27,7 @@ void Timer::mark()
gettimeofday(&timer_tick, &timer_tz);
}
-float Timer::elapsed()
+unsigned long Timer::timestamp()
{
struct timeval tick;
struct timezone tick_tz;
@@ -34,8 +35,15 @@ float Timer::elapsed()
gettimeofday(&tick, &tick_tz);
// calculate elapsed time in 10^-6 seconds
- long delta = (tick.tv_sec - timer_tick.tv_sec) * 1000000 + (tick.tv_usec - timer_tick.tv_usec);
- return( (float) delta / 1000000.0f);
+ unsigned long delta = 0;
+ delta = tick.tv_sec * 1000 + tick.tv_usec / 1000;
+ delta -= timer_tick.tv_sec * 1000 + timer_tick.tv_usec / 1000;
+ return delta;
+}
+
+float Timer::elapsed()
+{
+ return ((float) timestamp() / 1000.0f);
}
}