[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [50945] trunk/blender/intern/cycles: Fix cycles "synchronizing object" status being shown when it was already finished.

Brecht Van Lommel brechtvanlommel at pandora.be
Fri Sep 28 14:37:20 CEST 2012


Revision: 50945
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=50945
Author:   blendix
Date:     2012-09-28 12:37:20 +0000 (Fri, 28 Sep 2012)
Log Message:
-----------
Fix cycles "synchronizing object" status being shown when it was already finished.

Modified Paths:
--------------
    trunk/blender/intern/cycles/blender/blender_object.cpp
    trunk/blender/intern/cycles/util/util_progress.h

Modified: trunk/blender/intern/cycles/blender/blender_object.cpp
===================================================================
--- trunk/blender/intern/cycles/blender/blender_object.cpp	2012-09-28 12:37:14 UTC (rev 50944)
+++ trunk/blender/intern/cycles/blender/blender_object.cpp	2012-09-28 12:37:20 UTC (rev 50945)
@@ -309,7 +309,7 @@
 			hide = hide || !(ob_layer & scene_layer);
 
 			if(!hide) {
-				progress.set_status("Synchronizing object", (*b_ob).name());
+				progress.set_sync_status("Synchronizing object", (*b_ob).name());
 
 				int num_particles = object_count_particles(*b_ob);
 
@@ -356,6 +356,8 @@
 		}
 	}
 
+	progress.set_sync_status("");
+
 	if(!cancel && !motion) {
 		sync_background_light();
 

Modified: trunk/blender/intern/cycles/util/util_progress.h
===================================================================
--- trunk/blender/intern/cycles/util/util_progress.h	2012-09-28 12:37:14 UTC (rev 50944)
+++ trunk/blender/intern/cycles/util/util_progress.h	2012-09-28 12:37:20 UTC (rev 50945)
@@ -43,6 +43,8 @@
 		tile_time = 0.0f;
 		status = "Initializing";
 		substatus = "";
+		sync_status = "";
+		sync_substatus = "";
 		update_cb = NULL;
 		cancel = false;
 		cancel_message = "";
@@ -164,11 +166,42 @@
 		set_update();
 	}
 
+	void set_sync_status(const string& status_, const string& substatus_ = "")
+	{
+		{
+			thread_scoped_lock lock(progress_mutex);
+			sync_status = status_;
+			sync_substatus = substatus_;
+			total_time = time_dt() - start_time;
+		}
+
+		set_update();
+
+	}
+
+	void set_sync_substatus(const string& substatus_)
+	{
+		{
+			thread_scoped_lock lock(progress_mutex);
+			sync_substatus = substatus_;
+			total_time = time_dt() - start_time;
+		}
+
+		set_update();
+	}
+
 	void get_status(string& status_, string& substatus_)
 	{
 		thread_scoped_lock lock(progress_mutex);
-		status_ = status;
-		substatus_ = substatus;
+
+		if(sync_status != "") {
+			status_ = sync_status;
+			substatus_ = sync_substatus;
+		}
+		else {
+			status_ = status;
+			substatus_ = substatus;
+		}
 	}
 
 	/* callback */
@@ -202,6 +235,9 @@
 	string status;
 	string substatus;
 
+	string sync_status;
+	string sync_substatus;
+
 	volatile bool cancel;
 	string cancel_message;
 };




More information about the Bf-blender-cvs mailing list