Non-blocked MoviePlayer that plays across multiple frames

Hi,

Slate is designed to be single threaded. One exception was made for the MoviePlayer loading but only because it is expected that the main thread is blocking on WaitForMovieToFinish. Because of events and blueprint callbacks, it’s possible even on a widget creation to call a bunch of public functions that can cause multithreaded effects. One good example of this is the Tick() method on the slate application which eventually needs to draw the windows and compete for the synchronization objects related to rendering.

So, at the moment, we don’t plan on changing this part.

Your idea of splitting the engine loop to introduce more phases would require new synchronization objects which provide new opportunities for race conditions. It would also cause a cost impact in the evaluation loop that happens all the time, even outside of the Loading screen scenario. Perhaps you could make it work for your game, but it’s not something we can impose on all our clients.