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:
2006-06-09 12:21:15 +00:00
parent c595112d3d
commit 77223515a9

View File

@@ -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) {