Quellcode durchsuchen

Merge pull request #104971 from Ivorforce/camera-texture-editor-lazy

Automatically activate camera monitoring when using `CameraTexture`
Thaddeus Crews vor 4 Monaten
Ursprung
Commit
bfa43726c1
2 geänderte Dateien mit 7 neuen und 1 gelöschten Zeilen
  1. 6 1
      scene/resources/camera_texture.cpp
  2. 1 0
      servers/camera_server.cpp

+ 6 - 1
scene/resources/camera_texture.cpp

@@ -142,7 +142,12 @@ bool CameraTexture::get_camera_active() const {
 	}
 }
 
-CameraTexture::CameraTexture() {}
+CameraTexture::CameraTexture() {
+	// Note: When any CameraTexture is created, we need to automatically activate monitoring
+	//       of camera feeds. This may incur a small lag spike, so it may be preferable to
+	//       enable it manually before creating the camera texture.
+	CameraServer::get_singleton()->set_monitoring_feeds(true);
+}
 
 CameraTexture::~CameraTexture() {
 	if (_texture.is_valid()) {

+ 1 - 0
servers/camera_server.cpp

@@ -42,6 +42,7 @@ void CameraServer::_bind_methods() {
 	ClassDB::bind_method(D_METHOD("set_monitoring_feeds", "is_monitoring_feeds"), &CameraServer::set_monitoring_feeds);
 	ClassDB::bind_method(D_METHOD("is_monitoring_feeds"), &CameraServer::is_monitoring_feeds);
 	ADD_PROPERTY(PropertyInfo(Variant::BOOL, "monitoring_feeds"), "set_monitoring_feeds", "is_monitoring_feeds");
+	ADD_PROPERTY_DEFAULT("monitoring_feeds", false);
 
 	ClassDB::bind_method(D_METHOD("get_feed", "index"), &CameraServer::get_feed);
 	ClassDB::bind_method(D_METHOD("get_feed_count"), &CameraServer::get_feed_count);