diff options
Diffstat (limited to 'src/Utility.hpp')
-rw-r--r-- | src/Utility.hpp | 56 |
1 files changed, 38 insertions, 18 deletions
diff --git a/src/Utility.hpp b/src/Utility.hpp index e8c508d..9b90cb9 100644 --- a/src/Utility.hpp +++ b/src/Utility.hpp @@ -11,18 +11,38 @@ using Uuid = std::vector<unsigned char>; template<class T> void endswap(T *objp) { - unsigned char *memp = reinterpret_cast<unsigned char *>(objp); - std::reverse(memp, memp + sizeof(T)); + unsigned char *memp = reinterpret_cast<unsigned char *>(objp); + std::reverse(memp, memp + sizeof(T)); } template<class T> void endswap(T &obj) { - unsigned char *raw = reinterpret_cast<unsigned char *>(&obj); - std::reverse(raw, raw + sizeof(T)); + unsigned char *raw = reinterpret_cast<unsigned char *>(&obj); + std::reverse(raw, raw + sizeof(T)); +} + +template<typename T> +T _min(T a, T b) { + return (a > b) ? b : a; +} + +template<typename T, typename... Args> +T _min(T a, T b, Args... args) { + return _min(a > b ? b : a, args...); +} + +template<typename T> +T _max(T a, T b) { + return (a > b) ? a : b; +} + +template<typename T, typename... Args> +T _max(T a, T b, Args... args) { + return _max(a > b ? a : b, args...); } inline void endswap(unsigned char *arr, size_t arrLen) { - std::reverse(arr, arr + arrLen); + std::reverse(arr, arr + arrLen); } GLenum glCheckError_(const char *file, int line); @@ -30,27 +50,27 @@ GLenum glCheckError_(const char *file, int line); class LoopExecutionTimeController { - using clock = std::chrono::steady_clock ; - using timePoint = std::chrono::time_point<clock>; - using duration = std::chrono::duration<double,std::milli>; - timePoint previousUpdate; + using clock = std::chrono::steady_clock ; + using timePoint = std::chrono::time_point<clock>; + using duration = std::chrono::duration<double,std::milli>; + timePoint previousUpdate; timePoint previousPreviousUpdate; - duration delayLength; - unsigned long long iterations=0; + duration delayLength; + unsigned long long iterations=0; public: - LoopExecutionTimeController(duration delayLength); + LoopExecutionTimeController(duration delayLength); - ~LoopExecutionTimeController(); + ~LoopExecutionTimeController(); - void SetDelayLength(duration length); + void SetDelayLength(duration length); - unsigned long long GetIterations(); + unsigned long long GetIterations(); - void Update(); + void Update(); - double GetDeltaMs(); + double GetDeltaMs(); - duration GetDelta(); + duration GetDelta(); double GetDeltaS(); |