Просмотр исходного кода

UI: Don't draw audio/transition sources in properties

jp9000 9 лет назад
Родитель
Сommit
694a6da7b8
2 измененных файлов с 16 добавлено и 2 удалено
  1. 8 1
      obs/window-basic-filters.cpp
  2. 8 1
      obs/window-basic-properties.cpp

+ 8 - 1
obs/window-basic-filters.cpp

@@ -109,7 +109,14 @@ OBSBasicFilters::OBSBasicFilters(QWidget *parent, OBSSource source_)
 				OBSBasicFilters::DrawPreview, this);
 	};
 
-	connect(ui->preview, &OBSQTDisplay::DisplayCreated, addDrawCallback);
+	enum obs_source_type type = obs_source_get_type(source);
+	uint32_t caps = obs_source_get_output_flags(source);
+	bool drawable_type = type == OBS_SOURCE_TYPE_INPUT ||
+		type == OBS_SOURCE_TYPE_SCENE;
+
+	if (drawable_type && (caps & OBS_SOURCE_VIDEO) != 0)
+		connect(ui->preview, &OBSQTDisplay::DisplayCreated,
+				addDrawCallback);
 }
 
 OBSBasicFilters::~OBSBasicFilters()

+ 8 - 1
obs/window-basic-properties.cpp

@@ -103,7 +103,14 @@ OBSBasicProperties::OBSBasicProperties(QWidget *parent, OBSSource source_)
 				OBSBasicProperties::DrawPreview, this);
 	};
 
-	connect(preview.data(), &OBSQTDisplay::DisplayCreated, addDrawCallback);
+	enum obs_source_type type = obs_source_get_type(source);
+	uint32_t caps = obs_source_get_output_flags(source);
+	bool drawable_type = type == OBS_SOURCE_TYPE_INPUT ||
+		type == OBS_SOURCE_TYPE_SCENE;
+
+	if (drawable_type && (caps & OBS_SOURCE_VIDEO) != 0)
+		connect(preview.data(), &OBSQTDisplay::DisplayCreated,
+				addDrawCallback);
 }
 
 OBSBasicProperties::~OBSBasicProperties()