diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2014-04-14 15:50:47 +0400 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2014-04-14 15:50:47 +0400 |
commit | 4863253c2f9044f146874a4ef7bc8abb1edc1b2b (patch) | |
tree | 49535f9b55a8e6932bacc23d34ec5144dd88f4a1 /source/blender/blenkernel/intern/sequencer.c | |
parent | d0c1b44debc4d4d1de274a4ecf777f76831cd264 (diff) |
Fix T39702: VSE channel preview: strips used as effect operands no more visible
Diffstat (limited to 'source/blender/blenkernel/intern/sequencer.c')
-rw-r--r-- | source/blender/blenkernel/intern/sequencer.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/source/blender/blenkernel/intern/sequencer.c b/source/blender/blenkernel/intern/sequencer.c index dd266052b21..040c46ab899 100644 --- a/source/blender/blenkernel/intern/sequencer.c +++ b/source/blender/blenkernel/intern/sequencer.c @@ -1156,7 +1156,7 @@ StripElem *BKE_sequencer_give_stripelem(Sequence *seq, int cfra) return se; } -static int evaluate_seq_frame_gen(Sequence **seq_arr, ListBase *seqbase, int cfra) +static int evaluate_seq_frame_gen(Sequence **seq_arr, ListBase *seqbase, int cfra, int chanshown) { Sequence *seq; Sequence *effect_inputs[MAXSEQ + 1]; @@ -1200,6 +1200,12 @@ static int evaluate_seq_frame_gen(Sequence **seq_arr, ListBase *seqbase, int cfr if (seq_arr[seq->machine] && seq_arr[seq->machine]->type & SEQ_TYPE_EFFECT) { continue; } + /* If we're shown a specified channel, then we want to see the stirps + * which belongs to this machine. + */ + if (chanshown != 0 && chanshown <= seq->machine) { + continue; + } seq_arr[seq->machine] = NULL; } @@ -1214,7 +1220,7 @@ int BKE_sequencer_evaluate_frame(Scene *scene, int cfra) if (ed == NULL) return 0; - return evaluate_seq_frame_gen(seq_arr, ed->seqbasep, cfra); + return evaluate_seq_frame_gen(seq_arr, ed->seqbasep, cfra, 0); } static bool video_seq_is_rendered(Sequence *seq) @@ -1232,7 +1238,7 @@ static int get_shown_sequences(ListBase *seqbasep, int cfra, int chanshown, Sequ return 0; } - if (evaluate_seq_frame_gen(seq_arr, seqbasep, cfra)) { + if (evaluate_seq_frame_gen(seq_arr, seqbasep, cfra, chanshown)) { if (b == 0) { b = MAXSEQ; } |