diff --git a/obs/forms/OBSBasicSettings.ui b/obs/forms/OBSBasicSettings.ui
index 45d1849ac..267722e0c 100644
--- a/obs/forms/OBSBasicSettings.ui
+++ b/obs/forms/OBSBasicSettings.ui
@@ -2791,7 +2791,7 @@
-
-
+
Basic.Settings.Video.Renderer
@@ -2805,7 +2805,7 @@
-
-
+
Basic.Settings.Video.Adapter
diff --git a/obs/window-basic-settings.cpp b/obs/window-basic-settings.cpp
index 2c8ef1430..aef988534 100644
--- a/obs/window-basic-settings.cpp
+++ b/obs/window-basic-settings.cpp
@@ -367,6 +367,15 @@ OBSBasicSettings::OBSBasicSettings(QWidget *parent)
connect(toggleAero, &QAbstractButton::toggled,
this, &OBSBasicSettings::ToggleDisableAero);
}
+#else
+ delete ui->rendererLabel;
+ delete ui->renderer;
+ delete ui->adapterLabel;
+ delete ui->adapter;
+ ui->rendererLabel = nullptr;
+ ui->renderer = nullptr;
+ ui->adapterLabel = nullptr;
+ ui->adapter = nullptr;
#endif
connect(ui->streamDelaySec, SIGNAL(valueChanged(int)),
@@ -787,19 +796,26 @@ void OBSBasicSettings::LoadStream1Settings()
void OBSBasicSettings::LoadRendererList()
{
+#ifdef _WIN32
const char *renderer = config_get_string(GetGlobalConfig(), "Video",
"Renderer");
-#ifdef _WIN32
ui->renderer->addItem(QT_UTF8("Direct3D 11"));
-#endif
ui->renderer->addItem(QT_UTF8("OpenGL"));
int idx = ui->renderer->findText(QT_UTF8(renderer));
if (idx == -1)
idx = 0;
+ if (strcmp(renderer, "OpenGL") == 0) {
+ delete ui->adapter;
+ delete ui->adapterLabel;
+ ui->adapter = nullptr;
+ ui->adapterLabel = nullptr;
+ }
+
ui->renderer->setCurrentIndex(idx);
+#endif
}
Q_DECLARE_METATYPE(MonitorInfo);
@@ -2053,9 +2069,11 @@ void OBSBasicSettings::SaveVideoSettings()
void OBSBasicSettings::SaveAdvancedSettings()
{
+#ifdef _WIN32
if (WidgetChanged(ui->renderer))
config_set_string(App()->GlobalConfig(), "Video", "Renderer",
QT_TO_UTF8(ui->renderer->currentText()));
+#endif
SaveSpinBox(ui->audioBufferingTime, "Audio", "BufferingTime");
SaveCombo(ui->colorFormat, "Video", "ColorFormat");
SaveCombo(ui->colorSpace, "Video", "ColorSpace");