mirror of
https://github.com/moonlight-stream/moonlight-qt.git
synced 2026-08-27 12:41:18 +00:00
Add a renderer selection option for macOS
There are numerous conflicting reports about which Mac renderer works best (even on the same systems!). I give up, just let the users figure it out.
This commit is contained in:
@@ -51,6 +51,7 @@
|
||||
#define SER_CAPTURESYSKEYS "capturesyskeys"
|
||||
#define SER_KEEPAWAKE "keepawake"
|
||||
#define SER_LANGUAGE "language"
|
||||
#define SER_RENDERER "renderer"
|
||||
|
||||
#define CURRENT_DEFAULT_VER 2
|
||||
|
||||
@@ -159,6 +160,8 @@ void StreamingPreferences::reload()
|
||||
static_cast<int>(VideoCodecConfig::VCC_AUTO)).toInt());
|
||||
videoDecoderSelection = static_cast<VideoDecoderSelection>(settings.value(SER_VIDEODEC,
|
||||
static_cast<int>(VideoDecoderSelection::VDS_AUTO)).toInt());
|
||||
rendererSelection = static_cast<RendererSelection>(settings.value(SER_RENDERER,
|
||||
static_cast<int>(RendererSelection::RS_AUTO)).toInt());
|
||||
windowMode = static_cast<WindowMode>(settings.value(SER_WINDOWMODE,
|
||||
// Try to load from the old preference value too
|
||||
static_cast<int>(settings.value(SER_FULLSCREEN, true).toBool() ?
|
||||
@@ -347,6 +350,7 @@ void StreamingPreferences::save()
|
||||
settings.setValue(SER_YUV444, enableYUV444);
|
||||
settings.setValue(SER_VIDEOCFG, static_cast<int>(videoCodecConfig));
|
||||
settings.setValue(SER_VIDEODEC, static_cast<int>(videoDecoderSelection));
|
||||
settings.setValue(SER_RENDERER, static_cast<int>(rendererSelection));
|
||||
settings.setValue(SER_WINDOWMODE, static_cast<int>(windowMode));
|
||||
settings.setValue(SER_UIDISPLAYMODE, static_cast<int>(uiDisplayMode));
|
||||
settings.setValue(SER_LANGUAGE, static_cast<int>(language));
|
||||
|
||||
@@ -44,6 +44,17 @@ public:
|
||||
};
|
||||
Q_ENUM(VideoDecoderSelection)
|
||||
|
||||
// Mac only (for now)
|
||||
enum RendererSelection
|
||||
{
|
||||
RS_PROBE_ONLY = -1, // Only valid for probing decoder properties
|
||||
RS_AUTO,
|
||||
RS_VULKAN,
|
||||
RS_METAL,
|
||||
RS_AVSBDL
|
||||
};
|
||||
Q_ENUM(RendererSelection)
|
||||
|
||||
enum WindowMode
|
||||
{
|
||||
WM_FULLSCREEN,
|
||||
@@ -134,6 +145,7 @@ public:
|
||||
Q_PROPERTY(bool enableHdr MEMBER enableHdr NOTIFY enableHdrChanged)
|
||||
Q_PROPERTY(bool enableYUV444 MEMBER enableYUV444 NOTIFY enableYUV444Changed)
|
||||
Q_PROPERTY(VideoDecoderSelection videoDecoderSelection MEMBER videoDecoderSelection NOTIFY videoDecoderSelectionChanged)
|
||||
Q_PROPERTY(RendererSelection rendererSelection MEMBER rendererSelection NOTIFY rendererSelectionChanged)
|
||||
Q_PROPERTY(WindowMode windowMode MEMBER windowMode NOTIFY windowModeChanged)
|
||||
Q_PROPERTY(WindowMode recommendedFullScreenMode MEMBER recommendedFullScreenMode CONSTANT)
|
||||
Q_PROPERTY(UIDisplayMode uiDisplayMode MEMBER uiDisplayMode NOTIFY uiDisplayModeChanged)
|
||||
@@ -187,6 +199,7 @@ public:
|
||||
UIDisplayMode uiDisplayMode;
|
||||
Language language;
|
||||
CaptureSysKeysMode captureSysKeysMode;
|
||||
RendererSelection rendererSelection;
|
||||
|
||||
signals:
|
||||
void displayModeChanged();
|
||||
@@ -224,6 +237,7 @@ signals:
|
||||
void captureSysKeysModeChanged();
|
||||
void keepAwakeChanged();
|
||||
void languageChanged();
|
||||
void rendererSelectionChanged();
|
||||
|
||||
private:
|
||||
explicit StreamingPreferences(QQmlEngine *qmlEngine);
|
||||
|
||||
Reference in New Issue
Block a user