Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorPeter Schlaile <peter@schlaile.de>2007-12-24 00:27:12 +0300
committerPeter Schlaile <peter@schlaile.de>2007-12-24 00:27:12 +0300
commit146b0aec14835872b2db9c18dc8615513050e6df (patch)
tree7e0ebbcc5eaa72af7fa0d0f597f018d791c99287 /source
parent9f7182b8c819279b74245ba4f0180a326ea26b2d (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.h2
-rw-r--r--source/blender/blenkernel/intern/ipo.c9
-rw-r--r--source/blender/src/seqaudio.c4
-rw-r--r--source/blender/src/sequence.c4
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 {