Bugfix #4298
Uncommitted the feature I added for Plumiferos to be able to render animated render-borders (which effectively means every frame can be a different size). For several reasons; - it will crash movie rendering (when image sizes differ) - it forced code to do a full initialize each frame, also for setting the renderwindow (which popped up on each frame) - the render pipeline was not designed with per-frame python changes in mind for image sizes... it uses an "Initialize" stage which is only called once for an entire sequence. That latter might be an omission, but for that I better code a new API call (for use in Python) so a re-init can be enforced. The old functionality (animated render borders) will still work when you render in background, using small steps like blender -s 1 -e 5 -a etc.
This commit is contained in:
@@ -1839,29 +1839,23 @@ void RE_BlenderAnim(Render *re, Scene *scene, int sfra, int efra)
|
||||
{
|
||||
bMovieHandle *mh= BKE_get_movie_handle(scene->r.imtype);
|
||||
int cfrao= scene->r.cfra;
|
||||
int movie_init= 0;
|
||||
|
||||
/* on each frame initialize, this for py scripts that define renderdata settings */
|
||||
if(!render_initialize_from_scene(re, scene))
|
||||
return;
|
||||
|
||||
/* ugly global still... is to prevent renderwin events and signal subsurfs etc to make full resol */
|
||||
/* is also set by caller renderwin.c */
|
||||
G.rendering= 1;
|
||||
|
||||
if(BKE_imtype_is_movie(scene->r.imtype))
|
||||
movie_init= 1;
|
||||
mh->start_movie(&re->r, re->rectx, re->recty);
|
||||
|
||||
if (mh->get_next_frame) {
|
||||
while (!(G.afbreek == 1)) {
|
||||
int nf = mh->get_next_frame();
|
||||
if (nf >= 0 && nf >= scene->r.sfra && nf <= scene->r.efra) {
|
||||
scene->r.cfra = nf;
|
||||
|
||||
/* on each frame initialize, this for py scripts that define renderdata settings */
|
||||
if(!render_initialize_from_scene(re, scene))
|
||||
break;
|
||||
|
||||
if(movie_init) { /* only now the rectx/recty is set */
|
||||
mh->start_movie(&re->r, re->rectx, re->recty);
|
||||
movie_init= 0;
|
||||
}
|
||||
|
||||
do_render_all_options(re);
|
||||
|
||||
@@ -1875,15 +1869,6 @@ void RE_BlenderAnim(Render *re, Scene *scene, int sfra, int efra)
|
||||
scene->r.cfra<=efra; scene->r.cfra++) {
|
||||
re->r.cfra= scene->r.cfra; /* weak.... */
|
||||
|
||||
/* on each frame initialize, this for py scripts that define renderdata settings */
|
||||
if(!render_initialize_from_scene(re, scene))
|
||||
break;
|
||||
|
||||
if(movie_init) { /* only now the rectx/recty is set */
|
||||
mh->start_movie(&re->r, re->rectx, re->recty);
|
||||
movie_init= 0;
|
||||
}
|
||||
|
||||
do_render_all_options(re);
|
||||
|
||||
if(re->test_break() == 0) {
|
||||
|
||||
Reference in New Issue
Block a user