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:
authorTon Roosendaal <ton@blender.org>2006-07-08 14:54:53 +0400
committerTon Roosendaal <ton@blender.org>2006-07-08 14:54:53 +0400
commit9a49186db1c567bf9387d1f163843e9981197c75 (patch)
tree9af86fd3a99c1ae5a718dda755b83017e5b180d6
parent83d4833fc1edcf6e303265df11a1e6522fe4f267 (diff)
Bug fix #4642
When a Sequence setup had a gap, it returned default black frames. However, this black frame was overriding the float buffer when a new strip started to render again, so the Sequencer kept saving black. Also: added extra info print for Scene strip, this didn't tell yet what the start/end frame of Scene was, and what current frame was.
-rw-r--r--source/blender/src/drawseq.c8
-rw-r--r--source/blender/src/sequence.c8
2 files changed, 14 insertions, 2 deletions
diff --git a/source/blender/src/drawseq.c b/source/blender/src/drawseq.c
index e96b31f1edc..f42fb786d3d 100644
--- a/source/blender/src/drawseq.c
+++ b/source/blender/src/drawseq.c
@@ -913,6 +913,14 @@ static void draw_extra_seqinfo(void)
glRasterPos3f(xco, 0.3, 0.0);
BMF_DrawString(G.font, str);
}
+ else if(last_seq->type==SEQ_SCENE) {
+ se= (StripElem *)give_stripelem(last_seq, (G.scene->r.cfra));
+ if(se && last_seq->scene) {
+ sprintf(str, "Cur: %d First: %d Last: %d", last_seq->sfra+se->nr, last_seq->sfra, last_seq->sfra+last_seq->len-1);
+ glRasterPos3f(xco, 0.3, 0.0);
+ BMF_DrawString(G.font, str);
+ }
+ }
else if(last_seq->type==SEQ_RAM_SOUND
|| last_seq->type == SEQ_HD_SOUND) {
diff --git a/source/blender/src/sequence.c b/source/blender/src/sequence.c
index 075ba650ef5..e1fb7f8bcfd 100644
--- a/source/blender/src/sequence.c
+++ b/source/blender/src/sequence.c
@@ -1276,8 +1276,12 @@ void do_render_seq(RenderResult *rr, int cfra)
free_imbuf_seq_except(cfra);
}
else {
- /* render result is delivered empty in most cases */
- if (!rr->rect32)
+ /* render result is delivered empty in most cases, nevertheless we handle all cases */
+ if (rr->rectf)
+ memset(rr->rectf, 0, 4*sizeof(float)*rr->rectx*rr->recty);
+ else if (rr->rect32)
+ memset(rr->rect32, 0, 4*rr->rectx*rr->recty);
+ else
rr->rect32= MEM_callocN(sizeof(int)*rr->rectx*rr->recty, "render_seq rect");
}