diff options
Diffstat (limited to 'src/engine/external/glfw/lib/x11/x11_time.c')
| -rw-r--r-- | src/engine/external/glfw/lib/x11/x11_time.c | 154 |
1 files changed, 0 insertions, 154 deletions
diff --git a/src/engine/external/glfw/lib/x11/x11_time.c b/src/engine/external/glfw/lib/x11/x11_time.c deleted file mode 100644 index 32ae9d9d..00000000 --- a/src/engine/external/glfw/lib/x11/x11_time.c +++ /dev/null @@ -1,154 +0,0 @@ -//======================================================================== -// GLFW - An OpenGL framework -// File: x11_time.c -// Platform: X11 (Unix) -// API version: 2.6 -// WWW: http://glfw.sourceforge.net -//------------------------------------------------------------------------ -// Copyright (c) 2002-2006 Camilla Berglund -// -// This software is provided 'as-is', without any express or implied -// warranty. In no event will the authors be held liable for any damages -// arising from the use of this software. -// -// Permission is granted to anyone to use this software for any purpose, -// including commercial applications, and to alter it and redistribute it -// freely, subject to the following restrictions: -// -// 1. The origin of this software must not be misrepresented; you must not -// claim that you wrote the original software. If you use this software -// in a product, an acknowledgment in the product documentation would -// be appreciated but is not required. -// -// 2. Altered source versions must be plainly marked as such, and must not -// be misrepresented as being the original software. -// -// 3. This notice may not be removed or altered from any source -// distribution. -// -//======================================================================== - -#include "internal.h" - - -//======================================================================== -// Initialise timer -//======================================================================== - -void _glfwInitTimer( void ) -{ - struct timeval tv; - - // "Resolution" is 1 us - _glfwLibrary.Timer.Resolution = 1e-6; - - // Set start-time for timer - gettimeofday( &tv, NULL ); - _glfwLibrary.Timer.t0 = (long long) tv.tv_sec * (long long) 1000000 + - (long long) tv.tv_usec; -} - - -//************************************************************************ -//**** Platform implementation functions **** -//************************************************************************ - -//======================================================================== -// Return timer value in seconds -//======================================================================== - -double _glfwPlatformGetTime( void ) -{ - long long t; - struct timeval tv; - - gettimeofday( &tv, NULL ); - t = (long long) tv.tv_sec * (long long) 1000000 + - (long long) tv.tv_usec; - - return (double)(t - _glfwLibrary.Timer.t0) * _glfwLibrary.Timer.Resolution; -} - - -//======================================================================== -// Set timer value in seconds -//======================================================================== - -void _glfwPlatformSetTime( double t ) -{ - long long t0; - struct timeval tv; - - gettimeofday( &tv, NULL ); - t0 = (long long) tv.tv_sec * (long long) 1000000 + - (long long) tv.tv_usec; - - // Calulate new starting time - _glfwLibrary.Timer.t0 = t0 - (long long)(t/_glfwLibrary.Timer.Resolution); -} - - -//======================================================================== -// Put a thread to sleep for a specified amount of time -//======================================================================== - -void _glfwPlatformSleep( double time ) -{ -#ifdef _GLFW_HAS_PTHREAD - - if( time == 0.0 ) - { -#ifdef _GLFW_HAS_SCHED_YIELD - sched_yield(); -#endif - return; - } - - struct timeval currenttime; - struct timespec wait; - pthread_mutex_t mutex; - pthread_cond_t cond; - long dt_sec, dt_usec; - - // Not all pthread implementations have a pthread_sleep() function. We - // do it the portable way, using a timed wait for a condition that we - // will never signal. NOTE: The unistd functions sleep/usleep suspends - // the entire PROCESS, not a signle thread, which is why we can not - // use them to implement glfwSleep. - - // Set timeout time, relatvie to current time - gettimeofday( ¤ttime, NULL ); - dt_sec = (long) time; - dt_usec = (long) ((time - (double)dt_sec) * 1000000.0); - wait.tv_nsec = (currenttime.tv_usec + dt_usec) * 1000L; - if( wait.tv_nsec > 1000000000L ) - { - wait.tv_nsec -= 1000000000L; - dt_sec++; - } - wait.tv_sec = currenttime.tv_sec + dt_sec; - - // Initialize condition and mutex objects - pthread_mutex_init( &mutex, NULL ); - pthread_cond_init( &cond, NULL ); - - // Do a timed wait - pthread_mutex_lock( &mutex ); - pthread_cond_timedwait( &cond, &mutex, &wait ); - pthread_mutex_unlock( &mutex ); - - // Destroy condition and mutex objects - pthread_mutex_destroy( &mutex ); - pthread_cond_destroy( &cond ); - -#else - - // For systems without PTHREAD, use unistd usleep - if( time > 0 ) - { - usleep( (unsigned int) (time*1000000) ); - } - -#endif // _GLFW_HAS_PTHREAD -} - |