Changeset View
Changeset View
Standalone View
Standalone View
intern/cycles/blender/blender_session.cpp
| Show First 20 Lines • Show All 124 Lines • ▼ Show 20 Lines | if(session_pause == false) { | ||||
| sync->sync_data(b_v3d, b_engine.camera_override(), &python_thread_state); | sync->sync_data(b_v3d, b_engine.camera_override(), &python_thread_state); | ||||
| } | } | ||||
| } | } | ||||
| else { | else { | ||||
| /* for final render we will do full data sync per render layer, only | /* for final render we will do full data sync per render layer, only | ||||
| * do some basic syncing here, no objects or materials for speed */ | * do some basic syncing here, no objects or materials for speed */ | ||||
| sync->sync_render_layers(b_v3d, NULL); | sync->sync_render_layers(b_v3d, NULL); | ||||
| sync->sync_integrator(); | sync->sync_integrator(); | ||||
| sync->sync_camera(b_render, b_engine.camera_override(), width, height); | |||||
| } | } | ||||
| /* set buffer parameters */ | /* set buffer parameters */ | ||||
| BufferParams buffer_params = BlenderSync::get_buffer_params(b_render, b_v3d, b_rv3d, scene->camera, width, height); | BufferParams buffer_params = BlenderSync::get_buffer_params(b_render, b_v3d, b_rv3d, scene->camera, width, height); | ||||
| session->reset(buffer_params, session_params.samples); | session->reset(buffer_params, session_params.samples); | ||||
| b_engine.use_highlight_tiles(session_params.progressive_refine == false); | b_engine.use_highlight_tiles(session_params.progressive_refine == false); | ||||
| } | } | ||||
| Show All 38 Lines | void BlenderSession::reset_session(BL::BlendData b_data_, BL::Scene b_scene_) | ||||
| /* sync object should be re-created */ | /* sync object should be re-created */ | ||||
| sync = new BlenderSync(b_engine, b_data, b_scene, scene, !background, session->progress, is_cpu); | sync = new BlenderSync(b_engine, b_data, b_scene, scene, !background, session->progress, is_cpu); | ||||
| /* for final render we will do full data sync per render layer, only | /* for final render we will do full data sync per render layer, only | ||||
| * do some basic syncing here, no objects or materials for speed */ | * do some basic syncing here, no objects or materials for speed */ | ||||
| sync->sync_render_layers(b_v3d, NULL); | sync->sync_render_layers(b_v3d, NULL); | ||||
| sync->sync_integrator(); | sync->sync_integrator(); | ||||
| sync->sync_camera(b_render, b_engine.camera_override(), width, height); | |||||
| BufferParams buffer_params = BlenderSync::get_buffer_params(b_render, PointerRNA_NULL, PointerRNA_NULL, scene->camera, width, height); | BufferParams buffer_params = BlenderSync::get_buffer_params(b_render, PointerRNA_NULL, PointerRNA_NULL, scene->camera, width, height); | ||||
| session->reset(buffer_params, session_params.samples); | session->reset(buffer_params, session_params.samples); | ||||
| b_engine.use_highlight_tiles(session_params.progressive_refine == false); | b_engine.use_highlight_tiles(session_params.progressive_refine == false); | ||||
| /* reset time */ | /* reset time */ | ||||
| start_resize_time = 0.0; | start_resize_time = 0.0; | ||||
| ▲ Show 20 Lines • Show All 274 Lines • ▼ Show 20 Lines | #endif | ||||
| for(b_rr.views.begin(b_view_iter); b_view_iter != b_rr.views.end(); ++b_view_iter) { | for(b_rr.views.begin(b_view_iter); b_view_iter != b_rr.views.end(); ++b_view_iter) { | ||||
| b_rview_name = b_view_iter->name(); | b_rview_name = b_view_iter->name(); | ||||
| /* set the current view */ | /* set the current view */ | ||||
| b_engine.active_view_set(b_rview_name.c_str()); | b_engine.active_view_set(b_rview_name.c_str()); | ||||
| /* update scene */ | /* update scene */ | ||||
| sync->sync_camera(b_render, b_engine.camera_override(), width, height); | sync->sync_camera(b_render, b_engine.camera_override(), width, height, b_rview_name.c_str()); | ||||
| sync->sync_data(b_v3d, b_engine.camera_override(), &python_thread_state, b_rlay_name.c_str()); | sync->sync_data(b_v3d, b_engine.camera_override(), &python_thread_state, b_rlay_name.c_str()); | ||||
| /* update number of samples per layer */ | /* update number of samples per layer */ | ||||
| int samples = sync->get_layer_samples(); | int samples = sync->get_layer_samples(); | ||||
| bool bound_samples = sync->get_layer_bound_samples(); | bool bound_samples = sync->get_layer_bound_samples(); | ||||
| if(samples != 0 && (!bound_samples || (samples < session_params.samples))) | if(samples != 0 && (!bound_samples || (samples < session_params.samples))) | ||||
| session->reset(buffer_params, samples); | session->reset(buffer_params, samples); | ||||
| ▲ Show 20 Lines • Show All 71 Lines • ▼ Show 20 Lines | if(BakeManager::is_light_pass(shader_type)) { | ||||
| Pass::add(PASS_LIGHT, scene->film->passes); | Pass::add(PASS_LIGHT, scene->film->passes); | ||||
| } | } | ||||
| /* create device and update scene */ | /* create device and update scene */ | ||||
| scene->film->tag_update(scene); | scene->film->tag_update(scene); | ||||
| scene->integrator->tag_update(scene); | scene->integrator->tag_update(scene); | ||||
| /* update scene */ | /* update scene */ | ||||
| sync->sync_camera(b_render, b_engine.camera_override(), width, height); | sync->sync_camera(b_render, b_engine.camera_override(), width, height, ""); | ||||
| sync->sync_data(b_v3d, b_engine.camera_override(), &python_thread_state); | sync->sync_data(b_v3d, b_engine.camera_override(), &python_thread_state); | ||||
| /* get buffer parameters */ | /* get buffer parameters */ | ||||
| SessionParams session_params = BlenderSync::get_session_params(b_engine, b_userpref, b_scene, background); | SessionParams session_params = BlenderSync::get_session_params(b_engine, b_userpref, b_scene, background); | ||||
| BufferParams buffer_params = BlenderSync::get_buffer_params(b_render, b_v3d, b_rv3d, scene->camera, width, height); | BufferParams buffer_params = BlenderSync::get_buffer_params(b_render, b_v3d, b_rv3d, scene->camera, width, height); | ||||
| scene->bake_manager->set_shader_limit((size_t)b_engine.tile_x(), (size_t)b_engine.tile_y()); | scene->bake_manager->set_shader_limit((size_t)b_engine.tile_x(), (size_t)b_engine.tile_y()); | ||||
| scene->bake_manager->set_baking(true); | scene->bake_manager->set_baking(true); | ||||
| ▲ Show 20 Lines • Show All 132 Lines • ▼ Show 20 Lines | void BlenderSession::synchronize() | ||||
| } | } | ||||
| /* data and camera synchronize */ | /* data and camera synchronize */ | ||||
| sync->sync_data(b_v3d, b_engine.camera_override(), &python_thread_state); | sync->sync_data(b_v3d, b_engine.camera_override(), &python_thread_state); | ||||
| if(b_rv3d) | if(b_rv3d) | ||||
| sync->sync_view(b_v3d, b_rv3d, width, height); | sync->sync_view(b_v3d, b_rv3d, width, height); | ||||
| else | else | ||||
| sync->sync_camera(b_render, b_engine.camera_override(), width, height); | sync->sync_camera(b_render, b_engine.camera_override(), width, height, ""); | ||||
| /* unlock */ | /* unlock */ | ||||
| session->scene->mutex.unlock(); | session->scene->mutex.unlock(); | ||||
| /* reset if needed */ | /* reset if needed */ | ||||
| if(scene->need_reset()) { | if(scene->need_reset()) { | ||||
| BufferParams buffer_params = BlenderSync::get_buffer_params(b_render, b_v3d, b_rv3d, scene->camera, width, height); | BufferParams buffer_params = BlenderSync::get_buffer_params(b_render, b_v3d, b_rv3d, scene->camera, width, height); | ||||
| session->reset(buffer_params, session_params.samples); | session->reset(buffer_params, session_params.samples); | ||||
| ▲ Show 20 Lines • Show All 438 Lines • Show Last 20 Lines | |||||