Bug fix #4642
authorTon Roosendaal <ton@blender.org>
Sat, 8 Jul 2006 10:54:53 +0000 (10:54 +0000)
committerTon Roosendaal <ton@blender.org>
Sat, 8 Jul 2006 10:54:53 +0000 (10:54 +0000)
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.

source/blender/src/drawseq.c
source/blender/src/sequence.c

index e96b31f1edc806a784a303579088d1ea5117b81f..f42fb786d3dcb9a14cc5c2820ef94f23eaee8437 100644 (file)
@@ -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) {
 
index 075ba650ef51c630035e7f10e7e16a134003b45f..e1fb7f8bcfd83dac0f9bce0366dad5dd04795cb7 100644 (file)
@@ -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");
        }