From eab5bcac0029e4e298e1f194133c21580098508d Mon Sep 17 00:00:00 2001 From: antonioginer Date: Sat, 16 Nov 2019 22:06:13 +0100 Subject: Remove up to one frame of input latency. (#5901) * Remove up to one frame of input latency. Makes MAME virtually lagless on VRR monitors. * Use empty parentheses and clean interface member calls * Add new option -instant_blit to make this feature optional * Rename new option to -lowlatency, -ll --- src/osd/mac/osdmac.h | 1 + src/osd/mac/video.cpp | 16 ++++++++++++---- src/osd/mac/window.cpp | 3 --- 3 files changed, 13 insertions(+), 7 deletions(-) (limited to 'src/osd/mac') diff --git a/src/osd/mac/osdmac.h b/src/osd/mac/osdmac.h index 1ed9e6b8a5b..13b680cf271 100644 --- a/src/osd/mac/osdmac.h +++ b/src/osd/mac/osdmac.h @@ -44,6 +44,7 @@ public: // general overridables virtual void init(running_machine &machine) override; virtual void update(bool skip_redraw) override; + virtual void input_update() override; // input overridables virtual void customize_input_type_list(simple_list &typelist) override; diff --git a/src/osd/mac/video.cpp b/src/osd/mac/video.cpp index 638e7a949b3..3f585458f8d 100644 --- a/src/osd/mac/video.cpp +++ b/src/osd/mac/video.cpp @@ -108,15 +108,23 @@ void mac_osd_interface::update(bool skip_redraw) // profiler_mark(PROFILER_END); } - // poll the joystick values here - downcast(machine().osd()).poll_inputs(machine()); - - check_osd_inputs(machine()); // if we're running, disable some parts of the debugger if ((machine().debug_flags & DEBUG_FLAG_OSD_ENABLED) != 0) debugger_update(); } +//============================================================ +// input_update +//============================================================ + +void mac_osd_interface::input_update() +{ + // poll the joystick values here + process_events_buf(); + poll_inputs(machine()); + check_osd_inputs(machine()); +} + //============================================================ // check_osd_inputs //============================================================ diff --git a/src/osd/mac/window.cpp b/src/osd/mac/window.cpp index 3993b3502d2..d22268f86f4 100644 --- a/src/osd/mac/window.cpp +++ b/src/osd/mac/window.cpp @@ -499,9 +499,6 @@ void mac_window_info::update() // and redraw now - // Some configurations require events to be polled in the worker thread - downcast< mac_osd_interface& >(machine().osd()).process_events_buf(); - // Check whether window has vector screens { -- cgit v1.2.3