Changeset View
Changeset View
Standalone View
Standalone View
source/blender/render/intern/source/pipeline.c
| Show All 33 Lines | |||||
| #include <string.h> | #include <string.h> | ||||
| #include <stdlib.h> | #include <stdlib.h> | ||||
| #include <stddef.h> | #include <stddef.h> | ||||
| #include <errno.h> | #include <errno.h> | ||||
| #include "DNA_anim_types.h" | #include "DNA_anim_types.h" | ||||
| #include "DNA_collection_types.h" | #include "DNA_collection_types.h" | ||||
| #include "DNA_image_types.h" | #include "DNA_image_types.h" | ||||
| #include "DNA_mask_types.h" | |||||
| #include "DNA_node_types.h" | #include "DNA_node_types.h" | ||||
| #include "DNA_object_types.h" | #include "DNA_object_types.h" | ||||
| #include "DNA_particle_types.h" | #include "DNA_particle_types.h" | ||||
| #include "DNA_scene_types.h" | #include "DNA_scene_types.h" | ||||
| #include "DNA_sequence_types.h" | #include "DNA_sequence_types.h" | ||||
| #include "DNA_userdef_types.h" | #include "DNA_userdef_types.h" | ||||
| #include "MEM_guardedalloc.h" | #include "MEM_guardedalloc.h" | ||||
| Show All 15 Lines | |||||
| #include "BKE_camera.h" | #include "BKE_camera.h" | ||||
| #include "BKE_colortools.h" | #include "BKE_colortools.h" | ||||
| #include "BKE_context.h" /* XXX needed by wm_window.h */ | #include "BKE_context.h" /* XXX needed by wm_window.h */ | ||||
| #include "BKE_global.h" | #include "BKE_global.h" | ||||
| #include "BKE_image.h" | #include "BKE_image.h" | ||||
| #include "BKE_layer.h" | #include "BKE_layer.h" | ||||
| #include "BKE_library.h" | #include "BKE_library.h" | ||||
| #include "BKE_library_remap.h" | #include "BKE_library_remap.h" | ||||
| #include "BKE_mask.h" | |||||
| #include "BKE_modifier.h" | #include "BKE_modifier.h" | ||||
| #include "BKE_node.h" | #include "BKE_node.h" | ||||
| #include "BKE_object.h" | #include "BKE_object.h" | ||||
| #include "BKE_pointcache.h" | #include "BKE_pointcache.h" | ||||
| #include "BKE_report.h" | #include "BKE_report.h" | ||||
| #include "BKE_scene.h" | #include "BKE_scene.h" | ||||
| #include "BKE_sequencer.h" | #include "BKE_sequencer.h" | ||||
| #include "BKE_sound.h" | #include "BKE_sound.h" | ||||
| ▲ Show 20 Lines • Show All 1,553 Lines • ▼ Show 20 Lines | static void do_render_all_options(Render *re) | ||||
| BKE_sequencer_all_free_anim_ibufs(re->main, re->r.cfra); | BKE_sequencer_all_free_anim_ibufs(re->main, re->r.cfra); | ||||
| /* Update for sequencer and compositing animation. | /* Update for sequencer and compositing animation. | ||||
| * TODO: ideally we would create a depsgraph with a copy of the scene | * TODO: ideally we would create a depsgraph with a copy of the scene | ||||
| * like the render engine, but sequencer and compositing do not (yet?) | * like the render engine, but sequencer and compositing do not (yet?) | ||||
| * work with copy-on-write. */ | * work with copy-on-write. */ | ||||
| BKE_animsys_evaluate_all_animation(re->main, NULL, re->scene, (float)cfra); | BKE_animsys_evaluate_all_animation(re->main, NULL, re->scene, (float)cfra); | ||||
| /* another Update for compositing (masks) | |||||
| * since updating masks deformations are not actions, BKE_animsys_evaluate_all_animation() is not enough */ | |||||
| for (Mask *mask = re->main->mask.first; mask; mask = mask->id.next) { | |||||
| if (ID_REAL_USERS(mask) > 0) { | |||||
| for (MaskLayer *mask_layer = mask->masklayers.first; | |||||
| mask_layer != NULL; | |||||
| mask_layer = mask_layer->next) | |||||
| { | |||||
| BKE_mask_layer_evaluate_deform(mask_layer, (float)cfra); | |||||
| BKE_mask_layer_evaluate_animation(mask_layer, (float)cfra); | |||||
| } | |||||
| } | |||||
| } | |||||
| 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,188 Lines • Show Last 20 Lines | |||||