diff options
Diffstat (limited to 'source/blender/depsgraph/intern/eval')
30 files changed, 186 insertions, 117 deletions
diff --git a/source/blender/depsgraph/intern/eval/deg_eval.cc b/source/blender/depsgraph/intern/eval/deg_eval.cc index 189beb506b3..6ca30a67f1f 100644 --- a/source/blender/depsgraph/intern/eval/deg_eval.cc +++ b/source/blender/depsgraph/intern/eval/deg_eval.cc @@ -54,7 +54,8 @@ #include "intern/node/deg_node_operation.h" #include "intern/node/deg_node_time.h" -namespace DEG { +namespace blender { +namespace deg { namespace { @@ -416,4 +417,5 @@ void deg_evaluate_on_refresh(Depsgraph *graph) graph->debug.end_graph_evaluation(); } -} // namespace DEG +} // namespace deg +} // namespace blender diff --git a/source/blender/depsgraph/intern/eval/deg_eval.h b/source/blender/depsgraph/intern/eval/deg_eval.h index 5baf13653ca..49690f15412 100644 --- a/source/blender/depsgraph/intern/eval/deg_eval.h +++ b/source/blender/depsgraph/intern/eval/deg_eval.h @@ -25,7 +25,8 @@ #pragma once -namespace DEG { +namespace blender { +namespace deg { struct Depsgraph; @@ -38,4 +39,5 @@ struct Depsgraph; */ void deg_evaluate_on_refresh(Depsgraph *graph); -} // namespace DEG +} // namespace deg +} // namespace blender diff --git a/source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc b/source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc index 70a6875f1c0..2290c37fc2a 100644 --- a/source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc +++ b/source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc @@ -100,7 +100,8 @@ #include "intern/node/deg_node.h" #include "intern/node/deg_node_id.h" -namespace DEG { +namespace blender { +namespace deg { #define DEBUG_PRINT \ if (G.debug & G_DEBUG_DEPSGRAPH_EVAL) \ @@ -945,7 +946,7 @@ ID *deg_expand_copy_on_write_datablock(const Depsgraph *depsgraph, DepsgraphNodeBuilder *node_builder, bool create_placeholders) { - DEG::IDNode *id_node = depsgraph->find_id_node(id_orig); + IDNode *id_node = depsgraph->find_id_node(id_orig); BLI_assert(id_node != nullptr); return deg_expand_copy_on_write_datablock(depsgraph, id_node, node_builder, create_placeholders); } @@ -969,7 +970,7 @@ ID *deg_update_copy_on_write_datablock(const Depsgraph *depsgraph, const IDNode /* NOTE: Depsgraph is supposed to have ID node already. */ ID *deg_update_copy_on_write_datablock(const Depsgraph *depsgraph, ID *id_orig) { - DEG::IDNode *id_node = depsgraph->find_id_node(id_orig); + IDNode *id_node = depsgraph->find_id_node(id_orig); BLI_assert(id_node != nullptr); return deg_update_copy_on_write_datablock(depsgraph, id_node); } @@ -1089,7 +1090,7 @@ void deg_free_copy_on_write_datablock(ID *id_cow) void deg_evaluate_copy_on_write(struct ::Depsgraph *graph, const IDNode *id_node) { - const DEG::Depsgraph *depsgraph = reinterpret_cast<const DEG::Depsgraph *>(graph); + const Depsgraph *depsgraph = reinterpret_cast<const Depsgraph *>(graph); DEG_debug_print_eval(graph, __func__, id_node->id_orig->name, id_node->id_cow); if (id_node->id_orig == &depsgraph->scene->id) { /* NOTE: This is handled by eval_ctx setup routines, which @@ -1137,4 +1138,5 @@ bool deg_copy_on_write_is_needed(const ID_Type id_type) return ID_TYPE_IS_COW(id_type); } -} // namespace DEG +} // namespace deg +} // namespace blender diff --git a/source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.h b/source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.h index 05464d11f13..255ea840088 100644 --- a/source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.h +++ b/source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.h @@ -43,7 +43,8 @@ struct ID; struct Depsgraph; -namespace DEG { +namespace blender { +namespace deg { struct Depsgraph; class DepsgraphNodeBuilder; @@ -98,4 +99,5 @@ bool deg_copy_on_write_is_expanded(const struct ID *id_cow); bool deg_copy_on_write_is_needed(const ID *id_orig); bool deg_copy_on_write_is_needed(const ID_Type id_type); -} // namespace DEG +} // namespace deg +} // namespace blender diff --git a/source/blender/depsgraph/intern/eval/deg_eval_flush.cc b/source/blender/depsgraph/intern/eval/deg_eval_flush.cc index df6c139e916..a0a9ff7eca3 100644 --- a/source/blender/depsgraph/intern/eval/deg_eval_flush.cc +++ b/source/blender/depsgraph/intern/eval/deg_eval_flush.cc @@ -32,9 +32,11 @@ #include "BLI_task.h" #include "BLI_utildefines.h" +#include "BKE_key.h" #include "BKE_object.h" #include "BKE_scene.h" +#include "DNA_key_types.h" #include "DNA_object_types.h" #include "DNA_scene_types.h" @@ -67,7 +69,8 @@ // catch usage of invalid state. #undef INVALIDATE_ON_FLUSH -namespace DEG { +namespace blender { +namespace deg { enum { ID_STATE_NONE = 0, @@ -227,7 +230,7 @@ void flush_editors_id_update(Depsgraph *graph, const DEGEditorUpdateContext *upd ID *id_orig = id_node->id_orig; ID *id_cow = id_node->id_cow; /* Gather recalc flags from all changed components. */ - for (DEG::ComponentNode *comp_node : id_node->components.values()) { + for (ComponentNode *comp_node : id_node->components.values()) { if (comp_node->custom_flags != COMPONENT_STATE_DONE) { continue; } @@ -250,9 +253,30 @@ void flush_editors_id_update(Depsgraph *graph, const DEGEditorUpdateContext *upd if (deg_copy_on_write_is_expanded(id_cow)) { if (graph->is_active && id_node->is_user_modified) { deg_editors_id_update(update_ctx, id_orig); - } - if (ID_IS_OVERRIDE_LIBRARY(id_orig)) { - id_orig->tag |= LIB_TAG_OVERRIDE_LIBRARY_AUTOREFRESH; + + /* We only want to tag an ID for lib-override auto-refresh if it was actually tagged as + * changed. CoW IDs indirectly modified because of changes in other IDs should never + * require a lib-override diffing. */ + if (ID_IS_OVERRIDE_LIBRARY_REAL(id_orig)) { + id_orig->tag |= LIB_TAG_OVERRIDE_LIBRARY_AUTOREFRESH; + } + else if (ID_IS_OVERRIDE_LIBRARY_VIRTUAL(id_orig)) { + switch (GS(id_orig->name)) { + case ID_KE: + ((Key *)id_orig)->from->tag |= LIB_TAG_OVERRIDE_LIBRARY_AUTOREFRESH; + break; + case ID_GR: + BLI_assert(id_orig->flag & LIB_EMBEDDED_DATA); + /* TODO. */ + break; + case ID_NT: + BLI_assert(id_orig->flag & LIB_EMBEDDED_DATA); + /* TODO. */ + break; + default: + BLI_assert(0); + } + } } /* Inform draw engines that something was changed. */ flush_engine_data_update(id_cow); @@ -336,9 +360,9 @@ void deg_graph_flush_updates(Main *bmain, Depsgraph *graph) if (graph->need_update_time) { const Scene *scene_orig = graph->scene; const float ctime = BKE_scene_frame_get(scene_orig); - DEG::TimeSourceNode *time_source = graph->find_time_source(); + TimeSourceNode *time_source = graph->find_time_source(); graph->ctime = ctime; - time_source->tag_update(graph, DEG::DEG_UPDATE_SOURCE_TIME); + time_source->tag_update(graph, DEG_UPDATE_SOURCE_TIME); } if (graph->entry_tags.is_empty()) { return; @@ -389,4 +413,5 @@ void deg_graph_clear_tags(Depsgraph *graph) graph->entry_tags.clear(); } -} // namespace DEG +} // namespace deg +} // namespace blender diff --git a/source/blender/depsgraph/intern/eval/deg_eval_flush.h b/source/blender/depsgraph/intern/eval/deg_eval_flush.h index a4550dd4851..c76dc9fe01d 100644 --- a/source/blender/depsgraph/intern/eval/deg_eval_flush.h +++ b/source/blender/depsgraph/intern/eval/deg_eval_flush.h @@ -27,7 +27,8 @@ struct Main; -namespace DEG { +namespace blender { +namespace deg { struct Depsgraph; @@ -39,4 +40,5 @@ void deg_graph_flush_updates(struct Main *bmain, struct Depsgraph *graph); /* Clear tags from all operation nodes. */ void deg_graph_clear_tags(struct Depsgraph *graph); -} // namespace DEG +} // namespace deg +} // namespace blender diff --git a/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup.cc b/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup.cc index c3733cb235c..f3d9422a88b 100644 --- a/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup.cc +++ b/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup.cc @@ -29,7 +29,8 @@ #include "DRW_engine.h" -namespace DEG { +namespace blender { +namespace deg { RuntimeBackup::RuntimeBackup(const Depsgraph *depsgraph) : have_backup(false), @@ -116,4 +117,5 @@ void RuntimeBackup::restore_to_id(ID *id) } } -} // namespace DEG +} // namespace deg +} // namespace blender diff --git a/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup.h b/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup.h index dde7d0b2782..c6249c83daa 100644 --- a/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup.h +++ b/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup.h @@ -32,7 +32,8 @@ #include "intern/eval/deg_eval_runtime_backup_sound.h" #include "intern/eval/deg_eval_runtime_backup_volume.h" -namespace DEG { +namespace blender { +namespace deg { struct Depsgraph; @@ -67,4 +68,5 @@ class RuntimeBackup { VolumeBackup volume_backup; }; -} // namespace DEG +} // namespace deg +} // namespace blender diff --git a/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_animation.cc b/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_animation.cc index 29f70e8548e..6c4eb8a91ee 100644 --- a/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_animation.cc +++ b/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_animation.cc @@ -32,7 +32,8 @@ #include "intern/depsgraph.h" -namespace DEG { +namespace blender { +namespace deg { namespace { @@ -141,4 +142,5 @@ void AnimationBackup::restore_to_id(ID *id) } } -} // namespace DEG +} // namespace deg +} // namespace blender diff --git a/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_animation.h b/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_animation.h index d021354e6f2..6b5d5eab75f 100644 --- a/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_animation.h +++ b/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_animation.h @@ -27,7 +27,8 @@ #include "intern/depsgraph_type.h" -namespace DEG { +namespace blender { +namespace deg { struct Depsgraph; @@ -62,4 +63,5 @@ class AnimationBackup { Vector<AnimationValueBackup> values_backup; }; -} // namespace DEG +} // namespace deg +} // namespace blender diff --git a/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_modifier.cc b/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_modifier.cc index 3361c26a077..f2d9a87ca9d 100644 --- a/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_modifier.cc +++ b/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_modifier.cc @@ -23,7 +23,8 @@ #include "intern/eval/deg_eval_runtime_backup_modifier.h" -namespace DEG { +namespace blender { +namespace deg { ModifierDataBackupID::ModifierDataBackupID(const Depsgraph * /*depsgraph*/) : ModifierDataBackupID(nullptr, eModifierType_None) @@ -35,15 +36,16 @@ ModifierDataBackupID::ModifierDataBackupID(ModifierData *modifier_data, Modifier { } -bool ModifierDataBackupID::operator<(const ModifierDataBackupID &other) const +bool operator==(const ModifierDataBackupID &a, const ModifierDataBackupID &b) { - if (modifier_data < other.modifier_data) { - return true; - } - if (modifier_data == other.modifier_data) { - return static_cast<int>(type) < static_cast<int>(other.type); - } - return false; + return a.modifier_data == b.modifier_data && a.type == b.type; } -} // namespace DEG +uint32_t ModifierDataBackupID::hash() const +{ + uintptr_t ptr = (uintptr_t)modifier_data; + return (ptr >> 4) ^ (uintptr_t)type; +} + +} // namespace deg +} // namespace blender diff --git a/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_modifier.h b/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_modifier.h index 4b3d46126f3..dc16bdcc1b8 100644 --- a/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_modifier.h +++ b/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_modifier.h @@ -29,7 +29,8 @@ struct ModifierData; -namespace DEG { +namespace blender { +namespace deg { struct Depsgraph; @@ -46,13 +47,16 @@ class ModifierDataBackupID { ModifierDataBackupID(const Depsgraph *depsgraph); ModifierDataBackupID(ModifierData *modifier_data, ModifierType type); - bool operator<(const ModifierDataBackupID &other) const; + friend bool operator==(const ModifierDataBackupID &a, const ModifierDataBackupID &b); + + uint32_t hash() const; ModifierData *modifier_data; ModifierType type; }; /* Storage for backed up runtime modifier data. */ -typedef map<ModifierDataBackupID, void *> ModifierRuntimeDataBackup; +typedef Map<ModifierDataBackupID, void *> ModifierRuntimeDataBackup; -} // namespace DEG +} // namespace deg +} // namespace blender diff --git a/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_movieclip.cc b/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_movieclip.cc index d552c8da99a..9d3740258cc 100644 --- a/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_movieclip.cc +++ b/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_movieclip.cc @@ -27,7 +27,8 @@ #include "BLI_utildefines.h" -namespace DEG { +namespace blender { +namespace deg { MovieClipBackup::MovieClipBackup(const Depsgraph * /*depsgraph*/) { @@ -58,4 +59,5 @@ void MovieClipBackup::restore_to_movieclip(MovieClip *movieclip) reset(); } -} // namespace DEG +} // namespace deg +} // namespace blender diff --git a/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_movieclip.h b/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_movieclip.h index 427e9c7b483..0b1de633696 100644 --- a/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_movieclip.h +++ b/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_movieclip.h @@ -27,7 +27,8 @@ struct MovieClip; struct MovieClipCache; struct anim; -namespace DEG { +namespace blender { +namespace deg { struct Depsgraph; @@ -45,4 +46,5 @@ class MovieClipBackup { struct MovieClipCache *cache; }; -} // namespace DEG +} // namespace deg +} // namespace blender diff --git a/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_object.cc b/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_object.cc index 2b172f824b6..e0957a10cb1 100644 --- a/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_object.cc +++ b/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_object.cc @@ -32,7 +32,8 @@ #include "BKE_action.h" #include "BKE_object.h" -namespace DEG { +namespace blender { +namespace deg { ObjectRuntimeBackup::ObjectRuntimeBackup(const Depsgraph * /*depsgraph*/) : base_flag(0), base_local_view_bits(0) @@ -75,7 +76,7 @@ void ObjectRuntimeBackup::backup_modifier_runtime_data(Object *object) } BLI_assert(modifier_data->orig_modifier_data != nullptr); ModifierDataBackupID modifier_data_id = create_modifier_data_id(modifier_data); - modifier_runtime_data.insert(make_pair(modifier_data_id, modifier_data->runtime)); + modifier_runtime_data.add(modifier_data_id, modifier_data->runtime); modifier_data->runtime = nullptr; } } @@ -86,7 +87,7 @@ void ObjectRuntimeBackup::backup_pose_channel_runtime_data(Object *object) LISTBASE_FOREACH (bPoseChannel *, pchan, &object->pose->chanbase) { /* This is nullptr in Edit mode. */ if (pchan->orig_pchan != nullptr) { - pose_channel_runtime_data[pchan->orig_pchan] = pchan->runtime; + pose_channel_runtime_data.add(pchan->orig_pchan, pchan->runtime); BKE_pose_channel_runtime_reset(&pchan->runtime); } } @@ -153,22 +154,16 @@ void ObjectRuntimeBackup::restore_modifier_runtime_data(Object *object) LISTBASE_FOREACH (ModifierData *, modifier_data, &object->modifiers) { BLI_assert(modifier_data->orig_modifier_data != nullptr); ModifierDataBackupID modifier_data_id = create_modifier_data_id(modifier_data); - ModifierRuntimeDataBackup::iterator runtime_data_iterator = modifier_runtime_data.find( - modifier_data_id); - if (runtime_data_iterator != modifier_runtime_data.end()) { - modifier_data->runtime = runtime_data_iterator->second; - runtime_data_iterator->second = nullptr; + void *runtime = modifier_runtime_data.pop_default(modifier_data_id, nullptr); + if (runtime != nullptr) { + modifier_data->runtime = runtime; } } - for (ModifierRuntimeDataBackup::value_type value : modifier_runtime_data) { - const ModifierDataBackupID modifier_data_id = value.first; - void *runtime = value.second; - if (value.second == nullptr) { - continue; - } - const ModifierTypeInfo *modifier_type_info = BKE_modifier_get_info(modifier_data_id.type); + + for (ModifierRuntimeDataBackup::Item item : modifier_runtime_data.items()) { + const ModifierTypeInfo *modifier_type_info = BKE_modifier_get_info(item.key.type); BLI_assert(modifier_type_info != nullptr); - modifier_type_info->freeRuntimeData(runtime); + modifier_type_info->freeRuntimeData(item.value); } } @@ -178,18 +173,18 @@ void ObjectRuntimeBackup::restore_pose_channel_runtime_data(Object *object) LISTBASE_FOREACH (bPoseChannel *, pchan, &object->pose->chanbase) { /* This is nullptr in Edit mode. */ if (pchan->orig_pchan != nullptr) { - PoseChannelRuntimeDataBackup::iterator runtime_data_iterator = - pose_channel_runtime_data.find(pchan->orig_pchan); - if (runtime_data_iterator != pose_channel_runtime_data.end()) { - pchan->runtime = runtime_data_iterator->second; - pose_channel_runtime_data.erase(runtime_data_iterator); + optional<bPoseChannel_Runtime> runtime = pose_channel_runtime_data.pop_try( + pchan->orig_pchan); + if (runtime.has_value()) { + pchan->runtime = *runtime; } } } } - for (PoseChannelRuntimeDataBackup::value_type &value : pose_channel_runtime_data) { - BKE_pose_channel_runtime_free(&value.second); + for (bPoseChannel_Runtime &runtime : pose_channel_runtime_data.values()) { + BKE_pose_channel_runtime_free(&runtime); } } -} // namespace DEG +} // namespace deg +} // namespace blender diff --git a/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_object.h b/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_object.h index e5c3d6a967a..04d7fb1bc22 100644 --- a/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_object.h +++ b/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_object.h @@ -30,7 +30,8 @@ struct Object; -namespace DEG { +namespace blender { +namespace deg { class ObjectRuntimeBackup { public: @@ -53,7 +54,8 @@ class ObjectRuntimeBackup { short base_flag; unsigned short base_local_view_bits; ModifierRuntimeDataBackup modifier_runtime_data; - PoseChannelRuntimeDataBackup pose_channel_runtime_data; + Map<bPoseChannel *, bPoseChannel_Runtime> pose_channel_runtime_data; }; -} // namespace DEG +} // namespace deg +} // namespace blender diff --git a/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_pose.cc b/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_pose.cc index 821cc21f359..45663378f67 100644 --- a/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_pose.cc +++ b/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_pose.cc @@ -23,6 +23,8 @@ #include "intern/eval/deg_eval_runtime_backup_pose.h" -namespace DEG { +namespace blender { +namespace deg { -} // namespace DEG +} +} // namespace blender diff --git a/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_pose.h b/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_pose.h index 53a2c4c0784..a6ce97529b7 100644 --- a/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_pose.h +++ b/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_pose.h @@ -27,11 +27,8 @@ #include "DNA_action_types.h" -struct bPoseChannel; +namespace blender { +namespace deg { -namespace DEG { - -/* Storage for backed up pose channel runtime data. */ -typedef map<bPoseChannel *, bPoseChannel_Runtime> PoseChannelRuntimeDataBackup; - -} // namespace DEG +} +} // namespace blender diff --git a/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_scene.cc b/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_scene.cc index 32b2d0b93c1..f000c8b5d4d 100644 --- a/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_scene.cc +++ b/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_scene.cc @@ -28,7 +28,8 @@ #include "DNA_rigidbody_types.h" #include "DNA_scene_types.h" -namespace DEG { +namespace blender { +namespace deg { SceneBackup::SceneBackup(const Depsgraph *depsgraph) : sequencer_backup(depsgraph) { @@ -85,4 +86,5 @@ void SceneBackup::restore_to_scene(Scene *scene) reset(); } -} // namespace DEG +} // namespace deg +} // namespace blender diff --git a/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_scene.h b/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_scene.h index 751bc4208d2..007236e7890 100644 --- a/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_scene.h +++ b/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_scene.h @@ -27,7 +27,8 @@ struct Scene; -namespace DEG { +namespace blender { +namespace deg { struct Depsgraph; @@ -55,4 +56,5 @@ class SceneBackup { SequencerBackup sequencer_backup; }; -} // namespace DEG +} // namespace deg +} // namespace blender diff --git a/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_sequence.cc b/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_sequence.cc index f26d78d3138..3866a89cc17 100644 --- a/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_sequence.cc +++ b/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_sequence.cc @@ -25,7 +25,8 @@ #include "DNA_sequence_types.h" -namespace DEG { +namespace blender { +namespace deg { SequenceBackup::SequenceBackup(const Depsgraph * /*depsgraph*/) { @@ -55,4 +56,5 @@ bool SequenceBackup::isEmpty() const return (scene_sound == nullptr); } -} // namespace DEG +} // namespace deg +} // namespace blender diff --git a/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_sequence.h b/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_sequence.h index 8a762a2785e..eb38dc3dc5b 100644 --- a/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_sequence.h +++ b/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_sequence.h @@ -25,7 +25,8 @@ struct Sequence; -namespace DEG { +namespace blender { +namespace deg { struct Depsgraph; @@ -44,4 +45,5 @@ class SequenceBackup { void *scene_sound; }; -} // namespace DEG +} // namespace deg +} // namespace blender 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 adc7fd570e8..2780938fe05 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 @@ -29,7 +29,8 @@ #include "BKE_sequencer.h" #include "BKE_sound.h" -namespace DEG { +namespace blender { +namespace deg { SequencerBackup::SequencerBackup(const Depsgraph *depsgraph) : depsgraph(depsgraph) { @@ -42,7 +43,7 @@ void SequencerBackup::init_from_scene(Scene *scene) SequenceBackup sequence_backup(depsgraph); sequence_backup.init_from_sequence(sequence); if (!sequence_backup.isEmpty()) { - sequences_backup.insert(make_pair(sequence->orig_sequence, sequence_backup)); + sequences_backup.add(sequence->orig_sequence, sequence_backup); } } SEQ_END; @@ -52,21 +53,19 @@ void SequencerBackup::restore_to_scene(Scene *scene) { Sequence *sequence; SEQ_BEGIN (scene->ed, sequence) { - SequencesBackupMap::iterator it = sequences_backup.find(sequence->orig_sequence); - if (it == sequences_backup.end()) { - continue; + SequenceBackup *sequence_backup = sequences_backup.lookup_ptr(sequence->orig_sequence); + if (sequence_backup != nullptr) { + sequence_backup->restore_to_sequence(sequence); } - SequenceBackup &sequence_backup = it->second; - sequence_backup.restore_to_sequence(sequence); } SEQ_END; /* Cleanup audio while the scene is still known. */ - for (SequencesBackupMap::value_type &it : sequences_backup) { - SequenceBackup &sequence_backup = it.second; + for (SequenceBackup &sequence_backup : sequences_backup.values()) { if (sequence_backup.scene_sound != nullptr) { BKE_sound_remove_scene_sound(scene, sequence_backup.scene_sound); } } } -} // namespace DEG +} // namespace deg +} // namespace blender diff --git a/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_sequencer.h b/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_sequencer.h index 05f37b45dc4..9fe38ec270c 100644 --- a/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_sequencer.h +++ b/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_sequencer.h @@ -28,7 +28,8 @@ struct Scene; -namespace DEG { +namespace blender { +namespace deg { struct Depsgraph; @@ -42,8 +43,8 @@ class SequencerBackup { const Depsgraph *depsgraph; - typedef map<Sequence *, SequenceBackup> SequencesBackupMap; - SequencesBackupMap sequences_backup; + Map<Sequence *, SequenceBackup> sequences_backup; }; -} // namespace DEG +} // namespace deg +} // namespace blender diff --git a/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_sound.cc b/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_sound.cc index f427d57a8ef..4b63ada8bde 100644 --- a/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_sound.cc +++ b/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_sound.cc @@ -27,7 +27,8 @@ #include "DNA_sound_types.h" -namespace DEG { +namespace blender { +namespace deg { SoundBackup::SoundBackup(const Depsgraph * /*depsgraph*/) { @@ -61,4 +62,5 @@ void SoundBackup::restore_to_sound(bSound *sound) reset(); } -} // namespace DEG +} // namespace deg +} // namespace blender diff --git a/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_sound.h b/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_sound.h index 87783146701..754deb57556 100644 --- a/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_sound.h +++ b/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_sound.h @@ -25,7 +25,8 @@ struct bSound; -namespace DEG { +namespace blender { +namespace deg { struct Depsgraph; @@ -44,4 +45,5 @@ class SoundBackup { void *playback_handle; }; -} // namespace DEG +} // namespace deg +} // namespace blender diff --git a/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_volume.cc b/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_volume.cc index 09e13ec131d..8808673ce6a 100644 --- a/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_volume.cc +++ b/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_volume.cc @@ -33,7 +33,8 @@ #include <stdio.h> -namespace DEG { +namespace blender { +namespace deg { VolumeBackup::VolumeBackup(const Depsgraph * /*depsgraph*/) : grids(nullptr) { @@ -57,4 +58,5 @@ void VolumeBackup::restore_to_volume(Volume *volume) } } -} // namespace DEG +} // namespace deg +} // namespace blender diff --git a/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_volume.h b/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_volume.h index cf57c702c8f..c0ef5204653 100644 --- a/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_volume.h +++ b/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_volume.h @@ -26,7 +26,8 @@ struct Volume; struct VolumeGridVector; -namespace DEG { +namespace blender { +namespace deg { struct Depsgraph; @@ -42,4 +43,5 @@ class VolumeBackup { char filepath[1024]; /* FILE_MAX */ }; -} // namespace DEG +} // namespace deg +} // namespace blender diff --git a/source/blender/depsgraph/intern/eval/deg_eval_stats.cc b/source/blender/depsgraph/intern/eval/deg_eval_stats.cc index 9d3b1356570..3c84c781cbb 100644 --- a/source/blender/depsgraph/intern/eval/deg_eval_stats.cc +++ b/source/blender/depsgraph/intern/eval/deg_eval_stats.cc @@ -32,7 +32,8 @@ #include "intern/node/deg_node_id.h" #include "intern/node/deg_node_operation.h" -namespace DEG { +namespace blender { +namespace deg { void deg_eval_stats_aggregate(Depsgraph *graph) { @@ -54,4 +55,5 @@ void deg_eval_stats_aggregate(Depsgraph *graph) } } -} // namespace DEG +} // namespace deg +} // namespace blender diff --git a/source/blender/depsgraph/intern/eval/deg_eval_stats.h b/source/blender/depsgraph/intern/eval/deg_eval_stats.h index 988b42e15ae..8f0d3b1b938 100644 --- a/source/blender/depsgraph/intern/eval/deg_eval_stats.h +++ b/source/blender/depsgraph/intern/eval/deg_eval_stats.h @@ -23,11 +23,13 @@ #pragma once -namespace DEG { +namespace blender { +namespace deg { struct Depsgraph; /* Aggregate operation timings to overall component and ID nodes timing. */ void deg_eval_stats_aggregate(Depsgraph *graph); -} // namespace DEG +} // namespace deg +} // namespace blender |