== Sequencer ==

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

View File

@@ -95,7 +95,7 @@ void do_ipo_nocalc(struct Ipo *ipo);
void do_ipo(struct Ipo *ipo); void do_ipo(struct Ipo *ipo);
void do_mat_ipo(struct Material *ma); void do_mat_ipo(struct Material *ma);
void do_ob_ipo(struct Object *ob); 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); void do_ob_ipodrivers(struct Object *ob, struct Ipo *ipo, float ctime);
int has_ipo_code(struct Ipo *ipo, int code); int has_ipo_code(struct Ipo *ipo, int code);

View File

@@ -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; float ctime, div;
@@ -2169,11 +2169,10 @@ void do_seq_ipo(Sequence *seq)
if(seq->ipo) { if(seq->ipo) {
if((seq->flag & SEQ_IPO_FRAME_LOCKED) != 0) { if((seq->flag & SEQ_IPO_FRAME_LOCKED) != 0) {
ctime = frame_to_float(G.scene->r.cfra); ctime = frame_to_float(cfra);
div = 1.0; div = 1.0;
} else { } else {
ctime= frame_to_float(G.scene->r.cfra ctime= frame_to_float(cfra - seq->startdisp);
- seq->startdisp);
div= (seq->enddisp - seq->startdisp)/100.0f; div= (seq->enddisp - seq->startdisp)/100.0f;
if(div==0.0) return; if(div==0.0) return;
} }
@@ -2291,7 +2290,7 @@ void do_all_data_ipos()
|| seq->type == SEQ_HD_SOUND) && (seq->ipo) && || seq->type == SEQ_HD_SOUND) && (seq->ipo) &&
(seq->startdisp<=G.scene->r.cfra+2) && (seq->startdisp<=G.scene->r.cfra+2) &&
(seq->enddisp>G.scene->r.cfra)) (seq->enddisp>G.scene->r.cfra))
do_seq_ipo(seq); do_seq_ipo(seq, G.scene->r.cfra);
seq= seq->next; seq= seq->next;
} }
} }

View File

@@ -304,7 +304,7 @@ static void audio_fill_ram_sound(Sequence *seq, void * mixdown,
(seq->startdisp <= CFRA) && ((seq->enddisp) > CFRA)) (seq->startdisp <= CFRA) && ((seq->enddisp) > CFRA))
{ {
if(seq->ipo && seq->ipo->curve.first) { if(seq->ipo && seq->ipo->curve.first) {
do_seq_ipo(seq); do_seq_ipo(seq, CFRA);
facf = seq->facf0; facf = seq->facf0;
} else { } else {
facf = 1.0; facf = 1.0;
@@ -333,7 +333,7 @@ static void audio_fill_hd_sound(Sequence *seq,
(seq->startdisp <= CFRA) && ((seq->enddisp) > CFRA)) (seq->startdisp <= CFRA) && ((seq->enddisp) > CFRA))
{ {
if(seq->ipo && seq->ipo->curve.first) { if(seq->ipo && seq->ipo->curve.first) {
do_seq_ipo(seq); do_seq_ipo(seq, CFRA);
facf = seq->facf0; facf = seq->facf0;
} else { } else {
facf = 1.0; facf = 1.0;

View File

@@ -446,7 +446,7 @@ static void do_effect(int cfra, Sequence *seq, TStripElem *se)
} }
if(seq->ipo && seq->ipo->curve.first) { if(seq->ipo && seq->ipo->curve.first) {
do_seq_ipo(seq); do_seq_ipo(seq, cfra);
fac= seq->facf0; fac= seq->facf0;
facf= seq->facf1; facf= seq->facf1;
} else { } else {
@@ -962,7 +962,7 @@ static void do_effect_seq_recursively(Sequence * seq, TStripElem *se, int cfra)
se->se3 = 0; se->se3 = 0;
if(seq->ipo && seq->ipo->curve.first) { if(seq->ipo && seq->ipo->curve.first) {
do_seq_ipo(seq); do_seq_ipo(seq, cfra);
fac= seq->facf0; fac= seq->facf0;
facf= seq->facf1; facf= seq->facf1;
} else { } else {