diff options
author | Ton Roosendaal <ton@blender.org> | 2006-07-08 14:54:53 +0400 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2006-07-08 14:54:53 +0400 |
commit | 9a49186db1c567bf9387d1f163843e9981197c75 (patch) | |
tree | 9af86fd3a99c1ae5a718dda755b83017e5b180d6 | |
parent | 83d4833fc1edcf6e303265df11a1e6522fe4f267 (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.c | 8 | ||||
-rw-r--r-- | source/blender/src/sequence.c | 8 |
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"); } |