diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2012-04-13 21:42:03 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2012-04-13 21:42:03 +0400 |
commit | b219b5294b15cff95030a15b929d3c7bbf5d35c7 (patch) | |
tree | dd91b7247797439f77b249c2229f67c832a0325d /intern/cycles | |
parent | 440f4492656ec26c90017976553909b48e93c3fa (diff) |
Fix #30376: cycles ignores camera override from sequencer.
Diffstat (limited to 'intern/cycles')
-rw-r--r-- | intern/cycles/blender/blender_camera.cpp | 5 | ||||
-rw-r--r-- | intern/cycles/blender/blender_session.cpp | 4 | ||||
-rw-r--r-- | intern/cycles/blender/blender_sync.h | 2 |
3 files changed, 7 insertions, 4 deletions
diff --git a/intern/cycles/blender/blender_camera.cpp b/intern/cycles/blender/blender_camera.cpp index def1c64c0f0..a21b22bc35a 100644 --- a/intern/cycles/blender/blender_camera.cpp +++ b/intern/cycles/blender/blender_camera.cpp @@ -250,7 +250,7 @@ static void blender_camera_sync(Camera *cam, BlenderCamera *bcam, int width, int /* Sync Render Camera */ -void BlenderSync::sync_camera(int width, int height) +void BlenderSync::sync_camera(BL::Object b_override, int width, int height) { BlenderCamera bcam; blender_camera_init(&bcam); @@ -264,6 +264,9 @@ void BlenderSync::sync_camera(int width, int height) /* camera object */ BL::Object b_ob = b_scene.camera(); + if(b_override) + b_ob = b_override; + if(b_ob) { blender_camera_from_object(&bcam, b_ob); bcam.matrix = get_transform(b_ob.matrix_world()); diff --git a/intern/cycles/blender/blender_session.cpp b/intern/cycles/blender/blender_session.cpp index a5471655b5f..dc6c69e2904 100644 --- a/intern/cycles/blender/blender_session.cpp +++ b/intern/cycles/blender/blender_session.cpp @@ -96,7 +96,7 @@ void BlenderSession::create_session() if(b_rv3d) sync->sync_view(b_v3d, b_rv3d, width, height); else - sync->sync_camera(width, height); + sync->sync_camera(b_engine.camera_override(), width, height); /* create session */ session = new Session(session_params); @@ -314,7 +314,7 @@ void BlenderSession::synchronize() if(b_rv3d) sync->sync_view(b_v3d, b_rv3d, width, height); else - sync->sync_camera(width, height); + sync->sync_camera(b_engine.camera_override(), width, height); /* unlock */ session->scene->mutex.unlock(); diff --git a/intern/cycles/blender/blender_sync.h b/intern/cycles/blender/blender_sync.h index db26f304d84..d2550a1ffd7 100644 --- a/intern/cycles/blender/blender_sync.h +++ b/intern/cycles/blender/blender_sync.h @@ -55,7 +55,7 @@ public: /* sync */ bool sync_recalc(); void sync_data(BL::SpaceView3D b_v3d, const char *layer = 0); - void sync_camera(int width, int height); + void sync_camera(BL::Object b_override, int width, int height); void sync_view(BL::SpaceView3D b_v3d, BL::RegionView3D b_rv3d, int width, int height); /* get parameters */ |