Selaa lähdekoodia

Added SUPPORT_HALFBUSY_WAIT_LOOP

pull/1092/head
raysan5 5 vuotta sitten
vanhempi
commit
42d56d2f37
2 muutettua tiedostoa jossa 15 lisäystä ja 0 poistoa
  1. +2
    -0
      src/config.h
  2. +13
    -0
      src/core.c

+ 2
- 0
src/config.h Näytä tiedosto

@ -48,6 +48,8 @@
#define SUPPORT_MOUSE_CURSOR_RPI 1
// Use busy wait loop for timing sync, if not defined, a high-resolution timer is setup and used
//#define SUPPORT_BUSY_WAIT_LOOP 1
// Use a half-busy wait loop, in this case frame sleeps for some time and runs a busy-wait-loop at the end
//#define SUPPORT_HALFBUSY_WAIT_LOOP
// Wait for events passively (sleeping while no events) instead of polling them actively every frame
//#define SUPPORT_EVENTS_WAITING 1
// Allow automatic screen capture of current screen pressing F12, defined in KeyCallback()

+ 13
- 0
src/core.c Näytä tiedosto

@ -61,6 +61,9 @@
* #define SUPPORT_BUSY_WAIT_LOOP
* Use busy wait loop for timing sync, if not defined, a high-resolution timer is setup and used
*
* #define SUPPORT_HALFBUSY_WAIT_LOOP
* Use a half-busy wait loop, in this case frame sleeps for some time and runs a busy-wait-loop at the end
*
* #define SUPPORT_EVENTS_WAITING
* Wait for events passively (sleeping while no events) instead of polling them actively every frame
*
@ -3342,6 +3345,12 @@ static void Wait(float ms)
// Busy wait loop
while ((nextTime - prevTime) < ms/1000.0f) nextTime = GetTime();
#else
#if defined(SUPPORT_HALFBUSY_WAIT_LOOP)
#define MAX_HALFBUSY_WAIT_TIME 4
double destTime = GetTime() + ms/1000;
if (ms > MAX_HALFBUSY_WAIT_TIME) ms -= MAX_HALFBUSY_WAIT_TIME;
#endif
#if defined(_WIN32)
Sleep((unsigned int)ms);
#elif defined(__linux__) || defined(PLATFORM_WEB)
@ -3356,6 +3365,10 @@ static void Wait(float ms)
#elif defined(__APPLE__)
usleep(ms*1000.0f);
#endif
#if defined(SUPPORT_HALFBUSY_WAIT_LOOP)
while (GetTime() < destTime) { }
#endif
#endif
}

Ladataan…
Peruuta
Tallenna