#pragma once #include #include #define UNUSED(T) template T Min(T a, T b) { return a < b ? a : b; } template T Max(T a, T b) { return a < b ? b : a; } template T Clamp(T val, T min, T max) { return Min(max, Max(min, val)); } namespace MT { class Timer { uint64 startMicroSeconds; public: Timer() : startMicroSeconds(MT::GetTimeMicroSeconds()) { } uint32 GetPastMicroSeconds() const { return (uint32)(MT::GetTimeMicroSeconds() - startMicroSeconds); } uint32 GetPastMilliSeconds() const { return (uint32)((MT::GetTimeMicroSeconds() - startMicroSeconds) / 1000); } }; }