Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2011-04-30 09:42:37 +0400
committerCampbell Barton <ideasman42@gmail.com>2011-04-30 09:42:37 +0400
commite7ffd32a614c188d1e2ec2af8a751735c1ba4d06 (patch)
treee5f4aad1a9e9ce057c6ee1c98d5652b32113f9f6 /source/blender/blenkernel/intern/sequencer.c
parentc4c22d4e9f5f0ab11412a1d22b3f405411389379 (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.c15
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);