diff options
author | Peter Schlaile <peter@schlaile.de> | 2007-08-05 23:13:34 +0400 |
---|---|---|
committer | Peter Schlaile <peter@schlaile.de> | 2007-08-05 23:13:34 +0400 |
commit | cb7e393307024facb4ed2f6a5009ce3a17e26eee (patch) | |
tree | 26496bcba7fea050c71873a2b85cc7c8a6a18347 /source | |
parent | ad4e54c20c32b909649ce475b49f90c3f5b9e0e8 (diff) |
== Sequencer ==
This fixes [#6996] Sequence Nesting and enables sequence nesting for the
first time :)
The old hack done by Ton prevented eternal loops by preventing Sequence
tracks being added to Sequence scenes.
We now disable "Do sequence" temporarily for the _current_ scene, which
has the same effect but leaves the possibility of sequence nesting
untouched.
Also fixes a warning in editseq (uninitialized variable).
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/src/editseq.c | 2 | ||||
-rw-r--r-- | source/blender/src/sequence.c | 9 |
2 files changed, 7 insertions, 4 deletions
diff --git a/source/blender/src/editseq.c b/source/blender/src/editseq.c index bbcef28cd2d..67fd86e5e9c 100644 --- a/source/blender/src/editseq.c +++ b/source/blender/src/editseq.c @@ -203,7 +203,7 @@ int sequence_is_free_transformable(Sequence * seq) Sequence *find_neighboring_sequence(Sequence *test, int lr) { /* looks to the left on lr==1, to the right on lr==2 */ - Sequence *seq,*foundneighbor; + Sequence *seq,*foundneighbor = 0; int found=0; Editing *ed; diff --git a/source/blender/src/sequence.c b/source/blender/src/sequence.c index db901930893..aad0ebf5c5f 100644 --- a/source/blender/src/sequence.c +++ b/source/blender/src/sequence.c @@ -832,8 +832,8 @@ static void do_build_seq_ibuf(Sequence * seq, int cfra) re= RE_NewRender(sce->id.name); /* prevent eternal loop */ - doseq= sce->r.scemode & R_DOSEQ; - sce->r.scemode &= ~R_DOSEQ; + doseq= G.scene->r.scemode & R_DOSEQ; + G.scene->r.scemode &= ~R_DOSEQ; BIF_init_render_callbacks(re, 0); /* 0= no display callbacks */ @@ -856,12 +856,15 @@ static void do_build_seq_ibuf(Sequence * seq, int cfra) addzbuffloatImBuf(se->ibuf); memcpy(se->ibuf->zbuf_float, rres.rectz, sizeof(float)*rres.rectx*rres.recty); } + } else if (rres.rect32) { + se->ibuf= IMB_allocImBuf(rres.rectx, rres.recty, 32, IB_rect, 0); + memcpy(se->ibuf->rect, rres.rect32, 4*rres.rectx*rres.recty); } BIF_end_render_callbacks(); /* restore */ - sce->r.scemode |= doseq; + G.scene->r.scemode |= doseq; if((G.f & G_PLAYANIM)==0) /* bad, is set on do_render_seq */ waitcursor(0); |