diff --git a/UI/obs-app.cpp b/UI/obs-app.cpp index d233d77ba..8c7e73e23 100644 --- a/UI/obs-app.cpp +++ b/UI/obs-app.cpp @@ -69,6 +69,7 @@ bool opt_start_recording = false; bool opt_studio_mode = false; bool opt_start_replaybuffer = false; bool opt_minimize_tray = false; +bool opt_allow_opengl = false; string opt_starting_collection; string opt_starting_profile; string opt_starting_scene; @@ -1783,6 +1784,9 @@ int main(int argc, char *argv[]) } else if (arg_is(argv[i], "--studio-mode", nullptr)) { opt_studio_mode = true; + } else if (arg_is(argv[i], "--allow-opengl", nullptr)) { + opt_allow_opengl = true; + } else if (arg_is(argv[i], "--help", "-h")) { std::cout << "--help, -h: Get list of available commands.\n\n" << @@ -1798,6 +1802,7 @@ int main(int argc, char *argv[]) "--portable, -p: Use portable mode.\n\n" << "--verbose: Make log more verbose.\n" << "--unfiltered_log: Make log unfiltered.\n\n" << + "--allow-opengl: Allow OpenGL on Windows.\n\n" << "--version, -V: Get current version.\n"; exit(0); diff --git a/UI/obs-app.hpp b/UI/obs-app.hpp index 381f9d6b2..318569d5a 100644 --- a/UI/obs-app.hpp +++ b/UI/obs-app.hpp @@ -181,4 +181,5 @@ extern bool opt_start_recording; extern bool opt_start_replaybuffer; extern bool opt_minimize_tray; extern bool opt_studio_mode; +extern bool opt_allow_opengl; extern std::string opt_starting_scene; diff --git a/UI/window-basic-settings.cpp b/UI/window-basic-settings.cpp index 9493b31b7..ebb361abf 100644 --- a/UI/window-basic-settings.cpp +++ b/UI/window-basic-settings.cpp @@ -1041,18 +1041,20 @@ void OBSBasicSettings::LoadRendererList() "Renderer"); ui->renderer->addItem(QT_UTF8("Direct3D 11")); - ui->renderer->addItem(QT_UTF8("OpenGL")); + if (opt_allow_opengl) + 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; - } + // the video adapter selection is not currently implemented, hide for now + // to avoid user confusion. was previously protected by + // if (strcmp(renderer, "OpenGL") == 0) + delete ui->adapter; + delete ui->adapterLabel; + ui->adapter = nullptr; + ui->adapterLabel = nullptr; ui->renderer->setCurrentIndex(idx); #endif