瀏覽代碼

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.
Sebastian Beckmann 1 月之前
父節點
當前提交
482778d532
共有 3 個文件被更改,包括 9 次插入7 次删除
  1. 1 1
      frontend/OBSApp.cpp
  2. 1 0
      frontend/data/locale/en-US.ini
  3. 7 6
      frontend/settings/OBSBasicSettings.cpp

+ 1 - 1
frontend/OBSApp.cpp

@@ -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

+ 1 - 0
frontend/data/locale/en-US.ini

@@ -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."
 

+ 7 - 6
frontend/settings/OBSBasicSettings.cpp

@@ -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