diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2011-10-30 14:12:34 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2011-10-30 14:12:34 +0400 |
commit | bb379c06e914c0a38910343fbee9595fe1dac2c3 (patch) | |
tree | 27047c1a76786be6319e1d197d3a978801363509 /intern/cycles | |
parent | 238f3a7d343875992f5b9c2ad657f2bc6f148938 (diff) |
Cycles: progress printing in background mode, print finished at the end and
avoid duplicate prints.
Diffstat (limited to 'intern/cycles')
-rw-r--r-- | intern/cycles/blender/blender_session.cpp | 14 | ||||
-rw-r--r-- | intern/cycles/blender/blender_session.h | 3 | ||||
-rw-r--r-- | intern/cycles/render/session.cpp | 8 |
3 files changed, 21 insertions, 4 deletions
diff --git a/intern/cycles/blender/blender_session.cpp b/intern/cycles/blender/blender_session.cpp index c6f016b7971..4fa87815601 100644 --- a/intern/cycles/blender/blender_session.cpp +++ b/intern/cycles/blender/blender_session.cpp @@ -76,6 +76,10 @@ void BlenderSession::create_session() SceneParams scene_params = BlenderSync::get_scene_params(b_scene); SessionParams session_params = BlenderSync::get_session_params(b_scene, background); + /* reset status/progress */ + last_status= ""; + last_progress= -1.0f; + /* create scene */ scene = new Scene(scene_params); @@ -264,8 +268,14 @@ void BlenderSession::update_status_progress() if(substatus.size() > 0) status += " | " + substatus; - RE_engine_update_stats((RenderEngine*)b_engine.ptr.data, "", status.c_str()); - RE_engine_update_progress((RenderEngine*)b_engine.ptr.data, progress); + if(status != last_status) { + RE_engine_update_stats((RenderEngine*)b_engine.ptr.data, "", status.c_str()); + last_status = status; + } + if(progress != last_progress) { + RE_engine_update_progress((RenderEngine*)b_engine.ptr.data, progress); + last_progress = progress; + } } void BlenderSession::tag_update() diff --git a/intern/cycles/blender/blender_session.h b/intern/cycles/blender/blender_session.h index 8608ddd2658..e30b60c3d63 100644 --- a/intern/cycles/blender/blender_session.h +++ b/intern/cycles/blender/blender_session.h @@ -70,6 +70,9 @@ public: BL::SpaceView3D b_v3d; BL::RegionView3D b_rv3d; + string last_status; + float last_progress; + int width, height; }; diff --git a/intern/cycles/render/session.cpp b/intern/cycles/render/session.cpp index 50f7017bacf..2deb83674cc 100644 --- a/intern/cycles/render/session.cpp +++ b/intern/cycles/render/session.cpp @@ -170,8 +170,10 @@ void Session::run_gpu() if(params.background) { /* if no work left and in background mode, we can stop immediately */ - if(no_tiles) + if(no_tiles) { + progress.set_status("Finished"); break; + } } else { /* if in interactive mode, and we are either paused or done for now, @@ -305,8 +307,10 @@ void Session::run_cpu() if(params.background) { /* if no work left and in background mode, we can stop immediately */ - if(no_tiles) + if(no_tiles) { + progress.set_status("Finished"); break; + } } else { /* if in interactive mode, and we are either paused or done for now, |