diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2012-09-28 16:37:20 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2012-09-28 16:37:20 +0400 |
commit | 1d2e59ba1c7cc3f823ad6e3916ebee28b4a069b1 (patch) | |
tree | 6183b340d1953ee887cb7b7846235fb7807152f9 /intern/cycles/util | |
parent | 4cf06b97ddcd0204a35969b0521154bcdd7a9cd8 (diff) |
Fix cycles "synchronizing object" status being shown when it was already finished.
Diffstat (limited to 'intern/cycles/util')
-rw-r--r-- | intern/cycles/util/util_progress.h | 40 |
1 files changed, 38 insertions, 2 deletions
diff --git a/intern/cycles/util/util_progress.h b/intern/cycles/util/util_progress.h index ab9ab7243e9..c97379d8776 100644 --- a/intern/cycles/util/util_progress.h +++ b/intern/cycles/util/util_progress.h @@ -43,6 +43,8 @@ public: tile_time = 0.0f; status = "Initializing"; substatus = ""; + sync_status = ""; + sync_substatus = ""; update_cb = NULL; cancel = false; cancel_message = ""; @@ -164,11 +166,42 @@ public: 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 @@ protected: string status; string substatus; + string sync_status; + string sync_substatus; + volatile bool cancel; string cancel_message; }; |