diff options
Diffstat (limited to 'source/blender/depsgraph/intern/eval')
4 files changed, 14 insertions, 16 deletions
diff --git a/source/blender/depsgraph/intern/eval/deg_eval.cc b/source/blender/depsgraph/intern/eval/deg_eval.cc index 1ede2cf914a..2e0487bfca1 100644 --- a/source/blender/depsgraph/intern/eval/deg_eval.cc +++ b/source/blender/depsgraph/intern/eval/deg_eval.cc @@ -86,8 +86,8 @@ enum class EvaluationStage { /* Workaround for areas which can not be evaluated in threads. * - * For example, metaballs, which are iterating over all bases and are requesting dupli-lists - * to see whether there are metaballs inside. */ + * For example, meta-balls, which are iterating over all bases and are requesting dupli-lists + * to see whether there are meta-balls inside. */ SINGLE_THREADED_WORKAROUND, }; diff --git a/source/blender/depsgraph/intern/eval/deg_eval_flush.cc b/source/blender/depsgraph/intern/eval/deg_eval_flush.cc index a74ec485d88..5ccdcbec858 100644 --- a/source/blender/depsgraph/intern/eval/deg_eval_flush.cc +++ b/source/blender/depsgraph/intern/eval/deg_eval_flush.cc @@ -351,19 +351,15 @@ void invalidate_tagged_evaluated_data(Depsgraph *graph) /* Flush updates from tagged nodes outwards until all affected nodes * are tagged. */ -void deg_graph_flush_updates(Main *bmain, Depsgraph *graph) +void deg_graph_flush_updates(Depsgraph *graph) { /* Sanity checks. */ - BLI_assert(bmain != nullptr); BLI_assert(graph != nullptr); + Main *bmain = graph->bmain; + + graph->time_source->flush_update_tag(graph); + /* Nothing to update, early out. */ - if (graph->need_update_time) { - const Scene *scene_orig = graph->scene; - const float ctime = BKE_scene_frame_get(scene_orig); - TimeSourceNode *time_source = graph->find_time_source(); - graph->ctime = ctime; - time_source->tag_update(graph, DEG_UPDATE_SOURCE_TIME); - } if (graph->entry_tags.is_empty()) { return; } @@ -411,6 +407,8 @@ void deg_graph_clear_tags(Depsgraph *graph) } /* Clear any entry tags which haven't been flushed. */ graph->entry_tags.clear(); + + graph->time_source->tagged_for_update = false; } } // namespace deg diff --git a/source/blender/depsgraph/intern/eval/deg_eval_flush.h b/source/blender/depsgraph/intern/eval/deg_eval_flush.h index c76dc9fe01d..1f58c54dbf4 100644 --- a/source/blender/depsgraph/intern/eval/deg_eval_flush.h +++ b/source/blender/depsgraph/intern/eval/deg_eval_flush.h @@ -35,7 +35,7 @@ struct Depsgraph; /* Flush updates from tagged nodes outwards until all affected nodes * are tagged. */ -void deg_graph_flush_updates(struct Main *bmain, struct Depsgraph *graph); +void deg_graph_flush_updates(struct Depsgraph *graph); /* Clear tags from all operation nodes. */ void deg_graph_clear_tags(struct Depsgraph *graph); diff --git a/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_sequencer.cc b/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_sequencer.cc index ba7d20c0ba8..4d79480a5ad 100644 --- a/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_sequencer.cc +++ b/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_sequencer.cc @@ -41,7 +41,7 @@ SequencerBackup::SequencerBackup(const Depsgraph *depsgraph) : depsgraph(depsgra void SequencerBackup::init_from_scene(Scene *scene) { Sequence *sequence; - SEQ_BEGIN (scene->ed, sequence) { + SEQ_ALL_BEGIN (scene->ed, sequence) { SequenceBackup sequence_backup(depsgraph); sequence_backup.init_from_sequence(sequence); if (!sequence_backup.isEmpty()) { @@ -50,13 +50,13 @@ void SequencerBackup::init_from_scene(Scene *scene) sequences_backup.add(session_uuid, sequence_backup); } } - SEQ_END; + SEQ_ALL_END; } void SequencerBackup::restore_to_scene(Scene *scene) { Sequence *sequence; - SEQ_BEGIN (scene->ed, sequence) { + SEQ_ALL_BEGIN (scene->ed, sequence) { const SessionUUID &session_uuid = sequence->runtime.session_uuid; BLI_assert(BLI_session_uuid_is_generated(&session_uuid)); SequenceBackup *sequence_backup = sequences_backup.lookup_ptr(session_uuid); @@ -64,7 +64,7 @@ void SequencerBackup::restore_to_scene(Scene *scene) sequence_backup->restore_to_sequence(sequence); } } - SEQ_END; + SEQ_ALL_END; /* Cleanup audio while the scene is still known. */ for (SequenceBackup &sequence_backup : sequences_backup.values()) { if (sequence_backup.scene_sound != nullptr) { |