[Bf-blender-cvs] [ffd1a7d8c81] master: Fix T93570: VSE image transforms in preview dont autokey

Philipp Oeser noreply at git.blender.org
Mon Dec 20 09:14:00 CET 2021


Commit: ffd1a7d8c81c65e75c8a0baf45d84375149d5387
Author: Philipp Oeser
Date:   Fri Dec 17 12:44:26 2021 +0100
Branches: master
https://developer.blender.org/rBffd1a7d8c81c65e75c8a0baf45d84375149d5387

Fix T93570: VSE image transforms in preview dont autokey

This was basically not implemented, do this via
`ED_autokeyframe_property` in a new dedicated function in
special_aftertrans_update.

Maniphest Tasks: T93570

Differential Revision: https://developer.blender.org/D13608

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

M	source/blender/editors/transform/transform_convert.c
M	source/blender/editors/transform/transform_convert.h
M	source/blender/editors/transform/transform_convert_sequencer_image.c

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

diff --git a/source/blender/editors/transform/transform_convert.c b/source/blender/editors/transform/transform_convert.c
index 8f3d13176a3..4107cc3a71c 100644
--- a/source/blender/editors/transform/transform_convert.c
+++ b/source/blender/editors/transform/transform_convert.c
@@ -914,6 +914,9 @@ void special_aftertrans_update(bContext *C, TransInfo *t)
     case TC_SEQ_DATA:
       special_aftertrans_update__sequencer(C, t);
       break;
+    case TC_SEQ_IMAGE_DATA:
+      special_aftertrans_update__sequencer_image(C, t);
+      break;
     case TC_TRACKING_DATA:
       special_aftertrans_update__movieclip(C, t);
       break;
@@ -930,7 +933,6 @@ void special_aftertrans_update(bContext *C, TransInfo *t)
     case TC_OBJECT_TEXSPACE:
     case TC_PAINT_CURVE_VERTS:
     case TC_PARTICLE_VERTS:
-    case TC_SEQ_IMAGE_DATA:
     case TC_NONE:
     default:
       break;
diff --git a/source/blender/editors/transform/transform_convert.h b/source/blender/editors/transform/transform_convert.h
index 5ed8182857d..12f3b39927e 100644
--- a/source/blender/editors/transform/transform_convert.h
+++ b/source/blender/editors/transform/transform_convert.h
@@ -304,6 +304,7 @@ void special_aftertrans_update__sequencer(bContext *C, TransInfo *t);
 /* transform_convert_sequencer_image.c */
 void createTransSeqImageData(TransInfo *t);
 void recalcData_sequencer_image(TransInfo *t);
+void special_aftertrans_update__sequencer_image(bContext *C, TransInfo *t);
 
 /* transform_convert_tracking.c */
 void createTransTrackingData(bContext *C, TransInfo *t);
diff --git a/source/blender/editors/transform/transform_convert_sequencer_image.c b/source/blender/editors/transform/transform_convert_sequencer_image.c
index d5a59885014..3a5770c2863 100644
--- a/source/blender/editors/transform/transform_convert_sequencer_image.c
+++ b/source/blender/editors/transform/transform_convert_sequencer_image.c
@@ -38,8 +38,12 @@
 #include "SEQ_transform.h"
 #include "SEQ_utils.h"
 
+#include "ED_keyframing.h"
+
 #include "UI_view2d.h"
 
+#include "RNA_access.h"
+
 #include "transform.h"
 #include "transform_convert.h"
 
@@ -215,3 +219,44 @@ void recalcData_sequencer_image(TransInfo *t)
     SEQ_relations_invalidate_cache_preprocessed(t->scene, seq);
   }
 }
+
+void special_aftertrans_update__sequencer_image(bContext *UNUSED(C), TransInfo *t)
+{
+  if (t->state == TRANS_CANCEL) {
+    return;
+  }
+
+  TransDataContainer *tc = TRANS_DATA_CONTAINER_FIRST_SINGLE(t);
+  TransData *td = NULL;
+  TransData2D *td2d = NULL;
+  int i;
+
+  PointerRNA ptr;
+  PropertyRNA *prop;
+
+  for (i = 0, td = tc->data, td2d = tc->data_2d; i < tc->data_len; i++, td++, td2d++) {
+    TransDataSeq *tdseq = td->extra;
+    Sequence *seq = tdseq->seq;
+    StripTransform *transform = seq->strip->transform;
+    Scene *scene = t->scene;
+
+    RNA_pointer_create(&scene->id, &RNA_SequenceTransform, transform, &ptr);
+
+    if (t->mode == TFM_ROTATION) {
+      prop = RNA_struct_find_property(&ptr, "rotation");
+      ED_autokeyframe_property(t->context, scene, &ptr, prop, -1, CFRA);
+    }
+    if (t->mode == TFM_TRANSLATION) {
+      prop = RNA_struct_find_property(&ptr, "offset_x");
+      ED_autokeyframe_property(t->context, scene, &ptr, prop, -1, CFRA);
+      prop = RNA_struct_find_property(&ptr, "offset_y");
+      ED_autokeyframe_property(t->context, scene, &ptr, prop, -1, CFRA);
+    }
+    if (t->mode == TFM_RESIZE) {
+      prop = RNA_struct_find_property(&ptr, "scale_x");
+      ED_autokeyframe_property(t->context, scene, &ptr, prop, -1, CFRA);
+      prop = RNA_struct_find_property(&ptr, "scale_y");
+      ED_autokeyframe_property(t->context, scene, &ptr, prop, -1, CFRA);
+    }
+  }
+}



More information about the Bf-blender-cvs mailing list