diff options
-rw-r--r-- | src/video/dedicated_v.cpp | 1 | ||||
-rw-r--r-- | src/video/video_driver.hpp | 34 |
2 files changed, 18 insertions, 17 deletions
diff --git a/src/video/dedicated_v.cpp b/src/video/dedicated_v.cpp index e905a9d2c..a41278234 100644 --- a/src/video/dedicated_v.cpp +++ b/src/video/dedicated_v.cpp @@ -270,6 +270,7 @@ void VideoDriver_Dedicated::MainLoop() while (!_exit_game) { if (!_dedicated_forks) DedicatedHandleKeyInput(); + this->DrainCommandQueue(); ChangeGameSpeed(_ddc_fastforward); this->Tick(); diff --git a/src/video/video_driver.hpp b/src/video/video_driver.hpp index db522a761..b87dc7052 100644 --- a/src/video/video_driver.hpp +++ b/src/video/video_driver.hpp @@ -319,23 +319,6 @@ protected: return std::chrono::microseconds(1000000 / _settings_client.gui.refresh_rate); } - std::chrono::steady_clock::time_point next_game_tick; - std::chrono::steady_clock::time_point next_draw_tick; - - bool fast_forward_key_pressed; ///< The fast-forward key is being pressed. - bool fast_forward_via_key; ///< The fast-forward was enabled by key press. - - bool is_game_threaded; - std::thread game_thread; - std::mutex game_state_mutex; - std::mutex game_thread_wait_mutex; - - static void GameThreadThunk(VideoDriver *drv); - -private: - std::mutex cmd_queue_mutex; - std::vector<std::function<void()>> cmd_queue; - /** Execute all queued commands. */ void DrainCommandQueue() { @@ -354,6 +337,23 @@ private: } } + std::chrono::steady_clock::time_point next_game_tick; + std::chrono::steady_clock::time_point next_draw_tick; + + bool fast_forward_key_pressed; ///< The fast-forward key is being pressed. + bool fast_forward_via_key; ///< The fast-forward was enabled by key press. + + bool is_game_threaded; + std::thread game_thread; + std::mutex game_state_mutex; + std::mutex game_thread_wait_mutex; + + static void GameThreadThunk(VideoDriver *drv); + +private: + std::mutex cmd_queue_mutex; + std::vector<std::function<void()>> cmd_queue; + void GameLoop(); void GameThread(); }; |