From ee18c3a98a5d36ad0fb8d624cc8ac9617fd4b42b Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Wed, 1 Mar 2023 14:10:42 +0100 Subject: [PATCH] Refactor: Replace DNA_DEPRECATED attribute with _legacy suffix Applied for the motion tracking data data structures. There are two advantages of doing so: - More explicit and platform independent way of indicating that something is legacy and is not to be accessed outside of the versioning code. - Simplifies conversion to C++ where having deprecated fields triggers warning in implicitly defined assign operator. --- source/blender/blenkernel/intern/movieclip.c | 2 +- .../blenloader/intern/versioning_260.c | 24 +++++++++---------- .../blenloader/intern/versioning_270.c | 12 ++++------ source/blender/makesdna/DNA_tracking_types.h | 15 +++++------- .../blender/makesdna/intern/dna_rename_defs.h | 7 ++++++ 5 files changed, 31 insertions(+), 29 deletions(-) diff --git a/source/blender/blenkernel/intern/movieclip.c b/source/blender/blenkernel/intern/movieclip.c index d4180e55fbb..fc0a29b792e 100644 --- a/source/blender/blenkernel/intern/movieclip.c +++ b/source/blender/blenkernel/intern/movieclip.c @@ -329,7 +329,7 @@ static void movieclip_blend_read_data(BlendDataReader *reader, ID *id) BLI_listbase_clear(&clip->runtime.gputextures); /* Needed for proper versioning, will be NULL for all newer files anyway. */ - BLO_read_data_address(reader, &clip->tracking.stabilization.rot_track); + BLO_read_data_address(reader, &clip->tracking.stabilization.rot_track_legacy); clip->tracking.dopesheet.ok = 0; BLI_listbase_clear(&clip->tracking.dopesheet.channels); diff --git a/source/blender/blenloader/intern/versioning_260.c b/source/blender/blenloader/intern/versioning_260.c index 0a4211315c0..06f3628cf21 100644 --- a/source/blender/blenloader/intern/versioning_260.c +++ b/source/blender/blenloader/intern/versioning_260.c @@ -456,22 +456,22 @@ static void do_versions_affine_tracker_track(MovieTrackingTrack *track) if (is_zero_v2(marker->pattern_corners[0]) && is_zero_v2(marker->pattern_corners[1]) && is_zero_v2(marker->pattern_corners[2]) && is_zero_v2(marker->pattern_corners[3])) { - marker->pattern_corners[0][0] = track->pat_min[0]; - marker->pattern_corners[0][1] = track->pat_min[1]; + marker->pattern_corners[0][0] = track->pat_min_legacy[0]; + marker->pattern_corners[0][1] = track->pat_min_legacy[1]; - marker->pattern_corners[1][0] = track->pat_max[0]; - marker->pattern_corners[1][1] = track->pat_min[1]; + marker->pattern_corners[1][0] = track->pat_max_legacy[0]; + marker->pattern_corners[1][1] = track->pat_min_legacy[1]; - marker->pattern_corners[2][0] = track->pat_max[0]; - marker->pattern_corners[2][1] = track->pat_max[1]; + marker->pattern_corners[2][0] = track->pat_max_legacy[0]; + marker->pattern_corners[2][1] = track->pat_max_legacy[1]; - marker->pattern_corners[3][0] = track->pat_min[0]; - marker->pattern_corners[3][1] = track->pat_max[1]; + marker->pattern_corners[3][0] = track->pat_min_legacy[0]; + marker->pattern_corners[3][1] = track->pat_max_legacy[1]; } if (is_zero_v2(marker->search_min) && is_zero_v2(marker->search_max)) { - copy_v2_v2(marker->search_min, track->search_min); - copy_v2_v2(marker->search_max, track->search_max); + copy_v2_v2(marker->search_min, track->search_min_legacy); + copy_v2_v2(marker->search_max, track->search_max_legacy); } } } @@ -1625,8 +1625,8 @@ void blo_do_versions_260(FileData *fd, Library *UNUSED(lib), Main *bmain) for (tracking_object = tracking->objects.first; tracking_object; tracking_object = tracking_object->next) { if (tracking_object->keyframe1 == 0 && tracking_object->keyframe2 == 0) { - tracking_object->keyframe1 = tracking->settings.keyframe1; - tracking_object->keyframe2 = tracking->settings.keyframe2; + tracking_object->keyframe1 = tracking->settings.keyframe1_legacy; + tracking_object->keyframe2 = tracking->settings.keyframe2_legacy; } } } diff --git a/source/blender/blenloader/intern/versioning_270.c b/source/blender/blenloader/intern/versioning_270.c index 067918976c7..3278309641d 100644 --- a/source/blender/blenloader/intern/versioning_270.c +++ b/source/blender/blenloader/intern/versioning_270.c @@ -149,13 +149,13 @@ static bGPDpalettecolor *BKE_gpencil_palettecolor_addnew(bGPDpalette *palette, c */ static void migrate_single_rot_stabilization_track_settings(MovieTrackingStabilization *stab) { - if (stab->rot_track) { - if (!(stab->rot_track->flag & TRACK_USE_2D_STAB_ROT)) { + if (stab->rot_track_legacy) { + if (!(stab->rot_track_legacy->flag & TRACK_USE_2D_STAB_ROT)) { stab->tot_rot_track++; - stab->rot_track->flag |= TRACK_USE_2D_STAB_ROT; + stab->rot_track_legacy->flag |= TRACK_USE_2D_STAB_ROT; } } - stab->rot_track = NULL; /* this field is now ignored */ + stab->rot_track_legacy = NULL; /* this field is now ignored */ } static void do_version_constraints_radians_degrees_270_1(ListBase *lb) @@ -1406,7 +1406,7 @@ void blo_do_versions_270(FileData *fd, Library *UNUSED(lib), Main *bmain) fd->filesdna, "MovieTrackingStabilization", "int", "tot_rot_track")) { MovieClip *clip; for (clip = bmain->movieclips.first; clip != NULL; clip = clip->id.next) { - if (clip->tracking.stabilization.rot_track) { + if (clip->tracking.stabilization.rot_track_legacy) { migrate_single_rot_stabilization_track_settings(&clip->tracking.stabilization); } if (clip->tracking.stabilization.scale == 0.0f) { @@ -1420,8 +1420,6 @@ void blo_do_versions_270(FileData *fd, Library *UNUSED(lib), Main *bmain) clip->tracking.stabilization.anchor_frame = 1; /* by default show the track lists expanded, to improve "discoverability" */ clip->tracking.stabilization.flag |= TRACKING_SHOW_STAB_TRACKS; - /* deprecated, not used anymore */ - clip->tracking.stabilization.ok = false; } } } diff --git a/source/blender/makesdna/DNA_tracking_types.h b/source/blender/makesdna/DNA_tracking_types.h index 8807ab0033e..62c7e1c0465 100644 --- a/source/blender/makesdna/DNA_tracking_types.h +++ b/source/blender/makesdna/DNA_tracking_types.h @@ -121,13 +121,13 @@ typedef struct MovieTrackingTrack { * relative to marker->pos) * moved to marker's corners since planar tracking implementation */ - float pat_min[2] DNA_DEPRECATED, pat_max[2] DNA_DEPRECATED; + float pat_min_legacy[2], pat_max_legacy[2]; /* positions of left-bottom and right-top corners of search area (in unified 0..1 units, * relative to marker->pos * moved to marker since affine tracking implementation */ - float search_min[2] DNA_DEPRECATED, search_max[2] DNA_DEPRECATED; + float search_min_legacy[2], search_max_legacy[2]; /** Offset to "parenting" point. */ float offset[2]; @@ -281,8 +281,8 @@ typedef struct MovieTrackingSettings { /* two keyframes for reconstruction initialization * were moved to per-tracking object settings */ - int keyframe1 DNA_DEPRECATED; - int keyframe2 DNA_DEPRECATED; + int keyframe1_legacy; + int keyframe2_legacy; int reconstruction_flag; @@ -315,7 +315,7 @@ typedef struct MovieTrackingStabilization { /** Max auto-scale factor. */ float maxscale; /** Use TRACK_USE_2D_STAB_ROT on individual tracks instead. */ - MovieTrackingTrack *rot_track DNA_DEPRECATED; + MovieTrackingTrack *rot_track_legacy; /** Reference point to anchor stabilization offset. */ int anchor_frame; @@ -332,10 +332,7 @@ typedef struct MovieTrackingStabilization { /** Filter used for pixel interpolation. */ int filter; - /* initialization and run-time data */ - /** Without effect now, we initialize on every frame. - * Formerly used for caching of init values. */ - int ok DNA_DEPRECATED; + int _pad; } MovieTrackingStabilization; typedef struct MovieTrackingReconstruction { diff --git a/source/blender/makesdna/intern/dna_rename_defs.h b/source/blender/makesdna/intern/dna_rename_defs.h index ab543eb611f..9b773a9d88f 100644 --- a/source/blender/makesdna/intern/dna_rename_defs.h +++ b/source/blender/makesdna/intern/dna_rename_defs.h @@ -110,6 +110,13 @@ DNA_STRUCT_RENAME_ELEM(MovieTracking, act_track, act_track_legacy) DNA_STRUCT_RENAME_ELEM(MovieTracking, plane_tracks, plane_tracks_legacy) DNA_STRUCT_RENAME_ELEM(MovieTracking, reconstruction, reconstruction_legacy) DNA_STRUCT_RENAME_ELEM(MovieTracking, tracks, tracks_legacy) +DNA_STRUCT_RENAME_ELEM(MovieTrackingTrack, pat_min, pat_min_legacy) +DNA_STRUCT_RENAME_ELEM(MovieTrackingTrack, pat_max, pat_max_legacy) +DNA_STRUCT_RENAME_ELEM(MovieTrackingTrack, search_min, search_min_legacy) +DNA_STRUCT_RENAME_ELEM(MovieTrackingTrack, search_max, search_max_legacy) +DNA_STRUCT_RENAME_ELEM(MovieTrackingSettings, keyframe1, keyframe1_legacy) +DNA_STRUCT_RENAME_ELEM(MovieTrackingSettings, keyframe2, keyframe2_legacy) +DNA_STRUCT_RENAME_ELEM(MovieTrackingStabilization, rot_track, rot_track_legacy) DNA_STRUCT_RENAME_ELEM(MovieTrackingCamera, principal, principal_legacy) DNA_STRUCT_RENAME_ELEM(NodeCryptomatte, num_inputs, inputs_num) DNA_STRUCT_RENAME_ELEM(Object, col, color) -- 2.30.2