35 static bool SpanAllScreens ();
36 static QString GetExtraScreenInfo (QScreen *qScreen);
37 QStringList GetDescription ();
38 QRect GetScreenBounds ();
39 QScreen* GetCurrentScreen ();
40 static int GetScreenCount ();
41 double GetPixelAspectRatio ();
42 QSize GetGUIResolution ();
43 bool NextModeIsLarger (QSize Size);
44 void SwitchToDesktop ();
45 bool SwitchToGUI (
bool Wait =
false);
46 bool SwitchToVideo (QSize Size,
double Rate = 0.0);
47 QSize GetResolution ();
48 QSize GetPhysicalSize ();
49 double GetRefreshRate ()
const;
50 std::chrono::microseconds GetRefreshInterval (std::chrono::microseconds Fallback)
const;
51 double GetAspectRatio (QString &
Source,
bool IgnoreModeOverride =
false);
52 double EstimateVirtualAspectRatio();
58 virtual void ScreenChanged (QScreen *qScreen);
59 static void PrimaryScreenChanged (QScreen *qScreen);
60 void ScreenAdded (QScreen *qScreen);
61 void ScreenRemoved (QScreen *qScreen);
62 void PhysicalDPIChanged (qreal DPI);
63 static void GeometryChanged (QRect Geometry);
66 void CurrentScreenChanged (QScreen *qScreen);
67 void ScreenCountChanged (
int Screens);
68 void CurrentDPIChanged (qreal DPI);
75 virtual void UpdateCurrentMode ();
76 virtual bool SwitchToVideoMode (QSize Size,
double Framerate);
78 void DebugModes ()
const;
79 void SetWidget (QWidget *MainWindow);
80 static QScreen* GetDesiredScreen ();
81 static void DebugScreen (QScreen *qScreen,
const QString &Message);
84 void WaitForScreenChange();
85 void WaitForNewScreen ();
88 bool m_waitForModeChanges {
true };
89 bool m_modeComplete {
false };
90 double m_refreshRate { 0.0 };
91 double m_aspectRatioOverride { 0.0 };
92 QSize m_resolution { 0, 0 };
93 QSize m_physicalSize { 0, 0 };
95 QWidget* m_widget {
nullptr };
96 QWindow* m_window {
nullptr };
97 QScreen* m_screen {
nullptr };
104 static void PauseForModeSwitch();
106 bool m_initialised {
false };
107 bool m_firstScreenChange{
true };