diff options
Diffstat (limited to 'intern/cycles/blender/session.cpp')
-rw-r--r-- | intern/cycles/blender/session.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/intern/cycles/blender/session.cpp b/intern/cycles/blender/session.cpp index e1da85b84ff..1b7aa38efb4 100644 --- a/intern/cycles/blender/session.cpp +++ b/intern/cycles/blender/session.cpp @@ -659,6 +659,7 @@ void BlenderSession::bake(BL::Depsgraph &b_depsgraph_, session->set_display_driver(nullptr); session->set_output_driver(make_unique<BlenderOutputDriver>(b_engine)); + session->full_buffer_written_cb = [&](string_view filename) { full_buffer_written(filename); }; /* Sync scene. */ BL::Object b_camera_override(b_engine.camera_override()); @@ -700,6 +701,10 @@ void BlenderSession::bake(BL::Depsgraph &b_depsgraph_, BufferParams buffer_params; buffer_params.width = bake_width; buffer_params.height = bake_height; + buffer_params.window_width = bake_width; + buffer_params.window_height = bake_height; + /* Unique layer name for multi-image baking. */ + buffer_params.layer = string_printf("bake_%d\n", bake_id++); /* Update session. */ session->reset(session_params, buffer_params); @@ -713,8 +718,6 @@ void BlenderSession::bake(BL::Depsgraph &b_depsgraph_, session->start(); session->wait(); } - - session->set_output_driver(nullptr); } void BlenderSession::synchronize(BL::Depsgraph &b_depsgraph_) @@ -1059,8 +1062,8 @@ void BlenderSession::ensure_display_driver_if_needed() return; } - unique_ptr<BlenderDisplayDriver> display_driver = make_unique<BlenderDisplayDriver>(b_engine, - b_scene); + unique_ptr<BlenderDisplayDriver> display_driver = make_unique<BlenderDisplayDriver>( + b_engine, b_scene, background); display_driver_ = display_driver.get(); session->set_display_driver(move(display_driver)); } |