QT Frontend: Add a Loading screen with progressbar

With shader caches on the horizon, one requirement is to provide visible
feedback for the progress. The shader cache reportedly takes several
minutes to load for large caches that were invalidated, and as such we
should provide a loading screen with progress.

Adds a loading screen widget that will be shown until the first frame of
the game is swapped. This was chosen in case shader caches are not being
used, several games still take more than a few seconds to launch and
could benefit from a loading screen.
This commit is contained in:
James Rowe
2019-01-17 00:01:00 -07:00
parent 83f8d1aa2e
commit 08fcf41b0a
9 changed files with 244 additions and 12 deletions

View File

@ -25,6 +25,7 @@ class GImageInfo;
class GraphicsBreakPointsWidget;
class GraphicsSurfaceWidget;
class GRenderWindow;
class LoadingScreen;
class MicroProfileDialog;
class ProfilerWidget;
class QLabel;
@ -109,10 +110,10 @@ signals:
void WebBrowserFinishedBrowsing();
public slots:
void OnLoadComplete();
void ProfileSelectorSelectProfile();
void SoftwareKeyboardGetText(const Core::Frontend::SoftwareKeyboardParameters& parameters);
void SoftwareKeyboardInvokeCheckDialog(std::u16string error_message);
void WebBrowserOpenPage(std::string_view filename, std::string_view arguments);
private:
@ -212,6 +213,7 @@ private:
GRenderWindow* render_window;
GameList* game_list;
LoadingScreen* loading_screen;
// Status bar elements
QLabel* message_label = nullptr;