[Bf-blender-cvs] [3c479b98231] master: Movie clip: Remove special selection synchronization function
Sergey Sharybin
noreply at git.blender.org
Tue Nov 22 11:54:21 CET 2022
Commit: 3c479b9823108d52a738fda7e345c111b03b5d48
Author: Sergey Sharybin
Date: Thu Oct 6 15:12:19 2022 +0200
Branches: master
https://developer.blender.org/rB3c479b9823108d52a738fda7e345c111b03b5d48
Movie clip: Remove special selection synchronization function
The function is already doing a lot of memory indirections and
sub-optimal lookups, so for the simplicity and robustness of the
system might as well just do copy-on-write update.
===================================================================
M source/blender/blenkernel/BKE_movieclip.h
M source/blender/blenkernel/intern/movieclip.c
M source/blender/depsgraph/intern/builder/deg_builder_nodes.cc
M source/blender/depsgraph/intern/depsgraph_tag.cc
M source/blender/depsgraph/intern/node/deg_node_operation.cc
M source/blender/depsgraph/intern/node/deg_node_operation.h
===================================================================
diff --git a/source/blender/blenkernel/BKE_movieclip.h b/source/blender/blenkernel/BKE_movieclip.h
index cddc10b5826..4667aa17131 100644
--- a/source/blender/blenkernel/BKE_movieclip.h
+++ b/source/blender/blenkernel/BKE_movieclip.h
@@ -130,7 +130,6 @@ void BKE_movieclip_free_gputexture(struct MovieClip *clip);
void BKE_movieclip_eval_update(struct Depsgraph *depsgraph,
struct Main *bmain,
struct MovieClip *clip);
-void BKE_movieclip_eval_selection_update(struct Depsgraph *depsgraph, struct MovieClip *clip);
/** Caching flags. */
#define MOVIECLIP_CACHE_SKIP (1 << 0)
diff --git a/source/blender/blenkernel/intern/movieclip.c b/source/blender/blenkernel/intern/movieclip.c
index 1cc7a17ea01..9945f896972 100644
--- a/source/blender/blenkernel/intern/movieclip.c
+++ b/source/blender/blenkernel/intern/movieclip.c
@@ -1984,41 +1984,6 @@ bool BKE_movieclip_put_frame_if_possible(MovieClip *clip, MovieClipUser *user, I
return result;
}
-static void movieclip_selection_sync(MovieClip *clip_dst, const MovieClip *clip_src)
-{
- BLI_assert(clip_dst != clip_src);
- MovieTracking *tracking_dst = &clip_dst->tracking, tracking_src = clip_src->tracking;
- /* Syncs the active object, track and plane track. */
- tracking_dst->objectnr = tracking_src.objectnr;
- const int active_track_index = BLI_findindex(&tracking_src.tracks, tracking_src.act_track);
- const int active_plane_track_index = BLI_findindex(&tracking_src.plane_tracks,
- tracking_src.act_plane_track);
- tracking_dst->act_track = BLI_findlink(&tracking_dst->tracks, active_track_index);
- tracking_dst->act_plane_track = BLI_findlink(&tracking_dst->plane_tracks,
- active_plane_track_index);
-
- /* Syncs the tracking selection flag. */
- MovieTrackingObject *tracking_object_dst, *tracking_object_src;
- tracking_object_src = tracking_src.objects.first;
-
- for (tracking_object_dst = tracking_dst->objects.first; tracking_object_dst != NULL;
- tracking_object_dst = tracking_object_dst->next,
- tracking_object_src = tracking_object_src->next) {
- ListBase *tracksbase_dst, *tracksbase_src;
- tracksbase_dst = BKE_tracking_object_get_tracks(tracking_dst, tracking_object_dst);
- tracksbase_src = BKE_tracking_object_get_tracks(&tracking_src, tracking_object_src);
-
- MovieTrackingTrack *track_dst, *track_src;
- track_src = tracksbase_src->first;
- for (track_dst = tracksbase_dst->first; track_dst != NULL;
- track_dst = track_dst->next, track_src = track_src->next) {
- track_dst->flag = track_src->flag;
- track_dst->pat_flag = track_src->pat_flag;
- track_dst->search_flag = track_src->search_flag;
- }
- }
-}
-
static void movieclip_eval_update_reload(struct Depsgraph *depsgraph, Main *bmain, MovieClip *clip)
{
BKE_movieclip_reload(bmain, clip);
@@ -2048,12 +2013,6 @@ void BKE_movieclip_eval_update(struct Depsgraph *depsgraph, Main *bmain, MovieCl
}
}
-void BKE_movieclip_eval_selection_update(struct Depsgraph *depsgraph, MovieClip *clip)
-{
- DEG_debug_print_eval(depsgraph, __func__, clip->id.name, clip);
- movieclip_selection_sync(clip, (MovieClip *)clip->id.orig_id);
-}
-
/* -------------------------------------------------------------------- */
/** \name GPU textures
* \{ */
diff --git a/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc b/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc
index c84852788fd..fc764b49e06 100644
--- a/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc
+++ b/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc
@@ -1990,13 +1990,6 @@ void DepsgraphNodeBuilder::build_movieclip(MovieClip *clip)
[bmain = bmain_, clip_cow](::Depsgraph *depsgraph) {
BKE_movieclip_eval_update(depsgraph, bmain, clip_cow);
});
-
- add_operation_node(clip_id,
- NodeType::BATCH_CACHE,
- OperationCode::MOVIECLIP_SELECT_UPDATE,
- [clip_cow](::Depsgraph *depsgraph) {
- BKE_movieclip_eval_selection_update(depsgraph, clip_cow);
- });
}
void DepsgraphNodeBuilder::build_lightprobe(LightProbe *probe)
diff --git a/source/blender/depsgraph/intern/depsgraph_tag.cc b/source/blender/depsgraph/intern/depsgraph_tag.cc
index 0c003cf23b2..2df65bf15aa 100644
--- a/source/blender/depsgraph/intern/depsgraph_tag.cc
+++ b/source/blender/depsgraph/intern/depsgraph_tag.cc
@@ -95,10 +95,6 @@ void depsgraph_select_tag_to_component_opcode(const ID *id,
*component_type = NodeType::OBJECT_FROM_LAYER;
*operation_code = OperationCode::OBJECT_FROM_LAYER_ENTRY;
}
- else if (id_type == ID_MC) {
- *component_type = NodeType::BATCH_CACHE;
- *operation_code = OperationCode::MOVIECLIP_SELECT_UPDATE;
- }
else if (is_selectable_data_id_type(id_type)) {
*component_type = NodeType::BATCH_CACHE;
*operation_code = OperationCode::GEOMETRY_SELECT_UPDATE;
diff --git a/source/blender/depsgraph/intern/node/deg_node_operation.cc b/source/blender/depsgraph/intern/node/deg_node_operation.cc
index d5401a6b0d1..cccc7938a4b 100644
--- a/source/blender/depsgraph/intern/node/deg_node_operation.cc
+++ b/source/blender/depsgraph/intern/node/deg_node_operation.cc
@@ -178,8 +178,6 @@ const char *operationCodeAsString(OperationCode opcode)
/* Movie clip. */
case OperationCode::MOVIECLIP_EVAL:
return "MOVIECLIP_EVAL";
- case OperationCode::MOVIECLIP_SELECT_UPDATE:
- return "MOVIECLIP_SELECT_UPDATE";
/* Image. */
case OperationCode::IMAGE_ANIMATION:
return "IMAGE_ANIMATION";
diff --git a/source/blender/depsgraph/intern/node/deg_node_operation.h b/source/blender/depsgraph/intern/node/deg_node_operation.h
index b0685ac0351..1bc4b36141e 100644
--- a/source/blender/depsgraph/intern/node/deg_node_operation.h
+++ b/source/blender/depsgraph/intern/node/deg_node_operation.h
@@ -176,7 +176,6 @@ enum class OperationCode {
/* Movie clips. --------------------------------------------------------- */
MOVIECLIP_EVAL,
- MOVIECLIP_SELECT_UPDATE,
/* Images. -------------------------------------------------------------- */
IMAGE_ANIMATION,
More information about the Bf-blender-cvs
mailing list