mirror of
https://github.com/libretro/RetroArch
synced 2025-03-02 19:13:34 +00:00
Add more documentation to runloop.c
This commit is contained in:
parent
75b6ed9545
commit
d6169e6ddc
54
runloop.c
54
runloop.c
@ -397,6 +397,17 @@ static bool check_movie(void)
|
|||||||
return check_movie_record();
|
return check_movie_record();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* check_shader_dir:
|
||||||
|
* @pressed_next : was next shader key pressed?
|
||||||
|
* @pressed_previous : was previous shader key pressed?
|
||||||
|
*
|
||||||
|
* Checks if any one of the shader keys has been pressed for this frame:
|
||||||
|
* a) Next shader index.
|
||||||
|
* b) Previous shader index.
|
||||||
|
*
|
||||||
|
* Will also immediately apply the shader.
|
||||||
|
**/
|
||||||
static void check_shader_dir(bool pressed_next, bool pressed_prev)
|
static void check_shader_dir(bool pressed_next, bool pressed_prev)
|
||||||
{
|
{
|
||||||
char msg[PATH_MAX_LENGTH];
|
char msg[PATH_MAX_LENGTH];
|
||||||
@ -588,6 +599,11 @@ static inline int time_to_exit(retro_input_t input)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* update_frame_time:
|
||||||
|
*
|
||||||
|
* Updates frame timing if frame timing callback is in use by the core.
|
||||||
|
**/
|
||||||
static void update_frame_time(void)
|
static void update_frame_time(void)
|
||||||
{
|
{
|
||||||
retro_time_t curr_time = rarch_get_time_usec();
|
retro_time_t curr_time = rarch_get_time_usec();
|
||||||
@ -623,30 +639,38 @@ static void do_state_check_menu_toggle(void)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* limit_frame_time:
|
||||||
|
*
|
||||||
|
* Limit frame time if fast forward ratio throttle is enabled.
|
||||||
|
**/
|
||||||
static void limit_frame_time(void)
|
static void limit_frame_time(void)
|
||||||
{
|
{
|
||||||
retro_time_t current = rarch_get_time_usec();
|
double effective_fps, mft_f;
|
||||||
retro_time_t target = 0, to_sleep_ms = 0;
|
retro_time_t current, target = 0, to_sleep_ms = 0;
|
||||||
double effective_fps = g_extern.system.av_info.timing.fps
|
|
||||||
|
current = rarch_get_time_usec();
|
||||||
|
effective_fps = g_extern.system.av_info.timing.fps
|
||||||
* g_settings.fastforward_ratio;
|
* g_settings.fastforward_ratio;
|
||||||
double mft_f = 1000000.0f / effective_fps;
|
mft_f = 1000000.0f / effective_fps;
|
||||||
|
|
||||||
g_extern.frame_limit.minimum_frame_time = (retro_time_t) roundf(mft_f);
|
g_extern.frame_limit.minimum_frame_time = (retro_time_t) roundf(mft_f);
|
||||||
|
|
||||||
target = g_extern.frame_limit.last_frame_time +
|
target = g_extern.frame_limit.last_frame_time +
|
||||||
g_extern.frame_limit.minimum_frame_time;
|
g_extern.frame_limit.minimum_frame_time;
|
||||||
to_sleep_ms = (target - current) / 1000;
|
to_sleep_ms = (target - current) / 1000;
|
||||||
|
|
||||||
if (to_sleep_ms > 0)
|
if (to_sleep_ms <= 0)
|
||||||
{
|
{
|
||||||
rarch_sleep((unsigned int)to_sleep_ms);
|
|
||||||
|
|
||||||
/* Combat jitter a bit. */
|
|
||||||
g_extern.frame_limit.last_frame_time +=
|
|
||||||
g_extern.frame_limit.minimum_frame_time;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
g_extern.frame_limit.last_frame_time = rarch_get_time_usec();
|
g_extern.frame_limit.last_frame_time = rarch_get_time_usec();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
rarch_sleep((unsigned int)to_sleep_ms);
|
||||||
|
|
||||||
|
/* Combat jitter a bit. */
|
||||||
|
g_extern.frame_limit.last_frame_time +=
|
||||||
|
g_extern.frame_limit.minimum_frame_time;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void check_block_hotkey(bool enable_hotkey)
|
static void check_block_hotkey(bool enable_hotkey)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user