/*
=======================================================================
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
}