1 #pragma once 2 #include <MTTypes.h> 3 #include <MTPlatform.h> 4 5 #define UNUSED(T) 6 7 template<class T> 8 T Min(T a, T b) 9 { 10 return a < b ? a : b; 11 } 12 13 template<class T> 14 T Max(T a, T b) 15 { 16 return a < b ? b : a; 17 } 18 19 template<class T> 20 T Clamp(T val, T min, T max) 21 { 22 return Min(max, Max(min, val)); 23 } 24 25 namespace MT 26 { 27 class Timer 28 { 29 uint64 startMicroSeconds; 30 public: 31 Timer() : startMicroSeconds(MT::GetTimeMicroSeconds()) 32 { 33 } 34 35 uint32 GetPastMicroSeconds() const 36 { 37 return (uint32)(MT::GetTimeMicroSeconds() - startMicroSeconds); 38 } 39 40 uint32 GetPastMilliSeconds() const 41 { 42 return (uint32)((MT::GetTimeMicroSeconds() - startMicroSeconds) / 1000); 43 } 44 }; 45 } 46 47