[Bf-blender-cvs] [6aa45d44cf7] temp-vse-transform-overwrite: Address inlines
Richard Antalik
noreply at git.blender.org
Tue Aug 10 09:50:23 CEST 2021
Commit: 6aa45d44cf7a3e046951f5c03aca97f4839eba49
Author: Richard Antalik
Date: Tue Aug 10 04:32:08 2021 +0200
Branches: temp-vse-transform-overwrite
https://developer.blender.org/rB6aa45d44cf7a3e046951f5c03aca97f4839eba49
Address inlines
===================================================================
M source/blender/editors/transform/transform_convert_sequencer.c
M source/blender/editors/transform/transform_mode_edge_seq_slide.c
M source/blender/makesdna/DNA_scene_types.h
M source/blender/sequencer/SEQ_transform.h
M source/blender/sequencer/intern/strip_transform.c
===================================================================
diff --git a/source/blender/editors/transform/transform_convert_sequencer.c b/source/blender/editors/transform/transform_convert_sequencer.c
index 5dec10059aa..cec510160be 100644
--- a/source/blender/editors/transform/transform_convert_sequencer.c
+++ b/source/blender/editors/transform/transform_convert_sequencer.c
@@ -303,19 +303,6 @@ static SeqCollection *extract_standalone_strips(SeqCollection *transformed_strip
return collection;
}
-static void seq_collection_boundbox(SeqCollection *collection, rcti *r_boundbox)
-{
- BLI_rcti_init(r_boundbox, MAXFRAME, MINFRAME, INT_MAX, 0);
-
- Sequence *seq;
- SEQ_ITERATOR_FOREACH (seq, collection) {
- r_boundbox->xmin = min_ii(r_boundbox->xmin, seq->startdisp);
- r_boundbox->xmax = max_ii(r_boundbox->xmax, seq->enddisp);
- r_boundbox->ymin = min_ii(r_boundbox->ymin, seq->machine);
- r_boundbox->ymax = max_ii(r_boundbox->ymax, seq->machine);
- }
-}
-
/* Query strips positioned after left edge of transformed strips r_boundbox. */
static SeqCollection *query_right_side_strips(ListBase *seqbase, SeqCollection *transformed_strips)
{
@@ -358,7 +345,7 @@ static bool seq_transform_check_strip_effects(SeqCollection *transformed_strips)
return false;
}
-static ListBase *seqbase_from_trans_info(TransInfo *t)
+static ListBase *seqbase_active_get(TransInfo *t)
{
Editing *ed = SEQ_editing_get(t->scene, false);
return SEQ_active_seqbase_get(ed);
@@ -368,7 +355,7 @@ static ListBase *seqbase_from_trans_info(TransInfo *t)
* to overlap of transformed strips. */
static void seq_transform_handle_expand_to_fit(TransInfo *t, SeqCollection *transformed_strips)
{
- ListBase *seqbasep = seqbase_from_trans_info(t);
+ ListBase *seqbasep = seqbase_active_get(t);
ListBase *markers = &t->scene->markers;
const bool use_sync_markers = (((SpaceSeq *)t->area->spacedata.first)->flag &
SEQ_MARKER_TRANS) != 0;
@@ -402,22 +389,22 @@ static void seq_transform_handle_expand_to_fit(TransInfo *t, SeqCollection *tran
static SeqCollection *query_overwrite_targets(TransInfo *t, SeqCollection *transformed_strips)
{
- rcti transformed_boundbox;
- seq_collection_boundbox(transformed_strips, &transformed_boundbox);
- SeqCollection *collection = SEQ_query_unselected_strips(seqbase_from_trans_info(t));
+ SeqCollection *collection = SEQ_query_unselected_strips(seqbase_active_get(t));
- Sequence *seq;
- SEQ_ITERATOR_FOREACH (seq, collection) {
- if (seq->enddisp < transformed_boundbox.xmin || seq->startdisp > transformed_boundbox.xmax) {
- SEQ_collection_remove_strip(seq, collection);
+ Sequence *seq, *seq_transformed;
+ SEQ_ITERATOR_FOREACH (seq_transformed, transformed_strips) {
+ SEQ_ITERATOR_FOREACH (seq, collection) {
+ if (!SEQ_transform_test_overlap_seq_seq(seq, seq_transformed)) {
+ SEQ_collection_remove_strip(seq, collection);
+ continue;
+ }
+ /* Effects of transformed strips can be unselected. These must not be included. */
+ if (seq == seq_transformed) {
+ SEQ_collection_remove_strip(seq, collection);
+ }
}
}
- /* In some cases effects of transformed strips are not selected. These must not be included. */
- SEQ_ITERATOR_FOREACH (seq, transformed_strips) {
- SEQ_collection_remove_strip(seq, collection);
- }
-
return collection;
}
@@ -469,12 +456,12 @@ static void seq_transform_handle_overwrite_split(TransInfo *t,
{
Main *bmain = CTX_data_main(t->context);
Scene *scene = t->scene;
- ListBase *seqbase = seqbase_from_trans_info(t);
+ ListBase *seqbase = seqbase_active_get(t);
Sequence *split_strip = SEQ_edit_strip_split(
bmain, scene, seqbase, target, transformed->startdisp, SEQ_SPLIT_SOFT);
SEQ_edit_strip_split(bmain, scene, seqbase, split_strip, transformed->enddisp, SEQ_SPLIT_SOFT);
- SEQ_edit_flag_for_removal(scene, seqbase_from_trans_info(t), split_strip);
+ SEQ_edit_flag_for_removal(scene, seqbase_active_get(t), split_strip);
}
/* BUG must handle overlap with non-effect more gracefully. */
@@ -491,7 +478,7 @@ static void seq_transform_handle_overwrite_trim(TransInfo *t,
/* Expand collection by adding all target's children, effects and their children. */
if ((target->type & SEQ_TYPE_EFFECT) != 0) {
- SEQ_collection_expand(seqbase_from_trans_info(t), targets, SEQ_query_strip_effect_chain);
+ SEQ_collection_expand(seqbase_active_get(t), targets, SEQ_query_strip_effect_chain);
}
/* Trim all non effects, that have influence on effect length which is overlapping. */
@@ -515,7 +502,7 @@ static void seq_transform_handle_overwrite_trim(TransInfo *t,
/* Recalculate all effects influenced by target. */
SeqCollection *effects = SEQ_query_by_reference(
- target, seqbase_from_trans_info(t), SEQ_query_strip_effect_chain);
+ target, seqbase_active_get(t), SEQ_query_strip_effect_chain);
SEQ_ITERATOR_FOREACH (seq, effects) {
SEQ_time_update_sequence(t->scene, seq);
}
@@ -538,7 +525,7 @@ static void seq_transform_handle_overwrite(TransInfo *t, SeqCollection *transfor
/* Remove covered strip. */
if (is_full_overlap(transformed, target)) {
- SEQ_edit_flag_for_removal(t->scene, seqbase_from_trans_info(t), target);
+ SEQ_edit_flag_for_removal(t->scene, seqbase_active_get(t), target);
strips_delete = true;
}
/* Split strip in 3 parts, remove middle part and fit transformed inside. */
@@ -556,13 +543,13 @@ static void seq_transform_handle_overwrite(TransInfo *t, SeqCollection *transfor
SEQ_collection_free(targets);
if (strips_delete) {
- SEQ_edit_remove_flagged_sequences(t->scene, seqbase_from_trans_info(t));
+ SEQ_edit_remove_flagged_sequences(t->scene, seqbase_active_get(t));
}
}
static void seq_transform_handle_overlap_shuffle(TransInfo *t, SeqCollection *transformed_strips)
{
- ListBase *seqbase = seqbase_from_trans_info(t);
+ ListBase *seqbase = seqbase_active_get(t);
ListBase *markers = &t->scene->markers;
const bool use_sync_markers = (((SpaceSeq *)t->area->spacedata.first)->flag &
SEQ_MARKER_TRANS) != 0;
@@ -575,7 +562,7 @@ static void seq_transform_handle_overlap_shuffle(TransInfo *t, SeqCollection *tr
static void seq_transform_handle_overlap(TransInfo *t, SeqCollection *transformed_strips)
{
- ListBase *seqbasep = seqbase_from_trans_info(t);
+ ListBase *seqbasep = seqbase_active_get(t);
eSeqOverlapMode overlap_mode = SEQ_tool_settings_overlap_mode_get(t->scene);
if ((overlap_mode & SEQ_OVERLAP_OVERWRITE) == 0 && t->flag & T_ALT_TRANSFORM) {
@@ -624,8 +611,7 @@ static void freeSeqData(TransInfo *t, TransDataContainer *tc, TransCustomData *c
}
SeqCollection *transformed_strips = seq_transform_collection_from_transdata(tc);
- SEQ_collection_expand(
- seqbase_from_trans_info(t), transformed_strips, SEQ_query_strip_effect_chain);
+ SEQ_collection_expand(seqbase_active_get(t), transformed_strips, SEQ_query_strip_effect_chain);
if (t->state == TRANS_CANCEL) {
seq_transform_cancel(t, transformed_strips);
@@ -743,7 +729,7 @@ BLI_INLINE void trans_update_seq(Scene *sce, Sequence *seq, int old_start, int s
static void flushTransSeq(TransInfo *t)
{
/* Editing null check already done */
- ListBase *seqbasep = seqbase_from_trans_info(t);
+ ListBase *seqbasep = seqbase_active_get(t);
int a, new_frame;
TransData *td = NULL;
@@ -796,8 +782,7 @@ static void flushTransSeq(TransInfo *t)
/* need to do the overlap check in a new loop otherwise adjacent strips
* will not be updated and we'll get false positives */
SeqCollection *transformed_strips = seq_transform_collection_from_transdata(tc);
- SEQ_collection_expand(
- seqbase_from_trans_info(t), transformed_strips, SEQ_query_strip_effect_chain);
+ SEQ_collection_expand(seqbase_active_get(t), transformed_strips, SEQ_query_strip_effect_chain);
SEQ_ITERATOR_FOREACH (seq, transformed_strips) {
/* test overlap, displays red outline */
diff --git a/source/blender/editors/transform/transform_mode_edge_seq_slide.c b/source/blender/editors/transform/transform_mode_edge_seq_slide.c
index 0e311b7515d..b79047db6d9 100644
--- a/source/blender/editors/transform/transform_mode_edge_seq_slide.c
+++ b/source/blender/editors/transform/transform_mode_edge_seq_slide.c
@@ -92,7 +92,7 @@ static void headerSeqSlide(TransInfo *t, const float val[2], char str[UI_MAX_DRA
return;
}
- ofs += BLI_snprintf_rlen(str + ofs, UI_MAX_DRAW_STR - ofs, TIP_("("), &tvec[0], t->con.text);
+ ofs += BLI_snprintf_rlen(str + ofs, UI_MAX_DRAW_STR - ofs, ", (", &tvec[0], t->con.text);
const wmKeyMapItem *kmi = t->custom.mode.data;
if (kmi) {
diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h
index 01184d2780b..28913027547 100644
--- a/source/blender/makesdna/DNA_scene_types.h
+++ b/source/blender/makesdna/DNA_scene_types.h
@@ -1347,7 +1347,7 @@ typedef struct SequencerToolSettings {
} SequencerToolSettings;
typedef enum eSeqOverlapMode {
- SEQ_OVERLAP_OVERWRITE = (1<<0),
+ SEQ_OVERLAP_OVERWRITE = (1 << 0),
} eSeqOverlapMode;
typedef enum eSeqImageFitMethod {
diff --git a/source/blender/sequencer/SEQ_transform.h b/source/blender/sequencer/SEQ_transform.h
index 9ff827333be..1977835f627 100644
--- a/source/blender/sequencer/SEQ_transform.h
+++ b/source/blender/sequencer/SEQ_transform.h
@@ -41,6 +41,7 @@ bool SEQ_transform_sequence_can_be_translated(struct Sequence *seq);
bool SEQ_transform_single_image_check(struct Sequence *seq);
void SEQ_transform_fix_single_image_seq_offsets(struct Sequence *seq);
bool SEQ_transform_test_overlap(struct ListBase *seqbasep, struct Sequence *test);
+bool SEQ_transform_test_overlap_seq_seq(struct Sequence *seq1, struct Sequence *seq2);
void SEQ_transform_translate_sequence(struct Scene *scene, struct Sequence *seq, int delta);
bool SEQ_transform_seqbase_shuffle_ex(struct ListBase *seqbasep,
struct Sequence *test,
diff --git a/source/blender/sequencer/intern/strip_transform.c b/source/blender/sequencer/intern/strip_transform.c
index c9af2fced65..47dd7db138b 100644
--- a/source/b
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list