diff options
author | Ton Roosendaal <ton@blender.org> | 2006-06-27 13:48:54 +0400 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2006-06-27 13:48:54 +0400 |
commit | f7c9c9987763bad926ffde91943d9db8964d4388 (patch) | |
tree | 2c1326d9322a8fcdf658439692a81aff7ed4cb0c | |
parent | 605388b44949ce10070b5e2178aea65a11667e54 (diff) |
Bugfixes from own collection:
- when renderwin exists, but not used for render, the ESC timer check still
could return ESC event, due to missing flag clearing.
(For example in sequencer, a scene strip did not update on frame advance)
- option 'single layer' set in combination with render "Do Sequence" didn't
free the pushed layers.
-rw-r--r-- | source/blender/render/intern/source/pipeline.c | 3 | ||||
-rw-r--r-- | source/blender/src/renderwin.c | 4 | ||||
-rw-r--r-- | source/blender/src/sequence.c | 2 |
3 files changed, 7 insertions, 2 deletions
diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c index 6b02a41cc8d..6643d28d69b 100644 --- a/source/blender/render/intern/source/pipeline.c +++ b/source/blender/render/intern/source/pipeline.c @@ -181,6 +181,9 @@ static void free_render_result(RenderResult *res) /* all layers except the active one get temporally pushed away */ static void push_render_result(Render *re) { + /* officially pushed result should be NULL... error can happen with do_seq */ + free_render_result(re->pushedresult); + re->pushedresult= re->result; re->result= NULL; } diff --git a/source/blender/src/renderwin.c b/source/blender/src/renderwin.c index 7e78501ed4e..1d1eca59696 100644 --- a/source/blender/src/renderwin.c +++ b/source/blender/src/renderwin.c @@ -733,7 +733,6 @@ static void renderwin_init_display_cb(RenderResult *rr) } renderwin_reset_view(render_win); - render_win->flags&= ~RW_FLAGS_ESCAPE; render_win->active= 1; } /* make sure we are in normal draw again */ @@ -1165,6 +1164,9 @@ void BIF_init_render_callbacks(Render *re, int do_display) RE_error_cb(re, error_cb); G.afbreek= 0; + if(render_win) + render_win->flags &= ~RW_FLAGS_ESCAPE; + /* start esc timer. ensure it happens once only */ if(esc_timer_set==0) init_test_break_callback(); diff --git a/source/blender/src/sequence.c b/source/blender/src/sequence.c index 97d92110296..b67951b3a1c 100644 --- a/source/blender/src/sequence.c +++ b/source/blender/src/sequence.c @@ -903,7 +903,7 @@ static void do_build_seq_ibuf(Sequence * seq, int cfra) if(G.rendering) re= RE_NewRender(" do_build_seq_ibuf"); else - re= RE_NewRender(seq->scene->id.name); + re= RE_NewRender(sce->id.name); /* prevent eternal loop */ doseq= sce->r.scemode & R_DOSEQ; |