Try to conserve on CPU usage when in sleep mode by skipping

menu rendering
This commit is contained in:
Twinaphex 2015-11-27 23:37:23 +01:00
parent 3e4ba02c9c
commit 4a3b9ffc7c
4 changed files with 10 additions and 5 deletions

View File

@ -78,7 +78,7 @@ static int action_select_default(const char *path, const char *label, unsigned t
if (action != MENU_ACTION_NOOP) if (action != MENU_ACTION_NOOP)
ret = menu_entry_action(&entry, idx, action); ret = menu_entry_action(&entry, idx, action);
rarch_main_data_iterate(); rarch_main_data_iterate(false);
return ret; return ret;
} }

View File

@ -31,10 +31,11 @@ void rarch_main_data_deinit(void)
rarch_task_deinit(); rarch_task_deinit();
} }
void rarch_main_data_iterate(void) void rarch_main_data_iterate(bool sleeping)
{ {
#ifdef HAVE_MENU #ifdef HAVE_MENU
menu_iterate_render(); if (!sleeping)
menu_iterate_render();
#endif #endif
if (data_runloop_msg[0] != '\0') if (data_runloop_msg[0] != '\0')

View File

@ -26,7 +26,7 @@ typedef int (*transfer_cb_t)(void *data, size_t len);
void rarch_main_data_clear_state(void); void rarch_main_data_clear_state(void);
void rarch_main_data_iterate(void); void rarch_main_data_iterate(bool sleeping);
void rarch_main_data_deinit(void); void rarch_main_data_deinit(void);

View File

@ -226,12 +226,16 @@ static void poll_iteration(void)
int ret = 0; int ret = 0;
while (ret != -1) while (ret != -1)
{ {
bool sleeping = false;
unsigned sleep_ms = 0; unsigned sleep_ms = 0;
poll_iteration(); poll_iteration();
ret = rarch_main_iterate(&sleep_ms); ret = rarch_main_iterate(&sleep_ms);
if (ret == 1 && sleep_ms > 0) if (ret == 1 && sleep_ms > 0)
{
sleeping = true;
retro_sleep(sleep_ms); retro_sleep(sleep_ms);
rarch_main_data_iterate(); }
rarch_main_data_iterate(sleeping);
while(CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0.002, FALSE) == kCFRunLoopRunHandledSource); while(CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0.002, FALSE) == kCFRunLoopRunHandledSource);
} }