mirror of
https://github.com/libretro/RetroArch
synced 2025-02-20 06:40:18 +00:00
Pass sleep_ms argument to rarch_main_iterate
This commit is contained in:
parent
1ec90df165
commit
fdd1d3ee9f
@ -248,10 +248,11 @@ static void android_app_entry(void *data)
|
||||
#ifndef HAVE_MAIN
|
||||
do
|
||||
{
|
||||
ret = rarch_main_iterate();
|
||||
unsigned sleep_ms = 0;
|
||||
ret = rarch_main_iterate(&sleep_ms);
|
||||
|
||||
if (ret == 1)
|
||||
rarch_sleep(10);
|
||||
if (ret == 1 && sleep_ms > 0)
|
||||
rarch_sleep(sleep_ms);
|
||||
rarch_main_data_iterate();
|
||||
}while (ret != -1);
|
||||
|
||||
|
@ -27,9 +27,10 @@
|
||||
|
||||
static void emscripten_mainloop(void)
|
||||
{
|
||||
int ret = rarch_main_iterate();
|
||||
if (ret == 1)
|
||||
rarch_sleep(10);
|
||||
unsigned sleep_ms = 0;
|
||||
int ret = rarch_main_iterate(&sleep_ms);
|
||||
if (ret == 1 && sleep_ms > 0)
|
||||
rarch_sleep(sleep_ms);
|
||||
rarch_main_data_iterate();
|
||||
if (ret != -1)
|
||||
return;
|
||||
|
@ -342,10 +342,11 @@ int rarch_main(int argc, char *argv[], void *data)
|
||||
|
||||
#ifndef HAVE_MAIN
|
||||
do{
|
||||
ret = rarch_main_iterate();
|
||||
unsigned sleep_ms = 0;
|
||||
ret = rarch_main_iterate(&sleep_ms);
|
||||
|
||||
if (ret == 1)
|
||||
rarch_sleep(10);
|
||||
if (ret == 1 && sleep_ms > 0)
|
||||
rarch_sleep(sleep_ms);
|
||||
rarch_main_data_iterate();
|
||||
}while(ret != -1);
|
||||
|
||||
|
12
runloop.c
12
runloop.c
@ -653,7 +653,7 @@ static void rarch_update_frame_time(driver_t *driver, float slowmotion_ratio,
|
||||
system->frame_time.callback(delta);
|
||||
}
|
||||
|
||||
static int rarch_limit_frame_time(float fastforward_ratio)
|
||||
static int rarch_limit_frame_time(float fastforward_ratio, unsigned *sleep_ms)
|
||||
{
|
||||
retro_time_t current, target, to_sleep_ms;
|
||||
|
||||
@ -666,9 +666,10 @@ static int rarch_limit_frame_time(float fastforward_ratio)
|
||||
|
||||
if (to_sleep_ms > 0)
|
||||
{
|
||||
rarch_sleep((unsigned int)to_sleep_ms);
|
||||
*sleep_ms = (unsigned)to_sleep_ms;
|
||||
/* Combat jitter a bit. */
|
||||
frame_limit_last_time += frame_limit_minimum_time;
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
frame_limit_last_time = rarch_get_time_usec();
|
||||
@ -1001,7 +1002,7 @@ static void rarch_main_cmd_get_state(driver_t *driver,
|
||||
* Returns: 0 on success, 1 if we have to wait until button input in order
|
||||
* to wake up the loop, -1 if we forcibly quit out of the RetroArch iteration loop.
|
||||
**/
|
||||
int rarch_main_iterate(void)
|
||||
int rarch_main_iterate(unsigned *sleep_ms)
|
||||
{
|
||||
unsigned i;
|
||||
retro_input_t trigger_input;
|
||||
@ -1086,7 +1087,7 @@ int rarch_main_iterate(void)
|
||||
|
||||
if (!input && settings->menu.pause_libretro)
|
||||
return 1;
|
||||
return rarch_limit_frame_time(settings->fastforward_ratio);
|
||||
return rarch_limit_frame_time(settings->fastforward_ratio, sleep_ms);
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -1094,6 +1095,7 @@ int rarch_main_iterate(void)
|
||||
{
|
||||
/* RetroArch has been paused. */
|
||||
driver->retro_ctx.poll_cb();
|
||||
*sleep_ms = 10;
|
||||
return 1;
|
||||
}
|
||||
|
||||
@ -1152,5 +1154,5 @@ int rarch_main_iterate(void)
|
||||
unlock_autosave();
|
||||
#endif
|
||||
|
||||
return rarch_limit_frame_time(settings->fastforward_ratio);
|
||||
return rarch_limit_frame_time(settings->fastforward_ratio, sleep_ms);
|
||||
}
|
||||
|
@ -308,7 +308,7 @@ global_t *global_get_ptr(void);
|
||||
* Returns: 0 on successful run, 1 if we have to wait until button input in order
|
||||
* to wake up the loop, -1 if we forcibly quit out of the RetroArch iteration loop.
|
||||
**/
|
||||
int rarch_main_iterate(void);
|
||||
int rarch_main_iterate(unsigned *sleep_ms);
|
||||
|
||||
void rarch_main_msg_queue_push(const char *msg, unsigned prio,
|
||||
unsigned duration, bool flush);
|
||||
|
@ -208,12 +208,13 @@ static void poll_iteration(void)
|
||||
int ret = 0;
|
||||
while (ret != -1)
|
||||
{
|
||||
poll_iteration();
|
||||
ret = rarch_main_iterate();
|
||||
if (ret == 1)
|
||||
rarch_sleep(10);
|
||||
rarch_main_data_iterate();
|
||||
while(CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0.002, FALSE) == kCFRunLoopRunHandledSource);
|
||||
unsigned sleep_ms = 0;
|
||||
poll_iteration();
|
||||
ret = rarch_main_iterate(&sleep_ms);
|
||||
if (ret == 1 && sleep_ms > 0)
|
||||
rarch_sleep(sleep_ms);
|
||||
rarch_main_data_iterate();
|
||||
while(CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0.002, FALSE) == kCFRunLoopRunHandledSource);
|
||||
}
|
||||
|
||||
main_exit(NULL);
|
||||
|
@ -60,10 +60,11 @@ static void rarch_disable_ui(void)
|
||||
static void rarch_draw_observer(CFRunLoopObserverRef observer,
|
||||
CFRunLoopActivity activity, void *info)
|
||||
{
|
||||
int ret = rarch_main_iterate();
|
||||
unsigned sleep_ms = 0;
|
||||
int ret = rarch_main_iterate(&sleep_ms);
|
||||
|
||||
if (ret == 1 && !ui_companion_is_on_foreground())
|
||||
rarch_sleep(10);
|
||||
if (ret == 1 && !ui_companion_is_on_foreground() && sleep_ms > 0)
|
||||
rarch_sleep(sleep_ms);
|
||||
rarch_main_data_iterate();
|
||||
|
||||
if (ret == -1)
|
||||
|
Loading…
x
Reference in New Issue
Block a user