0ad/source/tools/atlas/GameInterface
wraitii 764440e017 Remove the Engine threading when using Atlas
MacOS requires some UI-related API calls to happen on the main thread.
There are several SDL functions that call UI-things, and those were,
since #500 / 08b4d96cf2, in a separate thread.
This crashes on Catalina, instead of simply warning (see #5470).

It is not the first time we had such issues, as originally the Engine
was on the main thread and AtlasUI on a separate thread.
That didn't work on MacOS, so the threading was inverted in #500 /
08b4d96cf2, with AtlasUI on the main thread and the Engine in another
thread.
Unfortunately, this still wasn't enough.

This formally unthreads the engine, running it on a wxTimer, to avoid
these issues.

Future work should focus on:
- Further decoupling the simulation from the engine itself, as what
Atlas really needs is a threaded simulation, not a threaded engine.
- Making the simulation itself more threaded
- Making it possible to do tasks asynchronously under Atlas.

Refs #500
Fixes #5470

Differential Revision: https://code.wildfiregames.com/D2752
This was SVN commit r24361.
2020-12-10 09:42:58 +00:00
..
Handlers Remove the Engine threading when using Atlas 2020-12-10 09:42:58 +00:00
ActorViewer.cpp Rename ScriptRuntime to ScriptContext 2020-11-14 10:57:50 +00:00
ActorViewer.h Clean up header includes, add new forward declarations. 2020-11-21 11:20:29 +00:00
Brushes.cpp Split CColor from Shapes. 2019-01-13 15:38:41 +00:00
Brushes.h Further header & precompiled cleanup, fix no-PCH builds. 2020-12-09 14:39:14 +00:00
CommandProc.cpp Convert debug_printf to take UTF-8 strings instead of wchar_t. 2015-02-14 01:45:13 +00:00
CommandProc.h Remove trailing whitespace and whitespace in empty lines of source/ except source/third_party/. 2016-11-23 11:18:37 +00:00
DeltaArray.h Replace boost::unordered_map, boost::unordered_set with std::unordered_map, std::unordered_set to establish consistency. 2019-11-25 14:30:25 +00:00
GameLoop.cpp Remove the Engine threading when using Atlas 2020-12-10 09:42:58 +00:00
GameLoop.h Remove the Engine threading when using Atlas 2020-12-10 09:42:58 +00:00
InputProcessor.cpp Added elapsed real time (as opposed to elapsed simulation time) to MT_Interpolate messages. Fixes leftover TODO from #824. Refs #824. 2012-06-06 19:37:03 +00:00
InputProcessor.h Add GPL header to Atlas code 2009-06-20 16:13:29 +00:00
MessagePasser.h Remove the Engine threading when using Atlas 2020-12-10 09:42:58 +00:00
MessagePasserImpl.cpp Remove the Engine threading when using Atlas 2020-12-10 09:42:58 +00:00
MessagePasserImpl.h Remove the Engine threading when using Atlas 2020-12-10 09:42:58 +00:00
Messages.h Remove the Engine threading when using Atlas 2020-12-10 09:42:58 +00:00
MessagesSetup.h Fix some gcc 8 and gcc 9 compiler warnings that were thrown 4500 times. 2019-07-09 00:18:48 +00:00
Misc.cpp huge cleanup and conversion of most string handling (especially paths) to unicode 2009-11-03 21:46:35 +00:00
Register.cpp Actually remove trailing tabs from source/. 2016-11-23 14:09:58 +00:00
Shareable.h Remove the Engine threading when using Atlas 2020-12-10 09:42:58 +00:00
SharedMemory.h Add GPL header to Atlas code 2009-06-20 16:13:29 +00:00
SharedTypes.h Remove unused old code for triggers in atlas. 2017-05-08 02:40:22 +00:00
SimState.cpp # Delete a lot of obsolete simulation code. 2010-05-20 18:09:23 +00:00
SimState.h # Delete a lot of obsolete simulation code. 2010-05-20 18:09:23 +00:00
View.cpp Removes FFP option from Atlas and adds ARB/GLSL selection. 2020-11-04 12:21:55 +00:00
View.h Cinematic path node moving tool for Atlas. Patch by Vladislav. 2017-04-30 23:47:16 +00:00