diff options
author | Peter Schlaile <peter@schlaile.de> | 2007-12-24 00:27:12 +0300 |
---|---|---|
committer | Peter Schlaile <peter@schlaile.de> | 2007-12-24 00:27:12 +0300 |
commit | 146b0aec14835872b2db9c18dc8615513050e6df (patch) | |
tree | 7e0ebbcc5eaa72af7fa0d0f597f018d791c99287 /source | |
parent | 9f7182b8c819279b74245ba4f0180a326ea26b2d (diff) |
== Sequencer ==
Fixed IPO calculation for threaded prefetch rendering. (do_seq_ipo used
global CFRA tststs...)
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/blenkernel/BKE_ipo.h | 2 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/ipo.c | 9 | ||||
-rw-r--r-- | source/blender/src/seqaudio.c | 4 | ||||
-rw-r--r-- | source/blender/src/sequence.c | 4 |
4 files changed, 9 insertions, 10 deletions
diff --git a/source/blender/blenkernel/BKE_ipo.h b/source/blender/blenkernel/BKE_ipo.h index 2a6065eb4f1..01fe0903775 100644 --- a/source/blender/blenkernel/BKE_ipo.h +++ b/source/blender/blenkernel/BKE_ipo.h @@ -95,7 +95,7 @@ void do_ipo_nocalc(struct Ipo *ipo); void do_ipo(struct Ipo *ipo); void do_mat_ipo(struct Material *ma); void do_ob_ipo(struct Object *ob); -void do_seq_ipo(struct Sequence *seq); +void do_seq_ipo(struct Sequence *seq, int cfra); void do_ob_ipodrivers(struct Object *ob, struct Ipo *ipo, float ctime); int has_ipo_code(struct Ipo *ipo, int code); diff --git a/source/blender/blenkernel/intern/ipo.c b/source/blender/blenkernel/intern/ipo.c index 876f1c50a93..4af310913d6 100644 --- a/source/blender/blenkernel/intern/ipo.c +++ b/source/blender/blenkernel/intern/ipo.c @@ -2161,7 +2161,7 @@ void do_ob_ipodrivers(Object *ob, Ipo *ipo, float ctime) } } -void do_seq_ipo(Sequence *seq) +void do_seq_ipo(Sequence *seq, int cfra) { float ctime, div; @@ -2169,11 +2169,10 @@ void do_seq_ipo(Sequence *seq) if(seq->ipo) { if((seq->flag & SEQ_IPO_FRAME_LOCKED) != 0) { - ctime = frame_to_float(G.scene->r.cfra); + ctime = frame_to_float(cfra); div = 1.0; } else { - ctime= frame_to_float(G.scene->r.cfra - - seq->startdisp); + ctime= frame_to_float(cfra - seq->startdisp); div= (seq->enddisp - seq->startdisp)/100.0f; if(div==0.0) return; } @@ -2291,7 +2290,7 @@ void do_all_data_ipos() || seq->type == SEQ_HD_SOUND) && (seq->ipo) && (seq->startdisp<=G.scene->r.cfra+2) && (seq->enddisp>G.scene->r.cfra)) - do_seq_ipo(seq); + do_seq_ipo(seq, G.scene->r.cfra); seq= seq->next; } } diff --git a/source/blender/src/seqaudio.c b/source/blender/src/seqaudio.c index b4d4f190f91..ae76de90ddf 100644 --- a/source/blender/src/seqaudio.c +++ b/source/blender/src/seqaudio.c @@ -304,7 +304,7 @@ static void audio_fill_ram_sound(Sequence *seq, void * mixdown, (seq->startdisp <= CFRA) && ((seq->enddisp) > CFRA)) { if(seq->ipo && seq->ipo->curve.first) { - do_seq_ipo(seq); + do_seq_ipo(seq, CFRA); facf = seq->facf0; } else { facf = 1.0; @@ -333,7 +333,7 @@ static void audio_fill_hd_sound(Sequence *seq, (seq->startdisp <= CFRA) && ((seq->enddisp) > CFRA)) { if(seq->ipo && seq->ipo->curve.first) { - do_seq_ipo(seq); + do_seq_ipo(seq, CFRA); facf = seq->facf0; } else { facf = 1.0; diff --git a/source/blender/src/sequence.c b/source/blender/src/sequence.c index 73eb0a96764..6d663b610ca 100644 --- a/source/blender/src/sequence.c +++ b/source/blender/src/sequence.c @@ -446,7 +446,7 @@ static void do_effect(int cfra, Sequence *seq, TStripElem *se) } if(seq->ipo && seq->ipo->curve.first) { - do_seq_ipo(seq); + do_seq_ipo(seq, cfra); fac= seq->facf0; facf= seq->facf1; } else { @@ -962,7 +962,7 @@ static void do_effect_seq_recursively(Sequence * seq, TStripElem *se, int cfra) se->se3 = 0; if(seq->ipo && seq->ipo->curve.first) { - do_seq_ipo(seq); + do_seq_ipo(seq, cfra); fac= seq->facf0; facf= seq->facf1; } else { |