/* ======================================================================= This file is part of Redman's RT. Redman's RT is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Redman's RT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Redman's RT. If not, see . ======================================================================= */ #include "common.h" #ifdef PLATFORM_POSIX #include #endif // U_Clock: measure time with 1ms precision uint64_t U_Clock( void ) { return SDL_GetTicks( ); } // U_Microclock: measure time with 1us precision uint64_t U_Microclock( void ) { #ifdef PLATFORM_POSIX struct timespec t; clock_gettime( CLOCK_MONOTONIC, &t ); return t.tv_sec * 1000000 + t.tv_nsec / 1000; #else //TODO: win32 timers here return SDL_GetTicks( ) * 1000; #endif } // U_Nanoclock: measure time with 1ns precision uint64_t U_Nanoclock( void ) { #ifdef PLATFORM_POSIX struct timespec t; clock_gettime( CLOCK_MONOTONIC, &t ); return t.tv_sec * 1000000000 + t.tv_nsec; #else //TODO: win32 timers here return SDL_GetTicks( ) * 1000000; #endif }