== Sequencer ==

Fixed IPO calculation for threaded prefetch rendering. (do_seq_ipo used
global CFRA tststs...)
This commit is contained in:
Peter Schlaile 2007-12-23 21:27:12 +00:00
parent 9f7182b8c8
commit 146b0aec14
4 changed files with 9 additions and 10 deletions

@ -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);

@ -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;
}
}

@ -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;

@ -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 {