diff --git a/UI/data/locale/en-US.ini b/UI/data/locale/en-US.ini index 10f0bd03f662a25830e1392e9a2ace3627aa582e..b46f1e686a58a3f4a6885bd981fec3266c5ba537 100644 --- a/UI/data/locale/en-US.ini +++ b/UI/data/locale/en-US.ini @@ -573,6 +573,7 @@ Basic.Settings.General.SwitchOnDoubleClick="Transition to scene when double-clic Basic.Settings.General.StudioPortraitLayout="Enable portrait/vertical layout" Basic.Settings.General.Multiview="Multiview" Basic.Settings.General.Multiview.MouseSwitch="Click to switch between scenes" +Basic.Settings.General.Multiview.DrawSourceNames="Show scene names" Basic.Settings.General.MultiviewLayout="Multiview Layout" Basic.Settings.General.MultiviewLayout.Horizontal.Top="Horizontal, Top (8 Scenes)" Basic.Settings.General.MultiviewLayout.Horizontal.Bottom="Horizontal, Bottom (8 Scenes)" diff --git a/UI/forms/OBSBasicSettings.ui b/UI/forms/OBSBasicSettings.ui index 1406b29b9c8653f8abab3b5e481fe361d2836f66..6fbfe2a5fa2dd8ab43c8c3c772429f8a4c587d9f 100644 --- a/UI/forms/OBSBasicSettings.ui +++ b/UI/forms/OBSBasicSettings.ui @@ -627,9 +627,19 @@ + + + Basic.Settings.General.Multiview.DrawSourceNames + + + true + + + + - + Basic.Settings.General.MultiviewLayout diff --git a/UI/obs-app.cpp b/UI/obs-app.cpp index 5a318e0c3ee9545ac5edf82d63a8423dfbbf93ae..22e6088b0b7e5b0e501ee5d0e0831c668d6b87ca 100644 --- a/UI/obs-app.cpp +++ b/UI/obs-app.cpp @@ -424,6 +424,9 @@ bool OBSApp::InitGlobalConfigDefaults() config_set_default_bool(globalConfig, "BasicWindow", "MultiviewMouseSwitch", true); + config_set_default_bool(globalConfig, "BasicWindow", + "MultiviewDrawNames", true); + #ifdef _WIN32 config_set_default_bool(globalConfig, "Audio", "DisableAudioDucking", true); diff --git a/UI/window-basic-settings.cpp b/UI/window-basic-settings.cpp index 506e74be0ef0ce1bbc22a04872703f9691f98a3f..639df4ae937b0ae8cfaacbba1d7e96abc7c1c6a3 100644 --- a/UI/window-basic-settings.cpp +++ b/UI/window-basic-settings.cpp @@ -319,6 +319,7 @@ OBSBasicSettings::OBSBasicSettings(QWidget *parent) HookWidget(ui->doubleClickSwitch, CHECK_CHANGED, GENERAL_CHANGED); HookWidget(ui->studioPortraitLayout, CHECK_CHANGED, GENERAL_CHANGED); HookWidget(ui->multiviewMouseSwitch, CHECK_CHANGED, GENERAL_CHANGED); + HookWidget(ui->multiviewDrawNames, CHECK_CHANGED, GENERAL_CHANGED); HookWidget(ui->multiviewLayout, COMBO_CHANGED, GENERAL_CHANGED); HookWidget(ui->outputMode, COMBO_CHANGED, OUTPUTS_CHANGED); HookWidget(ui->streamType, COMBO_CHANGED, STREAM1_CHANGED); @@ -1105,6 +1106,10 @@ void OBSBasicSettings::LoadGeneralSettings() "BasicWindow", "MultiviewMouseSwitch"); ui->multiviewMouseSwitch->setChecked(multiviewMouseSwitch); + bool multiviewDrawNames = config_get_bool(GetGlobalConfig(), + "BasicWindow", "MultiviewDrawNames"); + ui->multiviewDrawNames->setChecked(multiviewDrawNames); + ui->multiviewLayout->addItem(QTStr( "Basic.Settings.General.MultiviewLayout.Horizontal.Top"), static_cast(MultiviewLayout::HORIZONTAL_TOP_8_SCENES)); @@ -2714,6 +2719,11 @@ void OBSBasicSettings::SaveGeneralSettings() "MultiviewMouseSwitch", ui->multiviewMouseSwitch->isChecked()); + if (WidgetChanged(ui->multiviewDrawNames)) + config_set_bool(GetGlobalConfig(), "BasicWindow", + "MultiviewDrawNames", + ui->multiviewDrawNames->isChecked()); + if (WidgetChanged(ui->multiviewLayout)) { config_set_int(GetGlobalConfig(), "BasicWindow", "MultiviewLayout", diff --git a/UI/window-projector.cpp b/UI/window-projector.cpp index 9c3fad50fc8425c88219f389887abd702463910b..94b89aa1e1bfa3adacac8a2f240e6a7fce56685e 100644 --- a/UI/window-projector.cpp +++ b/UI/window-projector.cpp @@ -494,7 +494,8 @@ void OBSProjector::OBSRenderMultiview(void *data, uint32_t cx, uint32_t cy) /* ----------- */ // Render the label - if (!label) + if (!label || !config_get_bool(GetGlobalConfig(), + "BasicWindow", "MultiviewDrawNames")) continue; offset = labelOffset(label, quarterCX); @@ -548,14 +549,17 @@ void OBSProjector::OBSRenderMultiview(void *data, uint32_t cx, uint32_t cy) /* ----------- */ // Draw the Label - gs_matrix_push(); - gs_matrix_translate3f(labelX, labelY, 0.0f); - gs_matrix_scale3f(hiScaleX, hiScaleY, 1.0f); - drawBox(obs_source_get_width(previewLabel), - obs_source_get_height(previewLabel) + - int(halfCX * 0.015f), labelColor); - obs_source_video_render(previewLabel); - gs_matrix_pop(); + if (config_get_bool(GetGlobalConfig(), "BasicWindow", + "MultiviewDrawNames")) { + gs_matrix_push(); + gs_matrix_translate3f(labelX, labelY, 0.0f); + gs_matrix_scale3f(hiScaleX, hiScaleY, 1.0f); + drawBox(obs_source_get_width(previewLabel), + obs_source_get_height(previewLabel) + + int(halfCX * 0.015f), labelColor); + obs_source_video_render(previewLabel); + gs_matrix_pop(); + } /* ----------------------------- */ /* draw program */ @@ -576,14 +580,18 @@ void OBSProjector::OBSRenderMultiview(void *data, uint32_t cx, uint32_t cy) /* ----------- */ // Draw the Label - gs_matrix_push(); - gs_matrix_translate3f(labelX, labelY, 0.0f); - gs_matrix_scale3f(hiScaleX, hiScaleY, 1.0f); - drawBox(obs_source_get_width(programLabel), - obs_source_get_height(programLabel) + - int(halfCX * 0.015f), labelColor); - obs_source_video_render(programLabel); - gs_matrix_pop(); + if (config_get_bool(GetGlobalConfig(), "BasicWindow", + "MultiviewDrawNames")) { + gs_matrix_push(); + gs_matrix_translate3f(labelX, labelY, 0.0f); + gs_matrix_scale3f(hiScaleX, hiScaleY, 1.0f); + drawBox(obs_source_get_width(programLabel), + obs_source_get_height(programLabel) + + int(halfCX * 0.015f), labelColor); + obs_source_video_render(programLabel); + gs_matrix_pop(); + } + endRegion(); }