diff options
author | Campbell Barton <ideasman42@gmail.com> | 2011-04-30 09:42:37 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2011-04-30 09:42:37 +0400 |
commit | e7ffd32a614c188d1e2ec2af8a751735c1ba4d06 (patch) | |
tree | e5f4aad1a9e9ce057c6ee1c98d5652b32113f9f6 /source/blender/blenkernel/intern/sequencer.c | |
parent | c4c22d4e9f5f0ab11412a1d22b3f405411389379 (diff) |
use camera render argument to avoid temp overwriting the scene camera.
also fix for mistake with rendering stars from previous commit.
Diffstat (limited to 'source/blender/blenkernel/intern/sequencer.c')
-rw-r--r-- | source/blender/blenkernel/intern/sequencer.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/source/blender/blenkernel/intern/sequencer.c b/source/blender/blenkernel/intern/sequencer.c index a4d11c90019..3d40f0ba00a 100644 --- a/source/blender/blenkernel/intern/sequencer.c +++ b/source/blender/blenkernel/intern/sequencer.c @@ -1858,7 +1858,7 @@ static ImBuf * seq_render_scene_strip_impl( ImBuf * ibuf = NULL; float frame= seq->sfra + nr + seq->anim_startofs; float oldcfra; - Object *oldcamera; + Object *camera; ListBase oldmarkers; /* Old info: @@ -1908,7 +1908,6 @@ static ImBuf * seq_render_scene_strip_impl( return NULL; oldcfra= seq->scene->r.cfra; - oldcamera= seq->scene->camera; /* prevent eternal loop */ doseq= context.scene->r.scemode & R_DOSEQ; @@ -1916,9 +1915,11 @@ static ImBuf * seq_render_scene_strip_impl( seq->scene->r.cfra= frame; if(seq->scene_camera) - seq->scene->camera= seq->scene_camera; - else + camera= seq->scene_camera; + else { scene_camera_switch_update(seq->scene); + camera= seq->scene->camera; + } #ifdef DURIAN_CAMERA_SWITCH /* stooping to new low's in hackyness :( */ @@ -1934,7 +1935,7 @@ static ImBuf * seq_render_scene_strip_impl( /* opengl offscreen render */ scene_update_for_newframe(context.bmain, seq->scene, seq->scene->lay); - ibuf= sequencer_view3d_cb(seq->scene, context.rectx, context.recty, IB_rect, context.scene->r.seq_prev_type, err_out); + ibuf= sequencer_view3d_cb(seq->scene, camera, context.rectx, context.recty, IB_rect, context.scene->r.seq_prev_type, err_out); if(ibuf == NULL) { fprintf(stderr, "seq_render_scene_strip_impl failed to get opengl buffer: %s\n", err_out); } @@ -1948,7 +1949,7 @@ static ImBuf * seq_render_scene_strip_impl( if(re==NULL) re= RE_NewRender(sce->id.name); - RE_BlenderFrame(re, context.bmain, sce, NULL, NULL, sce->lay, frame, FALSE); + RE_BlenderFrame(re, context.bmain, sce, NULL, camera, sce->lay, frame, FALSE); /* restore previous state after it was toggled on & off by RE_BlenderFrame */ G.rendering = rendering; @@ -1982,7 +1983,7 @@ static ImBuf * seq_render_scene_strip_impl( context.scene->r.scemode |= doseq; seq->scene->r.cfra = oldcfra; - seq->scene->camera= oldcamera; + if(frame != oldcfra) scene_update_for_newframe(context.bmain, seq->scene, seq->scene->lay); |