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.
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user