diff options
author | Richard Antalik <richardantalik@gmail.com> | 2021-08-27 13:59:46 +0300 |
---|---|---|
committer | Richard Antalik <richardantalik@gmail.com> | 2021-08-27 13:59:46 +0300 |
commit | 59cd9c6da682675c439731781d127b1b02f12a76 (patch) | |
tree | be3547652d6e9bf2e4051dbd54a71b771ec5afad /source/blender/sequencer/SEQ_iterator.h | |
parent | 7f7370fa26fbe8597cbb9832755f854fd4a8d0e5 (diff) |
VSE: Transform overwrite mode
Add mode to overwrite strips on overlap instead of resolving overlap.
When overlap is created, 3 things can happen:
- On partial overlap, handles of overlapped strip are moved
- On complete overlap with smaller strip, overlapped strip is split
- On complete overlap with larger strip, overlapped strip is removed
This mode can be enabled in header.
Reviewed By: fsiddi, mano-wii
Differential Revision: https://developer.blender.org/D11805
Diffstat (limited to 'source/blender/sequencer/SEQ_iterator.h')
-rw-r--r-- | source/blender/sequencer/SEQ_iterator.h | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/source/blender/sequencer/SEQ_iterator.h b/source/blender/sequencer/SEQ_iterator.h index 055db07f646..9fca25653e1 100644 --- a/source/blender/sequencer/SEQ_iterator.h +++ b/source/blender/sequencer/SEQ_iterator.h @@ -34,10 +34,12 @@ struct GSet; struct GSetIterator; struct Sequence; -#define SEQ_ITERATOR_FOREACH(var, collection) \ - for (SeqIterator iter = {{{NULL}}}; \ - SEQ_iterator_ensure(collection, &iter, &var) && var != NULL; \ - var = SEQ_iterator_yield(&iter)) +#define SEQ_ITERATOR_FOREACH_IMPL(var, collection, suffix) \ + for (SeqIterator iter##suffix = {{{NULL}}}; \ + SEQ_iterator_ensure(collection, &iter##suffix, &var) && var != NULL; \ + var = SEQ_iterator_yield(&iter##suffix)) + +#define SEQ_ITERATOR_FOREACH(var, collection) SEQ_ITERATOR_FOREACH_IMPL(var, collection, __LINE__) typedef struct SeqCollection { struct GSet *set; @@ -79,6 +81,7 @@ SeqCollection *SEQ_query_by_reference(struct Sequence *seq_reference, struct ListBase *seqbase, SeqCollection *collection)); SeqCollection *SEQ_query_selected_strips(struct ListBase *seqbase); +SeqCollection *SEQ_query_unselected_strips(struct ListBase *seqbase); SeqCollection *SEQ_query_all_strips(struct ListBase *seqbase); SeqCollection *SEQ_query_all_strips_recursive(struct ListBase *seqbase); void SEQ_query_strip_effect_chain(struct Sequence *seq_reference, |