3#include "../FoundationBase.h"
10 typedef double TimePerf;
13 typedef int64_t TimePerf;
18 COGSFOUNDATION_API TimePerf
perfTime();
24 COGSFOUNDATION_API Time currentTimeReference();
28 COGSFOUNDATION_API int64_t perfTimeToMilliseconds(TimePerf time);
29 COGSFOUNDATION_API
double perfTimeToSeconds(TimePerf time);
31 COGSFOUNDATION_API int64_t currentTimeToMicroseconds(Time time);
32 COGSFOUNDATION_API int64_t currentTimeToMilliseconds(Time time);
33 COGSFOUNDATION_API
double currentTimeToSeconds(Time time);
39 static inline Timer startNew()
58 int64_t elapsedMilliseconds() {
if(running) stopTime =
Cogs::perfTime();
return perfTimeToMilliseconds(scalePerfTime(stopTime - startTime)); }
59 double elapsedSeconds() {
if(running) stopTime =
Cogs::perfTime();
return perfTimeToSeconds(scalePerfTime(stopTime - startTime)); }
61 static int64_t currentTimeMicroseconds() {
return currentTimeToMicroseconds(
currentTime()); }
62 static int64_t currentTimeMilliseconds() {
return currentTimeToMilliseconds(
currentTime()); }
64#if defined(EMSCRIPTEN)
65 void setScale(int64_t s) { scale =
static_cast<double>(s) / 1000.0; }
66 void resetScale() { scale = 1.0; }
67 int64_t getScale()
const {
return static_cast<int64_t
>(1000.0 * scale); }
68 TimePerf scalePerfTime(TimePerf time) {
return time*scale; }
70 void setScale(int64_t s) { scale = s; }
71 void resetScale() { scale = 1000; }
72 int64_t getScale()
const {
return scale; }
73 TimePerf scalePerfTime(TimePerf time) {
return time*scale/1000; }
77 TimePerf startTime = {};
78 TimePerf stopTime = {};
79#if defined(EMSCRIPTEN)
Contains all Cogs related functionality.
COGSFOUNDATION_API int64_t perfTimeToMicroseconds(TimePerf time)
Convertion functions for timestamps.
COGSFOUNDATION_API TimePerf perfTime()
High resolution performance timer. Returns an implementation defined absolute timestamp,...
COGSFOUNDATION_API TimePerf perfTimeReference()
Functions that provide a reference time point at the start of the application startup....
COGSFOUNDATION_API Time currentTime()
High resolution clock time (NTP / UTC time). Returns an implementation defined absolute timestamp,...