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
diff options
context:
space:
mode:
authorPeter Schlaile <peter@schlaile.de>2008-01-29 15:26:42 +0300
committerPeter Schlaile <peter@schlaile.de>2008-01-29 15:26:42 +0300
commitfd9db17021064552cdecbcfadce4255257d71e17 (patch)
treeb1013efbb7e91797be1c8e2c6466affb4edae051 /source/blender/src/sequence.c
parent8e94028ed57861595e959d30476a74c48868a991 (diff)
== Sequencer ==
This fixes several crashes with the new tstripdata_start/endstill. dupli_seq was cleaned up as well as add_scene_strip (moved to a seperate function) New features: * opacity can be used in replace blend mode * the scene within in a scene track can be changed now within the panel Also: * [#7842] Note: setCodec in FormatTab disappeared... should be fixed by this. (Not a big change, so I just commit and see :) http://peter.schlaile.de/blender/sequencer/codec_buttons.diff
Diffstat (limited to 'source/blender/src/sequence.c')
-rw-r--r--source/blender/src/sequence.c36
1 files changed, 29 insertions, 7 deletions
diff --git a/source/blender/src/sequence.c b/source/blender/src/sequence.c
index e10d78abd89..003c2c0e491 100644
--- a/source/blender/src/sequence.c
+++ b/source/blender/src/sequence.c
@@ -401,8 +401,10 @@ void reload_sequence_new_file(Sequence * seq)
return;
}
- strncpy(str, seq->strip->dir, FILE_MAXDIR-1);
- strncat(str, seq->strip->stripdata->name, FILE_MAXFILE-1);
+ if (seq->type != SEQ_SCENE) {
+ strncpy(str, seq->strip->dir, FILE_MAXDIR-1);
+ strncat(str, seq->strip->stripdata->name, FILE_MAXFILE-1);
+ }
if (seq->type == SEQ_MOVIE) {
if(seq->anim) IMB_free_anim(seq->anim);
@@ -433,6 +435,23 @@ void reload_sequence_new_file(Sequence * seq)
seq->strip->len = seq->len
= sound_hdaudio_get_duration(seq->hdaudio, FPS);
} else if (seq->type == SEQ_SCENE) {
+ Scene * sce = G.main->scene.first;
+ int nr = 1;
+ while(sce) {
+ if(nr == seq->scenenr) {
+ break;
+ }
+ nr++;
+ sce= sce->id.next;
+ }
+
+ if (sce) {
+ seq->scene = sce;
+ }
+
+ strncpy(seq->name + 2, sce->id.name + 2,
+ sizeof(seq->name) - 2);
+
seq->len= seq->scene->r.efra - seq->scene->r.sfra + 1;
seq->len -= seq->anim_startofs;
seq->len -= seq->anim_endofs;
@@ -849,7 +868,7 @@ TStripElem *give_tstripelem(Sequence *seq, int cfra)
se->nr= nr;
-
+
return se;
}
@@ -1085,11 +1104,14 @@ static void input_preprocess(Sequence * seq, TStripElem* se, int cfra)
mul = seq->mul;
- if(seq->blend_mode == SEQ_BLEND_REPLACE
- && seq->ipo && seq->ipo->curve.first) {
- do_seq_ipo(seq, cfra);
- mul *= seq->facf0;
+ if(seq->blend_mode == SEQ_BLEND_REPLACE) {
+ if (seq->ipo && seq->ipo->curve.first) {
+ do_seq_ipo(seq, cfra);
+ mul *= seq->facf0;
+ }
+ mul *= seq->blend_opacity / 100.0;
}
+
if(mul != 1.0) {
multibuf(se->ibuf, mul);
}