Changeset - r25439:3b941c9a1b53
[Not reviewed]
master
0 2 0
Patric Stout - 3 years ago 2021-05-12 14:31:31
truebrain@openttd.org
Fix 91b8ce07: dedicated servers could no longer create screenshots (#9232)

Although most commands are not useful on a dedicated server,
screenshot commands should be dequeued.
2 files changed with 18 insertions and 17 deletions:
0 comments (0 inline, 0 general)
src/video/dedicated_v.cpp
Show inline comments
 
@@ -270,6 +270,7 @@ void VideoDriver_Dedicated::MainLoop()
 

	
 
	while (!_exit_game) {
 
		if (!_dedicated_forks) DedicatedHandleKeyInput();
 
		this->DrainCommandQueue();
 

	
 
		ChangeGameSpeed(_ddc_fastforward);
 
		this->Tick();
src/video/video_driver.hpp
Show inline comments
 
@@ -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();
 
};
0 comments (0 inline, 0 general)