Changeset View
Changeset View
Standalone View
Standalone View
source/blender/blenkernel/intern/sequencer.c
| Show First 20 Lines • Show All 5,812 Lines • ▼ Show 20 Lines | void BKE_sequence_base_dupli_recursive(const Scene *scene_src, | ||||
| const ListBase *seqbase, | const ListBase *seqbase, | ||||
| int dupe_flag, | int dupe_flag, | ||||
| const int flag) | const int flag) | ||||
| { | { | ||||
| Sequence *seq; | Sequence *seq; | ||||
| Sequence *seqn = NULL; | Sequence *seqn = NULL; | ||||
| Sequence *last_seq = BKE_sequencer_active_get((Scene *)scene_src); | Sequence *last_seq = BKE_sequencer_active_get((Scene *)scene_src); | ||||
| /* always include meta's strips */ | /* always include meta's strips */ | ||||
| int dupe_flag_recursive = dupe_flag | SEQ_DUPE_ALL; | int dupe_flag_recursive = dupe_flag | SEQ_DUPE_ALL | SEQ_DUPE_IS_RECURSIVE_CALL; | ||||
| for (seq = seqbase->first; seq; seq = seq->next) { | for (seq = seqbase->first; seq; seq = seq->next) { | ||||
| seq->tmp = NULL; | seq->tmp = NULL; | ||||
| if ((seq->flag & SELECT) || (dupe_flag & SEQ_DUPE_ALL)) { | if ((seq->flag & SELECT) || (dupe_flag & SEQ_DUPE_ALL)) { | ||||
| seqn = seq_dupli(scene_src, scene_dst, nseqbase, seq, dupe_flag, flag); | seqn = seq_dupli(scene_src, scene_dst, nseqbase, seq, dupe_flag, flag); | ||||
| if (seqn) { /*should never fail */ | if (seqn) { /*should never fail */ | ||||
| if (dupe_flag & SEQ_DUPE_CONTEXT) { | if (dupe_flag & SEQ_DUPE_CONTEXT) { | ||||
| seq->flag &= ~SEQ_ALLSEL; | seq->flag &= ~SEQ_ALLSEL; | ||||
| Show All 9 Lines | if ((seq->flag & SELECT) || (dupe_flag & SEQ_DUPE_ALL)) { | ||||
| if (seq == last_seq) { | if (seq == last_seq) { | ||||
| BKE_sequencer_active_set(scene_dst, seqn); | BKE_sequencer_active_set(scene_dst, seqn); | ||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| /* Fix modifier links recursively from the top level only, when all sequences have been | |||||
| * copied. */ | |||||
brecht: This isn't really clear to me, are the links not fixed at all? Or is it more accurate to say… | |||||
| if (dupe_flag & SEQ_DUPE_IS_RECURSIVE_CALL) { | |||||
| return; | |||||
| } | |||||
| /* fix modifier linking */ | /* fix modifier linking */ | ||||
| for (seq = nseqbase->first; seq; seq = seq->next) { | for (seq = nseqbase->first; seq; seq = seq->next) { | ||||
| seq_new_fix_links_recursive(seq); | seq_new_fix_links_recursive(seq); | ||||
| } | } | ||||
| } | } | ||||
| /* called on draw, needs to be fast, | /* called on draw, needs to be fast, | ||||
| * we could cache and use a flag if we want to make checks for file paths resolving for eg. */ | * we could cache and use a flag if we want to make checks for file paths resolving for eg. */ | ||||
| ▲ Show 20 Lines • Show All 112 Lines • Show Last 20 Lines | |||||
This isn't really clear to me, are the links not fixed at all? Or is it more accurate to say something like?