Changeset View
Changeset View
Standalone View
Standalone View
source/blender/render/intern/source/pipeline.c
| Show First 20 Lines • Show All 1,674 Lines • ▼ Show 20 Lines | |||||
| /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ | /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ | ||||
| /* main loop: doing sequence + 3d render + compositing */ | /* main loop: doing sequence + 3d render + compositing */ | ||||
| static void do_render_all_options(Render *re) | static void do_render_all_options(Render *re) | ||||
| { | { | ||||
| Object *camera; | Object *camera; | ||||
| bool render_seq = false; | bool render_seq = false; | ||||
| int cfra = re->r.cfra; | |||||
| re->current_scene_update(re->suh, re->scene); | re->current_scene_update(re->suh, re->scene); | ||||
| BKE_scene_camera_switch_update(re->scene); | BKE_scene_camera_switch_update(re->scene); | ||||
| re->i.starttime = PIL_check_seconds_timer(); | re->i.starttime = PIL_check_seconds_timer(); | ||||
| /* ensure no images are in memory from previous animated sequences */ | /* ensure no images are in memory from previous animated sequences */ | ||||
| BKE_image_all_free_anim_ibufs(re->main, re->r.cfra); | BKE_image_all_free_anim_ibufs(re->main, re->r.cfra); | ||||
| BKE_sequencer_all_free_anim_ibufs(re->scene, re->r.cfra); | BKE_sequencer_all_free_anim_ibufs(re->scene, re->r.cfra); | ||||
| /* Update for sequencer and compositing animation. | |||||
| * TODO: ideally we would create a depsgraph with a copy of the scene | |||||
| * like the render engine, but sequencer and compositing do not (yet?) | |||||
| * work with copy-on-write. */ | |||||
| BKE_animsys_evaluate_all_animation(re->main, NULL, re->scene, (float)cfra); | |||||
| /* Update for masks | |||||
| * (these do not use animsys but own lighter weight structure to define animation). */ | |||||
| BKE_mask_evaluate_all_masks(re->main, (float)cfra, true); | |||||
| if (RE_engine_render(re, 1)) { | if (RE_engine_render(re, 1)) { | ||||
| /* in this case external render overrides all */ | /* in this case external render overrides all */ | ||||
| } | } | ||||
| else if (RE_seq_render_active(re->scene, &re->r)) { | else if (RE_seq_render_active(re->scene, &re->r)) { | ||||
| /* note: do_render_seq() frees rect32 when sequencer returns float images */ | /* note: do_render_seq() frees rect32 when sequencer returns float images */ | ||||
| if (!re->test_break(re->tbh)) { | if (!re->test_break(re->tbh)) { | ||||
| do_render_seq(re); | do_render_seq(re); | ||||
| render_seq = true; | render_seq = true; | ||||
| ▲ Show 20 Lines • Show All 1,311 Lines • Show Last 20 Lines | |||||