[Bf-blender-cvs] [6b63715a857] temp-vse-fix-T88263: Fix animation conversion in versioning

Richard Antalik noreply at git.blender.org
Mon May 31 13:34:24 CEST 2021


Commit: 6b63715a857123dd8f207fb1e7bd33157d2d0631
Author: Richard Antalik
Date:   Mon May 31 13:32:05 2021 +0200
Branches: temp-vse-fix-T88263
https://developer.blender.org/rB6b63715a857123dd8f207fb1e7bd33157d2d0631

Fix animation conversion in versioning

Animation in X and Y channels used `scene->r.xsch` as scene size, which
resulted in incorrect conversion for Y channel.

===================================================================

M	source/blender/blenloader/intern/versioning_290.c

===================================================================

diff --git a/source/blender/blenloader/intern/versioning_290.c b/source/blender/blenloader/intern/versioning_290.c
index e17de201741..fec49d7668d 100644
--- a/source/blender/blenloader/intern/versioning_290.c
+++ b/source/blender/blenloader/intern/versioning_290.c
@@ -120,7 +120,8 @@ static bool can_use_proxy(const Sequence *seq, int psize)
 static void seq_convert_transform_animation(const Sequence *seq,
                                             const Scene *scene,
                                             const char *path,
-                                            const int image_size)
+                                            const int image_size,
+                                            const int scene_size)
 {
   if (scene->adt == NULL || scene->adt->action == NULL) {
     return;
@@ -137,9 +138,9 @@ static void seq_convert_transform_animation(const Sequence *seq,
       BezTriple *bezt = fcu->bezt;
       for (int i = 0; i < fcu->totvert; i++, bezt++) {
         /* Same math as with old_image_center_*, but simplified. */
-        bezt->vec[0][1] = image_size / 2 + bezt->vec[0][1] - scene->r.xsch / 2;
-        bezt->vec[1][1] = image_size / 2 + bezt->vec[1][1] - scene->r.xsch / 2;
-        bezt->vec[2][1] = image_size / 2 + bezt->vec[2][1] - scene->r.xsch / 2;
+        bezt->vec[0][1] = (image_size - scene_size) / 2 + bezt->vec[0][1];
+        bezt->vec[1][1] = (image_size - scene_size) / 2 + bezt->vec[1][1];
+        bezt->vec[2][1] = (image_size - scene_size) / 2 + bezt->vec[2][1];
       }
     }
   }
@@ -248,10 +249,10 @@ static void seq_convert_transform_crop(const Scene *scene,
   BLI_str_escape(name_esc, seq->name + 2, sizeof(name_esc));
 
   path = BLI_sprintfN("sequence_editor.sequences_all[\"%s\"].transform.offset_x", name_esc);
-  seq_convert_transform_animation(seq, scene, path, image_size_x);
+  seq_convert_transform_animation(seq, scene, path, image_size_x, scene->r.xsch);
   MEM_freeN(path);
   path = BLI_sprintfN("sequence_editor.sequences_all[\"%s\"].transform.offset_y", name_esc);
-  seq_convert_transform_animation(seq, scene, path, image_size_y);
+  seq_convert_transform_animation(seq, scene, path, image_size_y, scene->r.ysch);
   MEM_freeN(path);
 
   seq->flag &= ~use_transform_flag;



More information about the Bf-blender-cvs mailing list