== 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).
This commit is contained in:
Peter Schlaile
2007-08-05 19:13:34 +00:00
parent ad4e54c20c
commit cb7e393307
2 changed files with 7 additions and 4 deletions

View File

@@ -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;

View File

@@ -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);