diff options
Diffstat (limited to 'docs/release/src/emu/video.cpp')
-rw-r--r-- | docs/release/src/emu/video.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/docs/release/src/emu/video.cpp b/docs/release/src/emu/video.cpp index d8bea693005..fa0efb88a89 100644 --- a/docs/release/src/emu/video.cpp +++ b/docs/release/src/emu/video.cpp @@ -91,6 +91,7 @@ video_manager::video_manager(running_machine &machine) , m_seconds_to_run(machine.options().seconds_to_run()) , m_auto_frameskip(machine.options().auto_frameskip()) , m_speed(original_speed_setting()) + , m_low_latency(machine.options().low_latency()) , m_empty_skip_count(0) , m_frameskip_level(machine.options().frameskip()) , m_frameskip_counter(0) @@ -229,7 +230,7 @@ void video_manager::frame_update(bool from_debugger) // if we're throttling, synchronize before rendering attotime current_time = machine().time(); - if (!from_debugger && !skipped_it && effective_throttle()) + if (!from_debugger && !skipped_it && !m_low_latency && effective_throttle()) update_throttle(current_time); // ask the OSD to update @@ -237,6 +238,13 @@ void video_manager::frame_update(bool from_debugger) machine().osd().update(!from_debugger && skipped_it); g_profiler.stop(); + // we synchronize after rendering instead of before, if low latency mode is enabled + if (!from_debugger && !skipped_it && m_low_latency && effective_throttle()) + update_throttle(current_time); + + // get most recent input now + machine().osd().input_update(); + emulator_info::periodic_check(); // perform tasks for this frame |