diff options
Diffstat (limited to 'intern/cycles/util/util_progress.h')
-rw-r--r-- | intern/cycles/util/util_progress.h | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/intern/cycles/util/util_progress.h b/intern/cycles/util/util_progress.h index e721a3f5047..238fb976778 100644 --- a/intern/cycles/util/util_progress.h +++ b/intern/cycles/util/util_progress.h @@ -46,6 +46,8 @@ public: update_cb = NULL; cancel = false; cancel_message = ""; + error = false; + error_message = ""; cancel_cb = NULL; } @@ -79,6 +81,8 @@ public: sync_substatus = ""; cancel = false; cancel_message = ""; + error = false; + error_message = ""; } /* cancel */ @@ -108,6 +112,28 @@ public: cancel_cb = function; } + /* error */ + void set_error(const string& error_message_) + { + thread_scoped_lock lock(progress_mutex); + error_message = error_message_; + error = true; + /* If error happens we also stop rendering. */ + cancel_message = error_message_; + cancel = true; + } + + bool get_error() + { + return error; + } + + string get_error_message() + { + thread_scoped_lock lock(progress_mutex); + return error_message; + } + /* tile and timing information */ void set_start_time(double start_time_) @@ -259,6 +285,9 @@ protected: volatile bool cancel; string cancel_message; + + volatile bool error; + string error_message; }; CCL_NAMESPACE_END |