forked from bartvdbraak/blender
== Sequencer ==
Fixed IPO calculation for threaded prefetch rendering. (do_seq_ipo used global CFRA tststs...)
This commit is contained in:
parent
9f7182b8c8
commit
146b0aec14
@ -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 {
|
||||
|
Loading…
Reference in New Issue
Block a user