From 71d9426565e37b9182be03fdd3706ce1e963bf7d Mon Sep 17 00:00:00 2001 From: Benjamin Summerton Date: Sun, 30 Jul 2017 23:56:58 -0400 Subject: [PATCH] Make physac work on OS X Physac wasn't working on OS X. It looks like the necessary timing code wasn't being compiled in by the preprocessor. fixes #340 --- src/physac.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/physac.h b/src/physac.h index 8c109935..5ecd2815 100644 --- a/src/physac.h +++ b/src/physac.h @@ -252,7 +252,7 @@ PHYSACDEF void ClosePhysics(void); // Functions required to query time on Windows int __stdcall QueryPerformanceCounter(unsigned long long int *lpPerformanceCount); int __stdcall QueryPerformanceFrequency(unsigned long long int *lpFrequency); -#elif defined(__linux__) || defined(PLATFORM_WEB) +#elif defined(__linux__) || defined(__APPLE__) || defined(PLATFORM_WEB) #define _POSIX_C_SOURCE 199309L // Required for CLOCK_MONOTONIC if compiled with c99 without gnu ext. //#define _DEFAULT_SOURCE // Enables BSD function definitions and C99 POSIX compliance #include // Required for: timespec @@ -282,7 +282,7 @@ static pthread_t physicsThreadId; // Physics thread id static unsigned int usedMemory = 0; // Total allocated dynamic memory static bool physicsThreadEnabled = false; // Physics thread enabled state static double currentTime = 0; // Current time in milliseconds -#if defined(PLATFORM_ANDROID) || defined(PLATFORM_RPI) || defined(__linux__) || defined(PLATFORM_WEB) +#if defined(PLATFORM_ANDROID) || defined(PLATFORM_RPI) || defined(__linux__) || defined(__APPLE__) || defined(PLATFORM_WEB) static double baseTime = 0; // Android and RPI platforms base time #endif static double startTime = 0; // Start time in milliseconds @@ -1907,7 +1907,7 @@ static double GetCurrentTime(void) time = (double)((double)currentTime/clockFrequency)*1000; #endif - #if defined(PLATFORM_ANDROID) || defined(PLATFORM_RPI) || defined(__linux__) || defined(PLATFORM_WEB) + #if defined(PLATFORM_ANDROID) || defined(PLATFORM_RPI) || defined(__linux__) || defined(__APPLE__) || defined(PLATFORM_WEB) struct timespec ts; clock_gettime(CLOCK_MONOTONIC, &ts); uint64_t temp = (uint64_t)ts.tv_sec*1000000000LLU + (uint64_t)ts.tv_nsec;