mirror of
https://github.com/obsproject/obs-studio.git
synced 2026-08-28 17:42:28 +08:00
frontend: Change renderer combo box to use custom data
While the Metal renderer is displayed as "Metal (Experimental)", the "Experimental" part doesn't need to be stored to the config. Otherwise, anyone having selected the Metal renderer will have it get unselected once the "Experimental" part is removed, and presumably the people who have it selected while it's experimental would also be the people who would want it once it's stable.
This commit is contained in:
committed by
Ryan Foster
parent
21f2d97af8
commit
482778d532
+1
-1
@@ -1089,7 +1089,7 @@ const char *OBSApp::GetRenderModule() const
|
||||
#elif defined(__APPLE__) && defined(__aarch64__)
|
||||
const char *renderer = config_get_string(appConfig, "Video", "Renderer");
|
||||
|
||||
return (astrcmpi(renderer, "Metal (Experimental)") == 0) ? DL_METAL : DL_OPENGL;
|
||||
return (astrcmpi(renderer, "Metal") == 0) ? DL_METAL : DL_OPENGL;
|
||||
#else
|
||||
return DL_OPENGL;
|
||||
#endif
|
||||
|
||||
@@ -1211,6 +1211,7 @@ Basic.Settings.Video.FPSFraction="Fractional FPS Value"
|
||||
Basic.Settings.Video.Numerator="Numerator"
|
||||
Basic.Settings.Video.Denominator="Denominator"
|
||||
Basic.Settings.Video.Renderer="Renderer"
|
||||
Basic.Settings.Video.Renderer.Experimental="%1 (Experimental)"
|
||||
Basic.Settings.Video.InvalidResolution="Invalid resolution value. Must be [width]x[height] (i.e. 1920x1080)"
|
||||
Basic.Settings.Video.CurrentlyActive="Video output is currently active. Please turn off any outputs to change video settings."
|
||||
|
||||
|
||||
@@ -1396,15 +1396,15 @@ void OBSBasicSettings::LoadRendererList()
|
||||
#if defined(_WIN32) || (defined(__APPLE__) && defined(__aarch64__))
|
||||
const char *renderer = config_get_string(App()->GetAppConfig(), "Video", "Renderer");
|
||||
#ifdef _WIN32
|
||||
ui->renderer->addItem(QT_UTF8("Direct3D 11"));
|
||||
ui->renderer->addItem(QString("Direct3D 11"), QString("Direct3D 11"));
|
||||
if (opt_allow_opengl || strcmp(renderer, "OpenGL") == 0) {
|
||||
ui->renderer->addItem(QT_UTF8("OpenGL"));
|
||||
ui->renderer->addItem(QString("OpenGL"), QString("OpenGL"));
|
||||
}
|
||||
#else
|
||||
ui->renderer->addItem(QT_UTF8("OpenGL"));
|
||||
ui->renderer->addItem(QT_UTF8("Metal (Experimental)"));
|
||||
ui->renderer->addItem(QString("OpenGL"), QString("OpenGL"));
|
||||
ui->renderer->addItem(QTStr("Basic.Settings.Video.Renderer.Experimental").arg("Metal"), QString("Metal"));
|
||||
#endif
|
||||
int index = ui->renderer->findText(QT_UTF8(renderer));
|
||||
int index = ui->renderer->findData(QString(renderer));
|
||||
if (index == -1) {
|
||||
index = 0;
|
||||
}
|
||||
@@ -3146,7 +3146,8 @@ void OBSBasicSettings::SaveAdvancedSettings()
|
||||
|
||||
#if defined(_WIN32) || (defined(__APPLE__) && defined(__aarch64__))
|
||||
if (WidgetChanged(ui->renderer)) {
|
||||
config_set_string(App()->GetAppConfig(), "Video", "Renderer", QT_TO_UTF8(ui->renderer->currentText()));
|
||||
config_set_string(App()->GetAppConfig(), "Video", "Renderer",
|
||||
QT_TO_UTF8(ui->renderer->currentData().toString()));
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
Reference in New Issue
Block a user