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-08-05 23:13:34 +0400
committerPeter Schlaile <peter@schlaile.de>2007-08-05 23:13:34 +0400
commitcb7e393307024facb4ed2f6a5009ce3a17e26eee (patch)
tree26496bcba7fea050c71873a2b85cc7c8a6a18347 /source
parentad4e54c20c32b909649ce475b49f90c3f5b9e0e8 (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.c2
-rw-r--r--source/blender/src/sequence.c9
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);